PREME/G/MU735001

01208541716838996846389614790650474329086851376795946379949106590815503210032423856541288186517975026717405631934721475186792757272135580458952066450745135442177889419450525955170114430378882665459507362083789706561607468822065209748158098450153188453407671455521286892729384910424699182357278201589559312765112143851228680828271876628791898947549284601805377571262848931040655399701899466102993528091667930802266413555062742080999103601826689813678883840742435549806853527911528463592216208015050891930578659248311957956825501196476493755527225769808631030903339208248359377569339641875149553104884717136894238926382467512796609995083419994495330447316242275656865712803686567126472897001274184703996900568362745031653716031940607077175847218804499809341774143086184445157893716848098259805239577054336365556285650076607328509653928449174868493376934838921230616269742747489121019414532957613956886048326455655899740972022734814516841452378954311694765490614497189779565194125270141367440846721845561315177868425164575922910725999156154965386766038129727740367925121130743957659935201035754842086502689108234314729537771936702604831914761011012216080627757849872468094197140905816519764146105152341315927074820082875336234034207562247567202870678916505725804190410769769753310770586713635368374833331802665251035673288186425218444761846197535400038480164861253799316204314398635883447169708512667387369591229340578502584860269239006850126628441428117677035796718060903219701239865779025302367961772375057812659806665029275181433242087032059292322189223039321669277488811305599953173459974425239561416513330024865680489769877157797090325907935908676546421662605500194790986595869277854564563907083118259708008441299059723958366145303011858471799816963952243215648015930894472006986675912056255519259579932246207256214692370864287739420768614762921805467177057823375015200942171030844868339505898092091751015898795223516562972780700129240258401001501798893626160726188407278439570776457528555612702441568531400711697458960040531290425262680106837500697145683307048084170439181317422737404339930063319022018205245036987580586895608536907338911847037988179761873511313392757506106191475445992677955112198421184716959155299664615496154484491167090020716652222200304367007780606069709405126372847083237283215696100819639517401910852980797580847237399951156394491688563105862746005059062367175488939376253748015601684789197551246975613476413039767389026441715768948756753396732086722973407058447693868865346262020937776984854345502843699883645656059441703402062914760328369940312163763459713464916218394684184895888689227575038410336428090734040338850756779967818928545105984067982748846648429019812634054436683839714516595079309495656538611362946551139373591008473112155143046018773896168601143095922420387436169332632382426626808300583571053840348215442928231177750055427961442528616245477465658625811408386756939419365518524327132744795111356569878182255834758741790698039196974649367766852114572910843423187835652423655187466768059722682063527236897110911561837687773856068573084928387746376731719583527337342628706402738070487879411732727728324926129098410356354401273103147330273897445200243679931277185451274034746590265431969018559912773760980049246289183744407424745566159844112839126696207956578175677271391667265828418992801256477117752495464853302330969477541113229400597151035083380855569356919437749298978289470594473545151349724067713973984123852471075860066983736451940128732451898974795899367326670159449464292685884284457424962167221583111490461547313848948571592314786842803840075170328156237925123334955479236459621235414538038817630633573120404282703790368679371800303982316476859045144157620865253033846891115953465192201420112220867308784725381867433828847912303740603961619851476974702965615608350154940204889500818618476082589769759364284457818588122189393898375614520305315912456069525558960926809896546235987471455415681861218569648959120103635737731243985005634771440650925716581310413551810984025554291879466259238546776105540869525537041390430474527664369788038833118409924406061330385140084521793413746802734643679001558378183919316021751372487734153408490154476100417931945655154680975096572969179620796311590602557920370793214765150744154466274943254202618544970834266378043763820406254422427849861678310815300649865921522769884569025654500361224935878045337128454666834555714041213239962039513758987434470597637170181397201367363541572210653269941497103387167939739631644151208770908893118317524810808341356305600643239026289586851541161155830798272453430560277581444099366470935307254633405409076457845032478598553725298237770863404174709010024631184550077071585480746524231012436063192801978999667433101797202026102838304281715210720960857346061100679386364057216169656409176335475658363383140498307275671682046054424417389887586474428696642759682652389063580000067024100668154349017400874658202159748350334086967533318772109067689613065739226821728455099156519106419416719346167176568082893323172486916154992696168308447491441196874493461600823708635809465408049349692867283841780201862909803735952943567966316042638429351065591135621024410490475334751383956346331015982413097382384419666558984152303992504356600792179102723901903039595468965708828144793715000079692204364699114134516690767028227147033228044826868001651605287587366652595503328549953347982209836090434459297532464178551045295343242578351362241369440400684237717789444688291803040423277924625018279251349179986178690260953952369898044873595443128481743847582419144561519956234915186691953922325708321172274380951478468680758223276995160607386038474797730990747210469515203071844254019956583934908285670364075753186257512776310238215651747567494999656196342641260776858829658543371774339830409496286083842417757679929935466457349262497945274141261442005801011956800836881043851698131796591995779284451220695433981408044441927387638312543350718932960057417741816248837384753093471527246995990377954173843214056975754206372187788182819019303425403775461916959447778266361306332469439787111193411192283728010840921523994597592301485649529833209351622382629985252927864189500788206525024378386530669094252753650577773094990020116851294259973458112898356478095170737978512073153856276946406382882312389953854820328243008218086938888377046066141464821410886930227895184597424800634015361283201744043665312194661891052555543471713054587062588553071056627558331654213887539161383035505986334977887164264669700217408974518478987266822324009219088446389919164251463066597307374289908160963812994267761037079874290576633511680258968885585214395967701230139434984521200428745503300982054681763202839705183064144793251334250031536048182534882610696419592122344706454892136159895765310407750747905267923501730721467200828494396535926214123428803889458218622123132228779358249434868221231115383039919479367475122830454179216316776177915171469198057314466696611536468921719568815643032339591865711970628195688051067943190462941157555653819368550764137636078594245135950333807208524901932983641709528078468765429683438698506318884718224220955392419730908085764681581713545379146493223256732677615627144962287478870720841789195067298445251481209242221923545605884541777417208930005287515587226077131297584886302650231475903770944295097541885723433999725117976859834481879023610934616578986746724854304131462635040260797596013621208007927552394717134762622019382597073324755275007434976415944842035328788123699937980674358233902987392656529064847240793482675441759158052348499523792611551600631191496272532438586220923345698146425653702838516357466942483701000331383945878584862963505810095114285769876722560254867019087970301572171122062865668821613811287032741077781620927426194377941603717556353044545756459157399910439810523052687346581529860873074942640773524256819051368492690877121516946555372310523962937358170860349928852702394159603889976978261039598797123923478682931662409272219651223528044848737462668336332362050143247568193715550942354913727193844960086393879021812833592614129298462140715187988249934835975707014420133590719565696559517132067667127143222556468479740881696603617475506946097008560188597413311771388903956139435996654258256499007214602495624294706865083657914839904551979558116090257227785888017001595691836969661280545922043982383041500165912537081853740781437305875290058636900723324438620638419424126647161239937269944907122662490623737951489049904995282586763585188541964500338697849045028389266404219956358911216925393992113102629433030359428604051345935495850109780738264934126906382751041570586842697035240579900186263284847403333835675489573657046065693630867924077785923624089177778648048654080441053925676605240873737926624731589068299459061629690546417495883406058059747086044699684007387376541753618083737735895878360603824555345104857422291936536276048772216662254277843366459826065801349219771158937157587001321259801696559306129307859432201918612608457165946055009596260962596399418354825473084957202341139949776553726569008230943503287992947643267484172381528932824371867220794833969695683644959938330819334074526945948484310875901488696864106623317745382725333724153175257583113176629104498512836324724234447282642429802724671874680033327424760204944154129951624823995113901779614128566861293442291135695259562640565379382335278800881875103322190792356158087828840312881439072697740653870208913098246764423769141214593115670008729095860275964512215882776964782609369006729498991627094317231616759275128143865101894108872699388216686665068140681293704016966271567816942045523214862053205290489534456152270620538680620329433087044531002499231303801873363943899913557126389559545344039940608282215277754731255751969351264824090002866197994144003642223235536577617939756745867258635809277908213582222946328856122341732614608894025091399883958339527845490332497969665164788224095303134282816705255515731049215987726949500211281202341126815003565891229827455724031034225670494649986289241857669346659065018378990629148146501468511425939805744318161118226712783480141664092288284552948042188893092765580020435905029356468701553349262742457004709329723571057676672171734726428296658894297456572833479552188241725241683947847231378381564000204105668684033862520783085562623795431263799436187672076339325330272211968995146342654000923157893460790550340996664234443973042709879890407617200024905042516895156550068252398519332775973029185957865321718426847863926549856626285460870989823895766516721434654305287489988821712452942795139726577913968471027749439157440413137840093242122552852085903217868959785505388927602722716998652831951599902926645713194006343154938892395935057899038501426749292439398786411369592885287752021578264304091688538680157142339452996329556592089064879529687712265005248568383232871263976992381419886652519909968649002156257623527003654979620164353987672305391416303750771067567876013429956426052772689809870015809308404850676114880749879690739081599393975564119634090890183417218418717294992258347110264459167105328658639894795955973044635279358607071819798898212229288296079197495064583119872821038724849131365583077438967778679470209533699170646508801740775220749089939050612774936415475630925709378968041109201074571898586091578235640139249969433800518552002685674436368488280103116124273421788047403643526042770788969706047895657743206877787310224915795258624683867372596425382013037753648474992108834615620989498410981061328854225858034675685761780074397476993963723065757338171990124042289876925364119087403015207606597050232097655917917604832438538366883875280587597588860803934394319572414192651114798259710803249292060456915641879322042225381279959418308134033715928590031412451501526574204749975470616682115195345368437096905841417488660189390549320680702980905435731989945808510132129227174890525808427153514991772445855055186635364333970185411601573543987233743250791490728953180891458775654123340618364766685765906848059057696738597268600727825364503552667712467874502419461346627591676688977190729735150061675477159900295968847949549199481203679922822970732593932330039968967307211635575613019964307378054212717271452158744789105733011697190929781347336554676219811202559671053726435174798909072405372195700458204364495048624819239842189643290431706486163251822352028818216316232491591807161962507203575860765946773846415976599917141667464703123847758390372659601527912931064334732395344604665173633638900933956235595329021381660477028605726555449516201083457941806535662344519340741773537884237609561433745913980680024472677246529069081454794352674739829817340315252915742110284239990532699629494395578111853269671041344671570720997393396213740737479244130342715515414664640941932138253082779332435005539760440089988994425096365708825990251376472380399588249145310639649975910488268460760454779646492100398031448605270066324319918497296152292760815483430294487861990057698814045453738736801268155722365794671890239496057252455738032439034525100138052656592127339688107756192152259283246285965752341298855033690352407370566543010094500031410010432534568277200587584592271841238875884000062440668592235608839518108196059000154621357284985914308163793662143358103853790300639187742918650410513168919631187163699636341125700467508273088370490622443258474878323139754589696634951371417520378742538446560111884985193764581418158720743485088962675427234825478400538263737575531043732651200034180031562263774703454072578844425051536223651720835168440447257315196782538330848408745417762044643481679655906684111130370804033634358843314389399262489560507746942697403086222988986577483892070543317021067007633981566413001983950248543035667807940597118763764222784573587259700374190630737956469537707258001289728571557220315748193727807333543887053541223519334986616892134150178832779108125195251054847077203660660949341338746928420835774585263139917768992422673389582560199195571099401982776677089401089875904978186340288583065611229773386986577315361547779944839493655024419273942032264533181625772799318345073785369429601164836027015278475929711055559627870954387238218818692923296058169429182549443149279350226857197449096631483300157677975585635592357628569981935560018519700214097918797341464823548515114012626297842282098557477276988711803626518877041097623060140636668342962267075227105092232365882674730095672884017659871726874936066865146399641654383832564654235476293276608107042611397942200461825801315425091540100021358302829321268970981501435464539399662688613490537945485408543268782160560463730354004539054358886695442303067459941583815981794143715595469996113058212704556651570411355835731558307952597916464473216875934387022465215266714186434986069909137273079975821441479429516934794867856201828332975183088870686130640470346106126048345314492141705276017266099413469047891704646419194301076735689390979458233149703906730852783292977776985448341910476285428085760828053749956200062084409734965492259268599072663502237461331674339361948838859161506530834452951706039974256541073313879230681176589017623409819594508698919880935342026917620926478936685804512423411180893903968420359897190803253918544746707802619389470865443426622887118577914492467561006292988623238570729966119728116404196584838923432041892085174564089472372352101811030824711742621081912045428619081443719254596066599683248415329207467505747538170352081759275822503695361096016812798034865163260472754248134546259852769760047535674020437218127704398390895049694251983408451733216103197791153695715469987358058413367252442348219784043719322751306229126968011009043275556547052507427740802389445617429737282514755986201293360602702422292318618851217541047696211369658316896059666548196896003849159548085332893757296341438999905965023716480386202063026864894101827653133053546381205943384591246891840854585590101046393992051077355359707163870094578395365743018307117391286194165976685092265896739054628790776425444507089679560610094836667113218529379315601225385127536724768942510615992766893600033418727381699841536923872853626507697673457652050895780671279948828311822048015694918106608966577983325443215009781025109370491962595683621342620793196542063424644010220205093976999635260583218488820809834429044248184037189637740158801404555727992903325230680646785073386328009259628467229133225284484106460584970599970827917455580668166239657449839228731349768771518631437818346665364159447313746807826781669974085427482085480066136786900722379585616715415779842865620983548711977013584345901630936383002096391165419720852448183412120374990886623871710367688988760971706475117363811141252315284711887532620408643751482109274763584149811046865357965803845876945868656617587261855641282330636341387051215153534063605702211696994802512366910573577664005153916889200061591499160813194600029127989879823440119949352390483295078883607784722058338405146422320458617448022137866107644108808729800535453894964301872844407837607307513928435923577224374146856342930171266848471891116530947129063522052640272188105317910407483075594983013578650096970586362504353805731904359005967862929388362818044009380467438358019259977671641383693341671963324564695804015564764616200776394184993471939773892886261277429084605983516836790547564796482938857243840617191494648621474793862340431325175113235355846851243466174703192170853335970809106056165816521977009162883832636379208097477126949318513079883183707143904306870229231344526543570582880310023706369092331543022479977354683436078175015487008485794370147371971477302193500984871665941414793422518607801915433915487270430631186485928193646338366854755509094967647298070538914157321884820482640748252851244400689885415116576374278758970259988199353437137579626107688607640896431053309939146519991518635423403738332694608288015641493857547605432695548248089931686890998458142717661900123144864740286736792269950502902866615383977495112156323274606678511611724021067099268034264785769856173549042778963850874001881483524849613552276980887120643410646336903875837191989841027504753223759804677275055990786192878304226706102054607587761226821169125335856111692436307412586016126124732366795484238326767680360354396955069591431747036678820448871562282456941259237601836213761020790610758865506387976002394257119672314367440159591954653036048807735635443061159726729913315732212671843511552924273478362269962915653248183813531602552903387168322516559117352123463862797736896866836393839394300368316431547065043028885131276009912928884382537251993665929574516811994796398051078130417300049676028667268345135315064063648560787695733744833394876481614818389602633590578156059056260321972761299572666588553951827951486749465544708974064698035989652548544619727151602962242095296459805953985148714910499117458491586588571129214759124001980183987948982447890380198807061741598986181925584008714837660648071189537298687531048846696375286101433101113560855470278898403345808161088762641917339913560900078070103456380927842853972727830446706855460733007090256279091542253360568995516292112190068110615175461512689561644711715788113220700308783543351178942246726613738265641247839500114379853713326547527874010625966794080353531043210297100892515951458614620899141882083477038454214808777246663226456144687944895007452323461635742681485809870411817200815554063502845679626073379070042089937536008304084952779419907856172761495192905818041893546129513066765787801397233776170222686352427638444116235592111127775621454459735105551476397638868091319194717489554845574484423260908619554614741541030202714454220845548299887389270874305510577046981373494991025644961551398093472697614518984121667271896810005854561123268248406869112647431445741701279419057826166958665322475175240317079136119010508751521833903070865001022022194651852724018386797491582130088703564242208840675441017397641730494313889397699952072390238109800333400906461735476898620284662518779656735396638316922516416654662249317807731152264069698591375246281140074442325932555197317165779585473051503176216087448577969560638583539402575104678664745005308512037083790429391656606319987577731845924884577485946980192273029058320572765245601932708503674528050964401788008926018482290775300666918599676946521339286042427189521314556924764748794236510525418278782910284048442493059621073482284703244681560144554305050306756677784784701637145376750977651881661638416888133741197579797635756627793967496814073651455286738286403361720358533009891969343154084071532683605168781558004266055538011991801512910245535321487235090149879962165995737057463873957460291609199403876622657006562639893876993517873345355933922130524025690291455441007708333459819455712879378561666046469900697522564234866675010862108713691448846460346264658184734706954841921144971117279334128002956270620418144824760095520165183036160124194156829343732455154856167956492737717328210205944644827077008096902700921077363454612023276336832674791671380574305208596604011873155567613261673737637039129274919830807925664744500685869619019034729551518813604297321571328801360925036542888268077669291007394968952527113638132866573282535151091195921094277620907169515558565599840642588984652760571671333429353125990732204768837161244532211028923532837288776941209130745097825702101264558038794072604432807779973933681905498648663409549506959558067747195893630551553241225393703102138362964276130307090984456160318330007928265088806394871270616942844013959363442479918471723050666111955249522646194617085342077645726587700408753018935447922926127264130369364106681005216930228853748212913660004163953337206048415654908146383872770355053824300620678338833543049573636790729500325162447524891528789607113797820439662996277558002417794957563151636658308431967401203192132511403510640847814118405867848386778118721282586623652552850489436658744212932889828478300444774213104267811521646057099249642694007749503290955251792958547683440137400516494443404110023750286788191319525492024658738209412413716175733596456013779229459026056595295494512799537604414707646821136594752115726080027098330830654214303496057054076065543097684787186801956226477930849373502599828691684404158119669458548961721090911363363913072274705175173573656337450463404494019111722619388901697002544203455264308532114719976447456432859708817880153194452942467687168120888413054836596620260132800717613628740908617147373653906575732470325261504944209017284155629943596475163740617705378532730407467942070733244914033809406159440284095566776988294106667356090995499016327103755633781605387498759179725858277755123251163626205650746846071403012977314305360570743807236344182421402072915231541937641397940708623612409607231248724625581961177736901209593288904749990376504158961504784502143197832962987919934426530315178256457252368447455322530693619548782760877076457052226758336728824839431163749833584958313926450337416645312249019434645859140559649869642872670160579254702469953009414775524268906763205222390592484594712570132681224207851708882674812419369062164177073048479523133331046421445654744913418583672875083893730593906000107674848427782263378472280382044867855241715480757625004009964929689439311732370160089876248593615494902065290912432933304776881358897342327765112535866281383643454071168552690175247631421582844584625478306152567212629436659314636878122164776969750061037211253302628661514086938298903996811971703242631314794255859936069230326708076026345233773623933207337904497433306045939850735769303011737440041974441266092147533275532932027144286800441885367335331414195407303737502709805132622928524277128020277997246797837058828643990839586416648218022505217117992899638408942391201631682875505085770446806284559958895094148419215748794192078256257217227698062411534837239979144065626527957774947537261017866222014580792384465495427671936811752708581207767729352200687056107219560932952763705586535805753905715487872348211938722651756098115959734839964549592006224618999211071299484419390084365656027720115938796333540364109931114827153159334775790162137357638050751704620170980531690501294335350540524567041148765958952752898338250697345579997728851223350445690839877310664740760364839942990645777174884279293913060410156466335674741312036909246889214164135448913591032706636748445282817230079147137016359206498167689939800669433319833098117735226875584502775051289231772640580459143201260607307424758940803861601986752738073359624735850117922126183445010180388706540833074179505674007663221325457982138844055704963056794192901059523318783308568185461657828722063904901240660586781836580875416777747100624368952119243768108640925003497902255880383825647110868668107085362011662756394336686230657615592644135667570459696479765991006908024550991847834755517474010492239510061819468375332885918607923279063554364981353069056514445580736384831290092801950436233900080906725967239500994295407905983053485169665194401348366140955974775302023009550836689524937436472741763620944005338635552235037223059378789140487748919346586695600944795745173542659237997432585259979372237511213805841676222385968427020284989622580028568099883831633787428772735510363563325678552970721179456163328123783840335443259845490460957834194113371367181800103625610533915151728955419718014634615059027908205236934864829956964244289249048348702014261679371045372377479872420696930207042409764000991622145085462482129105832669875268803116200923573664570777157743077084838507084715881581252525339593651392834544091092840045440310520825614681802735763315735529747653107786315608546036432268236745689404499699086546139731075905291224850083749758323171323111524786979566561825636231531209689183039077305597242644010316927897530742796773134819982166745221751715714973054650099929150309914731850704373029003468341951784294792459945821817442994118421582925033067220545192403362077414529095156725279591437780251587478921377640439391445160476240223108693536808003270930862533884532410606905996168745309085119734456906387990656953140993411110652307438080498815200802248481262898535687954675390587572597853314375581795654160413051624436814595734038800746839959129128879850714977148523110636892821951351857465923635205726753955475996787588015930751010653998053078622851929564564102702882526785765447753636489427936458352477913639388820222996045674747876531795157355006337929140580487198767002355360930312201629713527331115674836622814781729161419850956720864762348576240733661471508361947104714241092797732574938010787210018307733615200587539282376542424933084515499880865755087973798838451102094155357326788674763039431872391806497272423664312733070658781487461817674130645444687164510070501353644255540473120553091310173033745882648112646850656833475116219162079297777401751483545785936368289295113622689794967867172461647948522242374413166884749085133960212362824610647814401857402609487839570391204785497860589484634006063210344637794687529546357734743785246291014234067938005725086296482423495913157756758481757888754772048426815101000484678382802577913853856601107104628995032818058177849726395108047359183639009850784706499168879687078819932598777350275298349733924521651613518236452436065515789647451177228388333899349339948808508042277082289926580468485132090783459904982258767885719498741382564493787069220560315681515248858104568424094217734146947116300029059049792527079776645708051334997665663002914882340941031981030708513197694676968522327331636194492521307075253081511286724257779212877068025126407176902841038075452915610510728131430566310148085107821372531056776512314037613456795985100137021555891779690441727566633257186988775143786316341028685340912367062985681664332181514711957690893229071365206474555888555741020728429246528751238354407989430328042686450530748668891119775190047078705215841784527247497244705668636764192396382994400753038762285078986464259912065965746889926236835809559023352652357545817120725515882461454784118038312882555028585537987977168679412454960180296523264450527377634128584336609900197828881285700564620888919681643067616798765328808041802100061277747161116994298975280202771803201905613880531931752143727951399139610950701532310682232559419494833682295478183617436992557566326262118024299487480835513562299484753227916370687588360885664776393201862949623904956917958468418702618174583169398135447662121804210313798754467244141796984966688287499454530386327298180078547803828082119772553474586358723762657544806145217219700796326433713157315921905438892469313112290718935093797901553191208541025655133011387042265281757189368692017624651425038988509209722560799283425350793976457488141577503849884734271359278392602989802510475135545811994745884033176452505176164708371739804063218014365349117493265872323344577890265553761604023115010939383659365581774041714142592860212900273842462355456888672695020186381937978903494564643004870731000924976114778242333539973012154899858975990152068949549104293829443014100176837225987049172754940502368885025109729754190139719554975483737523968510199185476682941625992158628934388558197805265595850632366474480234281963005065122190985614849165000628001631918551793250125882781176494555402831788864302027375244974878613694610761926416408037308027670825480286710497374954455639226203162442612668227614004026665174033183837898853855915795179257357349236071039244191567410547646447001285476344679984227682060948124700108184675616708901340070939993293331112383611395112376147117717072779355234067063192330941885055391089819972728705087884458723520876313702025163174707433422280477085155131284296733278736607026079518039330745604799362716588870064520712942076879043987895611892070564741806808958514837312164813618427978379524556561698202666432573147013632231047648411252001818898558144300869130328341065770961933747782465397890501322450030441519084184333679377812907290935783050612496608855877494451221350671754724410712782981353667143822456045454081583144650379000572722856716913856690663211827977101061523293613025858264146202766318650888669132849857307616515260429401169728219429633089719900558268345594043999269970261360006744531040249032199965151436785028172288518773494141954273680768437243593519726804407001436143046902060369977322604924312935568920277893985058168189915451378455006021621210451014571044951630208860789577839242847417379694382429415114423038502371293351601287133850999812772853624773075113897642986460326538643874950495835893583053694250746514489065934962729857979217610748137577186785592440351484195861489714253519518913711019130107044747424854285034115927798898717112718745198550580599437548278037207271321353022181301733882461734755126934784812005513265499611391539743385637651528330492616290495168247490111208139804685517999324880149265642912856898995982765648309259484929478173311784849411950552977627417332639442676635956462837891081545701065382986682880853912403241950884099090364208393488485063738203251353000155298387333961551585029403582573912449671184174701284983806792629788590684349415752360136119710102863746249088435155043110872305144323425225716763502825291880167764454312783559822378611543917459883195628267537750665961415494923564276027956228591007904574477000556777627607399907848175535568514357310537374700394640899515397256642134037240729226950811867479739979835469326839130566472029665744995536632474842908615506105586618628957482512256113026856412692842928458698271874900944282879445355112173465600254226414877708616661978558534025110050123956408163576653287554298991139504042003929394848011413438784639767165289193255149056280814627854367969897874094630142422577431763847115895107456150013285965717427778228831563252142081653664045607250153113148877764681962543593530348529449148607274941355123622643172343519294304293834331468264012182833246680768090172158845077416350768796433889838123432367505401566274866544369765300253084798837843062202292233255839263908091828878100288408007056541319453515405431094055045223544941201868590281666629386220467259271236821985104788483317325931296685598962478146478963246052248002838350243499084390310459338729474320269858160580444010520413688620148840281812792211947040440567206565740409221352149948840137831989438882609780330426933644261552156608340704566203108569133254701682894662355295578063732321253227355426801039819116541855319157957747613758491908216590955810954581459947603744653428623393581994851286146675183345788703144850849161241725457399903308617430873345885740810588485730776122875527976846957051278496338829475952892919885093153103910886440948885466187651869278630960388458357318498524664979273329264431466703766784836764623128097928600217279154295146202933427725013667753348700790917785147967310292589486886124467292778867233548481378979749274005029161905357616578179226029825992686384716761131099575820583611575791631436529864983046095051214574425216776782016277172174825789043478118815656550791753210802558668021828627628558897339656521529868297527696221303233830495915241136298616135335951807720240104903578897823267594394252514544066516004374186209224662807209724013315887185957609583966701434854887493107272603118845169041898052736807590102067168423702394903426634056697593331724023578368346947622183348430552936489216709373834855991368863881931823351526991211224760931583910277373259533831633560569259524660300845427463644582821274836154701735237692418039706827372911813656005924468246024162878349091169974823173446181500488620322329355509097390214165428892577381695536062645940504801257639891822188435945332021529148937031749308662657528369697306989299006598696805291298643007045235867416587573606232411421672333253233528722023238436451147237632718020690943397397558078596246494282257120635591693051829234902540110691762249426764954823357785479531039117479667033899249985807396763177472897292009809264977824687786126347335543983209572892117590608702939822422007705286801612305182866152296092468203452569013471293762050316386621885003109593542177596397691133991883263371600380354988228588147651609459057092800192528998834078016145216059893958632711506552306833362297207883614267405442567886430109383177359578581428141784245489956860928138940708745764071300179437193242220585710144343197068802358004707022272851929068798057128825377080894011994849972064286095869850845109650731448495963280321393787735818279381512726351940504138147720937357076213914813112748041082471721028708297937983650608966126030656892038101869925327491896764761944065309958262363514510265419968015430362383565106434339370285606942226816213888098069333776950370305435261141963959209602543513120530912140886552105661630917242473245075444414197789840306034902810422923281184172394361722860187835489921098689693766984584005318772736034611492895387099391610429848421175005934486443749293244926780281893424738731813545254785436901224092904367273780060540918494842789045304310890324274641178369419687591208628936346479833885560624259904754430532542926710923084287627060430429425329485152572592201315589686464471850656626006873574752842656535035130200376066574406779407683239275209970059673873004366924319397402548386672301191047150466645499657690316462126429183951210444175575312902909166631403497377988841601747757503652151085215578526024480274402840533269909507067322258931621013893082205192161718441888673705175503573917431315034227632567738038742628034428479809427441028521417447011665897015594360969817804047157428946523409369759166443218920074004291807603416057178894846373398672993680360867989856230789103710049088217100009554073627242570102757259315273539797483168232715478931266090292696645292724874391344230921503362745816560335098379233415496346874203643551499871673709446282639011087541258080886745595101012030130197136852927965474749685907611328531681318781009855699422947106910743974196304017470737568216066242596867518430382640990893458043442109028114313668657707080894147307471311566787486658801574277977790384845716394174423446824665420804511744231859316935147915148802545293076527915999945134353800700541675087444224558746882455093990546471695310488476576748914384450465384228709721426824649366644047358627132455313968269514989027374040400476381551366178188322986388499202024073373439076727226738052900077608105502295967874796778223622270541824509595940266535643317950857896375385018175634045388267585795787731902835052082896426195412405119132136872346695858819890015927556055098849918932356496392035899981644315078706029253999446921163594326947814912475829466461751657285297249906064578303480703358116966701458580915133165622430961739502058069400861118904879210991497733006824911782731947050380451181998723941926254319932321837586449442416502219558332168620767843848871452456528359471766347996345123079507506814986515254788686803175598486051225293028632361926772837635079117485339524023674786527094186159292355150425766069603426400902726733039189166764913991186869896529588311553548797402529630215836590118933334271964408398419246356316496867433912862993511835608035367265225790403746776308038832012212649402450027365499956043791179455889556121115146698920663517234258492733750466408474214975660597387307010281982182540615971666376626689625765532332359754556212037270523083025306029477869956905130617503446009368128988233056745280354578633767157542316578683510550299314976579257493394593318839171223454906129241579957915135546952586840245999716771750290222302432173705212135742620104975012866669748480086324466499921370933145318930157591683413695765729710648539391954798629491625292587142802337091710813722619250785178603933646920631205864512650698174837370653136048812304147751272117072787113561056016093130616783466505652909426348925506177468601835967764202049073618895086325765149735767303029726469492579445591644624353473515385306116622471864707874704856298039753769380573153023812069102531049345035813994442448506345310277689112198395793782149270430372288396527964798115795534835969039814087358855152484660569781307921537369027932437016661335467191217347606261907215450395694111972937850755113229227163501415304814302164557014439181888611281242136227691353598447155579617193698119450125870842136302130809736190047316357132082044696781479658455313028746219679903250168705557176758732219675512995051440538715723731709530132709386377829184512912675429397332517118143288064718105290481678253630620161734334545877451586218039412643430415334322882195667477821575661269680346897248113739581661479592314647740784606220451787627487574015478872446793215333851445708633506619476841825218808657842013637254218365251284838429447676525787600594805781857617379140001816544362919996004480855448027444315361268188337937003752346222749753739062119677774553449755667214218665078297240410195502180653883543753105404272275595972913311138172979173040728221938496661612168762013110139240191519868987484492679681035779907182688123559235687038956855348896159420089404587875673683484394336115253857528381441175852413519476057693875981434400088202124490464883328653611062709324629766791986386447888247827999045258133042052146679547515438876881764838155902706123884147256246494209814350366847352736676379571199435937327770778257088238388713811685543793530148102207592538765663942945602687980384692875090109374756893171413845027683061377672661424932680309638597880511838122960139328000996454236171601317463609155996661466739825188179536868386438101454325978458301066881803412452796558680738350259847357334735700002480460177028380858751658661783397152798255302811186051514616039659632777322807350373151603439698517471282305857956467310310764233228182779356017251682471493965227400808653540212118324716126597242048875447148212808594937633176611909704375580314838490007302844756008286084145324009891179336028307411498260897886196384556901307738248679353993265806742902170241558657461197232769168449044743850486411848604362461131309665250194647890927198943023422331730436648050778330902122076293733028750350173451664847799371506289530433823163596346276304946002673656990836917060924730877801705288383623042184864898555190643839428332645925772069038198281719999816676856889412806617063058079846476218647252310768761771555516736539507305776939497706141360205366835931266656117998337423880651275018459717438158300920944245893753225451790559449849036174149745363102836768744225115725186140015622059565285789412485925778300734747609768986185900770192704793854286113497155068658472035349235428636544191480443243196291873062940752247611772649867849832402734682176132682676294076599919274085435302522014954248432525361558084028403523852440232705625552960965148284955677809183384977350903769125283538465137487390667926479004720102452018427448701011065315124364057518450683411015543456003806643107035577176242523668476732834329782328172233815536827235063721529412690682452455834653528008007278333333568082700241882005708333422788373664268198515828246937065652976667643754168924848320830040008835199358752736414898761458369527094962534942429684745339360354709347314493875436263167950777453525515552196368511841727825150621511414688396412521663761481492052271690909899157883184710581354007450844873553212955098773179253135159094426756106234691797669648422749274147344003573344352700512202230354330294295809948195329826563898215531035005490210916595380000337459947719065530787662838400893727012691306277316024764335567962257047334098983231514716506238455576974969152063235513722036746703778218237783756614019629448746286264448860477753029013107808551942308081434716318055903935223678976394722843884608574000463577477995485723506898078396083512095655333935545395584824442986016060180422468370788552914798639003746463552087096376594083772364342206520609202238946569735021502931189084395771305921884675402999238847094601347645373921447478082823531614286439849728580961450250909452582446632761881742755870098574440854830819249755641322322600915691900838432630952790203023212506130529230218409730536725951409305307940520864455670680644931974637265819050750241689832228977922589461971029806066324580360914780010700883279561478262674432650548216583987164473649171410233332866824946705076021989578981158858778813614972496167844366882236642485121493488561172701340603438767932503144383350592134998411353648011711073400524083588820648403667402646171637793924177469030601688403030717716525007202587467151918907599589125731895029917312497055038711430859295773253226796939406693521993431695421207972814646473237947591382015313694254145408560652757932197690713038177601539874618731873320951875426228696656063833310159220306244792789356862997611439343594608535984651869679336611450694341189383587601394557283426351902400226490726398025247782397162457736064351924983607823510175834679707768736822267195020779048142408687456883188190842994904871269686147713854819044854114074533609970003483361820127074562773803488146653533569105982540940967061012003043674102475344530510500732044130412329178201907037012749393779657267667296876318147353787469750708371081850308904780914902157110534611221074889235471715611454858773393373153354051845987669467206746070282739094454915590406290188808416898065253300412279436873470241022223068921725306867006692369840140959032748104896418382094836682722818778699028548771422291151599724565735334819820406551054393727463151970008889026213550856616951067821424370603008542056200914159569543059796354086577528008726680128396584730078168199166294222089997766863733285708142222224988567761218946402069263567091226524914934608323583760836895477682450884009819273021832683966056742494123853083006835720582207469793101790600679070325139589034714712799261023771290491165040785008357399192283625378806895650036899615512492728813315831290704618897869430315291660698850556015063238723112164042379491648609703541537966978356028265628084257115721316481974842371907181055327865313511072427450632374990209698564754795294646963188797424336574183625809038544147306654923205834160086207330686112670539612854170937722782904719513857054025591063201495240143571847375703318997978708499970511874422791518381838726928798326269789521737391302609032562596477061404128161527554260532705557449462294858190259506065812173872263643653581646666873580084965195013816874062477469481231462110096293131032036152218875020895723208474032041556886128255943006531197818896319134375670563961237483466032082429171736523143424948233777813136083677647769235547785545393244537629455249731400086106469809442000346655693304352987844243797156010945897925273261608633746468465146116735786038982960760831717141804011340533972624048477535906300766623939649984283026538252624086352439041592395313545438874221074423506144787640262434794865221192425837984457967308617120597618406201049751632458478591949725228254682816907377246577688181250065501250058339430615300867583116820052361646833139348298937749408835587080714719876986114398790936305832665213044604429468057898705282169753693404069504923690221104482152960820717360297956306305142937744427526986628385666292527167220072715107814015883042707921766300579662750561466359268551543484747920806805207878800374796266312409094817698299373708552023836160630963361271862256400998187573907205549530079362095139436728337334137765565052410558041382043081920041895193883807836024770328797524699336499775778862423935352174487245887369726141277768622102974250590493061535487415613544949971194061277439425728721835309417303126179024363719823761222806648675485909296755978532308478388050335032775096803807852772615594868528423793444902505522668686469235513925381847440549297034264759131405344254592622372666178122165505277963113914996422884911875403706863642600273987979809715962166034438139796683332024489381725119332188938216649179484684817918368986480409090683446813396307186094753479637801413216081066535263069343522586016621912625131835636996322398938260961164727165052747358866549158580809566898250288263616536731609571022972058334369517241413214635932721145126363812164587557301001546313666301070111018866713429359500848448837562375889194498902493651133369318586707415852632199911358479530942969214577758371094096205850647667168317437289343610091750926856423876958266176127876423518594326826363629917459010243151740304098398777913103404959049100434488759142172489744225687449766698266358099992708861707080829207849773413609868282165417554775930063582845504104928000727564716313509395957002385464963889217109984015270360952353285223322705085370501370045623556428138287413442230945842715016181815064312804136572850807292669474577162577292197714140779485200552968579075824261775159323112865357079261456281621811846636716113267137903016283271188009358793213717531437995509305288560864848688057376019844653551079262205125431330805441009012450428232556296169089907151014923090841541939978094753086964598386039914393568625034177552259975828783626348109655742821627454684354375617396225953767227266135199704100247319529772673763808246821974674072172753861667414185196897620774077280259765168851689635308197758575601581984968292098912835849327852802774363090569685846486522535990657342124092888895602161114903005573814537247679911587021216346754128157739680730443603117511708896597724116319191497214961690094362596842018906890218247474511867338604109594030693338438295886828111833796421415107123238677275714203201765263876814644426054167733570550859031439768502197170078872313896675377678418718632730782189897166327735172841022933943789545263620881926270326981282081924771176844106431548546318332948026907633243615223236433420842782989382516441531894559272197701681990252264347305965122584231543250563793496060362363256065162404455259208552687844038556671917750605359111193996840419105113827760286578484136157623783045742048091506052537655693115697774839084263168775304366803789711229679152634710455797936072971449034947818029146858647739424485536926228201886874111017448112594035515184816109728301281526433545770016645824162958749629606797799567228360596694991948271577265178469679732447947529562438958202024005510631559705820373658352101547669843709934959905030365778993666216773740953306787672087039383464486196599622716330798972000055368205005840110077323419958679705769059561727205157555779382461645956860959540058869056132190365276042583325696464587458182225484116615141831495883147795829623739812813518735194401795339131158468136264668812047222645799078477438323473086022858514998266245540700641418764221646181992626063581296304308815750244819680457851814407414348469787706322552640167028561769461727186846708002609978034963084572995642230431550042795928723495623022478939604943596191943163738567005818609936414590756388395370421082069803363184548803911006719374493796806457675637943811373435776587967047723277038444579939187626670504489521709011895591361253449467585799692257611041021115974582960727121499338115486188506948408428901212575047548849274225110112614773622294395456522604701397836233219927903834604590673233663519152307356790599890777966795235684945864189134336316838625634572242788434723710953248896569420726550651415786107985937614435008502577070958999535744327736868547015199961575179343915159577680676688206377512268003861943654280668915414569801320068137385750549453446618665194686296945588523859835901521777843863829406211214506054353826108234254913311146701691546935154568502973033748854991139975182266010952210394696955737505968134879564215463553292484236640333097849995554317868171342624216419876359829227880252369768707340370378620726933161226490709062452661963590851600215947157113272086840166116333455977243308061902139012652922968326220923983123766834509476829804865099608112580816235595938900189547686317461032566989303069426698071881604526139157846222950183492252730542583261924444729104537114680730690406315627338216459412927037719123353366401201714922357353033441211173270145176407354021785721349268213861588054581440586117776435063368826420241154601832465620777185709464619500436119295530636534668811417570059178430348770854754075659321544329014488432603089770728644176595364884263167886024134882137864833825400652164914379613108055150740423722601778267277910527575146316457816760110360220139580469840523018533073640455783259219511491739603646731492702472923205485016454168108647050466209131684464511220061320161344953917496538744697196343622924829695604753147966460349666347818476562784379640506130551846427246626234052870543896076967672919134110033759225656548650492693214286951282336748094439100835746558441185445771247483066319962820884009790445417097303100706113139800535964579473692587234845288247984272815184648166024851462875525929422902373494093205791346159343683011999245780535748043013028499685228276187623682659849507874988153358741899146418236963319633453407841342332411599902894224744168630360332437840915252987332104428143815026704659368210744789840688397422394117094828010394949138550577649435322336800521634111718326174610873040907552530128324322827330017025558765256481196597354060861613216457980032027122261179296005261171856139304579484238063411895419270339422391572543662862089024763047577054061063583768877239451639776450953105869229872495354308195502021766405155874546021411224305861007982374574431299626831918652736756390267695979467112831192085151109525534875602829975634381265979195658788054814869842049040389109899176715614433694542943318332252587956953493203892072446575069369745914635299765385595923610676622546165841484117913301641316746464373796763428531080707727635566157371393882184096001175051596930907437653561374341499554718877760776690334320535868162586842055760864103593247922190116853871655058161918365303954640219366905298199790819727648764812337226029555243911849569074609766165946481496464762071997435748030117440123871408875967438943371703164835058723485007212311676126717289995995313833441642864670580913880628002602891444290351071904046670134014753626497636095196193756076422624967690299051467133050402544019217534876528215306602728430963097789771194504616105491604259551799159617656366482911287106913306532611169911320641654467985640261077112792355854703264288863711043292612458624055753401992975344034831165478014394383261463291706041435904498323005191857004821352559763430144800726538957105509587222086141393652584090445969762700447369657871201651074734364294125217191520912652512344559845756345358084782464563263235668021309707103525644229972834356934837558447970491980881237848258405406425962848557790911350709124199336542069064497091183571452684095364661026154093787535355303770206531002793938681359787866809277379353830451754685710142107522775505179561091774704304367674009682691912338679314211849428291554944363339653817999826710763440160424802774928868132251748729088436919342856397563784550324088333763693172707520689907426559120482543836780234296080380696057810424034241329949622994791494642663128860430380881759713395997393575504698886793960902406979793571691709839171831392706149379005409766350515247176086169939163212634059602638291667526999539466955306213563789919842017554707338899528048355507683112501302294351431389664395827111335994927295532047617866271132634151565197363773907530999234512846383481768873394745834299549134234576037928109754152385150788522434366888706431785355319299793365545196910737527708589399311141688691252697391936637522259381122088109978127651705156636102114178250772326496216717352838848180837607787362365640314201414904197873099754387853481522273833255821109535373391490074921944514729176448963585292353408566487875432047152925096685174869475171223374864410032605891057024801648684156355488494692237917493808807079354027872245298990856427086580023970792347941508643251834190598130731943968588371415480253543578846744100375391445897185415520144844722358432788982611868918231706808753790730629651883122538496352531438880153751032980492655847282634772574331742562059680348287414587295720708672558700898042842004817402300871396036627494364246254656698347356343799586636858914761637227435725749200366753731758659048916221570312928964123127827828065168592239401963658158710504999771172888953901669752064978593525641023985283038764097030236154565180124475136606052697042628562583982775711268328394967951051984816124680259709719708189816067826381989923269785570883596502823908193689350696095644852679793029283249745061424292073239468993418920854332519364271352908427720283560108574715507876371437615373509439114652052744289140732083995292633687961961607537988428494120905485028188439224233950639845150016337711680414284170021578323635481127034494218897360715401535741265354420589651796832615581212818833516523497663897084167603818292665708887299832733768614158531182880942034465471968888831383991050478050931368135155539822284933979499218622194939988572003672368296809215152559509151464185784314501646101355947213658195092714772434655275464353657524071897681054031128079402310056017479508152226686703769460488540440792246536988406858787255674211195218614460576971554475033878283203244562997418386417339661432106795156226032637391337543848977499125198910641877455867972368510152515080833572537385362970543083937599939457418028535017936065011095544838542945367777537889024330502372450360807296512880985688882125564788132913209731509943945949984430455865554964582256816794707704313442184589094719486713277914242124523387966389830980494179429037101982022267269262605004595239354393326203870109489494739115469166454597936097237345713176023433943527979166629334718387981117735727956778171928581703663474299533964818707698284494798533629246096195612783412846090383635544678150141919370434475428671311846967678799822944625271029391553257947941682180227660786866626371762826362527620712377858663238634835116904135200667665057937061668809355087577262395983327276222564864790416439261899867128086042897824125375645874219365668406860955815549181240734668411165357950246835635631355794763970207222567271450433778061783086377917267573611356726337274811245573532305230872177862227750227185772637069069300832473450441600655248195436816116344940892303885206554964392818423942960703389527909241496262703456768006347108656289646672308945980157981741935798460944193171643234309919975881207278044751061502170804906039145787835807027510772576817993372306610817113703966349771248236809749181944915497045667029750463249124481870928885028603282554016926967221405360097963045080118757707111411637822077485427709148381480300540420349392830917910263429190565272644962427951586054584796414282746743452418994249594064508883538592701324115511515533755185525501775725397538458733969284385252219218170928971989023397327257818132279255192537746594414452393308022277606296825883240666085678259488912384799226998464987098763520869622116540727513160142489601744856990218605042824177893958052679313386309600741587242473986661987859376962781607813297531153757530079942621617558575824066716680303584468221747004222353282577938711219714987692243646439698814437741374550679214662923461396245672002005359889640234101570690171841747275298322012541118461892635684647657143253232081050004575926936035722570339796708659204988153665015505109198862325786728717194290343492422038007626712141804534571825995877750471002331798140004189359335515214170805770278211552931237491244357427894782126251672861305211199304584754527683460053947692353066028711569241230406860034487532296096362091232123284620775375227155666194184120874141686984225420676209038072019216359484988184865278032071584767243924414286098568729163435049359062609319221835194753861230639399285750309967270526689296244350905318015425762021337368927148777605458967067886510560822103901670188001269029133863730734428903944985608113686538482748311209943627165146977811798141488779808910253712130983291192151169658107405592126585583773759145742056308653149612447191383914126392294463740179070027537411739322930838797611027347131429726729661364178336066127925650497828497689973996667172015415088665332160341504932028310990728717294857454674558409264117215388755311328419746265870970437979110904586790234475450700616618699263486160241135765031556017354470233184801355172124882157770528081130832086613916009592561875017386872176071645011734165637623600021176534867769432574618018814982840380965820127552547244730449231159632724305940901748830244107438697348445870129252963512361124563649382968858044948577582730681435885297987661947002459330978693474471546262880469453032595928517819647514891933844036154812900947335406275215929596906384308796404516464544828093710205576691610743759426755933764955544911928714109241623863919123366445156044800244085035884780905883128190601021118531711660423842773757210138721552005293474381129980661852613533234307796427013938740801192141833755061652897006796263136606088595954357982667133172098766514364694976692733710281937734297785413739676789069418026929279662806945876265617367270105738369407798091740863091329995594782270466345758958813920131748255489194848759850625345257863716841662015004901780739029330259975299190761934291784621147548101969341050020414074222583667351163104917066018796033070564757540004392936843327907778050462138766762064551703462284984081866339224285750672385736030320880447205220271600766088684624613263041771676506688412406572393000647468210069018565257886683390981367042396015446046766458635978486955935626271214192293105760627711859950352017534166264890540216058328687087839685987715452633674560863623615115854817500097931496481150662024601278474016837234855602899550933355903984998341714042604070511745474486018692902565759597957814581689684343303248996130107328490500131367450340808145799757321923295685384907999823109238798048413633094533469271519730165297139046965861977742428042301506662965465603243674314186104582722243109810017938495563903284011063231847746407320582399831584582039438581429882403882974032488034700020240600771823368342369878734867468470855401058938331928978276369873571635960020892635440675155339529865087547182233462256639868143933177469453468947678660758481314407446805346461858798832838180671531613754921824395510002088225110219448804755968937950444030094637684410088283538331212216552502926422964498064606595510743192301146167052743749755432315718845963846908626348750900640296593255781282644166074302888458305690042515214788402013378230859597080632617718990946870069223546895692854171312689548483037841413608312800023200737498079190093699586732303223783588744270447605738772848228920621115487322276151306670268052453650498015579192290593261742413856726933737836402833534002573649774444309167030340316674142542593535144326846321665702031921841664590079108373366183232222664193701432203303054688298149017722262465421695264968589499468409780015253463817804839113267951914598588303219408744560100040619028221476310326395201888161381869076027024705909936150292371846469722986331757903760944795531830955408140730595767422774152833799026046620281962915013985331203736319672956904712675130515748787755313243405107440901681301129060081158726859172384070205992589845961108148547021413279700776267379957196029857917773070419937836502960459783694268102060459096334044217999820241933466727858984230170136225406118695843756030313419810667746379215994058958479446243964742147415797385902024230313026578972364085653197625527598335006673991799962945276496829377812097420424248849178190381728536095310052309288198183446353891737982885203061805342770168719752425952483102574062750629928620162893787921853912212115736417186065078297469739865399164447099136725952925239675145724278748781221245155995543874992739075762273608924156560316516751583630172410374071097553746201601873696832217855936568518014952420828265352680138544052028283062871469477273807091389329772208858295686511065179075919405402548547565288377948978945247370857804482497438147372090951996654226751307605693883729753120831269531589890679789255355487789875626286186208265767394308110144486440372499564796257249463189770494547668247692351431580698757622869121136842502515662509762046380123322383555288380128742964162868504167113843718164989886195542443154061383961429368716337672333704741264578917790030582319345934129416496891004009345027278762641802013549074829187854084978555365071881306286177582037234598396743487655328297765342155612222415846338030839542411547945291429758980493175194649408912171183710671929677329449832809897483318510930355667413022439887294670204090091441380830364642227083963743561874973850966833107377931713347710206880991733530115188008286323578510624995011512130274059543751289370696779562235379548098118469258950698100618611084152706375983108914798717079895159997098120163649469252060752500262918703840260944360423231358614502934778570781405070860281659686298788542117483475724891524526367700219600780597577100558377174777510549469200084134018631612118475082081530938143528204092109231490740456914040756438868080124785219991505028915249643890582941826832938401086905417659903776883504038507761897105924668389142289140303493292099112330193382818611300468587511564218264780812547776475636898024502553098801071702463721202283196160526996601203920269107882416560769989515862507149884913944041470417054899697772143996761053725750025667204892708224087925714183650729665212635675257423903392494984815832196304820090514888129206738357949570330838538219763450114891078085552794191000693243841487979161417090428219429679697206732878909056084901021510529685160210640408460698446056992181595982290486624387256589632902333904589844746246157066586681040878617955782845967787528420405545767360593294755292866870462957918900225372270458211448825611968797447577381743380116849962840420678380617714096891574380843659172790928281215000482291717405763289599616765022877377641041115775106905670799711481056523685564526904846674218139089385050862792888634802252225811989733777987838973200070681310507230483887912403912740795274978083744592361015783533462104832492420547065720575867562873866224417151077651284314287231100700853532131490027021571393944997187593188219327675036918159121849846409184516704867575783040728033483376287338473431287505472442706350670420152964417985260360409900392094184746372638753527914830407566345408367995861571272213285455333534123764052748616211961847370363518970197435808244390332097955859314771121322537691983940946715225518817690225068882341161999318617076316404675723716907871128272504123411606361377737576445682697622552940394412617528160225300658881626911039248220220842008345161721766105760354558858698345374521608599043331093533082957806703207893489307769951341199107211817204552136098011934067704153579423448380357184208787729952854571362761838170913196994114218297792310495186932219436790581583669325426833259390888056370774497411958193895548813277913496911033500125425915068037942736169388710018239285924051416553397986489842718722119511355166894599848216114817701905495536032181225923779646311655443470529436094053782410153052001397702732000227542592584232154743508213215021184477994388463516394998088763138708201938238207290109744588409476503414521380848124845257762411732483230459910092887546349017679903939700320092064370508885025884818134544395753636276128537933241825055687316187486229397489828424920754668943387906146428674672557392124045293955662152506644244470719049553288210051186268387899368287520270896772954118320658183907641801056260568916961384238157031949868703495885225752364194403744220671865390204652798477973650025427084211220285247883575079408176304727420751998313959174294611851951295046119037283200139276051813992894035304801412008256600677940049945747636889618279318651829667390386023586880117452665607603278581502614889553965059296980115092328207945515463253679992705840460594783285911934391135200799956371862129306706542279244074660616695587661279656256717711118365167297265010108198181576330352942771691891347689424750364362766233665346509518490399067618273679467580355679312138831677125997204328516199680245477494848302622352136613922982256181263311097738141274131757854468141579702243979359129465418472621582439081996772686364239048246571457933419956468872123115879453204425283979467083957505575478988917485170688107554037622435345536895296841437874408715900095646906049388949761684871936163846400357714518997545812507131585874395238908882443970224387422006715807721758824352110915187202553396616555817990010492090478750968238952980338730869478567215253342321547965440833159402170803089751155980906498601987689421113379767035374728143501791255772959796002307088013162580987974163653620292730696074181306681320416071130748575451703395526559630027560895153755075324752342076930163868147942030309287756743373507873400843449696389599674078895258134971916565295461184603797182163641985841407286767481143054921153893650974438373987903879902278119793259238144019218606028368252449613402150855626388706082247740716924904483453474111958977822929836536291850673561413071501613490801885171775453104266612740555527426522086708148505083566142997331829694169580849697870454168057398028176755043479860799073090418004378312762403594553488411283213323741200345145384382918046318364470693625764998968973908491675547292409434724237478324721972796652434057376068589165419365051101027779594019990379172497603787292021034504877103700077682777373197197425879871032617087962208091368127871382083478073387473485239142006791501039976172828447391858868768431789330022286167989470253552741058074584105946660728714551347814580157711627424749696469177544206905276657384937495071929296778591901237553589029097909423393433546507063327990540391760093678295008788148902490080842026748302268713994620427205300239482406018693940564785814277923485450767464865994835698379512258784192793150038386837827850343745457508334611111743697960636439538789421600196817144665916530659805341401859491158224209921878081844166838171804618354700580155477713241077255245775256389829597173577636166971328824257570231122721280165748616697644516349225432350824024886196631302468901179836875970498269716336690673826181996734007025334338258450853244889294984179452233376323955782308109630089419860274803676081052425818472007177745589298516371729028171078042291208026073729618640567393276623309458886111347049047186575104726713898852698581527453005530892040933374919180402739064469834780429587164525600780378014695840172453003699772999708826073423084269157387397733159840593206152345931088543698081324769296330247784052823326678538306734634786827612250723618463377914490263402351594919358510553458808866171543348205301291565226215169481513596721984824071862224808830582593598024963226826264037675065980627124280483992107135047049891355329894079620961245440480281253275734472867323017417943390637668638246969723573580427889383104835773510087079212541619607706081489070076008384916731191346252062512295008373484548142239281318531420696800723662973559207676032931173741589293223304669750716493305113428202591267613887670687004369175231759777257965999023414205342909585558036194054635536254359491523696165988498187188024046453356978052924303303730642484058955615857245626982102770252829360662813201650252210569060654733694684788653491685962691492801804379666048877888426186156944270495005899125798115577462334578525541724614489652586859918988698872811954560946555277783544560498207285295316352760218512166483850120389053349380977319685799527305511820715217781735768199800019429838293825865120639182648517884177362392031606221672575615814499558931695959861752744442334797989203474983368402575758207919781743355085442998386530203440129681640981270272693696933298506522915485685339736168895056784775753946107078079927058347666925714190317151788555661029450388773638266231783325267223959025270193554798162544867057392602217917840850555197506937127870707233680971681977001010774656081571660447390374546499528147015771251943719855154199033870457275972137348102728711416093556155077805191693790155739142637895754494648682285447418253600063610436280462606692965930898012544809092957038202241382896405758073160638402650656178366711734713284074366280083822452282288052665233601390914979721526225770451885702858002847785550583711609079760478225736927652890675040975283204088237694063893959313660976862071138076156249916794286798834531127926833834604612842463609938457997474879388244779612262400227334886606858186084573760892227794707125367131652495839708665482829590752567597252309385448202917659791183645651622634084743135959831537774753805003681116896629217269715978131282930472348617738265930874723739639326904856326875983340585175843517310034261460786481874102923592345536586140255333318445384096589667571027259795602253362143650980811029190151993979594512810621521093484000263287656086229710980285613743685836092020244444335607046570446524748712341942731999107823892971969017703617050534805512339343851039022958291206411326198323995807995942620091166338406549888613118470324908934731845769860585520498664105876805710219309549897092569072263336359363198670740113789107920835260906263589144115964505327349180228258093992102347754635583848029136165910012544612771472821259867146797126405374798835051681575938602086225802189243969241203114787958499328382699123503497219489500508198618664499857931013629607635883255447392461175814921932920093883106322936010615240935374332477684003351903855109879613539006047158216721298563994996930378906823362196432562324869823869244301204591551972070701819251556248807313573904399957151202970267199105544613023777784718980701187087635152153931585520202433909693055230499754989960987130179522989154138225087650403988303572559026812150524436280465612184498130087996485891724363061439060913510156586404626945484716689318113152724880661661623858882835925587071445504138769554027264399842711059751315872859638191137475226853146436780994346625313617332740402730630992510697281004052020925835643560397841599885865401533712882798668101928634848692462152695726005184845763185705931863028500686778214618048443048690025051620143868519224188899177435619735038299768178786442656572241667460396889280447203221567575372898766599675195973780099963340875964777558168255286887045033288844715428775440834144710356896061825121439211412431277417067510192056805094814815397479354998620947581496027991775585164120014444276550800287266899524153690795196868507199209028308021811388198165321161792889030561607914327176325294319671727857642899232434773546996347129918926432041651445602535660582534589894107424559076724908160518189298730553522927865259200657695722408299326752598405078625799767092945231173301277856059945528026606255381709766427847662328825387599887445904495969785216628331472958803885693175681680163190320601540453614379392163185022232733534630320129082520516086397891745591728746545013852892671084280280123479219875526901543604770829150834705463611748712882481407754062909619458479722239242065071764507182779689815496041223140671204501088786793065351073160590504707963981775893375667768823403873279368847732754747778071170709190813684318028420765629813825801740145420701860683819869661216834498132651965777998391848759131161831360034087375355314388778549415792599197019036588562746376028715373515262705898522364092375439443586611758090529209952379207606482052311005659084840285808495588896652780226732713066558357048035325178370574317491199629708236796974391078725670467803883935307875905722497860922906568552861967022462591941349924845604863504843150113448934999032511733084681702727317332054225965297016256775774914860472634383256449867367310288650919369614345582224931292643919798446086329972504751576530209893296534719157786723822807487343539013585800736049658429744847021293133916077763815255988783525208729448294228403683178286273698473283708454956740216270339166258260018283123228000196914091652690548617579021303802654600409563651379600758692686591646114047024494217761609792399085986156904662164530251240591146680502152105456877096927264962849702989660951450258813756752579168675766364130712307951320113455978214911360931230648044272290655892162442290614373473214647134310401438433406377708223142054121340929647079188672536955522424041940226225058506423548517911896706613338610887990376038668376828143531683404074627789277714154191246216035855238666126637761548104435106657777549147170183222139198263326063918466682335739019229473687325519569796889915029715159331875627105403735574320790088410251743044260454175282335317600486684415514267028217232142346030738876399571986477107132421320949141515485193426510323627229053449101804304696751681820948357977711782673095404045801379946719511021574283873412395281875635057961079628930645527417405916500582278476811834243703842586179281156165490133105657974938108170730628653813176039919250411242194685976668958185010784048469512122140807543306049615465667023531289847272533743248755914745477208873473123945000789166302017910195840110719304685069531816443716303954700042775324589635831311525143224259988399196423663084085544335467762848394549104052149215937564039656256013116234012419413659789768473001211246063337676325279991697428623720396681500096347293659581379010183445325072261088847593680058494442173932503597564955483143488386577283491062601281372038365908511625544378073656183112428665128867261604186055138702717729196909748037137377877307539389665449913771868901075945397552728831807666255738250579059160234707318434929673884453947567193284799446970605136614668305141942608296927072287791727805012611315465554121854388693143019933693260805358199630738072740284602070106947474107338233865737828616597879658023936911150897116371970827302127956342270837870110228560816414625513749685809301580258715082164457893804886288743314770215870617869938811437027207180635423998737005663437742222595368662297573456994514854133408761196492251085571560463082392518366167731160948323466924755726090610401742788496777654085438922573891184493352476473980473843623121119406215936056248412502094846136298937977543733158935720328566741774720204052796721848948526865122239231181204347876416377931727778170943994905455305093640985964710653348800466663886973556550599176407835831256564706842974219480626282661462728166508984232957309890763526607697019031719706423823004029050162284982029078391284798829295119305352763119725397878844162874555903640501371114634580190244667119107509064638906568732164284119697472220802504585543706972685632695321351170936750056392111067798325720971259977467314929519324897666597900145607462240056553826237798536007254852100941035029780575270088552161277212891897077149009226514715223536975164876392002608092123079885246806104195624043376213701887847589514608143911689015942222790623459831900044805326814851156259360109603353652766224932794512096082549477003890233782451394682172545981059242515692989265496611603194813710442680915227626656958784166326139810081048011523595375583670480256478133171767065817372404940229977544507269918001290887965621638287833599546288348941638089381026168063489439317694594146598715449902376388267448296981576107187397061127222284678955039700453247202525538937166208920558756816238565688820658833554088038414194303511966265078753492848001206085888531964390594691775671924814872302764800297318532912694881128862227979907159248842297302965010177899608357617209334910358377970972996035906663291286828661074769781521583730765962041482860471466898878104694820508454851097771251999977533858319647238827720342080768378034395337094648578900840497156940390277349466901427600944969871399901539379424229306204139401192593501838260126738689467118697072621537020427123918570637912314051418134390978151630379719739742614537004434000821526077614434991418989458366839537677127979040041029893713537614053930293972334292844048658991146186249836367350770110013414165026286112903983642501069215856206607648325702950022179030613971805127761623345654373765701161652146139871197065521677053498877634959210253272644946904364706933319291161096467079406039714074236067311763688140837324283487592646231172994677517866256388654141447270583676066089881658294193170151097019634257989558270871747326508276067443405894546817558542721886161258628920342228444947573770144709628112802228773502386660797915185457389185553451420501471479934664679927924171953026705417818005956430681176447404804770425862319200571971080640716100532249972176095313537402797574622484383080641888607766517055864184705441880645856030869687328083370913911586083143255992501930241453929736757317070304839326302196309644639339535595702477441331872156189154971039571516605515889534701605265012224217018381338733331189614065417165059968451772374244217866051734606091609522946340393710155128173786776658676223244698479407376314844659140542044946485794103403847043368766532240858854691834604829173698356960209060104215588363548578753313734482004297286971608664316676717032874455281779062859117763242434700353500832699092202560552740711539181123736142949343349601296906582376685372171208059376070168826994321529424890130783083991950593760809167302968514132534329088569120741896913855327668157364114111425067299029360858586878040404090151999714736894868323851341261253617277307943646397298312517872148803228907519585420143163585579701117538877207798241391221263196701265493542933869552831499330485542495332390284246966231974531866548734375409083699160679577213628964634505242498545441265209040494720446899388827222913910756601335298435915429589067040757903374716271216882518539913639924505168854547735260900896706227554330105681335628394075242295151473187422574386772374242585022442137910214444310504766131637781051664275294840015083811151324854485255339348170459623125776829871339101292999608830436867050861396101252490890168694100075418375468965795126631608118820249917270515220004067766317819577648266092059421442888505948389318127247703331218635026530423855719781967847131294866371964910590406491272091929776047135144440315130471961690027647059826690595842948041792738035569121099507425586255402226863621808947538704165638473842889690445552713829162622676814630742094051269465480188550144299708706441255639552265421968406009108533623127535957018007730360880734755733895602354141955588468025054405368082043836350770636071183205345398393756408213920117902942573005298750218192795719220077597169136308090367274173909573537361794114517505282820262557322801343581130227975748861464236849807267112145524435636741204200298583328770802222105755709967098457795573991981203327373746085526950973607370921103128600208667439322925926264045818375283863069472018396099546256341629977760180070889154678024420421633412746768663083454826048131673457916502373533522633377581538641622549808477947033303617273530155899617179441099388691453666123973808243081745004619873607866502941920101187580252099361031897250630151475821159278525148033228694729232120739672417571920224194915002807638181548113321801923309130777730713592273844475400093805032314537262659001202350248985104039456876312247778680265136220436677219070468568251638703163060359798403207776952467563135804029557513261817023225984286407281863530000922533127386941156313410643414938382760511134687982991864471929325804069387939945120468869187898507536347247590076974882301720223264855003529074070847997893280417621141353001362660913608647471432503681352848589046425804337216756277318434886859248703832513173866654598775355205362883696005912014059564820619843791561074194184741218138396392218914669467466083241670185537871842954309483314416237028176755585749044984975354470224789060006114975844620843704412389448011133689997156017274252715229231943560930075380523690644300926615865869284637495392040013958395301732212972224885543133163538326040307721634839628062176056971937799098022440424412388162137785967308242006873847566515483436515148553977557138566268093548452072517836564284912595855895750113566045441146880017561646176758006990860721377513658138284266501238895510497247756116000910975917201400503634631366386020091602509959899301867261776170858070144524294276029349547314713441230219833427433167164368519065568429278452628291393526222851060078097911829915920881108631722142774917388144792151129212054158977200568461628646124746876506381242637681625186026170151976730072159733521009361703242224106551230317957047489624959667067189603963823211695019040014938365445390006972076182452461842760360699585211752282718083254948006288654165372283707925001807457828972737324652390255433414182745437454950290297406441249933843477817377862458561650197206602041665962189218114066463168013184835749446235794761655815043047141401291346573551165867217758582545841025602491890603790460275656292255919061070282920305294192561753019775156386094977963974552610073993056204090090788538023267051651012499366300774412872947132553392851588777625752429978863595292167890200178876128292923210320594291074895359446872012671966131128064894124619212465370214244580564970006906003319503726953438458783093337567397890398938535317355218454451097931727732547973717315492089027629322936502414021348273148815363359632388063275034425984431662405469051705367818520450863114645356296152912870434730540880054832899678248547612206029653723387837675046263518935367483456217095137693468180532502654427465689655842243277400360111721624941130571533960226378155715291808074640157157954771724442133646389392348297194735708260279943791021621621110112182913853728549308220259032772980162868325259793757171027966978626037256841852907620500455703126576515950939546015562921613463358775331087150065409756302607762173836051527403316744361179866266632581633522239599910370267864362876595565708626102498898627937493248851577852389695763934253215840918958123219449738426621721137533207252085214810069954187753510787120704242508224691484648631379519969561781857897063674386147217217545921801351166308198423878992689156735496737215547739495083901159456843502959490576451064290900558786347855861120899705381131773920933780164574565845404351294200517455537763756836092061011288849551174074189750826288747244844925290948325733223154918552142176291294440138687716593661777936920461850996575691812326978464962848420737208668657463495544818887165646516260147670979677747923762600974135686806544027911595878433921117077573673236845271160345144351252725087160700353715435832413506079751300117239576689446970705615514266063748919609347357387838738340013222878758082858972150850878829442223322057304549521835063417946604387814175814295070430950338883692656655239532360851820800320781410472561131381456888572256078190115775960556661113695958787378414128603692314085368116181913035117935385735408843179251777043096009893303562622565501183161969996753850967055902753683633788433825596427794145598950728659259658991213158624311175860696631997433791995095987736715826525645752478739067850349314005758936968141309485896350844343907539752459948408278644137471791325080935254083497686623528626909532860102528590580013585867311356999358010654998602582167619080316741404559648909649491115307395487739908961403814436887342098178821888021885038194409520468060433361502563185844810352332357068389605260471227212560105225425283184340329169847668004697050304506662256262576309272745530390156730435426744301780325210710600178455268833351266387006262738066813121438206190176829165266440821709557578092743833776222071044018501036816825797872174542886875833031840153345921567190267476978009999611524469664328188945545452397204481028319754078884374987036336503932460786306752683108638048727204900118555518929283205746685772824958724982050496574947279174676352666907346844575580830802140453250004103914146334030573679949189602066316255647333943204120740120433625083890917235618475591266403956488850919166604293586300821238685807828529543312694986745624031937963971558237141970217263734101010628396242533804912847315937190302237941439030754005922474575731745179429836350883940370338173533218154821004540497866240069267547134741432657651627251801201255735301767372544265721854433904938255178094625965294965884961108439519822173662546777208984544423549518126307683283880278749034704192284256175004381689775750101836253025301576294257446349354402811232484224814195526868310929956838651772349774356169126878042814396455487519693238997694166219859749647461924626586832649161348614229887518149563666783359503648428350509161429973589113280431771270352701041907549185860722913676144483532226878682616249238639067089291038903927095035338193443688458000035875173993199699952318126827291047039838266344142450887268985885278151036210307259452300082021247559050475662268703360146263921933279070889858275057299761748780105655276893708253322968463352757707669666620662917695372891588071003642959034255036904092595647270880307503641896029969686617237883032577021891921045619536355552866950656331576990200164349363981818851442370345521723665312332839750679232540734981033658662629859745684080592440782695433608663802606881200768800144540669581553370453526646164572844886955862022908200442420331058019427050212345982989146102278173066087475485077707894698232474014725734843200549000476305297756537802150339770243241432009495291515571989590402817203054620754982954666081484314399887048404089836099913977214583582755673289848624180424393540189633989113173753902053233495839052976086675481043691646408316913579608013018407154201772086597776051861477561132195097222685870702620496711089260305311827497839645548022903750933214302211277567823955582262326611883533748812512178124313452681205747059039600957794166850597073713688235698288311087812955190466956023930099539155918278959030359443893047571397309694667865267303662421844392371929715788165937890720232806678627567376058211593122335943950563078231149170099404005581507260832206450065212622535608361653535132530990100950129673577841716306300031469398145561509028594178724175658635682349270966814739853156691575560927229194427808341625938788775238618194151418422233288797109977931860743825370493338997507248692619650352262136925397567472219939600471740503388472444865981856521020299817011249703699409172068424190596607925828371382174918482506750388188314543527287636920064243347448953158850943265111803428964158065527106648248190012008170117765169412742216164898006868339639200822381624298724217352924339147501932064909669133887809946599891879713778123467091101263482166669727313029180640936903417162106269364093923819091445910871824438898716635068283133640935448972193608613414213967743187689624794003443281966704843477925155227946781704945235487336555651539166016424971512489674175954724243055205201603738990883422581075542090411314075191738572239941466576805863506189549938675103400861888697087345352883627244407811102897107128909388884339670077026762881171117686641274138078340447081523027050566557854843616584247166102347142168474979294279175473666852318022798963083130816461235893204794536379279626386112059024613849350199662050306543243724826979243873431756601556564644831156144627154837246417069503335692586108331827663697657281790460200364289940298241778300202761446965298529576308486369226579362717184241976478410065065591049449174903536788336312274293381759123154635071081700617539314770491609835604905706134176531686546140325898404333480576978221508222581988271906177268164982551716196882916229867154483757797345549858646736903033821107879041029466066239194399336096982841327141706319449176491451740200391106857625291638967387720973492711295530558633682055469152754200483550908415279741317286836780267495022288668799363753874609250558228762067292056358190868722661459339319877357601932792053973055350107358171732672265149002500488070092765739532941938862209338635744571287977392608699789037859905315995106029820971386670788751179654007712421551499892343511078145442440377362611759302181714926890528028189664428416320117955699880443460422571642997584219651439524706159688945295438737399427983318087927846397112079689329024766563236205914345763942761360703899535043937145453879678099511559574819994440496951942305911931824526888833603758647909788875399192344982663351533736614755634141873989256566195060922556009081646534496073664395875482081325152968787820311181770727375788143382076428668536498506518484688642443494446203640356853097444195169732736592833190823776340777838790403129181007305246542858100267926432974714421417215547935228455470851145058896873657411452578053418243758646375565882203968990308624753735165094365152355345602903891129985339436761001070399796359811385121548029695959034677517789888976491830608203814931529071924028882802081381645512386695367772900340373256832577692508399187179310615662796776625466351048031345841785378602807440951318924360648893745868786375565070379860252612757007568752795697003782671560690241644491775649440862318684365870335216864066522908761389118692462797230340172035766163153963084910702464609054156642419910561520670207038381804275923742484243432152878532548500982401311847405902976479453748239861583080966122950432389154223890732241849542945454377078758434106251091882105393380941635453000832958664859871063018107273161497538508318676567277001959066904481397038225893694275851071771690595582879273956533629259485996633959346925565195830838522719091507932283769871796969376292909783924479198376704595849437860136191738992624570246775094198707258060968499743053938254486807536171755143913682291914717602845378700185414465830891199049727724944319165141569449964510863886189608192337368431804461656920464470716572735078404428588911438140123785507127105940780312321040262135612487897564340902783144567874327684344922848231073207981168074733392289320413110065475738873588430243892272832189347456119271612718370123036661577271768405885621220467767750956607539743399725497300244209625563089598955690801863572414860035910844785754873061373423075763883505090530408393996287225908362153050339512452699414035587640241659348703099132984235063842560359310690678491687741309421583666175669261365374794531453142192339295887686300936129925688506858594128325550909414849085794565336651293457785296891842642680279432385099209893957392325081579156327930031066975868721067534844732749821676066599725729431193511079286108806311574129109042086032869885381225622683732679982691967616839124719809340028668742671926418287011255230293910157717207191630931425470780200302825625796629222803220906842170565759509015183520774637662087202104111660652477185252811267098891064963178181618213449590607073813214534683617178678913993525034558061004785353306211055415654676802323203746964347363635473500080455706387534138391486656900100085351017944487245483480676482157333669407249709630020609093648459082437717617234267125876985272314895697284225432070795308285118522566230364657853550419880663666692181699858012394105439878135409736697103366926818932657825066699904692808059384874157037987044813415468177504852853112872427599003668676396353955954529554109482381190555231888221405516455771428082980573915897823102447567065209781230047952301960869401879754121485121283636726164698349864943813979019492063907247848674953451959487785048044993140247995663905238222183896043502227359975668366003759599619254336250969604373616169015852114046049215652492013275415288334890257287117734639867304527685290808016608348882079768628926099173968017812836551515732051667098245999909323509651068059854636112299569161919073995071566065892352757749357791531091378156435498771775338417709657207491689808411750345009698571034470184916134402378019943111775709749816102363946562592480985007608648705912023197176919028116466748048323600953979305153022262234357342530437550794107788023936060509670278915007124584585086759273512417532571979589741008256996145256019408339181636071095784222103757183513144765271982858498448246743438814527551134445139705650606475125530676039466849950409565066029405664786769282077771775712027266126781367135306324718953791666480310584040613038130423467815952999041356748393270883238265360007939342284255006246195282878688926048171791189898554666667879008412233583495418743950505263959711993346257765613524920989907075648938587070345887806222873712334981270879094872407516753547931704119601277224873494606339577801242383253366448803463262173716304058065846718256791428582558581103479354116537642610566777986289173866839799269528789453898577955427919659836303071911769540163043086082485962346093322387243133297459768932895179971608963035912294217537850091749999349405658478288196116183479975036089444188688846611773933532099775357365311484745070277110386724402368088511295782657639050885246056707788355781798946546140984809700527256669723664588877775767007996292150336457947400601621260895535630589064328300719517377172031126161699169029965981702703379528172746307672978300303799498155927850235424130165723100978880744164675534065681816311896468542990578875931198127207341350983373724503827376511697906848553228678082579104053118556092230278550134416068259673479916501986128734820354129618679418772513543565871603465363201100701145844455693527104907917708956730425738548390058981484545531092636533909315358391849695431641808313203804371832021744575385322074786205510168310600683386553585419196839371524302572940673153661759447230002342746874144566380960401062745792701203295560672528324239815346937437851517179951343247080399209179406329678372927955391532630749456948800899369483004193298535905379545660563365790081161974487023266989399086424153650537005927519858533000081306979776867681083263350580872373572556070721980512310833474404840560762120496870405789749537475547048708250094801784268387264711180038317435504876186211322207657929738548109225700184651336214784565599064210977252687383636806415667363440490836445168409144176406942393344571895715934634553038147240263262804082442536789005937972202729422570561720238772145381978553435367245946290477303155830886352173273282573710400171409030849960894883903135237281300270324141789720396490982719506202152340941274520062171111609326780976344877262067974191751752041624139126490175399001088286056696512849212802720394701102774380718538939298651462373505774025577656664930575999900213763051971343487197537600741019441910541427089462631559178900382327520512941647203407160906397687828323783366148112483091432646118457740053594238438919541929207319624194401303809137125154436667497223626827360912655462653665352373847866742880892395862934217477122522043127853354589356710439345933661034660630329990603791636112189950516137559439940936893598168566570787983254284742764330564630560902610005350040924682086392689935323851565077412109220669245182082921275467308608693653747662956780020917638054559009973798639751276879180717385800387257774790472534738454923049079270666382305821793304548954883752949185621544507112748813436741802280316271593016824030992932681851820658852359872123354582674046738570876974329015572027890236731416099594886587494212717859747308962301047880601012276137834602670173637839665638088426247764818845169499905325054027755538835876889329143410724452168922927886842530227525405620623591590830659653044649616254217599927184556629043658248974163238741296227546889182840063953530622957871012752815073050868719527898152483967263295380576734264196407078293746063058467585096982145370683214063381638532789934790758427721587288341144805018945640712799578429587885301437935148949985076323073341767276484369810638039313785320405917848080482959965119422456317414478375833878544367534243445892631902085801051705660087237353823285379854853189013110780401394435921518568591845972033119025727446605853336549885829681484295678444615483055955053304952775906955490999089528752968642397597945834498317301668731461810939819235321988406837751119978859022354685145297976612708180635619334125469890858194937367527912450513626056062252500915257916571486788657268916601455845299118571574862449688714844228783307191808325522761851941993691585181821583005806546008393518936901442162077635144341976383140953247251654607633904764263308375135509970308133692098252768647641809190042866867463264925896020899125150014489530202825225445084012671449302524044097222771496455348566189766762187632740746293666242542609300449178620230363409519914028075034657010811223858807263420335490645655044094117879793176077142185693521863057213702744571354809800344908562566978750725803664426852837725071330863418786314755911744812272110770147055210304031945190659685406221480380577940921310890063693978130593480388324355554421105927417900740022108644697183065891338634771175632949939938621912609548383626714249128387397596590645051895759198871879171692448050930845461044478720120477614752382085134437256074524916037484053040411603271505049583476801207212378093472682055878081233051350674776631956829586787514672698955349751891358188273440683928482755961722627479787919286723958215784488697163213270233579456174251280453137443746992167496485318824924796342150822531383988886565852062161781476512958735784328952906052618699693193597171787347015137044691746155901674546943667751943257945912197924828588050065975935235417860800352965696158034076251293764796640541296139548711074646168914087097471055341587952210431195351179500629851149278324414558375007776962944695730480461592581396714295166885899876564976986894063582695331867300881518741806399512588201270886078264476741815394267321293184601831619587590442834089568196590405152659537685092016528738288826273807685063853720627707002705262961074294676649984182133953572219216924874531057890020527088653910242181197066222217742363929138064521068652263164966033802877262405166987871086956044570045581846258232166838587400729667982704886681341400592501049364770934127936787435337680209851099540347614820221565642399166729294207948179187054809086873915040969775990414695084885067325961309599721413955307177931277126515223596996812688391765694024714082209418382190440531356847335981256458541706361805654489121194871566234666321873757555694335949515493902248478166129924729458052025242344405374531691968570181257562977094497378801070862821653491787475609668737440942361611696406706301025291139298310129942380570513108703943513571696423731717908745694742013259458133823201696524454438526359657295310074192750046559424103506196652845913658555723810363693002129720950330620555263721005243686862441134873489403759691131758950619490554262618739468618156425555458223811747447910884365897582601033346897367862836493033153404547951401060626254082037138147207394780144692368792558040161302484186818978168411437716996912281127367474488025192898243174475404983531594284859414231602687339518684226723356786122493659425329323903975194298723032422708259555998696842842320395651696248404967266851808653770748527041932590791532438859557734848266818479507478271398303418612799839372327846756981402847686369769826711485956657550729212883857494455530914438435582011205123895488369942575550809811432188525239891210213193588705862703592461316650754780614399411256634167242030275603607827257526118012129620036304415219085816555731424467143436511623926686900755912501070765517166283618549072269242089123066674150776292591517069528134736191236145475187471962341967455493159853347193208099272403761896855575523788783013489111834498189830938651435519500043797848323570111588497222913510201211017624249505375338084285975580632790769558949574323117071570118807442816005640841324991955115104623245199182822125457858037208139135290126105896133012296332696235761022857764596335763878586478447063266121807496674094174298670789342845806768033241756850936590194840306190640427034320743030916171300944478538462908519580592060457370430931909210436343370533064142605502830815000052518556396084870060910926303966395611186728872313982653021448037827649639955203902855256854332746091478805791745076729420834549082170004579029931303135726935655828836186761140602569563254455483843631790614428242408372746875749339981192301988935384216235307472273847530441063606173486489870773204330476036904769485432193280589826462418944286789005891309985596617191925114091603936328356811610320610320474570463974043151142135657923760539626094244307534829915464936236493164868682600222155890143328470267458288020928227310348557113023834476518336479163292551760166692782077294723307022329173131745313751131289887321353436080909756655412382506502099550409891078431465892611185271452161228573910406149661387001784389794172191358575510786644795981447082559900200289737529661805321328247612919841261157990956644150557745163462287855766794448550526393393537648354329717936617144512280945341027298541609723469489692859098469215171109241637965931486550264487102085603522017343759827777701188867477454829143952503837219706203475971473301694025247639432192315957220813857736103747208248753361472296157214461476573821745896946155522620901347782691660350369683993232786931974543422381683722332464013886484627781536587133908317954598230607575914097970010173551499596086847329474341511948975354663579425095323372255678120768549009369588747978839348237055030225589333195382569347687400499234307213002357968414944335021274692797000404333781521544721269709587504713685823505115317554363709206153712986872093213968672675134421216195077732063345110970869038464042547516695979779587700347055640785220770001634410134895871501099819709050963585481979365969623453112794039560604764717403179661947932263595122794551835696037692525664424153876697365865307187415747867901536380655643169608967690959992574443583959083898421990165424470147613460936119597208390608411984774311003551075241441543018834906058320038411150511108568296151957424656075334329666746200536558493393211740338655791532693930715046166934283571840138180458519447005084051207703926919564796550289695192431761900339489569230336545429509069482242931569030544102253638694403324535364206714173245838675830911065866327316840543667205496413391225501848835893175266728880518219771626304927522864360437323527377587782203021417991294057619693800103764396698999219211167265715146518684687322665605332130287299475605831396250157705702979928576424461980174626401085590687025878706903330540886507710203907700549741755271143465760948974589805105909429850896169574150490613341743240320417773831345530385877556363852932021760906732159271299430976747171974292015887697707796047936489653489344425548091570504758383914426488851329616053446629704486748077690478841653655106508968456590416461268715523386660460162945232641160152012474961628463701664627513486725938831358457562934575188628461614794328392433606253695146518120882716881606280109017956756210711571454049065229207936176697078135880870748057190479601312724131404668970628262500137317363293111556418141790136289486277312011217816724043145259950910626326035792183022251300902599140841350607015724418837015051297765269140411821456229408903463027271424916889933446999502896955398453112563661236904188581281811302105497898840089132974527044686210895876115446073415441668413734935752433021171331020934342155533016230460668550398337762658408384412128448930003605728289995567568888608904832083196437363490474467544167108203754128269705295209515483203689014453933806162479997327463443412576603215039242450207101155961624851721974867336069599350055753613737248819451765197968778841534258670684843699357580491142725467883038127136109527463892811194409286826761990894960294639996634693299938751718459548266123658329266296594873773082495298428231267321875962561934715478225873688950402168145670979221918832444400785362915399065699363938590503111652367843528858540402325041333680713612059016368201872502530623131105806420650394121023787506705606696306921611079347427241721334686172566369852253269439406356939139698276402630270777214382018584766099673760889038997830089072211341040974069111889294027576169619729644594086637519552079560718980418913629261594261984168980872903874383023012456741325112749138846968588390778668700159877645629815593859609319052766602461616670528532817316526477551668452206227067166361940908481419616639359328766620157836557612878353165822872692136848652082152357352442627987346958957663633682330778021741768775968647900889442298592507255165886002407091736884184511794288515985282898581773712103174243523697594801881042293001379182738970283200739474985071113839069648102672966995191460786028134393674095289397812505197115547021734166306068001633983956290953091809194699436647811762066676628328552360017777152767023484598948961633157076226153270071656603434163119490569061069398881120748997362679657638992709506082969757362758504077893737087773405161495787507674384038931209921704885948583566842154715991653289060152423694354466795631518327603370834716067224039757077694509540987737584500638664705797078607549095854686645342970583874767459431714076559317088077752701385363988770642382431361707852984313262745276846877305818389565976067734613272443103276439282120027863596740656621523868081003127151401276702926929177884232127856829884750065569519978135816868485040100587237985124202810119340033980955907031657770441210284423439173357206974327577314555211629887989291209984362075390005815001825852768976519058662723324862506381738857380091618613931090906589346426669378352510282840360928528674191464637929058379163090802993850714254769914363655516940911487441343428076067759540452697872047066013914039708761869053935458271737033463236240966041644417519490805682247478477123149563279138645572498886069342151570798515302062378164081988203918348587144483984044994867169635577328379746734657870708983525131213036027386379034162623877239241294365592238274882908974081703687758697187457848517959970621689819004720659504484834100948231875184406380955173797927954403154648561103885603426633874557048242607892571390430297421716473664247376878232810038425484538960794920361703228473530545256207628703862323477845996656635588053000003249864390861154595677365990647394238074932124725924651122270841543310256987341796697280550863208571642781980167088313712969450149667566311343142910895866419485826954372990453270943435566776186163999714962914670316671739937814434462758550175524959368361828017008468865757215257767476943509044139843926322564674443019959346481186177784848425122124914262155827435251484860841681109117323017879689288906643968145663033470737226954685615780943270184298845245456988826495174934829355234602410710175503618786494688906168740572631099141388204770853451768937422840822963915534298262770865375907774057591098488548901157281785313316081232554903986506601760779422548080215292785385258675980042630725605819569953442514322983262547593883904281094411467865686645243674952554324906122366879576784403037886329453412739694315335060686828273551407106884712675628719827040660937940025997993694787325993279028330153265966438245064982558529860525216916846382341976527616627079003857426440362816013662191026957440903668368974986540971972861909665948407092926047206716522159659199372407131383602449351381427062993687222232763359236378189341388847805624296119317319223520820099726721446260838006382612160752818628979300382603382819866167068705579329777700978745325509854534796447282434862069200676579038933699209934423038872829907477501526661019298216927720302357817167803215226134146883674484980039025808004693957803755757971088615966999396131914494164214865990892180238461768341644364837418784763234652181582577842538070288357297648539371942380513892642262292765676769347369347715959582103294285235151302998575695865432034998096049340901202804251448608552265189229511555210831982054327870543448344859497179497354450410366167519250823836576184200448535127692729452978995307017147898016093162881179081843622127649886820530668263678361672296221505210787489693554927654395961307311500675578062048259175736670744840127980058383939317375757284161705350813598223914388900162920140954128299548393420635882951190006808795807671630331843066353180492319794180684912866895029742378367275681207537577623513928391797204995759514235874290416147747437531114788521970103188284470316811265806408304101584636231861823851370279738893951328760167847603516627597225094607940584158628856919081195517574813881533576427417567445987587096435276479951975022491138815343592649640562999695859840288193404079227930015827903056932011013776497358041006523800468055888707335474972720865994937853892755732669481604949549536502141678657143821757635385848764883218912743895041249317202778847385069392631029495818000209577261867697732964825465388321982448414256697150865563034615025955132247809937881223111344830815262266354250852038841588809442793219528982760321067775172685940980173529239388242113567349589510476503887094368680875967055596482477972404335279379846097936237832238821029753504804491770021706591871121719171304655056354362896321409519611009684325335475870865060269817034655116246161927479508449483401280812231490092062070560683856659526838056623749566676247996967498514606828056589886305810544542436212958911874257301718706630896490356822610122034089645147592897630170105884041051506098032496748689045185897604273205533532850591517779946527813508299149848150874651520557474660196690444344440872532638319358305668874453796872354414134412447487572329228452541262548401816737091357006917992222034214530618725729289579722264462887901251768526953001262194935189721255582538481322137470365513511282981498165010803728882819551331533283702626349717445850056397815886117427061088494407031214744738032522704351821822282141568058680652960830143585745053991177839510588580906305357473131093908567238346216885887833394509173031271972144759753720931103117509459654925746247102915324454731274092444624242293771347080139132337145599331560552069700461485529462816937503234998832643319646852564304675271699145446004816207486051894295374750922665104946310191561246457189567450951466692705678357563753119455197571965713771899674083399871944554541689903387170638194644810458478261855913714331333062964419940752766466153908897868138284612834782567415982232607682785581997811003603028873944838490690655471913281706615627636339902294178728960086348150447339776343065759504806681200862789976126586475917322568625811694719317512614601997962721998741719949443328418569237331296274601688434941044245916872331793779330794613474257237050257025528123413159411363766014981180545961037518408244970281047843061712048291256976090813249259994904165350375992298879675460068630344709952908482840264687466043123646768906368297117091043999206730734531560651260388664528727493911840924330820785714513040514139190315050131340977625216213014686134328799102274133460222088380137199568628402454668602079262647887826634011376240849302762658304489184430472700889075066536388017311672105336964199839357668042112477382768960201465813344454413741822646654883772634557067164269863845934862055907998208619592585217689191612643908713865336612085183064223595406028887535286264225435583700493079020395666129608465206599669330063317461832748068501150985037341049822134736336134016244568320687419738880882785489406211538250015498764350524781184840741603735979039204418436965826238258726255849472149934325467328623825065570422995190358383407477066246349404837946797612006805687109812973691191165201357163590801699997539239264864477518045782028104673957825161451711058169014338688514948316730891446393853283851369152576899085323271423415673213032294014052149276051698460039147650578432292675197824502059643484849098979535321783953062683021009885448896719984467749334105299408854330505254015323414530256330346642466001766288440666138380184393696041282418653241561564116866258864809794501519030560713685176101155308793342487969193450042976664186146725562891591624335464162448397110561815166732009411102949179345186692249639609929754561324975227217897784307151001445661289251206515053773811392123266957095739461368739991353857329162999656610582015086205054310485788673318561489555463355556634872975480282871581131481793666632524025801502522262751571352864953373924187422793397770344670749703430352036873936830261669751534265825205262742315915470747475673238419715911794660370667043127328362818127988638530344842938603194822703138898770350990840217045364435928774434407183594283991296507146859814600478900783242876035765146074069999315752491064978905590013820791217222883198793143731681622157326090047504646329433410158032663636478385388277690490356963414792475919207635154712599003142272891018861158380855668235608486000442732263563988200101365555891275576012343152453441934182252759274851204430615577292007438152824392918364142573793255305206874459536628414039877229166363711884909713603454294792004981613004714018939562251110489842154938343576575798207949067752018219489318987277344008193271025410697675014315225366013154157947180014153335187409270751258884827910208711329809221566469679761423991771464315320712119702214721821937848131679561982232612387037804389620461396410823227445227611270555734962712267753366073357613241598552877095982745893718953102670587126313032886165309566093984285291536944062280009015738911001476304066269154123942486300420137999808635453740724344371222559946406097946808897856209251588918327183232610233139122222995063070972258566285520095235336285466617071070456652011753355287414588301446353867866140318565604353139020818901599783660281884949710885287366080313760967241819586198721453897783742293784583071329562124574688338670794135773371577414478954801591156373670020777405527642372277181899385379257228318700479242652893784680661144468168974554360760883042879566067706554511770790618152860794753656348671276530998801841959499693232246386822082376038513232005963984645260732986223520416854809551334209950591423003750562848831946741273273598465689605831557298285664359765373751793494206409776872871500125507915642044131861051552560968647092365710657809037132902615998668262584575851439618402649778075395553013807618424790734947851513888909816930051970515930053874091935949885081517539394474917855403818302776287226890412167862268042908804933415234588744274952000306018935940112325799292134499105336309097573633107947660784202589802240277337471572387028228325978476115752002369517762969340474405761721577105036592982650802515921522756750854763192846620425393893146538803934351936941074329166691248438750855223027647310459145059070468436602354219369566993658836136512209939576067698650004522065411227860183427558682772338461753331686908564749511177837936013043717254724609063660159145881312580304778076633629956581070647001914118691332332852673707308311894455054356255583842307726595620835414072393252220144975484346994421726907664698491141723868284318010579272655886577174045628428243914769063310977744173236954138851518074374809860503959678651076453602265432069810304848782270889314404465136163822241948168575901299402878296141323800163560589074139507923993337752375120239533104799415583045258586102765502638169123993979360810073762528649187403629758632013021942758268211757618214856025448440012113038241374393623273197925521483791589295633091888405191490490172245577658776886382777138888186428765487235846831139043961659631691490521356040743834728292732301062018548162257579965611242860132858093378916520767759336741712809861631594591047926802933445572546534904488372633118342372766079744418939609500819418131144520581914025011838744958792470774431859203643491637263800796945451414417465699456521333794703490044921041168957440429811483497185906296167013076310872418330241819403105172201417753055015553776861853652547066125945652405732637554871659961606990671082947160399344419144947656246882164165436718650903232213029288988051876513026165055544489319429766621357507310822348285019016935627343414422547980694662246884485852892528212021266346445920068246999567207280711865193206605365918888839916969174362650438920799119188233358657905599806432609222687297087315308184040024778075626773268299377902814898923933988136618238133549013216135410800612076960632268490572539595537230101790274363409030853267608853919622267884044848282187992589546749568941768106518006369333834589126522489419268652192721615808064441385882115161318136036320021545696334293978347655343529907513216681833340861857174688341792058263719771145213929139985168108504675374654434169232070726819292071419926714850115620062783376993527949649645178592032443911378610805146038379291787002341679435766413934385136664076929797995560858045791591963438146940283274389651016004073741345677033359225824937164185756796749420201944282490809037199721183104025658025181572746053081924208152683272096113355033920199158530340980107904157582337538649339425071186968789009922724320437817468064875640893107977801208104455750807242729185657866932738187266259238044402150259419486358120105063297702888360578725776456812339789892611613960522651767460503067118529674089101321913831733663768549470602879768907627989624320174843999403690814655884125937680918609703323958615972585335836374005357284047490522528181545798752105246652357737988427475082044064467171333381759397978169989761781850555970881395221453886103265952500094430846086937777322369428517856708050735175703333446213663965476751850917100861755008104976085373330956425726978635999561707690242203607279107492525180373242822816195189513404559403362433120459646163114134530502277682242427231352507059675907731767160225863471426061006783634703328401823232739092818406751830058548848819542047135944049891059115337747057623655320265469755742718939936227890091130354015244795065655686046215755520492418297197740898029040546744796932400372819574309022953901596744361675727851372380267673874744585800711679990517558381013012628011789742838687676018227545475866181479871045505225226064612513120096894555843936623602398700691680906755296536969638292400083314919482446985194698984695237006704582734667126997231757019426572574260336345859604555620366189122894368227933786970571812965007599360745327796294832877065539485228641441678244926135813019733748862712306456136497253086364402318223458250250169310361347934444721799462780313593816950844243560279339987021237276549525192553444384396019142122265280902975646801214684569222754365896474064518098489495207525690097036779052783287437588825026432922416677147474767352118346290763887039080887182976403585713205690556788303532113864519044825275026580538669479683442031392692513901769600019840333345999435759041435610304473744974148274454931429043290847210835073210373622946020031118550452923817857001064145133326803153868216336165952377734003861227905265589235884721203967293600105182347544392565561403253040654977174465050838130499093158852897991686099401781472566656518314787371940435203067916259359436440380596712833014396434292902421865589460186328242862473662707733798069432542696677460277979653769245202994896066552053837066558826956271289537736702248702949335296074253870978759101999624798619848068702610560172365755257893405818497065002910113000644694017317356054745532188360231156082778010175558032759852907417175277958902666790075004546016669283414431331755981058326687384082053646191062344876852201839299702123643982815715466731014400442365618887286192095837021351156968423383446966166628356407825687553897040023447891403640240079891884116965365600625482316041972328848976383448890919752920019044318209795540438548610462184848296982248224050947458818642646963532472581363219469072150408668732382625228594545596703926531370650857742107357839235632610357688452856702689922311678861633714793493850191988047736930253996959262207139884217985240926890329881554773611970287486666259549067977995300743020327525897181538570693362362116458702669953009513000169001147917807896013023759387625483109906271784452095577248041359792888360837357153375359767735545316958902269570315622002477546596431693090519788081976466911837900351590587421108110494597560220380553587554005385648925296400207761385585840802466851176305260402496948845515075704155699030309865289697782246760808494165466614117653183866238835340186646970224994150558199298114384716087500204591915095785961831494755269407254623379200079262981715555912918183646634913280324369040372963512943516311687072150473042465104477821943993188956153683502806235539151393352723485997836445830587098962400432464846288630772397114703090778763588027228996667799124373270102317897238896948255160916399502410603778578436357517083935681300545818329085557709076607657314023657528309823086728193813616601268517911766572991388925111273803963988809495027634075678295379197646831787819114484961001771533834059929849008446860247440736921218731346300841819554516833781600392821679932087851548964691132357614360766350572376923033942077377981010276794344661318217361788990399472173017225851133780540990700772872332377697771886037435848865948222304694971357891472581296166396452028362843609422879370618862096721269311012238657230469449954979704131705997764787876166797077232911683115513701846919055994285399856740627297527133788008141755172961734683270000989728447436599924023007690121761900626824334117101003307669040605178313926987278525809345629338561229075292699564563071011632116286481367284420031289368459138951441962417022119897833423848210435788594515866193972762440904672110381026990446340687820004796540957471239261264181423199380745038884021557585676693280870220879485470907423027072359997675191448995963155271735988556946403089068222219470866585500309312239469075098322618686254924534524174698956837899948056647506948571687195254122170763901528497415048349828743522769590470372566450931865010949343078245564053749034705836486579199908396019920813381897855448605024796672315725164516315283317393515879416038948205348067715076184230394371016489681311346558410056985059972389072455715005452404412094112514554478999134860957227546314778455653254358361125021300250783987996369502294840071156073421617724749354701079218867243569570862603925459401549735502023645931393485709811403739665540718913668681057608114454646227125682019552533165571617042229507409501430415536891968246856069585602760046909711435576068724824462485220564967731472943611685353004200523524653733489685432980325578422849521440992758321180528707533700783683296823198695964383572101879947430878776172533941381675993440704306080388403505743718535527286363537234157276015195211482794568772729480057452741031709686146215227535901456748672474009347380421531320264527768906418810808589203163899798270302845018935282939966997521401879001129088918136474512702203222891011847943625243631697224343599813051891678011482138387217590162640317337963214024104891099448878007499029332558743157785573754402172739395061057171662362712167153220063833511068464172975760814044471745011051438983878855414491577035394263121849174017713762002012364795191132546179316311894877754993180203401499467216226404550791224088702845960958021647265480899012041254873798452076311143773367156771607903767020560856362609590433827364509336526903781428984280690909409634642780674271928413694559114090647373923008204526499279586862881129305170612571760053978373980063048953221222260973837007163684130136667852417407474164603502982871741631284103353847709468587147407840902774178010290171655091217338377261582052189817170655591182986379914363129860886946209227874300183826016023438527411274534149897930383446552153364442499903977357006836828241937590827884343024075117036047905755847874464718887002789083200967696829565563743899746221088167651928449684838587134551018537651904059850522511062714225577867053313990669957937861526330197268068807409138373715457667336597734764466480357154437096221679492549213447268363579196633487564294993279449499973581690483031159045820927151124539753251486553661683028728499899798205012388610685366138520125116625453823681433133801322844351631278392138714417841209024443612961372333521228369331886160475255263093386275221693758512615601156007354952055945923250574208073115563765782489357687661302713372620303421058977543067987001249600861998770334229293967375643657177930878359146033313177476819170231178441413033564600219772331335431523444357316988774963664527100608143184063615457225782748947053268622651229673872678124515857603681309230903154219142375027391321134493040078017441776401829174086818314651225496014838349853425067018233355997953065888102892665140860115842316535010065131712450787713025378057285988651890647016141978483083246320802997123485123155542518037015304970296489987522764756757911111182998764067679443320247875895745822033111083630021818568227668809346046872415687568419916328588815043845478179403710760982022185393523669268453359741913692342647489792652899232163454561446332617758256933509449556777829172026444247439736529185778952058130128401429525882505454195286266012820455077582144726227057330166622372611763935986687956778628179160676997688068648862059050759636395028020503822360628913383303241983614552298686382903301456641840915514245530539190834871162395274379415996379902553190427008256552799137362018470993649438944775800177293368675245708792162490027022413994680178729082797042105766185192802464166804735187661496168466122977805064392671795783582155845953490506525321887599673229917539700440598855678308164762296241490665375062060557461090439856401856531659214936568593737775763127215406966015759413706088819356965864039140099838556515094834857840855509757761788131589209052644530524698402576642708756821153016549729306884721288523724564162212912708090769719248332827586473327066174455498684029217194721796919404512818255171361999353188461113858475797786602498904010917005519445385889061378345519570212978848622084545960407108502791065367122242695166905970719035149228570100396412522748390833707210071097323547010946215825057706229774522866181915086971479665295570564809137271472161438474373170676154882675029602146446364059233476929108259955247636626181417377670941337613121632786673573265402562257250048031999468373272028447594327056784980098210484879846761262884917709896731592084512673167769064042054240530669669552905607789261641414344551699910275830514418968268806662713961832245155995115152484487731109736663645892018747761214055643189954417928510292327674430286233370354343880205956407627417390546354650149350020564113795582250944347121644907524850498270839451269683368266284940594017600041591651609107419072265046602795492584166128618292635851333705683600234864203781407846367802990376427174235065941805715644174108635594541362543667748526259527573858325454604644367424166023560792387417160161581300974417832766474917724465718872425210818922211721597680426570659145387034245590621706641269104078539632931030868593604356661640432717439699649524335706538944440463073125046758429374425572570758776808650362785844948728299614116617815917105884217742668379317251594003806164039382823193296808632369234492667504163345745534718161952669144103880853271678340823676504014194967465645222526979431789286190631054158149683700785961682580706395144176980510174904567034550982296030118437786712411084939344220148043616099934872953314925257323167149783847001609014376050821786397817777847355411643297728190071770412155169361326600459377125578073587480508492216186470802669866721740147491597594628858493745120331252501350278200539955031010404060213205254001613369442527078431012575980642108479420588581021737269168855775961285888053451736032650597106538941527893311111272081213343386024804700136420337950303766959383230228189140780364477390924603884035267960786343202029405467053855256086235831573679641685110357999825616900076267802990310092584313003726165251625122046211900315291720317692910069613129218629321360637472888821790938162446072105008729499909941618850881638607428646458450753716491250203405523302117007290775276475268315785816132098243736841518228357559540274941552344184134425976187156804420103588942555610218439094806675013847466069068270132283045326018990197894237489721206751403259137628607368360793179437683356482182516296297443868110503975143399597149597099559562880411107497187465730089924512549601532972911512799820149354057633912154309307178997654037219177521116579338451810869558579512464050517058842146806188616011972036678857364737808121323880389554007029281615452774506777231450412619341930411061952908184405099917324580808353865894100371879137786100049699887588255311146328515078344814954067816959593750836281059604915564272334635885747284709611692898269697594304425732126241208698060554263385769504850563467428058606812722172981994407109221979573776841446875450922269456157324667747513432395474306922122909094802129757854512669013739747394757148957054654963879525411078993334454026441642952689329317103744385694673112854219015211171364718139442065286120673150573405068329090116058902611083984351947427319652140864419397282736983969923770436840080133211152018972104521850680957957794493876220785686107095779297660883771072324018100117410503545557453781123281055309889122789350564923084506005773884185429413678503206068506033245894710136799930591667747319371853297788265197722276244912961017512879131351231890536257739141647765623954975904332863402330254042558192517740152119199234882001996765478898324439220336480667318052679966939422378712682557502281228764117099108269646791060367789074958632964634547463659554565030539124522577947602770048068221922017491041835597329623176312163434774884163217813907670485967891369843303540824438072936941239500838940308296987621461845197298260677950441590670595357024806519346728346088505489807977530176598489252856076712083752164169908835683483269522234470345295235392336672375560087558740695684374621228791447097904311838918313118635503856112051109614675793240068176927880075615768417482175595653360912181146908700787980590350979355580034021514644877087655486140002579877679984018221221795474392813488725550426334144328924155580924707373722386594032570409998303455989517162407454928406873548944196910124727645142121220530303110299239702001466843282435089271391347266734275265685049291366747698902559812537548113442891325827910809500281783289680889372758740328270837849506070843809344761003201215145375535304450944403735473899246754049410247104339465914148880450820109883525517338205237821914379963791610701906592943099159050364485757573771534848058348785448632530365608674863260252400456114208228418080975193637294321365518764769624510481524769619408859773044160174699319097166142097145253787146849995599962149535448953178628983210981200178980997080208610737042068705761846211170225685131758103957209663035752870313558163353731697986682642096707920987418745900169108231392169752830914713766197258345495387852611972127523631289390360221926444587876188759295924841204594328187747299172179394739996451311264084295779129483131830431973693619490072295994505361691749166619839808150315701283832126887524125331218387496242630844550372132572062187261313903648638671768775165154292346993579559104581212519429388619034636443637769744382489071712616968451230558814807639276313113640972313641093864338787077452449594509336596168821908924517426099116291316326560801636517330265251137305951532080530726693078061154142900871462949183288441223547007273530019357407276596610395715712204163087432978044170221754313411040034419311105225951810497092239040904628325145752045294371393426254052706262148136940894114341255988526141607518599863157623924804944790479565946675445032459433119169906585833988652650560708359728574967952887671395515014527929938890722702205298610819990483899979388249516998413930244062972677013385294449292425897732523580519500478951696022682160383824445625982722323945532894218357722479053150150733447348089072744996033810278135764971313586359956874948420349786711291761150629930498422096549250965229394897398042390569690030638977867054166965791976214671280138611974933155441658153755009248037710245955353941034366628775942107677291510409972965910783952838601801606605478265029556103251509820970632405698512623114632553936570254817689873426596157528452181731280746913721611668819721526841707820833129763697782927833376527871261431146511292660516756230509040694824207688770688590247986807065811502544731029603117055679382931392621501412546619938696699370230374078599524434070455033157541532853906797577717343353129038634619441118770935891061779888121952939845437642367513054422951150313076711170550811177502202781320878923345654612279407932539216159497671000568791769932748323826075225027262645866760395836470637185994896448228870180155264021919644727007650243607153381854433786881188029001967366556046383803283477095721137811074784029952882688446248909661846976554357875604231778797498001741467753972486189681689406535299463695296283100802677579773645143758329886529083333871112228191689357967570323975158769641114785437791555950209186120700716443870752041822071161198400593076976115572397227120912729060385745515598130942325364258764750816613993829670382925166403590378599105212848515623698107626131165923225890745465527215426779937563108527106179637036225967147994348820763294585159517687599061211125584132239169944723252057366025881709694089822416221210314757980877433812347230793944377852068066388179476137752682200540231395118601849702099611911897965587781584622619013150029595906748589531056417553666791522388428111338308940571792564351307738486906740383423203557817890514527175230419263043759547206872280655545458965865968493132520909384764519101061224259951238921224954456044684257184217835824771930712049285321509674341149800240255301083539916970433666297370227270514047015723979319158001722614792025190610242527117967822626068301020934375723979823114945932989387553642992636648442460218660384498227791883204159272038836403553785622387676334182542255091385195249706889502701523631306059653307052866517835559495939772167942357367746682524594346333506087336904599805953521666908985718382802191185023212852753196277385606208057786620322244070819365830420372500679304813509089929587942953644955086830370697616344328127176440998351015596744839051581783163100165022077766984961654138889853640663936918838213096191026579497118827495739639886703402214508443742812778256020965949708903806083859724443549289381149972800580030241869798530315717096739515717515140886033986718918948288553811337276628992403467134343019486415489923334016119653831223002722104433387020592615030000973082509136987233943967718981310551681027260063833388427200818005120385478326672870133405354694731506243700853438266049405237337538671888134940635131341678158893126296357343820875501226530830746588257503722666492688456337419500076778454365143816810566643667240484774392737834595116569145388343350592320948757799058389927525836107623315990145380054580414374852737744705738550004005642654786768730888506443153394119329166087277794360892120536988885642390454848047662560210402211864111098330318234336867006936154279144016976316013078251559336504897335377637684897521689723546836549410977773172243244196597908543387005426886816723524088605413947679011941672064785350289776275854701901423877282820063144498338852725299760484023969130585080772999632315883113516798724047140973464531905718475181229932837352737031011813987620967065525925042041300430571116333382432304144022861026824606466694109440367850330454769071996430782469231563374005000644933744009869918981875907326401893736264477413580061221202760877309756908648363658900563595648397677441882837630178798435215395262029635554889576618905129100772871701726747850713980578569184799256026752217817087092012642525753975398213024208434577637366990404431266207894728169335176423430305774656090962787313422269598155595476038686359884322775790076872912494057901691407959311176029549236889420474766991280713702774605676862866863194334482529332509763379773209000661670298574350124266964574649876123138550784204853860513759336197381687179703295506673361528715690951068708139796268937296039911613388669974067956357914224816893122925120067657602475728018982353306335106716054381322845213975361948804212387339193084390519401833062083496531293222498172682344552076941901310048798686612029238938830984166306117447871632018548612123594684777063402334142063380488180487680171238934229495692464041664282571781742218818803371652828104395401007241975363850017129704841537902610614427448147446256768893206666602553929487101434138801263125210141727459402063966104802839019727046122629568648146919549355498463452550432079926957798697095335342295255184687793535193721000880238010696720959957739182977141620209907489028448494762166983088608338542219928353089046285004938583587911263163838181558927208114132502829957390342082096836110308236429255007007281830649121885193362756188748861724224298956389778839597124366540563712385216069576050351456655561920169782365587158944918348375120764992813133182401174659078652638630168556255016135533347801399606866660512756520627682988558939194172076386559829675514209675392128074745611995913829241539103890721621984577086086565633591932898929525769160612914543408356596652179594986742000152826620047333670736940195915838505791953701292791408962020511762445030455746556975209626259011052094479926118354148180704114096558882740397673482403928014787586163351044072547876922232751860245907426694676976931523567821365885691788193850612048213664001512441804359453205766788065307778779144437573606774613295547867680226161718087271331852527126128389040270282142026958025426217400173928185343366307292693619369119719434003841259679766223398093378632847914748622866366133357465021565802961491680297050432293300714190640790956784912540728287213150357954215495438775750854249966221334291587173579796159490107600249553159968614129779326540254806252884865441834030570654969316630416268137363459710157562306359486613205374430489143263301126430583538771604819601481768064174876620973299493419004611684956991713228882550294270758763100153634813678417746844932651509722463867916046262370254760971932111942799891063454843628259036915154272503527390585385717869064843559836674034697756186062763324490127928545656055751519224746159882727507017348995087126357457374078145858368288555502931387908223058940093642951000622550557042824925324567541765163368419170163752343967109707827575255246768217212007342356645357348214147902314568840760027813069910872094067689602994607852190994239323807658695812488292877310597707781294414819940112296991273248306348267743655248551355844791843283437235900676282521301318824362031864337999650562559528193785833332947417901819597612333430815689649359659710837951446117717855718639065396915372555400392607508918862751861553083098840851192132431583974199434802914020965913969062099489060337499210638199796044505102834356594254017817184392845718233310706056471458224652845906205112786028248473891371556428175481593330528355902645227769550051964474425146714530803171137633617964401485286608619473378277572714415371300480246405930042140231287195325797086441733162858496106185606053127415026743580762315557543433526258139380064160146786566803535706930324947913311699279405525712538293329349650202023510226082517136174940442780899423710972559830299375563498090568107946172653333499941931900426408685732831867066856116195370139185907821662684659329622874761783655168566288076520296356618682238824283885314398327458476393481391984686148224922672887664883728405332562889128687721878568605866873504196783611694762797671378619687341152865489975426615774316120708650695073159231946157219184150442452956781321842792911964225813993473558826749366765576588523618181612235075292206220893176100716288612560340815016239521894594762298833700617991863302038008543710969972987000428749108659889485328764019271399294339290651120189987198411407378781887591060962026726601971896662633489502287232676799459811262136096289161655954939957556947204094251096034830060236814232885086141560830990207669543691270854889869491734191543563007877926218289306630948361692429341699690277390279353567101365547318737969628469568041404507191613392948649563032963043438618496766964429381560219204957186331465124130182019737454608096875691608059956313105153087240631376325330750161218203953313170782861849652432693130045408914763391485370844300224252545541454079562184708974238499167094711400912248898378085263485430266839744157263594726852177396816230086131849400941107932149680291714657365131529156179161934645539141496781343377816986526986302992450797452705146478168259910868964488461442772868268715617440888244121614859162080145062032125923162597199113853105504309038067838825339963716980992796979306358226130234432264916196019831242888522599278803660563205468956520228986457566647449051617078399681062481778932196194403567078712375437454133717168135765720741229580586504025486309240886872847646275219666849364181540922169059300529177891841094321403832631101399411283712257820852326930266485430164111067068156435079608277392932352809868150234036597112492603704555138812748190667570196799225030979953593106394939486055540466876766030047878462145543707232333028943599352138501084048893355977228054448616393645273196502471696648517799010391325066530771632484209027784876049690501051452403093378952918292573233572295512840264251591441789757997607289502100142641563529765915491527722644868973065044800763578004031867370732471082413675108013446549517605298979812476224245466152338770560359296675209212434302643867186324660179215678888727386411499115996081297406966412551371650515242447626624603793932287729145662528824964394997782556882601666287415855926748891122824721114189200229703000215794658513873228162635363402198330154227021423579889266892485283389363493807776328906154641487391445607428344039772046748507215945257709380965045193254915661399772039507170109806986552104446401034865505231940821849521319909279307364634955583399216284208814931739211100868902402623513513677729547900495618005928451360470233346552906763046903416991413552951755541705823963143393943840531190983513485947488999519159695732909367103248682633522611107045310165980404010542741523835893832605105719946610189962171972269142995127367957455227459309516855729753869516157850202122782651896049051767230794802204300045011991130138393539423087193317828494092654322249497774962222067966720977153693784919079031234245732836867373564458700453498985110810436444824882438739083150598531683791885145181516564306966753563725380370187247177969016734811705430681324873692409473457716578004356805383269305500100037350448567825323035376815579247295623485236891494556227777227908189093887555048416124654762235789075519969394604801629971627362887894636657184314957804555418026018874071580032184921563342215955324196127755407159872052201935554611059570833180066920384849957002036305473479415946677186480963360142839201828672539214561199735144980237445399890023348802062124929707003380780975119064895362695183138006995280428841417007570723556378452507883234156688475260957677437047931155593366088787779713643667172314972838268858816416210615227944011941209557970383567423111482884033288089633213734420542501121047164797512860393444425547431271716132125713250292866651761956834913244716818947054577578982012809694654718864137991994315007492646829631837412099208896267714587386302287787365957568055851716725332309073430965003837567746389215647611347856636110441527550097982236428502631831465205248290827932041869683561758609360772591990614075489043530919039253295672467286592232979476210464422641612405094698529564147683840214104792078544899005876194468253057585420785335018045163186664511834890158114247517332662577452421850893160577228145100641268084283829469727306336715555483625865795179804807392593904264359795485876909478568516820271367224393216553956711865720135367491563476045964330272490090022815392226828703315576334535158087720361807476391289173651456481292426975906479036428158241646041226647215381034063406477973256408812592442810062123414012745873262407849676453525741412695963978113196742552281496207752605145524508047167966027373130989124060559395007221997661887223812180521408533407970202070115109514980471345221180735044402974650025319595914118058021748788142428573115556265386268495675272906718270028436546875955206209506592470033587552195222108601694344573803096248189317824754838681956621853739768529205738206832939056214913482521019812198420525444858070382952523399929911792200217783863060710958087012520673844498019136622929335778868718273535990230614250925764044536764262936029091741870354862105092839479198906229070677546346996453145203077593328635424725919280013307989407775491942023320785687084443694661931589089235016943304553397752282618184540795478340588322189333249206150982232790432311552376390974901121333385784830831243495240996836013468838968627858501717631681818322369647886091667544225140458307074988407538263705079353521766491201217340143697665748243703459003572712656541059759113238558621804452095406135215517976496164898273186814064017483846574762175495392518385501802237716817786671003918551207789625643991033904325214870371796623524244258660198256779169044783560022103181579444953550775887480316983477659854598865217876821043908252737955640363092749372954018266576029296536498645230943573064307630451674580226411004493971624442309209319586490219112043130284890487667581974141717269831443483840360675189460756042766228614021980856661875792836347105914827497990821294404148962240665104148800929283284038432369181968247055024579385431687947813217235567366203045758840330564453462110092970497102500898419110942143528537049055963382190476753776725780506949085618700691215076188006645413654830628743087873835979043989469543314213750263405830272623453882469858257250546253020658569592417269845126355107444381154942772874527427347161206882787130479281920098431386320408063052780725999664632844308271070803748308226075226923165231815353084814829360472463634733180604550286461390460435944756688459660994717629187771955450165064118102003170102595488491582478300824129999728716428255022678170942599474764326533316236822476292245905808301599132927760036179445032969222080661591737008573294889873145560407076064964119221111850680924336118788393107229525068754761562775766820185796412691763583441696299592552484820130710915097642494378803928135481922141324703721049057836734454697247326174253919635560685659244249846578223333387564588884063016319433843180297673234165153869387348521431964414443069815060529085030619876756055373207247187516824030499062375796328045448624008159870231627426536536573824692608047701097725564833111868891405531537704942865564362467423211781299739412389470665959959418726791225325396084399199956476161781220797114751053665104056267934267739230839714915353299330787041070549185679431703356127455580804511734926176374404046603669052288361177718918248547834950591122488968913473743774839053692767765034548275110857505470313940504749984472987028496165574494718858404755913302572809243648859603749578002266199261865372269691039080157944000129529296497614288974264305322655774550180109360250990666985390334027231412439039014020121816807647886698417570067584361507608775735613806440194467575915560464259212246704662440541685855726606409023189576268344651283740738844119994770162897784255659231519826020664616696251853442884874908887295050520833635527558529118421225690197508547358955132443677473035684617088715174898260112886955992908668367009223273037148013322347859910211599176672886160232902932352609371900067577593650100004846512845805222733178390022488848888082092051753724571891010649467992870910586883880674326813531844756108116449686433616538637616046992808369336158924953477293643836220698062700242869771800888626612511466302844121203219452233522811840903186407516687938029252658166466643505521629098803484560098791705283831002120838818152576334378765354769502883848139816201651862429676399482118500952610418716189645455775129377020053813067399779439309612611523159290741207470136932008688660804112364332962600093669635997402080486602744661353892310490414737376142412181231854293998104929975406463974166323090713380845955565254147753529000342041354011807758778142236293596679641247528484541775263647209430688359010479665329505417893224235941176310485229148957641919693565659188273528294894733387940453707495477322910847475694869040426741451203142353864954460972026006014542361384853406375584586566113204673475015126298115551620560246455049769205988310089003217515141530624342040880635134483084935039923460851942601883068473569341465805363700584454621250474279210762959331564119517076208863877488926681679676211374786398637004497016502877193310925846167173279589591857531668576234050274797145838394811175885176516775129475457766899753296314318156025845272895362335821132146439365817018190309799346776113537421333807743533251085726199970508094520488362347156495429364835814337084821047644333595420048416075125983795310777244457629938489928436877978257896178133023350845520062827296649274273991782844081240410234793068327334193125201008036328913320438066449612542395615075087164812972295049775014700592796820066743509425497463473007904833101789202591082678062248527293286934182101320560292546206716584909968419753073642187439764099604584712501167741826619629545969636364491532106301691005217222906989083406308087731385813230027503322173518312817744590166339499424169904693864326938801891239012764258033818837003992631455427542796929401160477900276721613371553466709428068891068331458070377334881811515281342202448200276193528984506525495221559154385101285655716549142616058557056044828961762800401594763940361202654145730638417848387548761715165270441174905593681737855183006052099111886115343164225176297433121415978611581211995327337526041809454802715146996061201367175309042986695487813301353388333885751628927313117798047944377957680607591016159284605582747145271359352112244886135086417573724839997095701026197460316288306502492493372135599976425547838390474935472783054472855325956489998177001401808700255811945018914199051875594179839052092945134797715507647709887150200027576107833369362881172624391452681518091519228525696787197972675794917986295349818915251862409862300678164164225147848326366423329615595017504734473848789756098497223627527006494038839320574311453335056404057623575798853271749587093629435004474472160803119678936149816470699421256044741876987650606076948149540922158772144026191425338453313137529075138843363805996146031759663126211175308647233514360676429786143610978112550051926701011396948628938776779156923334271515620005907438797745740983516266869408143540742386556706999373758863979806065816300245097127644478366573238011173133803573378924174337819214851067347405392768416457169594391585537376559767725925680756489920657724096342183671925026342022437361800823152701272302699707249738560114232886279384772007354202575293998453084609712019180662884016117958781647436778084351637299820003610522871951150979122445517067719548046385616143016539802136493712921962010769856731516342151365429557001393262124594503698440866708277786680772147991565818772261688442572013254191767756728039423568229630760937284182246490431964988037168890436422308290804255692021304274793446103052318153010453588051110977056350676408730180235612135969430671149432785954055126615413518911710570627394108795779333929802018862162219849904867036075164600143033588346895872671621494515238293195360577921857139100000107636677737758727822297510202827509236069747270826339267454049509639899295434067014998920167215164619672913442584203617277000259565083935753467682297069218016036576921938440532984162605960773668605804952537131337960528301315497542612236545477801621086355006368623014620556110224632888112824383753797923249657032071026361239419651019964321048842001951117410195546193366616210488410787687266437743023507510348191960131957926930670311094184121690350738084803545475901968897560190188708730629775404568775524478530425508656965457248606057884104666952983339825207816309454978582996107635672251923681313390282106138315235083716427553509006098939911077280150371736699473932233846948723506661198374616762074029657135633995959351759246645024539843482634714761442366008688133249166351131590822834110599390045136565028204960880793805916683264578370214220096771793706018161751777954893580477774847064863170180430385238792215169421189392366845849569361756695888713361422148791433962166818004564419306211563651566963023152962226130936555879117682263787453929569167647739471201919649450920431250655485442536037707634750406972851190617726099353598999435161320630115285064452902112728807566527084259047584351092170686800340138593013770311413745626842060378403391233669817257989960237457198834115618344616670673585683979025690366229449079701107297840538911057743953682953990581985439058836787789095552220931374101904674064340712526793052382571022016540759715546298656655927215557589649140095182018057045021374202176194746170776919861611145805054332510554343378945102509278352716855180613098748243572910703718221680056207939709296497192682640450174706822341839965232063010826946700067021403422633308944751374105571309154278848368946910312683517954916520627579339171924927751112291647047316220533146531202927930501612041231037725382752188391345525946490012873896920115966979550640250976144411999251942349039750293926561593057150070209246233338066574271897076601618454935923894358541695539095929742806504501664239025110348472213614280937768440690836092417022946798594874284221283340804071268622554857120586036910119409399895349555208256398088926439413328273765318280983214780862404883755225059249871059842150550293320866951585134019859693459593812003947496221993125532212654829050708298062906411845690232730871971375522925376331462227975725463885496910050709728163005950471227760970676879818219881893780199123205477601824749600231125911759142434501997943543376987902992190407522803969517217626313385685670408443641473497245755775608043409796644728312515534406365674397115463623916058147554589134114502292532713949566345543860751294011784645382165739481559584946377409001235526882215335232032478904511586821134619378591513145509035773007968013688607585775234864668601008589320399591674306099705991839840868127938681090076346937682752688029077982935240577044400561649643669985871877193329847006220711918217798572919019863295492367822873645778037010548857140395959697118949155822339381586140221659003974498115944913075075912698638302844813784816574249751476684230007510728572224166050161664900749018070577498432184968699648750690859235722326415909082637315259652449679177416228567076315944255001927828350599844476144413984664831346091724772905108394615269762647797520876785704837458529227916932561561587147819886527060841041358644471023726222302736760801867122684699507217199487617056467422079149545069129209062530383375111942388941531226280707529298333963826407471267646057104716194933225442219855821544676253228378898854820817016338774890737895883007159001832677165348828602926336648084207798930292012567225349000427539207203339603666735349102423982039034629277484380729225890706381095516527968866505723183466053467718471080561920603268045508415188284446522589713544691080253760724378139799440184177039337622203157348219115884392358874473187651426721305917304335612178806960774695988971007323996582966848141578223129540951184499701593221769598391680730430622567410237894339758107729479664530936380626503139750479117573244014436328074677392162045161384974715909010285281057438447020981258056449845448136309612503236921043103785103733987687023616427711724041968911800616255070132608879879466444852391752747259152249430770493626844882179593560841680670326401325482999419199230944674236503639623899811900246287971667219058316353150381944081687494099178660061202266585126488753894058722138594144493065735744895085484576409190141509952984774411096498887594389167858022361609358120775186898160912252300124086617924844108135865034493524163654452470587024139221164149810533835670726851681861277299175853530375090223996135381272051655811144817372981362021608619456384855983207958691921576465919592749001867574789825936653523040111695563927021119033114465240496762582660056005252719321359386029671084255562296997978467215577305103849417211931756455113697955213098084424462983942172394268248651542425151035116655871220693572718408035182462180176828611288583375244248933026346737969137328270608139884872681863420139370449798973515598405975718906831374510700900010909862725600874999217873473249960777346116694142322733417884702560445257704343178319460830530125659715730958521203360497010558197237997211487797048676451903171300914787343405947178148693799767512692737446467121623680729737684141533913423937802677449076595952365112983975675177201208349712922008358754902676735780017744174019846515013647643448518024457357439422848683288745476028351376832206674164266959384298074400414149431115634173795216521668705199524400023439680450148722920856727744361510716525622218759770404471479131574130644739103594306483124948961101765354052776106619133520972668257452861839761188974928921483388165754410527484605782896563850398804180889722301186671002050442548934998543648767852234528597523170144007955997741967736711792989372716878064740007000126910449041106525954650449285151398748490217975334084575451209069228258002930123160791260936951202985753596571945820026756444957634740502742598803919611235744183309493767452512311802907470327435628855354018393170625934900853355676034564108202703205796294212882687022539833901322063839045741405597457908386704621944880489356221578761620161924745104903781538474090968793647466586035513087998175677911740852043002932630153994621870446871942938899827516271597519872577019593503256824765606914711795425001746314279530782530559976169137190707215933580143914646712306847446680499348095139899391299606109146607806404086902082535844082674047116139898046675523409407711638333971957561986593640270862943357938069541957408370219616069147279743410292672588934310783084162334653743873234340421491792156229616434236367689201424333574905789635315171815139411226946141872069389903378889995596599898753809919890469772734403410078536178283064770727440423040750296078781051417566640298655421171812642106608835946055001269825238969395657962705367006583534611858798157109047860882143637706765880352776943460797383972396509392149815231385911322406780176792102791674043246977128673758143861777601447548119343665465937314616993612553029704760601661311893447177931179157867565834985877395131419024308417224750090624716919767107352896846762757239692226164305272983090556560106067536217565069704378958204083126751147961921598253328878225992030949889928326745505606163948151604864942146484675137380308453060878752904413140521370485672846287661021280304508299846124759044428445890227889637611974869622920109905706349993169501561683705856330081219466103705518957410664410982289084025860362366030959224593179074831089010146757966975815246783526791550815000994156603169293658182121324413391067439517282372273714180412194035207215573330354576116442793694258092567137559253345240070915992121645134987839509808396620692280522339288299246793904987289738019981323677373063088725024228974085587009008881405779593475228714650759748954272716545786845941713206648262400941131078676392234445450727196153034259359457696768847245520979918164427860628409441145890762699494766919115509787325889878197505640218511882077519345228694267904562950223530297063992070811831562586599151075626837068375269578477254774160775342869516971429182361067038683446910472728823894781891957953682954726156029012505699745119351751805899523525173113878296010719855494954713599238566554227332765602789546958883842927770443250187342656532823597719437972377941355586522178828578630000743179510307492246132349965565103925667362972467791572131148033806863274157157682133448128011763299586671207861648321867442916594988499295842353551755471804107997159737489934021234757882316700013702248358232587286323913534070835056611488482956679055524699203197641767920411579412044391525545682566540314924618769601204058964274297105762859534237410417529052594632982353581003604015997833948663859287677272949581757628431594485855292177131120253776683527751889151291794911693591298601126783023662555761062277505936024294194049477199118011960545305889724166921957783144993149239337443455501548426175247829097544337641786250529688568176468666572891466898855434573388273952556543886025144744844586850121462103894026621226378231156358265774433560689035215715699308462780915734748946332278408349207275342066537657736974688236913643424476844300914151848719941189786804350183997454332042881159101994626647894181709473808902189439825776796858404095869563040902192025845945234598277376912796793950842814584848441957365769366769311623095266242280777593979618658226836642626878429442178728303680394808307596218793957477358488903326017213443746825461267523317895315157409676052888324189609245250170179126516682294303240704510230697132742831179365545108436491124254055075954444294814313913929758488968473185707927178748228824716129172886199282737912380216926810574469846370769188830865890710371629350436346538569844180578435695503216832260936350652502815803403779448726033331841114168162896823911044711373536467958879725446012597918277771180150592379560801352746256438528823372354090019270620688764364096971268430281499749191604196188782826246784642320297243159212998602884296072690975451562872782052845569801894516793129776130471857401659910886877730162743350235546128191772692254458164993343958960016782495505022347893300346656005362574304464604240822644311124664660906933473267482374819568801575937481591323617766531874566762937655772440154159244757256680784576026498453422524492376881869671235872957620210142366243711968707062392955608071343384477898958218044345732670560418316203693344860965994013586238575293896442132236431143697964458819497738391833241787759463911014164090620088410716109622004829996428635394403251026036620030777578199615703220851195702621147013947408810710113984834802695855826569029246704645349183802857670178178011574402109716500945731044554421077433462481320321870211634587635578557373781271725480129524212261236639097382236039545119461435924615677297431708101461756646321662596611382628689351933369833516614417525740469078400060182241893925007272605385426532244077412583009213780073104255658014462510690558024718424767577767851533462633682926261979960946425647614136708766477387849062359834480675332891477176019678243543207052338898341452452307691135345028212626665161183458288257347071558448765708222274865199690952813702005309948925044280905330136379059754892843591896077006741177672598350551694595449031898339610706543198900949055620133031935511074149747322761169603072861857785064047714475544397895353080627410337608602718400838415091774389915767446094017019643107439450174100656264658787415562640291514748337467158153964102260996553185980336324364956813845431635448677142868664660733490128568949236762753938955512159776393607740539547553838674722571680495088706320983124464609452300044140643582681205252811288275725204634080993891351903765942022973985653916820161598428800511539368011645653835602589826497548569299507677924890529507637312881360205984566098603883371689642833023640054089609853729227102389896123746363143040167751953039349917492393046387079618034066873827300934102702276422660510501977448861973514798180493006922149319430702410557348461128516153195159673560575917593202322385125955937542275807675073239790079432930624748155768583851271722772977990983725216252714862345475724865134029528498052841351459315679907168273631825688367007621555920798455093427332439562921505592222677114978304490172793385069276765044823634600427648235060393866742514147316478216824639092120540153851699846088946185729293646671491450914895675428844059317275258124480113524886217501800698267955322883067628646478846073341032659438267312655965756615823060563196446915476720175262152730431432255056208612704863115808683556746185592889483506270101307674542094911724292926600818490326373488555355194102311329703569895141927803553359744309026354118262104072604843312777073768863539070265658688326692509928220559407442372480134943099315047980575199520094595546259076316324818338484908378242205017936845518983968037358345128348365714573204661134117954771825674770932175131480164764315409505790594251010967589894157901316623960320336146029251659345438201613139732554089429919169761035650391843753807891562678610393057895725462456480987019522032730033836434743170053656232998576825187424998241628762324080464335064438224293189752551320850640531625258162356944595515643844083294665255917208304369215098113915640722068678632270595785746065984180243415119024654664164044510353513413302810032369513062510740261697158898502551330356924484499086862517242991740673822812866833807750693968703911319886120381727453442345706425217646138616692755208104823251721677225215621642495778828170767593600626084055865278931479727799308795366244894722138455169506790875707417447309837520255663691565997421995384272934466299054045191750235740361126903609274048823560943478396139360584153769596120815927040283042854457583219045275480620990053534576946240038978789360438615512096440922371988330431809657726569133612708445330278745670168095644287979840493597206605587912499579448017389842230159095581902178022279069115074457186047256175777992102342261292040875489106769072291840962455255081117264365893215989471959492172409794088292561181344659774240319256410393582126478237895565171286415834139938633091811729528069016879810796935575952549551990998443319010968672569458774412670205796987794875391021556727840293697859675332337964167744547974342074326675649234306720981318853816505216857766756750367957338688935381270087471700875083397303256369971996179346476392962137524094779346420795042399602555586426938944731752560476272082385662065470475303860311265367435109495462980243525811172396230081633066794876615709078546671455934731063941779952247086647477510694129075733394702516897876723910557062836277930344231556206079052876756334147186258358696708235774864330721563096169311149024939439052115575696896278792338594819018311122711502260208667763030408466027708072503973787996756317950409404190101625435197561253806071671256332876151195133094485361528348359602024349980461789609446865541258693925743472957647988964463285751509744588945138084639655154541155290946412795427286462343629010873348253186376430449026134794617134762892759643423452920283942313071488204869620777140423273955629760867281360974120523735711815075482052071817299567694715574482679412665430070756178597363994712339092392123403139503612440545444323762893965191302666974106047053142811361449003221085266511104641192457558864750440177809761506296854224381422657515119216332253123373274210696173298593401861275994680310257425379880628289898251878667446607363227838645064814245713431512826693072929116697967314938848090433231085903288836916599026069871114283880295256822054403854600489977876553141768042679309913582056086453190548818845070118170299439708037762018205336873450296464418412262345613204231890417457028748311064024488648796899393069966679063962883076818754870502766404131923511814242499693030388627684518095724374104902360659021528207343414054570392924134008405445345677880872695737708677906525365454300609727365080399834724015844971733092647789565589124375304283660791605399351705557651069190597696524160074817984662237551609656896081591149233062906217288555971355726007204290485220278056368554030209924512481934436593355195238620407265163271075284220358893424590872465356277948907575425312052979059248102449702112839804508196298544160196928406500991844967221270150837443978232141546079007345681797046006282095200100501902317622127277038128825583168815768189485706352632370039457988437536893628702959493232838221833361226976116287110532706506722430538075187902571473039217259808598211318610436861445597665525674868331981727787628077870958978163665737675756195069763749720170591132631772736277045572075542088493727870557655737328735422347425048347200654825670576562190308283608539284238505123277147575433149514534628211193756820279254496060333104681532762292852243368266552981198081433874098841039996331248214497460068796313120605343112844540672836676707359989835375372661321807095587927466370774465074280025556284223047606687760493839500299124797870909602388675151383377931507958716166383443466351328123847817384699843034139497389441722475840274398585591456419306878709023080023758536925970906259235639093468948836714916618882510825795110808777371795984067444930318824031050414673813348065923003067680697737418380755751390409436422879004545363095709082667736835216564735990978785925271787807097234566590202057765034270641124424677762169918249644523162896478858560476867886529970957520876499192901445285940992798229387567181199502613773412608990029289949328908951400681703968676729104239688442436309294567156863574677521953834465058154687654023242558516187657966367782711125528794673082937489600395922351483590945620437481407719898375342167377084104487281044856411844685621442141587713333668596575436032415882804004413392613229123921430481766611106749728812397791263313704481561717762260783688367664188583944363300875889333592471093077131780114589162909005752841446341576675365086709701099085935667463850251802292383609868708853070213464849873972274974728191825927114432466201146161998899827729091231591017050096359573021099258366003183796605769733637382228981656053669400051413804624012639375089072561482402674982283237105041196645878539375392004466853326387942745880481872989402554280145897379470459329068439083202238097288720263220394321147445142524178688011177551576883964415164811392037654210261858686385194843095399413669982324789041660820143504001572701245591997274389683285687244765930251256625136709016086634676086770499379639857354344522278710520422548215337900839316200682720840283266016598571261007204856181767876220110011019239740360612137271646838420148667062680749564797085639654098985711190152610540394450359655731689022108474802839761619320432124542052541755070997101837369270996407503734609209627899794102815259512262506198492992947402531560328365005735148733077482236773593703311938142397650559361575577928889699541470546413193999266117088679001109461434170203748699676381323897132390884398483806100779301805931119678716919715543320251784843648376926355412367235566721736909710667475731912409918309269506045480002758035159127198975390567169698486194623928086194734823301497072394382823270351826200483428818677155719296587623266047122634846027793791317089551658353486360105275642035133397312082982815019609007505507020987867487187663679925726798411253887014569838468988551762836484199166954196732989851611529201058258581911387107444825324184798515256530722800596226218877987745710135493452339991204486572665422215636191413311151882405519967614860619279713146163266547668150074143554740558594421227028292433016707640518445869428778259003793209735471350652020776555538836850567221949452965800400029231963340336788381599693767041627905647592045187334146087276672829822961054717743015893433874225843174252992719346225258071816637985697024269464981403235023404084299562258238862053857720015871229867834282759211728371677961443286715192352827050562227108824522364661237691695343882068820686235680067591763285009885241460223241224401586664999228889580338822394645068006391981189433565029339391503030905573152055338316885331912101586563978001338374602654017262230641386177433998886907000118855560314595441269960652699752527195887253968647035523416990525887889672668834722621308605353621651441919198301761302522063148406862278086204824265497725633742554503925514038609857723981577859753608451645719614675543468248158318830130093353126832921905643463280210060527820293457866108547753855911338945869343322039357204574744371170586654492819709057683757144170100097508634760777071645491142969879491070696054298683534483976227119241936486064302511285334333732737443406101294658402186116782546773671102003348059886348936109554458097826111302371980392458818982620769546941520302631306378838720415372354275132451417800579308415658098231614154078004576111018169421846190547887737149487705096128440428028214896990124360225656613488925210734350761039739293142464952985419398717468871986384129096224360946617055465570705824990641971950294160487630170845247070015298736357953434314347135102400385968593857028458010512574114808562761633517175742799745908182662079726717187860307021399594318569475834546369161611699844401436084553636178613019381864481834416480710223913085767164330297278095625983651488463254968381175461165279846564319813704148124602714450601724710241273536082008931255842316581370199768002334681805576847091686474995158797160647296313470324695606423357220028122410154297551979926231369922320423132944785551034246414980189442256544643071731730334247615720726557919324008536102368589091591090289930220080919345178082856517586664606815267457869184085806506577882616371319958321713992820956389668262764619718012216136982798988762856825990839077139857145433801812328731758966859201944776604232099160121201047390945157621952868184959795897866300019086743725540045499152776125661118552228438381294133423046410566264489489782148878238429439963001777698005229866243608082870126036076758631555639964816150462701761014025449773857274314409357847514665479887059334036737969724386200861388161882996665662898834540331814234879957899448717713458462410356899757479895258707565607336208749823004927786855513983770303154373810782307311065973444070186593011640685648760859960174367375299483793804646554840626201207045698318590381213445377449430020873673746629829798785403438738743982938822456363775272156268351859751973995304815712200778993700926761204204076777289552450948249826308620682074948373074379609887750197539069572572657690797917950730740949000711175212075235943711508920255823977719510911832303256866031422587449099939954615322022055930347386593173683896948621669452160282669553353821730456449924054411445880473940734049122230325561971315607399131949378584574122352610585183444249522705779496683756542830409833019242870301870257291236295213101714612604850651695821091731311802395030657093382090970439238622027112081582316075304491556756198756331625547026646869183525842631133928380099132350123522566141527737029552631420530199267124622917914307689557052771050870357092379363818604719100076939401391982332437960233108370859431594043136869333411651168996802102500633453384325728160483534469370111613777819340761193258641682538048531196892385999636692097821897737717472697987272262763617626264003244638657462038590858452763081098148957577227018892489211941975715281390622117667042254259310131315507589152079680497710051922305008652024174530563562302182816998349879889304665111220879570531324253363732436461406509302644640066036987128272980510992326814970121793405394142885621986974643403079381593410725832328091808777659880990115809067521092785718619860621397848569910997252219724910392319301702339477108451514664224602072211841848381134047564622413074234464325726044581432122776199038291948655749880760326178666379827145720985374801509356685016419094720947132160830504252896748588148286169869331789755804028913908742847502661909370551264522459729811198845151453870085860696916932206377868582644847068022171401832774452042635373071267609872032469511757791646767961549189953710605274374217532163805948423859903965223473291518937782736774425314151556728436259224816699936068241242096261662067186803257564477981694333508334349544614182225375757428176522946821170085186550940026591187974163584742400017259246886665543926876775812988458301381034239952440882615377883610016935072998979420970698839767996538815838496121817084159426406479209173518688950878725387724829569278470628049696091246515269244668211137668921270860881667831885331879297807858045292412745250354647826982969711958622173980372213867716652530390703813904234916935016669608946068208025159372648634864267812142652012754185169372727186204956297559970374218182727809222644574587088455466194495765424791761202963611928372334573563042414860196605636220737168341564311139294061952533064008987067083281736119176773528661552568822788219873477609841740987523280006886307913266021703260604139103784547432826601767060521722953070010585009449533543257009779544829543108297574693004537262568929068858874787897751224274728931546784926393048656973754736703148670613935732951063386065234422393130551072422751261390215837692977473480327979114416253569747011511570551745016777696000276630807448434744674232103275314836243163629382190847485330557342781375260431742337916410459755073378923802335923285122845546143077883320919428771784468159413766704934034008563151550627426070334816593314938091991432748699307095083256947804358472648402977680736089131335501826432548049227449433455236590596576095269105402911923517855854802663458099782016915928178912617196603502189733982605983275950091615543815520692234659218831993903748445689109544176239117364229596647245849580707471400030633955868414322360223362782036745392929884585203077104647403369729173988084495906394715354306907100470114688845306822929946804783670924331515129342512377924058702716223338421393635892519793626962304532050835270390836040127549324304624800972308433838233679005484902816873754231858053917514674051900459153024632176571393549259983377358756031217949033827299301054310803145903386911941769903632701447143114937987539698749376831615033999921209520043832259069586695350103235990949252702827718515374469623471655262385464163442263677235765007023655233688862574612608011025449080828175088930128945981229360314775061067004997795068450962872028704843775940865370074165027927723811715773063680916759188028693219512181111905980644728791858200220866118078411651621796356045839536848581110150153178386800327105924538325425476317176135459971660332786984438480961495044323702997889051740730326827932838114545121028274585114328089931642657248123802170339962246322036540259168845271626883461326382945584784007246505193289304018813652102529307937687026501139112444190026460201371373700798016281012823633648650058851920593100930571467633449557737704285442706248460337563044646621445024463880377111893314614943671859378962389791868496384930871251776740760697589453268954368879165096913904040812345139972928565025068042711399582893368208131413589113417588406485455343544213598093366597491142716189662448197355482184966073234329694805356664842186819316342412318532072475610760292100517954497897208991854232607963113058296013835736993074955216057092879949926592229110581770129263093125870946810731888911597553442069466234090427736497680021343176981193447238336746150867154116393092712814553937190277335155400115684166156986993307252146981857984194112461401064417299512790678780901304578927550433124913132809050045414256109937507495578942412188362220030972165797513692392726018027064398087928388997679284718063311106280241094322164767638878964083942230723342100124389051527785462687918713678149196160801117324617497000520148728009844552278209160171972891444629111277204290686203600308971629545967222109304852321935959861559555414486799287619739853413358272295444083849922342378894457655918033848071360386578849021119295563407315303420508398522128716662309207806014741416518725987368208589587586657786238502187213893636068875126536399768358295637537876458925950890725560646625337560787761395644748450471446002722800913518700399805698607649317333606129634475755681117515781466197975126004077884120951571580274499728279264331037746969134376847871903442557461233698651218575746763036437277717791685510128767749757054465433507580670784359046554770283338001038054746659654132565060287463378289340120613792183186204747078537886688298692264111762508193891387048348801468378692706847310730072677678366438194700160360255549732090745277367442269642743497630092273123003904564255195547917040412940480275116778935382869830088757621499808850563069221959594226999507699563849590613473293655925585089715028181999066631745434187846985704464978291653254252210358331960380831699328241479175983092759710738554432982308086609848958795564068661290347189650476654658351200133150758636251479655120966905662852740415393366761911574151443464316839772501517023677288101045219880305060168199158601286881691666456513257167227195164223023813261229442726870709036155581661572269949438602756927541650619220284086092305388777237923434304024322436644964498661848698877137128517179396226849109620861880804528440802097261981759535712611954606422261445062960690647496328365799668768738433426292781723643131864877697841609588443934515900792678469405724648071363026081645665222736089184906540241447291782253394169150790733186518079929334547307601003178555344373235953977117268062753108143698055877869398919914506497927115494924246276575197285595298111621916586051069536536475015242158062744250655799593966010347070502692280532991885718437827872776277383378015505345925085947168641618530224005610055410166549500108277204772373591199653139295542517446766393619222933145163425329001250044727094135407977159400061022949433244517007740734374066700886062598261730881044031060346276931360483590264613355374530360420915315629464538942216571882642425595914645027071329409058547381722935696419021241321363533833105224600473432460788457632904179689964186027327965812313959994879683694848843704909110187050306621344146076891818240729400344600807181970371040933453741868782376248260930048726371470425950341252846550970389496687456779467756370405337704824284229412050059118500916688571128749342750981992661807604353072366262890621495167364872104199162588836344454538965123677612079611727617899179216323743050777172029017605103152556736794947231621183784087442814856480924043017779116885317360778969990055125420983203743436328027932010047915141989504587073599420001548901079646988212965112457893603554514075721314663922826871326305731524200422893827829110777191690026040925421788275509949790505779949780254226104280884141371897509534018961066535920097893001920617790804279582580501716296060941620065720935948769583890686111078637411554825656389252778029360290772943947005863887772808516637816515135279761591656098007852760884541072786251015516761539108103679582783581316327608848331909289143686107000951542255971529206912235939909903595669831181878242671424756963512365945134462126909614158681736444918945896351499646304137218367155942200179207521575320096154880183367514653415029952152702090914130355301026516111359919989787657394409943068469246991565499566076262706258962642932677613279500819521141423615007806627403076153613374780921615866729610040612589674054502481610625938460895489973412013538380588118907420318512424644927638950707552516888234823046357019616928631322635393000627121175806779167105026868192025931694321359036745766256924395838719353315801524974400296279773817746134169519437672393380428124601291079532107681060213173192041028226867293707129978587111572421652467594770323356704396989234998055296779857989062075440816286255932704705485354297429351993415323946661972147439597742205795905855160403493405064568168600022070798130533671616527482139275824966106251604639774156859441337639931470199390559467413748670868398172999725863056063166020550175241244908801612970759959923882960252198644575333748023352701567189099709888899942167609875169719220513619155722120513613178589008163715746886726640828756960485726158024263130352505040218158035328060841825280283905893453889205687511844388805992434309446038067746071936128648426743233115960952903158058070283564963193364828567610147613246801024762471005775963684908699494559581981284609168457510527082845523876321786688400892570371148282431694998572264597334536989166944251493572397852976111457988613324419511440309047989329084835968087203646874394213105652800589875918367610094342066458494573025820466821323859859018933313989429940156470241472632447043456192837710199607380341358293590686598212148672249781261995022196997753576363324313282895168342747576772722313526715166718965478791706845195577571608179895512743966143758830301770481934132435398110871537049468803825655763891732240100787765129180245483742789543725403797033896803231637257688911810635281934683800230570592878114480918401130743404438153903574084930620468772934966076202007363582969473406605223818951523870697600839115841629164452179656152953341601794114453853038563962393830515325025582228714661147200208400731053743417295513097789729894456280109850545645839957293601990853683501320385582023616657240011237506237132622364962858360878500598319444879683799868928030786026086626501592210035747389528249619385253401171723229550756217447655898220850906843569551686061580510842376830791394839133666311230862684578737030060811083798129598254431282452041737165850695329967731517802123172726053550577895448231619667746483061143430998882428494545083043443552924253547887062892998578867542962888712437225373099458983021436331345127546775637538617119706783306883664411473918959351293746187823444200317587302013662009844912105390929570966692603199451878479124546893343034741813955176531822501775348243056015908155260353168686689624940983853056662261676189021074275676802038234940691879222092578560621978233954508353335826246088745870884298525669934253152784222208285311233995776935783042496888412020021824675984293658079627994012687119713465053539868582278391926524696787876743897307244660006635738811357514207607932953329966457761060692417237036176535212632336989153880801314043819695138076151714219494667847032205596098904529725899131678332701620853598668780042940892337503059705131357403709544852544180550932322033250848525237920048049111818667205250823326148347370417948171003070400560601379123135324727989713918351907097781592939255230598957844166689266516816723543509561525315269907956007696620377325399708362158472427747548397638380473606934255866840735012482578347189448017075539061703958512289264476061442800684994610431430551459702867331146567949690579633710150952393594386801489428725648626636062977548734236226576236587617614026016830873205176023708411719656549984543243179196536289805819140287535382990467149551752659032396074624831779119855003769155613285611178226426235116252067078343993786505253177153101033250383458908432082901161964210296461098861445338018763655180480987593211295407151587445162926762081803513165679015271054436757335021300281845301871624176540492236935066558300209338482705573247902342000867037917391400099388007469560004531525822490496357588754365927332252231395013795666713087706362910597603832821036475169480716171848469917095917032637379480982554768476050699005240502959106517850388417982233410446054513516133605427483529152145806342049385243861155093019365987399782139034615886029343084131564141258099067149680124824064179744632581809416903575584000560192085441509540170390710388885991473416553232370487339485712285635123908161768636211296354208946619775048288681265661794513943123129218127915296179680369123781782846098619611110138225337509456159247672299729078963454538859832910761484160837801498213319877872348758640444266708884446208143791676402161189511917004219595159307812633138211867863437570794801335673833083976002628221002080241518692711866630373147331305394684605972379735173555275018227031978257865461475992752539188486075880433668844646758593487097512825922523593334676203361621138326620546192967060116602974632950902496954926123380066858576461587855508461966939102176197926807373530512082654427319987631373995164949023552300373088170902542008180008551714421880480458982814100646186665301538936830348589579372612718363793806352611654678048888076679915204761408387460778768061854227214660159584019030684164193709963942685423088787653762979318377829416059021536399392251965747872277967975733287830646523637388052382468406386625597754119594722666928959194367307028239989790656998675610465393383590699960972028452912397864667979174929449124210529984875342801212960743082069778906240613558376547929169785149136720615864034302292888188497066682223686663177492324066384397367805680697756510118798740506025447334763421832865017031631132874016977669268379046624422703345082841826543766154283738424306156308932613460759136056880743359133110295420679607769533475623356874912615370870537712237452778724476500794726025599107931126116423826083254190091372532216472721500252216560495418579822834261017180796567920048022789556694778535315121624858108671772167824931004310990503315633088725943981956149516219071525120661820893658474460507476652605329908773697295511635999867800607708504617990701664770229470807863257139095749042361694546666325848612552252202295720048245380329512854393574830218087987822078264112387614128788448769602113819909552398289462599958842327309926267415594720272311860761713380581440667125709997271648824828601808612619282459532030046642114369314001256115814898655266980360676868368786458137016331554313122017729833429000557387086235892331807329184789207751071272246133444270325743853454244899131405616483277912490099810326226374665584933391585297328936397862463886946440648274221778280721983629570851615364235091599920064370938495462130616822612818149053920277473780223637325850126656071731681540016569328403635614512753257705576542066922905842506982003311132740424229326930885967210726811439358475577028926745634480175464139914675890622352353568712362585049108304786080733748937135099319157564281848950745299989137237393564318854553331227733606357020439273758940080921730279823810950624462108043218704322234305523825323001311008001967023891992590733164353365713212023031588976842595673571718461683054968199963598768067858314878270221917078713475507335484558566912947876837926292341049925833684742978051786914972765226882754738493144487078930772134868764446105146758085536829264623324187761067518106081203598687013974776000456600027094016869668124292719013651685787993179952321644922433861071764331723680265872829378269251999333932222712617070745044628310040841857527219539692092403170746900195545585347906696349100723924137029176734391640748965870037183997020000260225520310277009952318561206115497568705514813861743328378765594203061695351185703187157765339441434193140796646502796887083101243780914251686980933326176494793129585170152801776314188647588999462491224046750289027232927064953950437964790288053892937698120966502572030147374579804165798022008625993677265967956434687476363373872968832620829036807592674078914748104480408721887696017860916811541469745108964259236387295345244512548743520653444598075560298399731708399325087936555585456948305995065003407097947893995596636491182655627272388545086738327199865456575412674670597633042419984044752983806862119954359024916481125350032610457152334366750087109823890381344590225594377017043628629427779236513642942120389018085727252901877257420371989151932090996364292203778211066225092487823191472893708810143322700176685434701528487871019942280169826339317683823045937829469242128719502577550116670082195716212184261038448880713338200089535502858639789140955456929658111824741063026697588982699659497427027671681475701582349245757309200830419342505356493202766254460932708801617698399822136871847682750224273694567649765270067500936057132470206888022722102800368159504582884900436338196779519518217958354209046365157898742489514565124716957022923707764140189529452386247146184005625695189398249187262001130613310263660027882429745220257361828568719034674612224594277200764638713260766139956716027159256362477401565497339972823780148815611873346781503890584097925978922206365028053071339731054077341184139395163529148262917882009754319884962163489775816647459201303551117083740418237417612712157235606964524381034879783761075621078240231780053700996792997689919257503730913069915034406474161114063486650828479146158570999370030597046301179361684318115889738828303052142708170484483440243475416203921096541948019734401024399551366775235257665465058392098452924270255994506537251554669626407974992344623293109709158196941785273912657857864356863932533143078291140441386142102901989173097696794820860966785515141293707652786269171465174399230555461090186884174737210493272137471876402209323764660920622579779265775706041492368466839006263175147639637583983722823820409384918824737599208936598567713083093414492346584124276585446270051686120285518464168241996377003303946668249214512070204458921240964230174921655863682988089839425843777922248238119135678436901819907283084590586145409724653022317368237106785785427160799830079129265931104463679875047336266334873502289942942786036172739141919421001484704087532657843962039721129455868058215633835643252384172450830059778266404998232560007418880521953760473279102830510222957846677449332648081310201183958873969876367926121575494513841370011482399474878434816076916927201004115935485461634178521216912186464204794424603187717034738145520331120872864539517274476794481025382507006645944769895686416490472064877921826902480793487117495517286199135923784008213890265277801002706328377863734606345486733835724339393366290441285512368524084570125440604350049697562303645667738290504101084745996010278937099617085221310022250402319331416533506655862090691553095367926329941485425954422425828038208085831219309816878438091721574188152833336232899326578045778062331351796659127650405568392622852695495607552800507809062639158548722478862473628986606133166632714113887308882846418226461147230664128118188861118108636884609954430621654920832772266915959227608738864263731335012193443414220762533841909798064021372665958174707722271295265964897031008595196709523450045793546490888733544128092186452922404293842699382870710666670142490202022475188541500878353044435466315740149787955443795033439140283527230209955548568578677482294222583972468561885169173941882841439998691458364363554799346431616716372111356751779435185832900057520393488219298369157926762714907388721742796644020663971245447395105867798512968074681569806300018313680043950122544435459659371197251939174833110498267940911702859454143074669409448543752443642820865932167560268694553213637204793492183631562350917175343559925772840845380133192302875445744853791530929514471652808905079497663412449521413404173761163318812134841727687626894045081488736397375105956404356423216638514677813581026141626569364945580534259032338394857946369446100892691720324922524251262602984255256235899374386322778989142517970520257100430304529803248949544829009058865668401683090197415967963009245099583323175735473753125313668626273406715911172281520864770616568173441727853812284453592735978815488743713537720836878031417025924784458082541099614096465916362988002430958041522828907037956836047387062067382581672093740069856238338072124892669872602543925224075550191978438285389414293499174165718539277299776778853169820832180597490315619073859148316245294137432855429066976468434202688774624700406597827044095502089751733507295602230695061312943130396115999501959113848073440116559236960731840632859788398788803926104962157412732391700042172938893526247695449394820989881257434494442004505938932357029689691851554165804672822980172585313272448444428129356455304768776487872323235735322692417605166125343346711498975268935842203060853258092491918527992075825316152488476237791075917876701879833545033924088596649391829536265704811442389344803514937886212634222939226130940937557094818302394685058195156161856416292824640933652938991877214342233417275908094636380301636870889339419517249572386408776848363772674430613983442520729128104419716200232578264440064830993927282977176353299020654415974148082495819730749118892416051707701881416696591357106113380415868955493749896316904591609882470314743771101425285155990244155616776094663628141037671859635754476767031937763686544185305345781478389202287734469001713465497299938133078380357750002171828825274122962174763956391492833875736856909082605636974687840942069489407178854343549554238810813675123710798363558862063384753527740503055596993095627702068521647270987704707183301752601865066715825142375054857660386324680815157716336031921718190881208996325579810014015304854911684483103762330974012103440118295965921178782710094774036377888127986147341390362494058038315771313770937635746088704386449404207877907608802894489935605507685985208202862607692312932945630595237933064496637910183391517494220984351192353117867471848691858766679148154411756614269413071343406977254579108233295023250355120438276847743998732259961361399145467764839247826288841471412734615922025170142652370299345751008961593871359942978606591401071155370419444611794442887832154385358770580053241335044870663453170736732851975060016755635782884433398037741132210290624527361589064019532753194754389628751717998526596444138010311968110446514990199386523860803540066817109246759357700842167749381345825339865410915404350659731295103724297164328730961984182338596598080414137156525366695682411277351122737806894621522336222760648110878607746151690055316657216440206080181310568430480396524189763774575827969656139463285901861883373993225063641015621171432100434480651898708762169222782817964014904086787784073299890358738133057447023195744295157123146041683787950989638139373068626837841396776667180804533811808012643908820693556910335016981688596497633814264100760813726077804030663661659248798471367801656125386090275831486149017169228285895586523635294321604648072004660918469589074855015755021756350180998926816362507165636551302498908970895625749820001817314548450564344178296180472209847156366151640534164401100528955224440078910755318808539147303906362296084081049300363900888365799791600054948669669493621549209059100969297579571306070317302389390840280119782077232963743336412457011041086782600073685314650020933623959005302226601626113666889801334743644615028327691179656250972584296223653899729737628171599073677141169897872872977999140817691530425033248670065836756105091903835860761344354892271622702082981701492640006459745523604232149768094090790896508682339147235626964960611235187034840378468949251393481611077505634563869204199951174922016153018021831219429823752757945990523832301475401679556931836901667628391042806219992032243502247587768276818534904286891544806154931966686180736739924522005401595575774758058513494932611975160167203876770108795185668299955112200529616037922956463361405129406587448299796016806341092268479516840832096265803964490887148621252680554640360991129274795864195455421085080698847893603509629427751957642786027303488114164510012744023030416907933541160568199286211037049435853319138025586269203181378207610705216604858578762135385192996068344692993451218137139262474052882402490575569024889370368928921827933188714680360130157320006531247898449218966839380876273612261967019038168802208713863995064070255468282945989668790439356638185677778415479360752018821514652357627330416975062201919612242033095439745201277884807004839306887145669805535847173057002025555095342692270382201160419756336753469927526641022004682258199591684813529934509138863473715670612982830085967837097598629996013912737391669870000922876981548165900041796335065668752044682592976817725272613147198636595072588390686674473544817363818144255868019339289157775298071788279222714318124544571439200591335405780911947884673891366412172040004263468720340450823415420792913617744169885843848496564615158829025554710824853246388254868111651542794045564146883086917892183690592551292478238139986137239799455879478229780686061252355881519108474797748439752564860693826778841710419953953035274079348348747665300319379395719667861482538190944350706100122868388694227942621422280021522852598569567576030964874065608853763842776142655774286744840208133678749501463423867303309673873653093998338139920142522839357566145494262548179233371936621476649970706912816203439027861414260498577382107606172125430436082694804089963573208823073331801083446516152924470782419816056517880518001481880615917298706201877569272030667030156073709238500139923776269746809099140452940345857016490825418757649106318725849980836947339361867157893003361974093574034603765139471197497844029418401509489058127367840048750581323111307966703700115878939836865702354682794769543308533498686923023837578052825502598867190592760006205597134927266955410748985412631152733204021221201019320801994045463437499483164281850633661670719333347716858266471430317971119893855707608638863769606114025627452452774534291196598761790270896059328420683667365695485380343533544957138400360942707486923726343506945573928623397824376163169167981534570859769967346650988252129174355145774794673941953565077016458914514908487543079237554176165403502406503854293477436804681832506552662309621524239267149355514270917274270032213766572020711926810532554672757599140655178709453004696006251045575927163183302798724283539148000478091483270862039160592062000919326286322259040760762469020212178566872574609194328868401049572224230156742162233973871306604189550305188392869964880109983914953756423060239853045069745345869484175680174535100792004740485258217047257090333314652405085545696384636140645886381582838745156093826273840853464721977818573530571369541300802638698107340519464222900562395936905755547300469514930149691167702663231959276071036183912493309227468002137077177460232569288292365546176178223581153669462901527171433945979201193044097582074964641278377981361699537071663908179038966160266924724525945671464490551111485296606965610826764871018629985923651402389941786101863711117444905798499707816531317141974952328525080629652917539442425246416383460373681953272338743317559566670557018378988123211256915433509922057722724158583526956476621617867149504261953607331148823778154064547298767712653975718467456506174899760716828622371188775192724630273302800984837542991865816130035052109830144980995250669432364229722575572962881889345934913616146159827299844313299089686166357371704693068053975499267890438194247528086902681621388949317999961198398122758187552568344754950248809942739663254299704695438352570993922961869174210811351280304940850163498092233394485105415375578815588511655691543053603646130407720944757476193013338439887957611988920735423907592175241912380594184265301019058118128598247207761045630929260290790090866699951227222416527721364658019610481476763844157316257264436248717799877977647608922736525843914213365075915180810147722425587479281461314461254420971003118590799373193327835025682617852280944227892508530456298467240295032627990192421494084013215786155106463785654870359154689452244098579950161635350052630578752919726035706094072661034962930051840400186998929248712940851870519944244382808715731048562789100595279676484420813674734058397248176750993601210501832671426815479527177964646617159699251614765720206012735659959514278137526559816726166929844634663056829481040883111169429442755082980855133357916594777382797794365321870373678929177548439193607305565933675154582979569119399068864038718795116278121908833047332888253197316998767356305742920771475233347914366194320834254053478435119833098620255311650892391316614948002150854743545457250020020873839695651193376069578891606149700813430132067668309608409610179828643571442400551129906403091606692966029570600167445446601012890059726786406686350607792186514380955993041296693715768546189602873124769835667059089122339437227624679027587633668208023887402170566368953588286011855792621269059989307998344714710603996454071118225369411724961009254146917201841088817246971108178148342052027175151217517746594137673835197219925121966749539679779963451478666641414964521403471625318331516291966850702707405793122795090420642177757106824831408929043376846722406707762086391846297095159872779148242150708605963651982491079096654370959768321290247209909807624061745829891516773096044744083737825294979374350906084627258549015425886419527833737112433928922281026331830100036452858272464265252672741423159524631255860655127446318530577081431985152354587769817681674258548351967494204324536955295939854008977229324643505610962026164154747350402769085040834055732363738034081446588823925256492603335009427365451584379549066158427581043416161382424180420948669406250639671836139265295683784951751456288970183730325303497594903316908756866386648442704290313649376897786525348145450715371524471625095162150568081802263073940283020283036728818743001750958210135089519842793602297626630791106105496953608058860223371488710147558443030429717524235478788436356408489822321496970195040904308799810795041335670652495069572177268830995040100386050821498479629644923320952262448106493310618400139246096643971427648479374454399677385724397077584032837982008650675281708187055260550719399346551758911200792628982890354201940037289828780705537130449034561186013420263962948135482783733788891626100718128168048210490956777217147949213659063094890390631543886754055082136505000076289939812353196618759170063089793579223547180506390104249148775276103062830541939079935534623723857391319098657054870692137479407394556762486266461399857707964131076975973338642225520969639236180316196074631051451259009653597627300852625933036434986904857507695747402885325664061476299072471054072966090687058671897744917271840031157876907013132461293914260274085924608835364366105471787106319019526282221639543651108854125053311190710412998242791591517946318935041788074664699372935232782503515536645180664403254169771705303354866562642688961817014166086029891361409089426030995296371581372451739577295221146756318018139240454364525247828012393091434363014343871081878639788832343399103283440604428789900634852782487312078177305776088804946725222659453951326633797196882397175099949081591807410456157647865816835111112617204169119698198259639374921252744290649646006470876194196834296111311216192698703848934400441011877305771814081375515633555776920363661171297357616293245344086327914551581938200524184321604981968750332237129567316304971532981794493968180803659630714412726704726122426658679205435417139722686370474997189301311439016929659032281303601070466694488923324670567198839895568431366662157905664104336985973744183210052040525259408095931821158779676046649155406848114329700040089009804706527877356400790683331218610717737391966097688406468302379480017465190317624324979858000152565443765948728493047671835758198377437273732234492872758537084371315305754370906897195019601821576533678948395383627019826086298458522590694451070279867960572053714262033557497008509843926117754366940857716027011784302600425969751180673590026975307008789346596954156086607725725522004661497547275749702301424367344712763029849848607004531311858226744917398198063809339499970666791400934437468233766376188013086347771417144709285436230635707302590083348687518037252507538768461849976584548178493049623845374431420146950237049945529322171651196449152339360304303362028038982230846326243333466594466457476602085953609703470601124341224793320419470851315533722788509205109200415416477326264291581723876556575853391545054105361328280739377574113853395415598320832732475674418928210263959561377560556579530446254484351273129981221815189668605491606202938536365170323135024357792146420931090638121022645338896692577631481428478394035372165871742155641877515855381908521801656196745555935363828684127390553268286858731101674311268067640483921986975487879550583076556242238112886403122300388015953443318636733982196922843579069794872101210556747165263239261855989793306702192421868616717626202467804575311355526610872143343149720000951830622795649296501031143406328734487526967123108542821435881606060855912576870079557706197848720923109478077306251405831123632542259553977953670710482975230380196978182750069458787388451668043902388347537211897437458763401766068998738156701430757259365671532074507140336824077153596585606360942291109328401385681178149760017293544798838466519503953395664373543230417141176175913948289502204199321841533447427178889978323411060472762363662518965392955100805562458535986418620973326628159552008673594418817963226883066430796091682499158785452532158682414681929214218929532592046332676378780571827587278298943887361743833512843674276808578002823131342406321463504983292835159204912388864978685589539905198131722328179676072435947710931052711721408457068524955864878039463016526634007744605377852748021049497854355742175625433397006249789799693897083190216934428885444472995834949945659026960401484284781132331412142686353055918415270175788111647083762178809118530783893479469752135962309679954818565873322165217779882901412444979851289129809949195520127946773788440919908674134008323707233772988406960193863354314463229154402361497953179110255233415067157348961885198693568415951896373201732745650984301922845030001581556825977218764455498422074491878489848970505409312388566725735098792777692264645287107729512018990607334217108899918142775834157449502048982147561609017922225821118395633742701597058904373665339879163124661326663659964736987687891555408535537101781966437364068811735722212018885313234086049198363699320800818062854425881004036926296310274153866200221404051992783182794392010364898791973155472985314713000706129528023015864285369238862254886303297736111558954453550668299998024230659118654979797057987221465611087902912053002793785027836178594021475699791046701652497383685279235180999481267447353118721636558185719366288342683293337671725176132248263834578529944880635289026972403708542380120479243992096144303307198541449037119190764266846871552793085573907182060478666995135784446324316986078153807803067490289427225062369047897913709947360741581154453273574878623965570000670498432210486497553214343896991565378105792709088975199187176789490289742773280614711356389874747523997474325515261142287466909009372343905756437971492084073873542216056127881320597917366560538468474933409696774396986905357776624009535798267656629958779161168088229954521497807702500286440638846910906623233191672842693207699020103224045688092207343260545408697278505361586490182330592446515341259884175209156575029935713563577234277590358468228856430541179218845939467379014229137868001903263105366635772402137798371337538006585512458091403890598751765200199414969841077254086533983364314088939421233177111928085491560482417323961238404205546213733752497778008167511613720014975771878506751198673838408353799997048614565746566306394584116884415013388541616621776518770143589768901190164129516122870986698182216173206211499847061557600581214634608362924782837814276164907594242557353023915887977213751085043157387442150098611474761949830830092508009302981510853903069195143581591958057351652368721951500350330536363651744369044939608297055761965744696993077910435828824903073818649297008671247719209253195259031248715157159934557073469901649912142303464950482491965967268917810622854321499160703819827835324691297192372648404685914795307858083103659678731100160812772744535161908963384908869836430218255574818155905742561851820799456021910188697038545348415820022229427597824302157277759074256898736345749351572712036510107582952044379207301237491546881731009691606843069574388453597014224377233714413497566774101194406909891096407533999542054292259990297755796307319457820191722721438190325777217631614776860783584979417470448999598201279030063830544712767690616783687448700578345067001061889500486231462252130682975594280447792314092665275010451429819888145241217690679142206184421251169710469753882636045867294202510764717171268022571551232335514870008789597016835006958877920703509364948653042623030491993293521632278134592967908944797455872149566344012013119662234008924558472360965406888804071994138740967964894179324326890020645362969927712208225123762500450653157251857623976626570784487264006465138203038019052054280101110273778990258379707958276290063407495100159702140382615049955131075461367962265472208003295416918716913217164646260641011330749420123878789275102063829424862620733392628816160174047044072316656375285837118985021533465938993836922481266579700524189541643714020217766145569662998564009116086976759713517690973789965579711898702718711042781466004070425795005502322915696285354512843925049861374087872590238700050181061952401271190018921852293638424920552498874891750072035273159362722072894184545654152326630987716214065024636492792598869077041492229397869470356060222694961405424020284777270574255523448533287786182661079944905893635322723833947298894911911171477906826999963158873727248009363488293623948423973626953515140741300644358399884400401703172852715850454325499022302893792467974214143794928627556521276586775908456577689547855062657557612737967286559738778769766388080454896016537051588144960418645789154675420680256213175732888787058222208202508735372279336025064650460057161701993870938440423325938543473347870911809417065659351824347590951016039986065908896995695342167738101690755719078885532628911365346543894882994657670789374062624231343371696217175255054591304114686719212421928120307047746828966428409623846663854920480191806041527269630634803654525693656016801791604814116691755606010910001113611917615423125175590458503174603734523371692550372523370813367139436135263112599045114931029068924499148568345911003796289119577425430118189594971109111758321494750428267400169706308740264182271739886579110639670216559047164721042647064686725358092042465705864990993953025760723639244162144776039007375590747621414459015932297098547628641880916740717632253089577050760345494698557522028998984046918528757926016328856228755583125688973858027173999170550504698572290076398039863851297961949295941967283232310313366274933249572729248304848356806375996994536929432216374329915812742934123000559196313484787870360808342125861801833398030856991200674214034944193035752355649987205449469379184016544314797307686743743639981740235651124039687116694481107574676950629683294934153494570193291541467894550078535252197055747058828817335315829302749819964762625280585224461612432308613912989463756378438203099806698323490318702580946173820818303781893105562582390636662793310738758300655478775040581730751868792740811920876070813928341696609243206936486403229774778585836154591796618504987399415686863208405596677397715946491723599178829445113700255665286018544284267856645047492708862708989139065114986281538400137558916492834371915994148913270374973381294123003211120141714198129230600134856372096251794576796441177945052370533481673504956403262456764166811407400407841719338869316439431596264640720765357684831694693931980727675056871715046591492092206090585058011137771922836771860088664661049962878292775794924558831429002261070894865566872114080998887917169502477512497998571146073499590699124577895573554735351673910156339298170986394662430002040900026550321145778308492159859730346003625247576297589915952700118689168848877467608648297913714760080269203416695481851217108239870541901693680493905224455434094254791024899365880072340498607026128382436435058427401791342602059108138944476863240282221873540216292720044474314070997164644267177899087959142483465632095606208785005583071046102758121019431514245787722852860523911047090493087514851010903427984084917964834841773006345484767474209070081636159611520976478829350138580136677518555892596235449923927923767972778734769222271149560476450456466702295493614823270892757521608043289069043641640782043380736902311045089272520660354241604646948175871184921196861280815862378949262854411315008814631874426947842923805422536347787134147261572198455988031901149321496917037330726427248909986277245844014286530291958899723370615485234010612950833531612569007448588102658955951497910806025048174516985121768014929490142786042992176471778019977037190507099872725841822886148055872097541702526774071441998514783234174491827440852050441048652691596785144826440504391971432675721059158395116230530518587669486068544637820886873285742807111858669940021444374462606952026381768466759890103716194349710105190775001580280860644796341949575483390925409047370336148125285901459155105908579466984659316224519257513833755715101247273926313631858837893143087589429456306214273341473275893218818263083683679139385365718110074170039902898177532844807883531202759924619745277597695555280575946320438435139735025333791385493982705945145412979564077270187150504365418624984862266958627024674893438073503143824666565557583902317624555769797037098509498236000016454636290824995619880051823855884136444087971951440875886746875507940280809211661206560958135360739832043333963418373340640526375323465904664689963757812063539409579789107000208074080029278058042820620039526521779136801000268523727377459166894299912689634931402471750965735263745603929901481996850862328066787096772015736029025102520905742620288189086774642772960281148478565233435070260078788416055271448317433441853357618645403189661890524851086483603792943970357192248165648132459136218985449364147844686121484791553787193876790637707804982085411142992578045489520499804354105386268277158014581867589685351249478687615306863206177466192247039301570104198220302785943900677255011521327136141213015973762347855949674564016061250091493157742758814249813331596675607419277304490139209300525218110067604102192813098833814785891192444246598903908339479806110064037918090492319974218086248183565231498255358415335893932694632708732616595656424750821974935454998793648048983428943062972883295301029985892079130229482128826978229396022675891633128150543035591905487768164174316660941396971192136575692500643353403341701363595525620774706475014860912806314376894174645724048470677622778021090275143483437044782948345794894687044172046243556319250465559981316406805807103025584423770734638101062518780583813911293341164380043546184125617494315156579419878620955589654901987154661104679609852993036535352663562808273369541764881648780365560677151887580057829299241119245601224519896026539045821652987779916502006040650908469285099940922631478843329316054699782943049592528892096338216841493801648160553283648675757990516094827880027175840827349441533564148069483856768980189617179877648810852239158457473934036162846115854660550686376334736106171524196655737110845826797543565788157225028516494608752507293843468205768219171627819792815202951542213876001775751846873494435073929187206819062524354028266399875064289731478314919820071877227115924107043981010222411526828093840380616759026051218531550968334610953934054330281643497661037358910180000202646452601699743957246370045877967880202081282456923454489453568111089422130763027687871620482880826314581277426428703425224651375133949627571684403090647085780175591136458030000938570483922675208148816605931347066639779758144707878622837996785642863209939668310413443528586352389271386317004257960319516648887050274001407398603903240216684966998000333397750151104167523881806612925517192248812010895392775382241428100896120599481803427052319934258419880300489399843941188648932406131558746339699635860055988076746527788013467118937910836486486315025124563507174071507454999345089584569439537678474127059071858960605518140281587466226660725862000370389340168102442071990361187014353798983666450472199742541154636694680237588544082625478797940924717034997520821936864105017070191556244446878261625184323540502037764076780127062695049302635245753571380482152564927791813361899427235498541140688814197249572823213571945542951816569421405158016987523328735078559223300796576222047795770390239221919104878133175426574510698703996126142411303053904782897268849188095368770883061081051760351524009144618258421380317866090178415058633556922102098418465358699676637207324979751355311074432523121117928382185693432410010065537680570834369717795224758578500366209903234208014413609982200640670406472833461534440915881097228283842510181542042174909910701004213003296077802690439203082024310720185584984129145247421005527459711615129415096996089650471321895767679496265866735074479258418698641768984096140712205030738410419583982012575220192107096573818260290771958139399330755816172254512273448723649584703434101811055555638367082280266947281767879145986724899105276195644889716194578029690150844684961503396304089907633623110014635351873256813507070622562925962122515611233359810615866729470920503006393971471205945177199471385874350881810663817162272266198221770674617557823859384630861520380791944600358962336690239989562362153861867112827443351360929067868191475169316116876207628377251072123928647705413474597695527318754624033371096861314497579237263521932243736872028735025672398485407258797772023640203702633128011935428201070076068415799377592191843530192840658281961130977345913291710745443201769186506813609867802299988243621698709826047109067563942767316008451928057662803702025505847843084522730006355508792551915505350145036616524526426268828106539053028676781545743633560257360657602748025699634721918143555366083688175260419006340844842202658284422549535661219259174463827233760941870277097060333462240570936040585254425217849572426381304109995156935135229290750372875833492414920696477399235001001498615238933363504524246054156493219889130266299724379464159166580990884800801812778074509465946008018183904012875613515534978519810261041840820134076197684944864846854099593399999669635963131748602405282270111682323371752287554224036346812624169579595718555567054138959597796741844619708021137805205609656088726885817065623237412344817851032051611789482450394335468445798940350762493304725520874323663932260017135973249288746127769040768501704540072592595207646285242723011976953832895261840427876996544137917779234615058509425110704065098683485763916009379258797297368398883953821692391421874115225865191124404944841853420947663266585817410719233452259515866293706414262756571123483625742449984617323175645804731066156770637891438189514881047126811168330260876541851592088164666080488967885198668075047257132662898727837143322161506941244157427599988027100527779604935033606939609977250592659645514932992964637005184795951658823307556665413593864239946763350554538716618644096186735000259905492581092305875185031602380384821836199928005719060079330282454415501657710473870687328994551891925202716686825219102621506860974589646121539284226977024704053467064274964606170523094957218121483964813733689014689802650518477727832593484457288034658188438715321595220403534167441050665708294560289865097621383320015170668067288835365620106658549596772960781045067210821747010458175018753917281254128334039910938330181756832651130678024404393832454471790365103433352782304820358580236245068967080846617006157300266499902042407600984207550672889524431402621973785400248738505885585977347892200359654147900051940487070057867971515712179291298633738372221628049727201452947549322989213596650021771759128546099394138109323451612808807652537293957817523465092544343654469234390461394509381444555519091384343316526970595070318406024411816521471378964679113572855867369215466859236639632992167606827465368246506469067074180589832064494447844467323606506911056615706841806707958389197904835813907160119180478525599194077776020252040029803583941114619600260253877471806487320381333175067597941759614489483094666220175744682248438777260547355530238327759149499838636014515732779787305024452485949494918914044638761882705213296267625665535083100581829565465776508953611246335262941083715091418623855368538362634235471364081636927090936909957643013665280754689198255725024276651029148658595197651714625511677854220689005520275031145261525430483886192226382059894669994148785704536765959328688083572812224540108276645122512338107850343855539362051865686273416693839024839270754180945458267179131795508424918104323670202504415459454532596202179974480863199855398310727635857120140860183192823299312067795075207367593914843666286854262988977483333528688345888066452349864666677491328236085780152065409101688994786008105048086947873837941412214701589379721892892351922954169858646452196660200814819078679944836392634985218110165923281042368764954746308205708862808606875938736249948113860524412830291673662087998274980983041679875919821355404605213610604539525029742419456210352144096740884788005945249172966664581417608184693245393695228974975397098114138991020172984347314358190695949001398802595349277074124187321400650152994201177858274223109679306048906240151547468135506420564591544543634679959643002963718350440078292349483096085562183471174285381516281084285729913828486087931727148058292254254584559347405345556746274610017640347014591935267067617812919561176495521976830929922133048823252616830226796572643840551723452841016649357880519522904159719481471088320733801726364757865985935679329394834582905272917150280423974825055595307982604315253817778507290399384842938232084724790193004141100950227717775448334557039469597790562897165452148184568156034322369464480404811085309919139314397554798609008296758033249518288674351452875528519421658123320720866253730032227206071427223441311420280581250526434547582502442327716025336681091310789639021526744374394461238092251536336901616995627274059100171060484371616568041706044708329169349795732337217449979522909718589880188419563483200468156682383421437215392064182009419639198705012913147197313539096266405590921376911731608596677923303437071134614622240154715834659189104243647768999224442018313819011615637876491529546120344655337567883003541244185493266437433518539069563951263674245160718677934473070851479850598028047412281543965790319375463229045769748791826113408994798446004547737641063503892441007603830747114571286950293892015783926677240324013313276410622121575450924536434970900968924717811370077919668264973794367631335176416453138041977990824597553703362704852091039882328427865507442407627691870768211473109624517186730874441468620184521623633697392282312391326553783583382456114115794741863754803443486630952159718589697584443249329587913112268655264914451220623669225826384923610293896549215298260534649848393427127933380830944805482420281593388444098089107122976399548041718438251586105596614245134063307800728600209213819572693843462724382993271874495524868374892270850450352172889678527297665957499832038713196112391386584683888122985500189570100290459311278983566605365544319586979900078316586173982796154857061996760824927907076100631957560708554466422920288073740597591402795705189154457492732661253039271845975072961363147755956907396996735908574821506132130163170761157869679997602594101586889496087347935132864701557747762225351063989316206709657106457501285558398108225583513714354873685752136215758927254939012713240195889664682883381456613281895761227345728819721229784243765310882430181313324492996977185689566603906851182622337517863478318345488252310500302511100035751459036927817257892050822170912197512230691573366179975361076178394256395300506781129274760341671989301565220078075703460661461165459640572474933953577619119059899194683460779388767396332212881517221125028609739737282322625598814138910224039881660838108051210443961304172394611103209260321055753105279451458926817655924804585816462600949929385605443375250116466303273073614003204264896393566659496186427197940184424009697570567356938201027511719469038614491865900370592026344965493380466458922184960849561673071917172451518927043006605804359566402197479651855333754317824778484910365283208754356913032952456197665876232868337642284186166630868280056737259659100412668866878509784087164307808265660190248132070543715469271081200625751004423843762524443462585131756504369793334618542344540279396803444056190259314462736592466218627718180963300182442729239881484545067612152580063571310952606190376424649390661385421049020289439595122992679255514176873126646537030147510154313199908733620293770690321092303580797175957033494658230821122292308922829824870726297645994301148856059947968815988367986501844327567536494265529951501482071635695675649157818833487646003003830562802457160405240657723173037486665638930893227012762970155869536080143750024367644249996052103543015350789549147043103793150919309725254902266897393866336928978742245520456597399530022005965705174069364601417187451866317938159558065157532170903998061411656045956334259616453487383686312767767298263580447124219876018111413314674785037489110238814399576565098914388346173406879696045030072190712723018429696343582112652130883592619367499196576531197875501423948503344391534725973739749167075299064737084400966836310443426170489216937552501390829618512125332459291946776296545229265114083547714958663299932935472204567574250590694191697810692530270655219863592507165608224842187370266423790927608596047032702324906142002361384062297051436126831407755172080985689924438003652948073995200633709045545399624646778954559430566581658966953933398254156755172187189414310561910609024125629181016201577488602533195193239350882848048339091729279122434608361131677637278587325822284275972539230854851934878452395616532665208056208851994479712644968024327649709560001568437397287903299485760054125714565214136038068125640352722855883686600323316550945766938202563976765141662977876124295118338278649597722127508640889991443527152626298714798023586755256065753672859829028681660510460700487453066613712337840192825373873437071954538411743572066112260159935865782134470154430241029588955222228380201575978694834199122976180791083412828462139820707868282907808256682555424687771736730596290104072816300131813973721890888132848896510643817341950137234383522302666939409447242749926096600098882118938482978445143269124209185518363821643413394364069055520030101126246942923172750313658205318842748441557113382164689905758743485008245377506931685635722144059010255733277141745290223501648868002615796857704273640331281069307428760960252142233540096797467163455237083532311485803918421280434574537070656653028706588629707548464986438213529135455982869348050037468885571828095655383139044269263119589305842165323031926631715296442178920923834080468037332166742996943677635715057525742223405808000450156739710594598320799718367679249171565741366492684977713740154785861823178697437261192257950332800797931086628341496834336607939402354187061005838273572010640410787005940992176998875389266432497614116669675405566485031130335613688508654041759827538294952196097753219963614487532691743963105650848015156923565362489750417220573370372900254513934455269333890654068746604278450673572234841715949081512952783437285985706365773769571101641003134029700636621143365139844710926490452773106906228338552276662600729855120935728651673976154595026339096299608172391463906952505038929700972713710301190510355096852674286376079799248232513335684538438362883827656374348238465315133837684136014907760168646295710635642155943135153401124420742808873985770340164578410232095406475996949623066850086623087378327724687498129494418111733165253975308582518456599551018328996447120599652333462874835351880600102445965698779005494730862421659066595143595084862134069649403030090576079607134490976974704047945298618972735172339233835970826219649322531012788989385054748626529816935461760290947923068437844356170780757662493496571316364807290097927815337052438636043858308503813777723614158719126074247995488842294567280871284326708515156384698034892860959463699799346370564817116635466091274486378369281584519209856807935449354435747039065795304138942852223505074500448215851342214394622800610546486225251665132751638606084080221722136685911132956462520341117728432320526300019819080774149216886297943740520066480418514901199300911005975254059356920461859550748381411082264035785390170157934739462208222376063209016455041899360646026428455029991801680631649820378063356317624373351336043395387270821763169996158977520559561003593366120630080614347196999361265756040982910496042907970500511678307384213285424387351520058717220738365351370559708603771328641015989788798410480760940956587141704333072850436842671324009639162903340704911405271172636905919314186550547544460066907435294271207423133085212004611711337688846004145902695874808512480675911483589784968991188589403306804723597490234841471998452826568701820358474500080800890016719743055389426835288372093900041890246655563184810820231730134185638968549183771131515793553659501201022963485288814631347616652060877378706153598111257482282077557114118339619966910549319128414207612304116453092503233597352297510033242929950483877072401943619033886128604598740656586837450386238177397605505672700332056872528739355931985381433479814216504460240021222264823231102799468640067590456689349433863621185574927589253026251871975036869896480764584129358827741638390930011933802111837198747027524384886352610279784016431903002542170916775557801170375432359010233611535575413660265713001461911361938932403601211474329119493824297084036488561379220836389958309197485961330738105968339290574491112933761822944201565066876756528960318237855543392556045020148742492704012375935025907211018178304527921808832616111262272909462526537481203568915629924960430300925320626258756179109576823450701228022345558560950348064847713611913439430162759461298060174707197004119322818065573450062475747968831123910602341607632965625169603246415065365896750778731807823627413996862757570743159110076124880794005896439204236920469530129929256887541492614766136543902841065447732554276341739099772817788828526727412494413584653541059188969350112695193511469453232234058505261571245677051621931548239587955599826295704987624604302236193825593635300317773345585905838346989568073820425028073740540621091607534450743378318517911528984354180560531167849066781985910554622533108073984777138801934636760877809911154516974618921099648369713955097379750303519965596897343469698608640154953812297897891483566552372440010386219047433771806765357746357206332251809277618696894880648809062565862098108412909898190686191774006825511598144634965635587299403864211110677345054010575060163795543719329650706127014178615602499662995936339135246785836947643514408585085850891041468833581225068352833679942194587774861339104684511026586944134919719540347021035979821034419393046542080758006722712402538155236229738428138200265364167888500237723360750192845924814366978898286092567258203778196686248107877493111074828702587013546842173783269120511375680751789944642279018873001907902265725642589490269337913854498669898201645951322021182531420298403028375823629805512048828658591477635772178972204513914139478536895466788122125854262271965169169263237197085890411763256615088437893121224822298856684107494502289587823121747984719418116885934158587017471183535547101443371484295205593846119612065178443560628993411923928256219389368356819480719007765818611599051757081651079574080039891160743175204449047946657162636606327540419575583909084717422307724000265609798501836875213300574829981590221004020294365959406273837909146778570561438531907563012941127065442724443124989594451869800906457238738215610300978860360206803300046113595051204058352914509553256188194689995202304708919101462548192470608104769105711729367016409488091093530667920868651442135027424316293347686450982634966808145604027639782142269108204099380333354695790044771316822401115421025079165010202284337891097114902760430388851670372447962941532936433031916671297465247146629879518550923313477491501954832964630305197812953025480180080245532934519071088835674348854792428373156348124291274629883735788274821372922070357029534338435841296278007076092014394187005223154897978580944582150297210785129475794830134942100831811932929274485692937423496651654045916262201458029767588459282122640847168468149307176721379907509413478057100005832463406397019929318346703534939942169054565307399935707757733128915411541590726432252616056482674234158396331968266838788962493030706115645132553462390983711019946353743262526014717046240315341323156464702628774860126927283389583594419921730624326400793496964025495128346606921503521379875810216644560871577851802496830064599774492680372656124993801236244806484559333931430043512559746687441400005604355442597388706506539564943101479529937717707911130026711547500390226161464768923108429409710327172031027350364335660834289929575852146224114853702061633875275842903615981641818220131237450572620675695903101775675547440853258925174384904647547892610694254323721690199080058813075449686600217352157132874169511101912892420213517951261702035645432155609105963494370698660024833271243764182030213919644647710543056221476149961048749979921839262477290313202042936620344661568185843587842145178601236788354258435994450840230506274349857551038141748687572049304176666744110328857579631741716407731661777111984542064438799754534064479901863122328628836985643223660469314085311723127849841105325986863968273039393687435149242960247784272460138466712616513628407364716330815786299189096325703949986092391668787838752120298469021415054740002312457868837313046343273183812703928846253001228099424222794252266946275090729499445565815221428667551810651013015017331893586554567905711965107840177712188202541391087808401667243575616671384205861950500859274491004002970713909879788644656408915503969521147305960067027087944451795358106005606228149048556816039718081399277625914459108275208197445256464508823563566014998168319989877117634112600599513122958551809658882408895324982241719345750386635773724083847827835817607798171421109661889192404074084067518024952413716881929878410659092702636822816805692779818116315271047601373152718961798350229895919462711387154834494058797335294730000839561158553780148990975853293564716394422761403041851416092723908439160207924917994429294971589138926280703111585952304056299667440896679374472977723980278430646984721802097407525337860082472972740798150975621148701788692936488835256171380136569066059743655097854692107552533053882224483206092447574994626889093961382160029175760886966146266809379866546756554113305869009118882930351712332794790503187237573301300265178901857807451170124031371015042682349419365900381888747672214290248546128622159330793509169872215622054064268720921797879772414221988786685669134922636347432495754553303681009349106114590808463056434300504343699166787681647937429880605363343182018223435329320614230762580565543429153891651552775486269112922768059033008956129558460695295250372569369321500750610013794687914489822447933663733314706959532329543108039203228959672433047318951767659651059960337868432970819505949385473090584020110406889669890225016634458466873083287769982421925522362187542953747842038005105385814561935573497241920251278826436775918975169150164993056710068387836052549571915317434591651729975208732205721607711647577711876289363012271781229259608680350983979941782027959907766574008526235930973740730494828730373814283483253960637280661274864489142328007900458946133752199986965126043918359722308235351167141854989441080654155742499069070385219633906858383707637758689955083734839697196778465634374366589264987290797550617350121759400281440360708849069234678279338800439578004600968296910463554804396457246428695485222349397049497421653518143141784954033080699974102569376709539964517540103619867662104483832925523591536405664756680340727489508726094023019560296471796471034104050530881386520677739461398727223105456978870709064994741849798306507251940531774433746790567720093826639757688447116034855259319397643385988469941400068707067680770541366971024357891923070523410277596285104129357115370040562514886811810552265904947742622074194876369662987718488200988528461204287294861811023631368642895016177217174327213693721870386231027549691218827985039558681387895397647813343596177859641414285329513426236780136974777539550098146751669221494888332805961397356879195127803794131308179053293113218840240691056039814597632063347198815927725500269897162545571124323898808996194993180954161194224294113136342792115129263591477821456475272226992169825321719058954218202512870303188812104361273091176150674953421741840972975518485749920152110616717352335788336942752060338034277336236039477456629679057295149274311417624136007241708168917037021220967223793744513426123507839839739042046617989500425156318525823374520060790627477786477351950126455501932296920020452773804816997392274319117484291384410354049277390618801108606217146149981652379423432737839592719345747929618877074591478516565788929585019767906993749806432741897968628040291821083169566061699956883860408407573844342537186379764322638386811777019606898940859710055648353945670069413599549461933078181743279445464847844058822893306819266218660201984848984045374705724818262652345784747753608569953171006774788657860928171689358170595451998254278202454264306066421428365291275806686683131597686454549941110708326489515512667115985200417851606281969020040998609126637240797940401289607716011511845593716647127049020641937152466780807073667581550429780480402384847821063447212389612456860262840418446924651447033455238068249869023226578755908181033341790913137866705784413694949523770456896680416909695551404994965150688285635556361026806518561580944372131396485220233956566202982718613543787828013219991947652684766092703084574924031525306193192531888921715192356313420598593570034248495798104151482018350972076561560224859467378865948129182343662671286546378696738818508388359483281788784782539602241552516029670899462622089202229503576317478506904044177644873362590867227536293059766844565162223659677349682412797403665523006540413266047344796676049944049321282886630189975545339894618260114472632593975027698881910558514899730112620415910763211218128772969181760569321573761693079216610933485150951691721028420022104412944561278919570839387267519758038526395624639043114974206993260779796784856716932522282853731601031757209094596234670305303406766673564560123448624615069033189478516247867603214304843173231689104541989585409673315801092977744583072020348751162796516171614805281350472863291687907490605394115656989542138624226716184873907286867210453287001338067270018684326289122320094382464034887699676727690853982625634455365143263877521104661445529459014609971300597729029144320892930931601469290758571074282856765401885887276083302765944992550835670605688712086459604187837409534141558978097573793048812405375572971068389401894321356433347405311091236694565519914352855074809017197827599965306074665438072531116506304152188222076558413126610734006184121661015870724612601142381150045220843782811896698666422337252017526688681985766798529802790150242810243072627155006229060063562284705726009113108459915281761768717343434671772540798388721766942634972442495030068448870907409607829529307647902781233007810990944600096975681853803740844981061179007935662365047894915895399626259815916215549448639377232493726996354795029806549264115868436765803568441054448525089024172484348530140390611630230214411009908055889219975462718049953295366977451857613879367657247766183191277888240653373123456403120878656684955073083248727408071483626257347758231153250488735691014773159607058607259105191109137810994741089386292385307031045589486211661526123813129504086815021591868082673509733712481912332876048216217075838199151504158785382927854598538980822296425686625629004037689002946325904649504741720996042142969620493599342070417584816470388743573221400102458863179644776755798367005766030862510804775720230690975650688936226379155403668510169192096740693778154049949442013976439988810993999189584346530816618686152928612073537684811731346726797405389204140747307882297168749961696972951438059861069145443122877618372700260106154114515050737893283008495055211171204661477992502389051289384044080141169045159321294378935531614779535257511683202034208128180115259477172819020364448126561648007636166737924401531117145016368826178907653321073980056683263135748513167090262371045961195596622138926784501114202782284162676039019541960101992440482001930099268634681473356937852021267398235216901693989852008880321786751238762223602292101379194563474193435892972789199004662805749703258960537821222720797193698836101199654551419456962470484916568622879790351152922840579834163367545166833542217118964014359246961921530417113375687508698668607917986358895134717811986554502484099616365315538641170026349474737758468169339452808691938353191153218135333649496009037553369700934774098829005994580423784953312502903102874796404587578128141033137536301994162404147332144359081704479952969376031276447385310453930784066831971840460377745665203719332833117405360425671220899620245728661703127797335733821973918590365450359368951585537280830440732238599279811948367014786827886352772057756960143054112700849792026647452171869505811575907259361215660478611570011666871017717762856897561459683020747991607664038326983386052444046274885893237451149414555773619135005000882469667296588523698838121183252042586338007986767053761299870389795834421163157961245961671599799494111773924356514900138446973515144149901563679753471030712618289520665973471098821354865701857295418824142185790287344056903857751632386407921933562633179684866847410385786368084396480718272996564556754230626268247728910967818271270981207986056032480613822208093114237259790319966587891585149068720143531310560442568242573490969735349058760670207661052837659693931248196904572959097874014312439953997553785694707463504637363497659526596314577891597439403794768354626526538942382796945702289535705126701819911351434586631482979391109621865826061634287264227690499621944230305598703621908506916588254482242190331416162962408614019900706773184580203025423540196099726869511368567075413720227146699465650601003041842122666507156542123492456782117385437850652781136359824710398977157388391286470601680416839975428369059001455696140416802256985846286434559274034371957602079972848335934235273451064004493226306219546399897630156427082999954889821139876599258784684923039948097630392577600098009421850708318448433703235464133525724314640494634539784238057556689000938709608072636281153364750465592644946079451946669469377437818802956993915145637165631922312362898594602390363212776121338990881378269190310936071409060181030380338890453806221560776089803479989631993064794672233773478557565512998146178316919629247679282523506997688732745369369094977798889767870681464951355265729779105075596145094778864173179968166673283289843232593565093883700970041636981936393257729104689023784660839183981073688178912084813239077977664610792562803414392367248330631543947394640377051471801685884236284662453706960433771149229389452636946974074783633280249784950337474172977433153503741466270825212523187835994175169433872530132366520136040044074550635506879868972844560220236283210446502543051130548399706230620506109813441021637393585770878738966161815529316429455421357648426619609015741462172475066115593305305821258215638826740523831584410982368228907690196855436876267527444325447436752488517483158412877221029935215230402822778378151671622469126020798469971254295279467362989329150556784048578258037416009783436474691533376354769860869110187663624177840986582061512723347920869081567742608261783122936134368912138046333156433509979375163306461362871456551037427036773265747058109826534701664537733248593950821834771191853869926714465776123828731274190163860845703151565338720311523233132412719493363892365990265940336681464435046905519513051451006525057589537400222713763373379337517276988304986156355827873695369955986672715025334076212247470794616604962351083748925112371234916658180561912586902419042703598607406509301693465435003017820812109011910769401532470927739714172910138838311229883561277466944623603385741089887451782182916395517446061854274137449794942378599487036858273549490378643446628479756151780705068555346382011085942499601078182439454729429156223194837909928455793579973911812226662871868956911649535329229604773512476821283539965510003355891320519815864785956476185064254450010036748830796582128450431384317117723433284400471945659930722666283393110993923610638594063586147494098922725629465075891015194067198586105422348198133244697644820945741702687212814567572020733128990637535193027195764135752236693813772207462579645398167877157693541363819044834092819473400103975017614856879349769632715183039363240818128480409258415013946405656583145441092050312710851034498093296091519939451392265434364794462977061562331486750395631750547793099037160676543889432960257777429918139080928016088866815865778921363692044873619562324542208432880119428006233095472335130221254192586726317239044494534046351468170632293856417172608562496167118410340796111935410567161569466528345101938316579454352583248218682227002244123225986771770603716680805044573535362697937996198114087424933830077160087185029527132101451648804566772269395068278117510428245809430397132823733036331098809075859422790476111733444135145849947360839443953299094085224331064031479804601392431309206629831914771013681902617042895587871789944208668455638197122432537995012863710860119328849859147161779841001068238157220644454576740797719780183433927371428074100364803371485889346297811241658106273383503546978371256242810786658532883172109855081209105371872827708062025153281887580622828452144650180381730380840638607223986095149443889819349684599046928250008840932197013226407012601672525137156024239956117429309349357378422701124400677747297461139592124736891896042726576307049970657861338026556419429219071285496337469398830207496321724732646517980393238747647011764736024565905967756714437078240249126084791935028629732554458151162121790386540380341552273021140769086953403860611882735570299691560785580871291956933975909585872177881912358847665864760947051601643843233255802722845737322191292628376094148752812914639111925874006429744855816701293810543299698563373797086212912007264710727467555993320485743553526507552676657445716930093340056281830612466155824646630409180546542846501106507322262799939014397887400540211073436617847353185015715493804092550165538462194821690722016454626784320370129311376032567910200736953624768847190958514904505740162270924621829081923477753731721870778945185998275854797324150198938893091750385969377097526994047599696745060607039480398927272808188971599955181044615948195811827098246661861629957596953539450188229034732764394659202143780793583692487627738037005590119447396970432383946384230202004194266105939002534549782776344027625521156216800260605099342728814708801229863709115172377834769606168178353887738655463184038065771522298551227013544716605182426716040788770819861316138212607083174027237902898253664658195679249590102609841314004952875600041315973561779674902204913916026064801895962386508647729010062416123615074956050000438373347302248963537307800748315495273056956318335102173580227461340939826062780339778179948798621212229494249912159151333682541805181130498890441574135503019426869211457769896996906838679151806041969137229034031582012297040495185664613736813495914294617890778170307744837718723925486991044335023106048357960556494157848108458651886418810205737216475082068664709753511592072786970741986884329749930149958286801947826614798459111463977813887734181311928625290051715268395473534819899255510203197844731022806941630170792331430355718105104608423121565911459688452494809775813916457161980598803068186044857942189323525852838076756062746777206509455932641306489006913662889196438392846099739250309618101191638655903927573139724200516918569600949394845402740249931665124642460883394767178507506261305432474653302213062120156411286430042191473035552783433540131492214177173441047519456791472053420816760127804996221741489654134364840727687837138067256086727565538409697917889417777150794164909166684269606369131912212230217448530954148626874852817237750494082941840401739387445981336747016607877862308812155650590718069848956401758989546474006501197346023106235629776954209895333660641154691611144218473446365507286439651630915672408960062308676833689712016248076268967910414978620349246069596086233572556425962471041871042927494893806077058855160913902283007336543784400462925787946067183417360420145624365480701325471507582934984592190697313096963325553456402717913217685947114414353569855485109611137746235910432528155617695756079480433542547240573225768351616992803660071935406407388051485099240544495356586566852383805057603332252393234732440098316919336131457758261563263880008386404157157848428242895333596613841713041506061727932196774388910498536431285102763036858032767438809906783507791116618798235683726391705204367182525384588488010221501647160959065033027932590037920127243599610504444846821449621048574965319617491645418673566205724323506817847380373217657269208979400188224925764365292373289714425634742123328981784214935121023291063311494049440261030767836480348704413589548761125260213375707023084696569784370197574674961818625089719896867844224138537887675768684866267820850614382191275998821335968584043883698808536620156946915484438660562209083888286079308273593750673559546693149477576708959737206500138019242306911779372458892741058623391765011878310723981059504767683271053726052768202857538908511550967179269200790527006892257717697666334760582988979478491082607424634875378721461262656440261858095888192654241332253828960615308574376789402038422246891908962286739303177714159288423423669666421635860615904232662755915979104400478775667996467067696859518485320090524787074477068737048417245453055173565049934586241323270280600749613361981917905065965610276886050262208961829418539223383376302453776293472635184680286393713366504670974913403717299127924462366489782565434477869120105423713305037901504495170727909646506083155665976462496510784644291203541495096730314859983524667213621464007909706336162554467153440186789189791988916862920804445674017514997796142021259128072035569391559042474030044120476929301806563342407669532810297280096289597539882250475799383932712926447043190932623782536170744800217521973222709333752557498068957359243427902714255841517257941810698449989088240609761224290151340385056356875349272912686086880927897123122540059296859345212700217094278313799571620455830779612155658196375114563168246145382307105262698571436387329186960486613347012875077953669042145995038965529177384027193634900862259474282243207306986151466381557255760125840771752187210112572211966979682393715669363793716582750088671966500500348764627257659236835480260539716699818047591808238810312426651356522956937642299326182272385475236127034570426298512576875992798859351830225341050248189331342961131183523120062831518756836700546687344767455306112745392726020674076426502726262835211519566053674018045706668508660498715545205845713448617511762677493629577838305502181816224519530906521178723412815732819717308729815618751705759287071013058073137725490869424426543925377008880305806287668176080864964094935886821396776416656967531340963236424549027105011399269492050825323910418443552905026713271132039240657007127512085891740972501204628478233806101614315827448917929506500129388929769340456542290560754997085468469807571201815443713098366959774373441259812690133348878191328954765910910483051940237219560389753072521008463287748563180436907335209300458063703178908783046638750048374330886495202541883976616375099220817121248772587761587903616432648445087625219147298047917712111402709011280708587326118021220632767555927253467289133929601305677897990715913892734314032670254586907544279325989532454294379430337245114503979769504036625818453046175380359296213997215491014276616470451290181959343550429060464667526281264975556500755876489781035643744034105561961820997334925119783422888618747946614913916766368824214795933794030291996115435250269287785617637573184815981952770551512055161482504569835655896714460322903068298888991981263305608911887336604652827343933853491822656604249203433668738143265980101174489375317706766531637430380550829153504078008993073338196047671421380311695751960255380520676201773589866447789173155362383091918011888820755910522588458269085750944380567391273366546632759384334567339000856082250117383280972058213378663873218966327268335677935687706212752292806491433541074880735208163806576023852783510180746006778281261231094178669891170660017215430183177980830917415572503511571224246788729282713193949004288929599038551077346729144504838474105133569213451155117632919989159590137462719958013023667875442284889067355497564115669237057488544195739397537437651123399954549447708790666955591720802663469921397743970078213794338730280125566376421530343461194632879580513267419874419788642357868352733370118739256568928699129784294166726060250621418476266652726911170161677996151107416331579887934703781221812743418209744588217083555406581338830244207047922798418281939170067642701474863079379390443322467636241384493432723447231178380964077496050263402851512676407698891174702214571694786861596496077473519798132542424299399703895680802416053160254444665219725667515797125964534526431742805890809140843026872413783176890079852987020824289658527672823685447274426243793124701856566522426260641426388022514336242141403191414098293579952908547642988515683672949400081865886646038212097838209669970685165349020691130999922853738074544252988144007516622868651543389251198239780586635564757564059284245601428225416770007697682116289830674371452609300486624773712497724716278020071110132196885745276507419923524120035286322758124285426089583935598590396753399324995072803278951329650787650837655623447213028178050760746567073659787483159959229888139583331037743496147677640889146989610415548685891671990969097156506668424868838464159514963787672109664967934171241402610841580008063996218172183764299306957201633135344295041548934917401045168960477289086176452983250582501237961451693672755898061700694525266505776455888424795446565342004152947442741178962050425131287680640310140113630709487081887623181002112731523217794243497403370195704567252605069557549560555782930010977242110539642830078071674118862965807527046106969252969080000571466005996287282249854309575028520618628041663748218033504397498079095706856383113059349907561787231217580346983821646319916547346019866627399611600581300377224048934328479722269936239486462986149353789149802999362640983832205016802375012251637239747929104398983162756545453514341516146985275110172676764138720176015265244720452933013868430515991033009582488786251246809499034322223665041639478343686346778133138616864333993483551621909504875451158613979307507530223485077997214315799704852934259912844401499500724126986484294268467337094155366938822260813113053512354543577349737018209952255944131431849648090831832356261411199105606340561432707894499894088128637935424435136093489055822441558897385755478635543448373666040604376911597593785391599196672529643828044798988844830931031407113075312235196548397906159952835918004464730876294043215949370617352851866511810003388094711013592931828299955929454586465362522309315796788758431097978836310257588442552222113495689097363137793126239850710394318711976011786044353392303539308624081740782322575089472200652146879030443895481080060839380507002537695601196670415478079742157382375789400956546636414294432328387766507277905453632979480348987181104928094926315400887863281182698984776438789576709227690951678770468708733033438248419863752140378272527356058544272144851016659290804587610335438975557159556549891487906879405335165224057525858791997733703140364549305245511414700342325410726151600727496060353361598250372002543114083828670893641881167107817936940123614224740113360989208302125828847669188136108174989142511206302090038761391767035565362390394227910896446306870542698510039121345983918730339706680988611604239264365848326326119463735613181273587223206936253508931589032286017265387706412504232120307951413889079658479812020670083667075167434702721682975649857656948193344128765635118845175816074393882230753660081935350840528783679086419930196359985793564864821424312216478920489914235399856097421426973004217124601730752640866138416923323549006697866786034917369494476889392802280721619693017683527753781955276112124236012696158940853762456121508688436058380591257266086639964865480142687104840702051793615198702055976984509653770066165619415593906359560357899701985880908028679769048027031204007113026968111577343999862406205196856981583110049264274477620449617440031830460764696106538710373037943786371563838708592336044120238385083736072218580441807641044554914314739637831440854936650350133612398044860474446725863931745499315560117004402629265375025935722372462629915030245262039393016835917178727493417329408522149392220029834371324629312923559051025498730439609258350250351856418529703835403712402848435890956881272993101360869523014792257080291084150520480156007457547991976567408257039563427431275421591434892043667380136772463747369385127832581861279465497118361034226951805075975296776654505702586176658115933278823969127257250150444773116325931471769559779341712908981079802116040894579256183368305808459662004381260498756895157928420403423151774430400639269459498303139954416419656218135850382273637471545745423163042171626942443252985374276836510602238055569475490652363964596637349473468375042208441303516918616908059116114005640220129113787865971411471620520816035974238005202910173231117145540623580037293904955143345471987057609761500519795483992525760225151210180113224947181845313372146683042403674666610461984510992683877382991082923056047792973359459219204867458973175336840190270349049195036300818539673221548646681245177680104597041098440219938930318647542596130709683734589969453137238524145893160891839845142858499850107688742739460504207817536358396030850046051842220505088827735461280797894728634811746846893672831955157187175154790236946954471220798619193163644726216259738498188053108737693470217762122872589221873402054429160984027902352815789723171411586474563162662968818868585835826370247040215792021036413252766006095239800547313630573921133348798830605429358604733128551955002187788972810371755762060305417258041883816252418921102674003479260005936071872968434485757944689421681112159986631589880838977739399939209573947374826725669154497185401749005005026047100442561503186135678252831954800305214251032657691210073472563133796286776723980633767391770082562711400717343663951054065620483585439013634917252837718764467482999747309453250650417681732172874654917805727614382077217939776957254790795123916797516555374838908622022976983840354832219931717534565517592543023087839832304941893626534984699801655456192531689908663064464939031418229251408765147918743543254286318191687402656778504413652337777924547882958399499668866146597489485751990189062318218302906800885154878754755174998469070985470039236971482640109161269807426232784266618587761377836469322471844188709268468881169902887261904588996060747418102908833046281545730859813681468492868865209272499079888624481967927800559045655032612492664637864951708562112546124891971783077723498172924066676008717814613934291986983397943125502267998573691222575114082960663616839236425521452959513316759620871041577571718870799152445137373100682243979831332678021731273632198948168658886909130981386725848844977093494108750814587268510645616885305854329333365317940420568270969511847753711990196409357545910505316837838014984285779793567767225820908718441105277943739432166109584682248293844108300412664638254441642115419854170768044473705938544505139965323268154887717935580229792899627831987591909174651982576392726723095160910082015662953309122683952915990482157661252587190362362234439489814920789394232058656292675183599632089870022944143561887037406902497553028715162488381652878584678380899925165105730888883511267711834847302379571764671924440601809590513182832162434390820598295277307369602438756162589002614523085489841478445610161916866335837519475231743507890486056199924601537876347476919990376169785645936523517989046558428094746492641143859144891930138528898630866346946575562420948661922732556495940144593412454496487964649432868783871032682455026066182651418467768051459183332508025351169115136032534773133828699440920146810000628978119294227292511365661498266425677602745503293866069729043635976291549233595747165617102195467402622800132594019370077697217407580791987117738305824144619156972772489217697036653943628996933081644035222289831617317026923107139409559423986913709415254647127247860979586945243382725503979351441358663095459864854325588043987655192109632803830707638296310861544680712569359431378072043629159286950856262519526344356761882024527970542622754379633487711908103388603317562590580053120430634042862839617391230529036847447815851030131367567709291405112302748503512377537746712725335540616219687285294286856588095091362400667695662007837260272584468200489678703623967725909841897786292932237361890185566896208923831908626510636452141586914434076351221113935108255253333781039541957438510296260041266753262554126939128544221722610271473712173269271132822685990552485184259323686356518567074719375528552762866873064675997474647048503723829268941491696664452588635592830170380590771962787438213808704391472612432546018958695458785123314191679411627543545385654990834732289949242546641148118669081665775935700464985552718318448970397082534375607161296939474285870695023156877166098290046630814494349057597685018956649383641322598538469229442154874432336086619716085825588539504761763934523556581807639872767907878048346676668362579911024608007106129152354190194157230550869773245561444169829995613475789696154032795042439394188889877925766517953001059524404298003378898228970386662878417475365692013111316625280215437583062423550474900602604670745986253219411575339926355786812916066919440227308626252977855967203238626124641909516763006378069641223205593799866003320225613449179692993814606149053201731278018721054430093982103645240773071939082117569999097650780658172021673012396940342656910635189726362817322968128482533181783917805062993345665058158440315521594484990091881249165565055473410715082867443413333479998719250845976217941110048586651826071274169556378977799638407376352959752330681881117088085996893175729157001349060849135043158516280531295543853283221878036716397225462457128788625066696526192900793436955431862230877882058863602023963123551347019411247238140925970140685606457100975444724831870400989135632720724800747716871716577607647675449909016988415910887332336441423265705122102232175924135789766911480148840883821329014452929580284671551293286481772322552210278841405178430975137461267058044660220018053129474912079823972092595847302184305963237747077690595623741591351638376803523116224117473561054572969625336303490603959481224548143072957942880863893923304494564365174547739838809257181416285320282536035831237871859127052426652492316723869370547879100678895359513109801744062301171178838664267719144590201394981141082889061941896380921445053312746678618795927967778049050746883382977407583682705767116532352982300277076155209480325046832055218396145727369702406659392352669436101438725266406003211133202014423768865991637765087093692668615211560403873294153065619834538978391004863529564115039115618442940078510302354837716027225119799765072021122298390260662488361443358152649000404208331035092683487793263996401781423537520747111661174062970499997603279150517353634622434663356079485756612860542207570593912596059634137140209796909560603788910443952290596145997324827162878543322222049765330273858570703376294416830037520398886442463626932690178459994381337042249864651644055142792650138932001015570930794072675382841125980733725089253636294412727304072145519930295899985671014620458556559891850999153987310625851305263220598684695965604620302795243737551230009909934411337230035309906002404201162565646073157661574663264440364307490309479107492706589766217006296473955848345230944569294304141734306106132159656676373810153499289536452605235733854583246502483062864659368134836200402155137905664602560329996194879980252134378488691845814092873223763217488222526841531957665049478749265624091030226052937152106297009938463957293289537311352406899312868845693775553654729071246579479621895916037263759634562715596934450350376315611320860027129593471899640219155231468833697394612023131812738503224983106718739119820716597927303322184495536789707765753715053050766860699472862507504127998136480973154127307252661300316645037928581133785846903582709666124721091866228542273214015883412491000968757123417323032471732683020233296824975088461598419459908620155398629782828222602636982460432556730320149418651515828210289677020807392508513618454266381796371255900106773191455503256659809919484479300570637631324063895439650436041690849359627293119646167343031053040866624734216748443789697727498433741381530490434153797661083069337495884270335671779968886239168275301573953329762239198979348120268064437838442731471756675709386605645760537422566022631189362669543607946696311311965444063451544180628667307615568211114431699220255415725399621383277122986293755264650055754074148154877855094143454702595924074375240585999102034386463795445031904828180570216353296095320788693641422785502308591990365520201051108002328986160057281870422978603479019063083513785549904938676795305946477329928062986773860039796228845451405783153762479953658996429759866289669467733207224516418135174751025368177321045004071663167199191162573082725156063158120646189553031322056480232524734268696346445765044003294415974908721511984069306258234457566232199514626055786134049417503439938153788637561627714503756807343674675341044876982133780272446389460291294423577805864324110836208686471396567617013934793868123260643425679877315073077536010713672074477384596384863621727426988297011926308043352887106595253083749971547018035509004177859528580803456744657626237297205334534071957197221932536040340014811406962032297926955266375794709871699146552563512474779664387868082298544776564329052481207445998101836567552818106618873814632764489026093511076333688219460573090054490370204313951149592064080632303509451084183719420259797745736390144493484124186360895515066651392410310981104602187839338260783168248868392562541592898033497263366739891819737286432079884333362634718387898449129398336656776685473007484650294480966869609988713301681420621523095514733580380466588836550029800683555138288465064934420189535171805967329025893931240765922755550243516644008800516506184764432810244360237886905633313971547845871060803446428145003768484294392930705903939922659708252765267452231928943455995403117781987330822467993598670560081435080062521333088631881665043150131089797869136768047030982849112611736908849862598895425083794883297506293216320124672158928042869869214158176281978164649566036804832023362097467918873124682847460084689197597927637018205442591662780152411587469145641454584911873079039347196512422446921390177040994227011145446252615181103453780691770871231898049250242479473718825686879644820818394044477481908527209688985940924340426588135956106598623457649211813678906034513275769769572036152342923979728740095984906989128528801451512602677092116663554060538140551498359692323416591151926419467646727931078402840309795683587330854281212574458938060240503968023014554783343933715822717794090362947329078001781079606371285723517553663302744777269196878118786731301945288893115267800209850581194744797242472082197711838075530648113722996752095138735918148265266398308811840986229933481577151931987311064377938365029042963943092744063009591225752842832902850618029630778094836792319706944133680632067645279646585708275416615411341037524579964088227635755468687709024247498283794752039382961577086487560459334043805114502106487250890250505207734465421747801517611488148988786456824064372040813149938262576158391637638196276684731063950655667741166123073686044744150859497894003213378887385229089222107655596135759347801922493221849067107346334776580727356961706412751603758708902617536701524860608595776058228429522049552860112467099554431820305661935250595712498480932612992130523779097679121715327284769985295407999053091918603329605819236066328477045579895274502687367089339047408666788250055256921653300197907645840825226407610624376631134026386162370836899687076303377350690620924706590296191294357316997247944661161250063855836695371737976367057600236358541543337153572704790275458590637149083786291220250176973814190697841235140290158992695026743536356391827457188417973749705780318338258883184634353347352467149552506471968716946456315286643357303897382602735548100650232244129721386473021670040479272056298146963933759367789911214140809793540149167289857650142529098150485257889409024389120225261703315153191606961074432073651992101442110797933143599785598296342448810922912064818739287203302421167826071439932616417426558014927594426588209432917742383318020305777191632125242316091889454415980900027948396002970555177344859325865023726268537255847886594873897194942066424846689241554615489378731975664825148122821892035416117467951700292657511206464572156732456510402777140040708408696876554423140741884735982736045088707326727328267440127066022482713151993618819330636848626613720828540570819876142472555379669721699612675838084558992920251983845169425557275011603111414584727832214427682571492355763799579799869158121637670191759344518987562281590806415507313252037238107296019158229278748024326453475947625888116848772242729614049284201921353417459930047070839872635774308178114420930420210543560116040978544024078639089951820803857033008563431657915875437058211870647525623749221102022444794680154003657592037205710619918299023458885595592357387695236544599654486917817033527150636951740082417022889962643088523782384267892688441622143251413508900040774777315963076758326650610965320607521829686846914822928769640960261460952309824062650827740452102481936759446730317482962897085970462053553838820141964927104452388989639021383497416962548188129990563578412437800456014763288507570012763828722797313758446582567547392853294806413160510549654476253253815161323793253100513826774310435605005262465512769472925099761584378464332352367367823983960996768018054738221251873659028872584503551111062051590450131345388290416217352298234931508957041747851026695002326130897181047171978067584058202285535520951111626814746994279956951287125761118822524912143850737894069844944784586370357463109309561255479381491921720490727139215592832711115005188004319009009985069681984167730185129322634037758048414797448685686107589069674772488233243682935257691986036382439668370687682518831853632298683903678695928107195118757199681688077593427312269319264494794036909567478487563167443841570002730831755084076933826662847863756204998752872596453571077711326672161526631090866954138079475565246949623573188432594975749004294191767691656956371103140540236909185211618321931227135411700526722543623475562971872832981761764340736164751472060172760321531437030245358777590654767730239789429210004430042571412094320571264117111529563438646656344160797115961335918894435830699013430367751490123743630948222535882450445971060113014973249268363887516447397772502412018269523225102831847875191675011411743605966825566473194674638785512321640405020331062776557738558025072137984225913559762505285890500337393566254102242918969834192507155947143903119095765091543828237122814518381665961905869062865422257209547635848402251021471418367506743650173720802978064583401053837515433868355179812407146281958371254857266518023867874699677182808707355825787547921989586920185145029582455597282668677275578117232952964284511185817304707012754609157852066078238942149116158119997867974959736908629824806966773511140745466860829206499132296749152122764541361375850469441699940629983791968619282230345170828695438335483954138152442975901210188275582136811196110146793801478431148827682226310821820134240628204578586771807372480134462804732847776359581535828520908853050872229816207253691445986239727392684788503898855760965969034797024601315934371171093407148383793284082973460704784921817214302099618447063798567942553752092317917094448839199318496300802888681857334995343471097532817398131539559392976525689029095061479808413762713071377415754858102938382833149163152748806489616432885411829395883065453763249131603416080890175000356210572677599318308210781980798705785226716809008345580951239060225156848260109595425346809866852207089276312552470822646053106985618783918755291400159113573847236244756291848934234473587674877079082954946761158016395338783442814961383081063597031101185043649956053927102759549508097432710477196637058502770586632271134137506516804807360553925822403134186610773900473256110411064213404888942444704579234525438447362785284291853953166893048601576339432528018627415542052702417011239055123989123187330596424125672124082833012337051985627223023399316804130099459610566872818430969842940251619116263019655233298103722135700043403046988434231828426299986086873552471918918472758704742296008219377108370831322705203163359796060659057580867188305552950780463279808223373479292657089517643727718337786210664193390960053234632011443824052486955473848030870427844113574926883706057388977937340044227629725814884297130999294761778998630368807855555773983162589476802455961692698561359085284647827643894851007251871350194984851804647606665356386346144522272357688456945372604214190312224039417465041881781052965092829531555409660052788434910843997827283382034403357201413725177499824914018685626354487701209538979197695474656774710641803216278764353976062670188508678282228678590457544016647332079012851758834696766113917723322236058838586047306224924946534755041464761360506105341371118320883168069138189839557628202204742857746552355391575195870138401894230122573861405108951237358194864251413309936607767632565585657575643142888965043890513702983151936437287068865962373866631666914056170081874105585649177421733042388130441101893071616019917762834733882915364965040568077388578431767067271268083156023539320620750715102511960967423676032789097885519613874554650394149692806137791534293684567013329042310022093547705838491606604821625910156803122536272198206638669672398552241563472218642690575332349542127398031866736583068231779129863176986860197418603743920122929096994411115163966077237121596998806607192643493563485811999971520889403088007591732057467250950100737865240194345846700117151064633073127708838202043661170938853716983896691664959914794313101074054817526121984881275204468431184619342044547142745223911626052234712550096288685574857027137633498763634882702897380484567169774730783794610322586000252891984562721468989119388750477687978366732443402317502458489821913661616053627308726760755626805704629988775061179489013674056760562009588025589041542175857468964674976078141103461724241145594325197755161343548592429549625328034710941925752420768491616066185953349172085029198767370231337129518929013106810730488548224848241339273270626074635902275376996024061538526238600360986526319886526604285769521879980271273222169943230516007857996288911650991565045784141749870192016212108128571122281871579009210448787251527623058590003266879428305626269972092150876234790820885248443666473477429630673453273732589353472609058892988384122969580349713698819779944375438238307872258035014339797773830904735870455778422543283505382765215598042343332881681574621044208687129902912932163220196275248902500079992517091826121739830396647247949795243806905541279560940922730418961499567410423993335528427029007788230789237313734821658119005237609359288436480521843494694648389671246750320143394134226847325143412669365696146473882696914809510135945992370584926970139868893510228790604814195940211163907887443487207274804043843813350329458810347406709253441704594138960319340425367785516715907639460161808041364919258735718418632489503682118216620942851071988899955532528065739894853867362950424972954849202216577572335487767384440656781192542889120825755300905275049165630482603112534761127569005277911595581183903545821849101759215231115819933099142998597848822799466058816943641427149872711097488682294877092909816081190904727475498419544435290582061389999297302724548757888097393267973702382642065928323459496289514173824778404923757553511783038113620333820977228489095356718379083387676351055046040479853108335541479493548558107981430569472112286722255030364262700227033685014622729125119647582018934437772212983319813964403073617327904665691336039366099341764504415967070050526504632533525421347423025494387506892837144070456274697201305771599243841046767849282821923095224329347932966988959019309088908819781820777530744069518820276607282299398140181788415829239305812617216003419789609904831869808197435991859574818108617024499415613383508510277749080628184556970552900796460133872749041321346279782223903083493142634710582172885710047076573326080532548880536311981188092939785250560774117874542700720830894280188038483408006375897669700877324799157627225510361967297217451495393076136559057471656363241744295411103201717015539975841800609385478723840985927275442604339992775474309962701069837513825452197894318105011714712451811166155451761227484340690364819938644267689877693250314529809949000043208566118662040043890396860405300223217205524754240271620173357990059286767970467832199881925165020366654284195032906456764680020006720491697131456698222548839059338163640127289443666905524527491309384058386174138056861445637617020960099036310690473568998644859437380283582592540441756849591508309352802439519846198137442655031115374460050730496797749103527663517987658973584675820903886317850737230672615175371710145059803507643792177438589595698412985375124397505888996216908546703022533532307921657877143020270534646841446386420986096233209357483500339862882568493852327399965497732137321251950405211168574525083764161254128449053897851194027515601499449492706500148895974767915514334247109038670834128431757784040800187354573067039443012709743304541120205045529593653328771604132361543381318798890009748211586084032142943022413119481949213514442239464369830912770840651661021262680169584913905011098325211940319788555983819114367811041518425737933791396693430173860699018819820844405537878649571124678782139670705265592036211300541824344563218342646378589484881665835306586747501391467558826087855139894114542465853745554533498163295409892646401708424443711113699918587236205376283188011997043190744442536361906391330401469263902705487544857023564862579053274175257921156034010613381992607068713321767559402010307376116736131788084442834509783569144219802006268644507893736428452349793158397165689913390690091553976083385645782618804888261766832402877464332321951797561641238941433936334758730753948592928516119466659343704756796335328367997611834448566150238447062733159723644895798789099172273961208772267722892977957548974958994531961234649984691652437706775358962810556072354451906871140368745309803971709891826787246626031311932072164769641020156482556450681985988652597135057032530367796170956469600357763425900970569455081677307822924380926631777341479917031656782874299771569850478160779485009072015858146149496484047056320484069219703487296239070039773238434171663508056453054002016396940391020116520983201240896495477525714409121299129254843091779492872569667040852161247345531524245928378478673350421617665806230387144393086880450070418848528374782032714881097171012489874549561693691870234697423363642245428353700367417096582766010660388526098331353034078192329983127718161518709457927032844808867249388621753378933804897587213026237079728501477053651880460538742253164444056331398931715165465340227163015013019749469708799259693515015656278042355790971774325553661307309009615042054505878300083136334866637897794454398898943427668036784087280656287085837395341638351702313603024943439482539819478506845867294013020908319022590381129583100221776787759258193633167709131975385451733035335709204861782547022950681329391110634019257228646591071456930088038848987263910201110735903880751062301168088467013186866168335493692565787281623910033006334245236790290000134054304723375560075974528866068382982597597150269192044899499504171822841087555495867774039190500132154400543942445710370973041522458049109761554381018941091321143666900903628905830399841028329471457798705880694251242766306167791601311543867562728684644522072664076522032345464287740433169261606405421904749772395567906435716400304450788691048713347168086850520017680720542484139517320643413948522094701099504952503657035847272582687094800476516558671661911740984105855033142625211505033829580051934899596387667064145874193306098896761613193660566684110962022527113679936232158068670536872632718480785754646509506727236646890631685611456523811892461464709104813856319835691462271186223729514228872543596135604215043967944128389549334566481829783003516269969304365772179809000175772875388766625086336055138720852376661961045690134100826919658726542368982313992670223085432212427951563317192575552220173487102035482937134065912633058691081250929858668947494960989511542169678532205858033912345264759081697155001286878836251297351595898463365183055759224808444639949322621077381361338639188792588056574315944295077925143582691621138877397477608629937381187183569060879860720363409057663634236469005434462791261841043809765171646033141142306248615026243442529751354753682925776501309616907374065288998735931376374983972392878601365911719986755137817536974457070378668524925285628328229351333048559580242127540269675375716590448061874764577131367771129795918079163264435262804798943977248678673288223591620912845272972781210801267823477149758605819148965085731316695970513132618437965745410243694940755868686368059118989816645192005845008127208709161806135776856590332581029032782706915959426069431526215651647512821592510123074393878608239132035638230720693637489205334164715930225451300917622224768044040822183702820004658979141543695127945452519683769568263016549862943367638116170800734013238994018166977963115697848711629490398684509393469523062610272919597936270657938229578261753130044099708053989180681438707645673329137411217766454082270032759941452493759179786936263635177902309738346774106156541956466036953103021942768392607575175961902098802185121732095515794717867137093721268611269849195257125715927592614088244946542850975437876110622595997848058638606153741816065245085221809557175641298375298592354330234679493795550570826678221305242327202923950377793652085644717835013602252787155535352637930823474616730243416135870511396527594689650424966130612170990908990112161917222811120914509117065420386808810398023045297015798785741508069857700081471444060445256952307208356823979486533474867374485547977278397830169779041705960096128956837370002412656916077261846720856675517671135387311597965139399242011610712994791778569998332716359345838476363003940017938666423548600890757053145821954648888011244088632143996556884316705520777652719871469048575137141232587168873032061094227182320870691207982709844906808825785402224252726487592568173312118493093312269281660080772356706810869348379769362235024881603822773654646652949951338056235487827691639518088747860536116413256160816584541479900480448384725903883021289480946028105072453078492460829714137253535148550861621762996273943590425622655678658130743754843796376013726322053534300565517831741720235580040493093350909571109023139777502784500962673452764493834729623689164985107269937226786786621359924094834338597732849211986518010512107657491962313441214696988320461476016520607409865484888854883592463152137860451096764671421115426100357732848505713620755341728512448626965264217531612605981809956757162000081831946099795304057000291353371323567227689470260977304742158986708772171075746545051172293100805438447834338008801059766549335676385864523236627811809669552207809286588386776703559881321890386962955522879115629047578697690861689637974444590789313999285033071955943060443137175868629723840195462453117089580306458525330180571347900235272204568503117568198525404748925215494652383605813553041018632936902390851964617860588240469954536265970953407817333872991622854825358309975098335313382581856001398616913649889279778503193421677656509501189178821218735964194505009353248805452322112558723613365869272886474556872659776271658433461712910988030405678668412271318506237010331137348754668499580193313918365786406206001631024162437861808302936841876715786607500860324698633578907235671921389273951444333840658814166513227960526565709335060487846299952064545125336428882830164485098560856005344148884165827600831485109120713778341224967653816706109617375730765875535770188838985585523223486438829417305568967778010817587968304249618102842174239412190449060253328353780893078753126519218645156705323924196191884497805437940168089157083678014625473966724427441909679262035120678106414776393771580417473216222707354155740490545209302142788947493252635438199915060293867607117574594059127707191261345956670953628372306102078916536388907286111229112307090661541734182431606536034027627110014995127933666045283648707267455389683012992311310450988360803623319905378058095755389155394114748948972740948024914875289736330438226408650131446502336767461430317024352744973591508572360725729896765413837874439497325231178224255925713781723944059694548332188839724025696395725000719076472703966553783809364233141341098249955811094262062973372723143055239738631162251402677731349549705792709795199383722943866148756083839308058783089098274226100596891840002951657842135849876673466923904209564390857341771996380274800295007730283991212303855104710379642958518022247086882971729480050546346788866902340356358634763110342020981097444472628760392242076556304832975799482881882250060727259036986873465867716970484493720987826215288645324583701631476262933855550244811023603184045597537273482777681310858692217912958017444156634175406712874110642133453202610366903755248216290709751178334757073232621865217732352262675330313855674445932789363567163687282495092476650946816141925440371397225890141295654992019942643326969760563722352842967776050040997119384857307224885094556493107801130662660372150745255964241446531598716462336016724184048793592830067472190524955566531144390103267364199378563524757765965152206442604424312313676037557197993527781941567921725213214150240992622784876452906593839033662775671700007098769291553613548582574400826910304678854503526834004265044629097215178015123472250885024892547824548048180278538429663314294607237795370963337591502961897539094005387728076859193308836691169996349406599770207428295214299694344140355637805009740518300644613764618063872075029194734129299673784436324354490780417652438315340088552865904292958177664771430338193534628904051862157777878668934470717925935117415758978212187610645078939668039558693203665374953740189991113816966856808380063980221171569908634969667510684660693225435704396258733647135329601126180714469856751739286514480676905958415098888676330988262222688697378243288882175252570457935550395293313221217073820003734391240211989369475332258636688879011477674748248188481422635165641763937857210678171057343983130859466132811782217587062858018299805088535066282151643406560247489618524956488822108650076830220776419358249885708674410512446402361541853739391660456074375288031940584945678531887072368465290692221304703397114683495864055417575810711089850881179682236848713376815943231877012552626349842549313039274830228560094182230071668082786600087907128236464857988192258093865904767252266871796615421636656736584653748338114545533474445501076477378153840144921304505088232598186480278027253598089043449491442826415177528546967193466569620065267990047448418645882110880997006410212062977241706290175237455019212964297479222179147240716132976487668485515388316326212756129805605256185928636553419817775410774800305984633267737242596836557734294623550903731900897353206004221877741865460208841041713010781289278001297118059226780958231181880406547259550056418770191324187935477326163349992404973093468923888011180468109286380205543407278505914799510771536366679944852996386367409464765015194471288301903564643598742589336294383997944547166553324042446613746211507124998797952590615871487382523826480982238650600245486667713517392435685297242101706778914687641903613648087980933598157825195694793867575694532354042545792658347920781846904831083610208039106022714123455892733828952028104931118840902663959930359094940685586946748591462551589140597484802333410663085790445871935465995827543392422563987152601972028959074816458087534520509191231334156757597916965952674174661786442539526548013392303601415818482391191330709083011386740978794492821209514804670656298738162742140036053592312880669222036309757366459680747460556342907219047956852827850159250476320113174050757240756991421849965124979843791358695835765642707858834976383797452161234625087519746965418092837197477399004309312727391008647822188892737950826967107407812041500305888031743563349702612990239588978352738935241660981722361665516889472044918603712963948811844342412779650933178944680812226088703253770022837083062252162655753995353983595957702101148537996721819077152040408888671353331889689495396741507712165547814127128436953443175019764932024412550895997148369959910988225189034946257235419942394437963753673757181011301237914796013588271997271026585575549684650709760448625612077807792524919364897300789904791927359674743624044612182503760138396164706427414141682485635592136241255826904614028386313518667411185790735747859491325074915105821434995749605206151109799783754884924934495160968244102806852081251093281521144925338905997083807850899044064527384730018937761830172006023814291512779642326437270311444924601547028209789359751805885738869846515672028626999317014935650894604943250441956897256557278477387409776970474624099226285891007202526606784935385694065355765256876737450121842356029995557616293015195126839045188444165736432527252039228804754864934174625851145887661275660956300685946907100831208879691335350391732826779792068443178787381150867452179710053709535025477069132557983506520018812388168145431650017941018524491044922291275727899134559055327396778422361807320402571113984803772047080248540328707869578280902494282588886200035241201471823172207646624376533558090729371859467169575011851064468056999985620759672724797088138934226419958533549073243353303274859796523720719755582426404779344849382876617422953867746736566204364753290636603987192945040838572118906151306771322588112039772548370762637787547166633346964528761205990649620834911723973832033775115278778394727515806179152063925265901887417837063926339707276105656569013741843152419941575798957639255771775101762961356612332073893105866239147044864796408252205828409385442427293471269903941535891534281642250267136441612163382897886564397493773614037602446346444515554394344968390482059857408345299543896040519791745163633784997248074251049584286118515301322976853561456615074181987903303265011240131161193673171426557838197209532364430002713455752810876557260733154037633572023051013606647323306082091591714093100781231473801656530525871610212037134198054678327333903708401797622221431615329729797737391269118274923549062540900158150432033935655975658041558105573474227597663593486982837785686394318574569456975887697536318157849793560488571973570381112088568829329809854861266122527068461322758484322445407039828301146798440048107552930414765391773819460461713136956481727640534034442281759634998857695617607458382832979946667632354825324928276093612563855983426598291084787636184829934001891597853752646811326584708670205785372172619618185569088076336213202190158998619405264414992714854235408234809225356001983766893337729448900300623192695873699440729812986540081024590750743704818687884452444658431532520379214978514808455324940115533281022894240746282729387164081587807465339882350457420371248038307003539368689925278683114070032525510117989713650593937290565722682167738660831864230364609108737952528002356080380734899453558119451402937277174128585349647167559058422280951981076250063642084542793810081066780511161660923106387459143902897291329141022386784582806333658723041413862789596000410301157179332670120435833090846998116142068934165968050449540796387661531465827708750511016771086601319221120526322618724262926506605180112439494449780876125180441666420696488190817708233067927672501370776804332952333159552935456287677075905410090843702448684710766192233595874203876967380164012969457513653385939598987566001151268117678770008820627544667669503008243684283505583133894110680386844083934737553909726936964243852616780939607649703687386671958397686443513052678414975382193980188836635270019442976087079382811150316268723294815285236959313013757279669690878101935420114180815977257635362873281209399100594748305796565511972268887854425113009279769720850125603735452325865274467008767626326085263352210554511285894393907402848482775398312265629020118951786658334683234805526469098827341252481482301223320595729546609319888502495514747021107487130708882705536903516598539770681285297201447040708356111573121293847799772928451963971144530482709075235247015281628482159252696232559247961664807827233766601597762357303198715732735724779702085292289724152389942129164794092499530852646006361441529648957517096913833021504046243019240701854743999472508851817371425518324039508529360135633107014437278192201203650983968941838168559885667693442453230635937644509421897710332286759040629832189888140392853380607343937087301223850538278551402780620618342225057510654167233709954991790484640351490810659485624797557346472273146862544673964336364543701351153878478116998881370300941040972845117857645417821843022499608741524666363850886132254017773472153495005728687716681074203008459839435380650998975933384922126538277397250119687803283372194315446883288069246466336308784161211142310742926327026303293848587033063454973835675813393637735878090268500917234510074638910603459603345828851264783344625486057200247114684303377032685141140537101743175565701336230340009231495639584969596103293617289963562384658585241786008382671538424949126642650142003525458840401027723395913691178313440650008586641687209903131477118554803319859472006111453732023548265111795994958719983684189090160060287316886754355806432093201454928701729313678859720538854515276600364604714161552803309877274252526908324824033916817142308091176401166855825725379223530443792219091338749672589172804587917832325336214609441241748770193707657515854028001820034626398552428233020298144300190772857522125683568305639451197123424859861075680268908181633057297794666964791180973363346049980723100377420894256377405266877279764812824889101475140807117948055993625041972552306433641054476672097703082955749409045534952031871105672748835792736699872701161715023870795502770691733826006227613130716447571436301958974197025529380226868560945144696832473707117571142872141276679173312534445649429908985903243021959750891190173089847084384455161152709338215974806687111984665667759902439571304749958893551407127835547376188834344669383602393533586979948164256402555274749008174165668807206925650802255571517621085473522462112211538171197795960384035611572825007247236091954627659387657966015051502899366806528568500577491785758243011969437184505236479067436630649682334403039465127904540187409274292326218774170792825641062247286829079602439681574022744356375404400720101345999142840314366392379057300198710074017200314465033368245832164060482879673803336475498051966905329888649438985839613204277264779232006652612317953364773251670006797648334013435440878157768451355409219520782008524198968794222937831987876756755710464391223891801159060955936120970783740404449140900262094207981096326724005533239080100570253102836570399041917570331365754078994341253468662822618620524198158980485185626083583760679863038823048527219362427383828840125836862684780129298920099763275278237547108661262839624344336497389919881301452613797760166313056915109827910514700179802985939124923104679292172037152824409461679800524177665097903105699163227893992454312791103284790060804744966467958408953133028259229606203496589599578594836202201664930653073882627946634042910617412589856001558953201410898282107785627359276312768418217306833262395319953124759825150483387020103040044037597007412719657465804211773093199431889295562477217083210447172284393973299421675164850938297853930863277411955699656809975321239399836532311935681577452296771576943500646713917032773842854349431904909804827949024713405611293308826700332242781395483220576305153116635586712682206857835551897550747221557027300665836965775188693586874665705743292312006885010180570694087305770237000200695441791547811613567045738835734972790591119941238569600916750056707716117574169840196907179780649057125473454027348004109950624663069678116672341381473713420444670382141888523607305101059610480245099213124227940293104189584748233244203038142221279093247717252350262807614768330823522414628704875731650934181305775747903613936337288439439437700083369540091274632814706222991102081815288590885745583925825092340452303271796469254955167600899086736311319929074309328963795689709682280412294672156155691650920266500463911609854253085712952415291230351435353499359579811810178098750639345151790241065936148430231908694345348961946245137740208325260508362888374784269165407938462355395915603450916345735326376434193532244125645078883122833445216167214306218599028139616699137285107187402619762917860058008599045889056234423285508047560600977861271358950309693133693972153801275797324793919845539483167431438405619743338739983766879133483020484782055832102683350414678559868414877834431509821341711900959781219954086220737864324389992268017279371506221463098642455401097514650051038411080624906522440576698552250937197314758036554965001507001674470522403020325013159850328507325867832595315880823246803298110008372069041279816895469492355499227523038695502748543354840384682433317357169829458746614943344651272593819488373750689700372692592568046765844626952935416075527248583257376654549891993048747785083731532320120157346511550137361131321472285398423818001631775916596034212769526948472015022777020576505379629099373761075435596549203116201546315028038079843577740534625828787013057983419853200168444428443163670466142374859126075217702267911499444381569955292303684536715013469573051480194831504696358969749354137464326320766179089362286413329440633708321027266754843274451707709005324524905741764031140133621825573584492354157459652408851751307632820305799257939277341130604888661217288736272974781511658789418155692817213434824957035885997701497410665386812408191677820508922935583652866432722589521867970281707676271687037981210067057496960644186496930892486815260459667258731842886965339579631410132019260223536539528325875673396855312543324425823860000168989637280575066606254505013527972217142175269597156471723870149389500833281745106930434439040443143266141059176521315263806532394220744468258774760628687532902077760501774572079541775921232718956729696400874604797298024704289163910564710018639857216586625468274183454152919456116769755717966345056145773844016581143368545105462079018650407017698680230143009612005073567337041420137659954833051052749004930519233204233776454329358698062646086943412965768596977332199615994993002531580632840980346656740321053166203216063549968853608234303689729087864909846606295699061682328272167110815603857829723790920516716627665184621914586413488604800475862498031532852815934911506533330502382825870500803406634570607150556612484489362170629889160084445974614632108664065354239191031210223780751015953465415895673309491941272686694162500610393553639877732659388976753696121558831644888960008066068237633128631721678432119603965570401559589780846549917689730585243170201619568845382664475511769940020447490642126140991087824174386638726909430405814849188093932793600371312685106777671467122807408486798132800917811168013841362042588801067732117876203670821767150300263291839505728476705771421226533688233639276371276661121172897389699507574471319276736789302303480737067859022575873436150176196042354978474869773115616578851686859690501521150888786995935105621012628424127295259119184668463476198779680341566736318866385725363469205429906068092686911339735272446242307262265086924187069087841036650687548802085228762517687709861506182020466768919494156855379919276966239578377674216890172142725135669153489462758048247627207108625536736396237980619667547046958833334936270103157399129047861964027054264300139219432279545311305644503568644568982698297052485421515892461193432599714905558855240469586695505368106729191421134017043797666144337433445493439225347505222394537226947959861273930410523021581201113900867645477255615897771425809879604653175918436496370947030933768339787509780125935689797531848351875378889450509346426422718898604441231306976974358749923690603841438498095899152155968454784484563819390950899596876974178650110086780365453951284531926101667957219363307966862095668679755341844896218836462495281383784818941110183569129870281660501593574634209806372225519113777060341389641387448479797945041689208492781389340961774493721588432722583706673272888043368376291860156832028264595361927619483330542089800675695108543910095051531654910369362522378584711096692908834668285552029193598336578859147346724577937904472771687902178231107019538362340895283919637436920178886647334045395971639827395314192800472711732221012190017726052555031348388479673597752855327123421726122757021008198025596800468042408799580777014419664815181865165333138472280478562768739474020659036928138327933315930033709841278610412446870391248200601108591976193858495741003933740464094953000483904408531169868282969621702882266627074599210341119859204975270008316966370274215574259201366479761272317506978338387871436272854562270226818255660167787117479823441931391969683041823486534800566232026510812112761969300512231277298943867709092497589384548536658598725022715121655903838356827553553640524446957089046582732430794131433547490998716777587489463393829222383647127581870966119503981311973401344293818226124426474226978292924931759652907638005058497703967267499777560968474450489319440869656384219758716256087047883852729090695705997975063556726760701251082067856208816543205765744227987164322775296187686660742134361328002012810132358918634115695908306246691752438530867945260875812511060674639720143643128248543208169464322844861241201864753517206050305695925278573057942018150619259182482214664219463023849814531228480254194445401927396034219838894599198634887604187508023411914654918881199865193143278399052703145682622472744851247691349651443736533538725965112338712054596362596391540038350653912879475534963044889432508522019918478363734645824261222526373130093021895625602861532745726557987670017260491219848358736328888503577084844563393442782249759591345892859951948132671656882930041411378114783264966638058196546553000981320816584428093730946273927470282133829689859875702308820490998496891462187692354627215727894843327755129131591541439266041118854605098928716261387185111691435541440044168306671901155969300211957814483902305911861795786342197763708614532387179117374047865802960373574430138513977630915369732303650638701455688958198230890483456641338712241103004956544524914291268434057099337733439052457403539685944930202446729924230700406617154719083983888917764997890854384675155791063190931837870065262215236925173297689056113016275588130575647024657299760555390114933284370336744275204489538060398407719121157357385987402529145159026844796917153758172693479703949992082458847470988536300636061864381407801555637125940715247726456662606342005368916492822381907676796053918029592485452782538457100323981100612421658776846757980334930140541384397580829606324505239823784252345407242579177555794465937581911220555749417939056074661455245627224605188373808220725077014311111607052665942543875534033263205664877048383877955169174162695798460543732273891232798301134587692066921574709316106241480000264368231754395233526999467259798345498871842174731819705336411992212545208180240101375209995609801500579209892233506776034598366999296423992309228855041360233585326736789681915394265978032347372672889043906395024334602164600143528812077486865477783582327429761354946402479890870381730653176663252307274120216066813882863824791196152181623885312281813060701944246936384173887996810392163111700348572210192258447330809691109883854527709202402953878485672060818616058808351031626037736630030544063441491332130808283504674159197925506436966568581699280514660257070779129351033867977480645183776803252319355942010614071427490763949515154618452602303894244428124457730582842925544317087365407308921510351704450615389246767517598335121127359593142526167097988445684356869573960787821850411482404309004087591952497539820460928763692575732486585691312027008421414219402368371945300801097626122570334870243428656204221877786617209557392137919590125838431716696367740294262444814822221435261132465034588609593058892685165031471752213506180242072407118800514447222645357543677603863482602087297554001624161382178621782908036649557067513306617420457211967804614726855945060611967158059773984662224394412178402402150616994882962725466079935887294671615159442849640573514603185558659941713671804115955970144427566553908858407174227727913301042049454646380181262087487080827677853560318684162006131943504698717282130468897866474944829194640387413691129122077734465111609566620171536933047237992295756907139639250259678720576146209511406229292583383736928838366121840281631238028115348472350273588120971777194081193788313306908582873576714781742764063717974775597373872399873235119189015280604700456638704665403327712539729293449376054195600408870640246704369159894862719129817059563513127927086118465204140731808487231925773452864060181422095580194432341080194007962360959288635289086711005423896061747827653559927801326636359475254397234785367275776782686494339580767385768112644343447300689816461234711559566603288737806138259951088040604947306069721260217250184231699809610013196395938802303189657995406785435489298372045809072826683224509120095898110623854946996351070052934489034236404140431153500421611199114245395475979374848244527962696302915476235029517701200239224335158407917068827587567049588451544930989639906701272382484961412500876896158989559244177715042052638844660121650594601280216948148073736355133766041188278384118902198017536842754520868374813678075080998739873557653873133155605503839520434398935689302496059493259977141639687442765123713743394537925445680926801837895605450239348843583639433799627138615890411526563346038324545393017790964802837155900219250124390113622382817701616176916687548090233458856516676431777233176207840202465295818707173703462901705693504155872837578272655594228837241977823860042539909364336881766400805191636286730719383552471632939717937371030873384884077601425228282716571097857467821984808027825718404135712512678441191693847142585640697847399943846022680334739704779627609964278954372807926387033699193096980442680876274221137794080334876939192835462134335041082646411308209263712689494059313055549074142300411795485717937585942154333573247778531716793102931607003321833917613983950258104487904859266442077136459933239911743655534265934002371321565522618133603517279951912378123343405463506897435642481395011950996746541021561612780504281869772832750127507545337851089915175202396772724568438042889698305515847605734568389779303343584629583966983360557725975558217384362749207388869828517069391116482015656375536864639892812056548944472243159697974895807713598169229366914963023479852729670126205640869790180218061055286479250053835792530147267843099085276123986814013937071031708333215241295096120345106621025704094720626629627717756236683701211973177439211236924014623425162956339564691781043699495765580098780478881712934172944287983063630926578119244469326209680375769201440300640642349487371982427306250326855499780259829679433398559130415297091180884015280089480425183190254923737861412256688857779387026249342221748600123001898358628443103088165879160317336143289097005860946491625889228723460661779100120481270912538597517318729419579907654369358933392337028153558889458536077864909676456783522988759686755241313558781651431337794521775553662988434484067344239227980607397818208527994666022699460078780977724989026468989848980776461213007128846159486648020862711324095495822154861718789672315220878498884339656908128763614817217722290846522223071551669192325126305673121849781976341531255345803839201498056223765388418641692207498941447045083033993831048255968954280297751556661048519872234046952977231489771323248423857277176621986944315971198201473613458394593572054697248292497838391675644660339623468708211063216918646759792167026540327018679188753194809752070791958558793588748157493091749297061600414821484070689595294482222256245958954205114116740158707874279905206948686404541839567972354062565696227804392712108026723388065903638251173942219831101456770660483634781654105463557416629847900850901931849089468962965478706558515886470259058917998072466807089329734008982437541054530802088899065889618773697942802512107836826574722574959457542000491321758066706670715304629541289659872543015428874404320404319770475502623263060022927088325082348438495581195743772659449120634987391829628291057144565466811768977014337103038990161029950838264684101805299636191685384771885029089088612208588357078133199375524012375925901795449798663045021977081886884821093239896806184577244749543069704940037769576782691178238725683337819356408994917827542158161241499173170657426518074727187800739528090518716026227862605799631054300650831785441933703973009627420303725420924813008230928615412836043730783349190493731823196545683060652821326549350836820313334285252348586213083493296839930860610878242739738507085656078583095635061341862255373449628079889064043719836065473609102324518417596419714651287097008937821581509362786292589503907291848148630715915343587678852708205184632502401156844099857032524073785988929770976089880374964330793074672492492897515326477085461898404200364686979568301120949011257125644687931442583495309969842890457487962904776200902211968660392729527910313015640753833080783497557150195269712964519689678005663550107165596390924971501046237517304053048857345321652149932038649680745750001768332861360219337599042852875390562841019453536935621753837650349485685315937083420863163689782016250816158672278296566073808021297503387374920481182704687907522085463831006622333717717527601140930877904927421594452454844494557625556179860674549151329742468839457299411249546084047903840637885456250536466575960140784137640213095527134555109098942868236195631012034548465141478053573811827127706560903457956748261242823508898505125511280138419975843516435762535006545964202038006596186280548833029368814032811126366207034535304373318828299145794915199342972161151764484475537771711042625638445007663750678323567559383884247643547261825096418832995505783077704273012979523944737711316170023658115017544215719567370147051882555207341746334230312825015495504786529330855021193991158272742147293333970736827449324848972552345815239202088895239594489843134375442487920676301437757703358509107797655164935860993594959803885990853545059214789653137884338800355315624003659821351714035533183901938077493151580619140443195127747984826204916135122038029707540199185803058615248978804601960919126398374996376775294099670189030045628390524939277497703486395199293549242257838606586658246699665450224748820848536268038364884385909475398612810999268054074838019749783594219620005083693862262474003250006833820742128637530140310683770979300948914392083142687105646469872700244901181183678582423475524307087941516032155724971557684887154296404664067352193033347357937020255982972411817916941921506079862177490231571177675411366520988707675439522090037951567917635615647613211683221571351578603950740021604732820850432098968961491833547258613388779504283746617020486680254606208248255652981294051892464840966632499997199695840312569053578218897921845637522724013238217481686660204632104273987809137385400876189741981026171825035900545593402785725693568691172151524266683501492963630518771437892517468338285443021799847850346971646450700060317020810649168963122115363944777822240483214146639834253776906790171835209646925322030937341462329067861656512725041512330060784777210786002085000253676577973364602222020207141277656220215169317284238745975861605706144861672171538771217720938790018476293495971539328281583700783403797999610504544270874513763810700098053282563669968749353848093286710701974954846701609591546980984251891010036766656452475016371066682657887154677775694648528463184383607705978814104788868619857436256147705195630673891281019787449239142010031953334141654261704752860833916574270668048736404890712490641167439857687856201250560858734030477106257823046102126745602734301365883950101735990100095639597013738566016105371125221614795089286185419056659666197275203134428117324089213111198973954025848170247327352545428397225227519955834291192874990611128480345514232389018676286404314940551469176781829734910506633726040639741975227835615587079305537657560518486001791582927380121312853565081209937296810740883511566548712748138862995510649761884614721794286501337093988822543796072965613386680675907345024297679847904958435284915133613139154246209424648967275305661219948271310887500275969352225480899589903700855153869752500350698544915359483901546038917533124337132087018872301882961149207537493583176347281075468721224903039917479557242339423596587513539113165827538077140033610835774890229083759321154642149298372855455260900300673617106868650298298462678477824082689981594431750426311758822298555192608419382830022977512920155385344968986710117658951641030197188157311125536040883444187923833033065070245262244706199363864033322887211468229871603197356562612055564407804508589187957407885302415135850107629984715413420226801438544118737390640508103126808791864968586600468837791664911416308759627180187515578773381886596486622222228393095408356635689761247922300107134128711770452959045164793110089234469797000189638120776144308671236637352189692577798840306561351633508202337140625960695977931392712550861150522229640687215655711626084831229070394228298985181156272957202303652500690462280106365915274302712153234311907043424071863387594877803245026978665899799134104556334439578718290348002745139222387489184846352578042649077699456083160024337703707006779405615947385632786124850325606170350180264049599757250734654897804412113189521546495795409366170788367586652055726263882147463069305174825973456905064480402828246186667100126170516092271623348128884793423318240429092343924332260736267786269042808056842369975693243291311673512511425349562789677021991630327951695148130218817904074402889107306835436622963652535378559969564390364412650603708966395327065998387520952060167088045567928772182375384292542696871444892149098351485466904446319913092286209422221481576232326009597610102222248237093634592532354626036655658658624438372242188040676744741690624854071731299490068992328794583771687770758224665938567106139042433984709311165638071105257084087631283531170205291069481302765038170111341079490314017127647462313558437603033646287864909492735902334216782974427132990719205490695884474331587787104904678508858223650357251314980431213576998200978349069011553312344856145742458224038218870450852764885897800579786610235875399806010083718594135532888531814548444428672219292614615318037611032085535212551152415114603455790539230469091038533653201824196121420328911536884352110269351651838647294389364481453221995699916905417242793842082856890597714429939471765209046531485623075949202444275053843577497479884380446039505300818279198255046693350142384166865138087544009051146440652121287189760176308899638273761933351032738289242948955450883376218499167549636814072371182428405484743543668169779478103222504452574187926119709998778754204545420570711915242235594691942165612071489873800366973088184426079020272684228043455821467133162236549116491939907067096064040309052879730271890846652201445536835973308273205806805715298468640990672309689155792585743486447003768526822945131742728486125524111634416527970262228237361944036361408153114177565511822840394121477988792674530189812992653296886650302593585390234769543594564620280723541932488916855964258309218059175405985125926008795910360584446553944488508914413432757749744593869622205539203718478832812056145438586016995146751706154643612188386389108705717056382042583674957930520059686600047178079490243022065093164573011319325998596503442076019577431890827366790207458014857920760433975856135315061067403021375900080985022795454881577076750188461081215855807961825619292760387219636073827180204095571576430941011503777372455177136058702798624156068788119575600934875280514133631612625047161655550771250675936769844401707658752068690249488347352782769542473652189716995761606943234667252497665632325553712880703805271083112473080717136088538968089693823802840590146980591828657989586091672445192323253330930956924270016758332983303860142257246717980081978554639255553431779225827326677324998830670422395612360453206904422587564054633378566842900547386000615559679116545816601984197702748953621615271255164760294458424339500197306472710335937608738026585940468021879593183628112000554244843635769008525216067726035314756052471824561658053937660158346052529010127737977081570012219723781828407025139106995635048522331515506438823239803050674944636172579062742022536884560642676175192851656659268510549500638250658995836627606736957117193858721150592383432329460016061251288187732260107585644561023697555184170273758266920052047050316300693024814386484214047308306468543738503518795326864653063746610310997475593651902899368353699035493913600436543837737949047886063315570139753145245391915303163600284176923425353657061680993851081328759463415253114676445152972810410238320690055396632176317654034225129101582808209338078853847283246265836887067085705948501062975762030021205981307168526122154056625319387960694732083676945646606663345190312779675061923974131987825332595256219737326250437862571943301668348648659541828836259473989179827037824751452075630722436031606408620173302459080604890742194365210065162031562894736900969681553062160231868009321284520754760599255831721152677566417745585517062372064495852116923349174741748103042164662149202012070653290335120350906605954559523443729520580402585117746014836521490628921468108183239514391825436254040607484323911454693109868495425814211703561364305585330549358225155908570616851010757294809045638233514610009122894783249935830804920303587799311305779721653826536555296973755307604689762783842461545546721997186541286937988470597784287023585845136360433788718489477876958919555483583993425916616921315216973322017022088406685419717720051637336408306263910630975726305654650934421601133407097669061187792382722843308372481973230883823746362224373926034371593200089619889577966059077257899025210888232018748076841548003629843146924965807044526674301004029748975295869520957144999359913830123707977626264089857514251412671614021500388421588316169701473789849827111004172860225627876501680623485692720410171238211297322830289001730015657186936397545618648251557776036312223588031234291447182284230672797037106683396252847229767084376425175878563276044589464372865657929199936711020945685611308276098408154834773406606699830079118394689608344164438250028808775217823988192947568436980980400807403424969940863643034223025413334390719567910232474308594915685037543429969273425272490915134059038845404900716578843103286046240128188316148313461886949858989621147888316325623804293394942897331638221156275496536076531332377132426069318962916664689796097223462282772770274176845344734684050428227035452934405976642975234858061114229167014156904919726231007285808583292465135714512928886824915898719928831123768266746482207428150852224025993617564920139435714695799652914182204051437738010813828752051055411418230910363338607386258267564561439862265060057328065746203390738438845161927210481578720549054711009338996082858422945107798947497863439384926133424867984112071293825002474077987734473916748190164416742241773618213228862884698440629292847211862437348403773019948829763019809175195755410937297637316572839591682083596023310503724718256501202544562804836618345756807588214139686322096844367456074143153284331068306982058733285987441642821654019936238837504213936402881177020981522731809635425567166022181242921454645539920718388898083218278797765055552014976487873777440526045579384550623310568004327580038831811221565084819820666705591992604951167549620179201359634602016625432827018834500689652594164720141094623983038678357689570336146607034881882135900290655950172929357598548900363172128861971932888435261666964733879499592582011726191327437603810650449081249322492535383071987062780529282187333915982581970129961820803125389724972816880746157014597712614211293237938339953749805654888286394719931613931955258003307309895618385867067903749695381815803532203485840154671575753928931148660715331980382149849899365616821623587103880016165696296558171426760354842685561891488578422978052243371904841812804465368085505179104695746578304064422955725416495994667910389373919235340405871218986958184035408135839872185487363346518063359508926411572125966932956853660440549189363708473429290807078605709422153367298368414188050487758295943149222398476734834025096719753640719415901734174871908882675775835777516099791624859496843094875910203163968467165936080244400664794732272847341559438355344413421311420426189880222696001573297779000286384282232312948916808065343168486268593477681015902027961839505065294825561400636709392087516767443734819747173192858056277299570897750295300826612873957195684997374500012454788410831142508464244998593502039807297975946365238924890754644078546867687867536267750140532615158411491278629018554721926672401857915484055717989535052028087929992442442908228048013836760605283737139604857938202587251143231250865788698173717046630842831228073344299826681787615328992003217788219025688719287047760878054011724395501956182150023776350213816963618155220637427000315338871181904661369138355998405390513047485301927773342070922307114824642515998714194415532119993282324753305137263202027279317075594992973790239823670518044449054124882934834594137778269468583675483538696001052301020508014836147511104603993399385877767580513070843810827131139870813674641893080359116153229779739498988914645400571366669092215040572834260117590474268490957225972867720472349645348370648785652160618966193511673749214626929120209139488647292741234499585387912314748282287192205548257181946072877476264435808203927833883734734150873207182101732927837063977927543937525123334664189744395030710246429194012662511168651549594596653614398167582027685875782313139267922729891793593483814621592696759248341257832348801833285935651681431825741272193218283847962475955000534801951216001584170578073908090998801561239163712577864050714546980051705973845496135900851837453633680438362792331331099717284209745549112696728424782167171394715351622765010408593198396045527407156275916175974410235846857795740636337899871959476946460973098393670760439573562345731782350195898094025454658641441972953660643108467865103502823658103089858205801749502061178062561226660807177069482057701724194717342322061884694919854546993920959138452668775440326634673225123779513401748324983077036584709974331279237493506791524683781525542218544090905563291383485303460785920123237695265627195443135230387337674166194337515069354307233262161681532746750275396438742379682028569912131994189737825715543941139882961153206491661049487174632446374390805964479025537029512494855099799411011201803631161242024787314217576230713101168802213169508289462776970001452894559323545845310851278999674492072040145902547203325656199104819233029069752429780048271803120899036624038514033386683759587282465997910925117059373698379633723277703642871867279530884098155252426282192939326538175225550280230939276792937920749519417514582192496325038371089663165403188092362656778112003018244428504128338777068084845540947715716678570334305345144569461897383555176861586917448051704393087836680213922885894405385583094799082767323113754794089328684979855182894925202162612220925193777475405114474122940686986618483986101745553197718573936240753465603908684420629315900642578995784231927256682499020527818944843997794992540461638099546955849735924954611520852874655142284515819106864041925476654127685877908911027467050844675602743874943636504444683551026717477704735478452110581107656392825076505284214675906990288459569299061238213521135160611522330915310755244814375071524268315248554633779457521478422306247859579453882920964199973751545199873790027764907252439640407830725155691594536532363682941964413680847077131741651041676594844820538317535680693830693408674697088232278958551487235139834571907730962579704279109046460185094584415286913113425345344542561058348088305953804877950702183834728995882292948821867455180248688251078556831851183013639414909301972838155965341333868661218340623181731938696115441005179145679943235798020152346013998994121847716022216379960943428081724949926743427068381125739659011326296603706915255470299656183194621775251799948121049883922865859694339599146894432985039995753055439097527192047689501469855349829190224724948595439459818454372685145592519608661526207565919729411819200888841852975860846652482632713738621337164405454348411812196369430801788417882272483565076990977619391987119695860273000505428857280826789621719523298961312032514070012650597005277991418469838953924480313690827597604292842218467401302106036886817146520704168197435670062008732895171981312837389743968983398187921427242312474881799714249558059145721123799391927443234644580451827849895272041997381593114118263821748694976988931876909200146098859749600257506125602204591355711589644829856161349567828602691759168657575871677655724295933512256207901721724437952626054733452973568770960211408530256418890151707859843652507054403249390245720834402317670117115281670736396929139177893351414027402647759426660673207954532630381401324585307179357880585468383050134836174901152192019851267554717546717108348595897952790871001288223147689239693870068207692351384712766051494857562602184953988261182775951797952640295320328084858815424853216376208760920854739792748357787737717498116916348878723937012013406570537611337383765743200452382708551247932583283686444585848462236494216848600237163062767412345371839627147287646877998334498575547000600580275333698919284810160669551885275755331839592977073685390047111113506947339577262846967472695477346382701809595147803101981247830009320169802665897634097457672651919539870817960892379638173161459412298412684004970936643836855614260755101850841905018511380582072512306031171156733255403116695444244563725960290689603779175036564557664432211481339403030969936650321749064564222975398392416934044679892167482502354565513427404805759715774436037760571045842065408306800761014250354788338932162957104252488679961213067769576051923583690063335749318764579113286364738661167457850363153411246439539610413038353673506243775401710290245235107109445574484746326869345614476853181871099892515173014717487468141632775033980872400645626190292715994779011167441289486136757854897285296451634912717984166171979878138061938577538132969915348528157390885646462625735602729858429648858860908261413577867379674517705622978881912587472323981357269059387272112140801247514592047181507529315711207465898633739369787967611384777177310220434956022365946850445592404096328847851279132172492457830058099075853398008225793782230243485814083526647091923896355009001550556363220660796207319842244998930305606671363310948614307650644196563152290304105568216566122351988177808457861420407400320432061281836456880334643371424207456669856141615108780687759566985589130210522319450866493431493128015323148924923126128527675176439477336889947696184513113359788933736490240309379953116041840754795333636461779658632288035847407196052408334614159732739322880760057969776895858423938186385682726606284010291412283190599709065768053173719663993694490191834781563911991949708762089474253051405338755559241081626751754528983941333490493163495855057427834200840052968493058798286704154136331938290647865808032803933723470731614118474095853946670544389932637960644444472404578713136081191539026137216568502183799393074916900372350207632908138770014084190622998952355318929228514815484068307013274154734976843809096868303665747064857890675400196488358966662991733245016628795574101991384794568579010317825279846973573435964360661775047300756675363789705749952208862439756437237040440514282780595741178959906655460261480199223622972315289246460742605425520495622549146090194852443214425161328859473462932915705708814448922288981418697936819672576366094390810769837392885788516135168060680281061952762340206545155000758288763289655991830928083853531099546788676102346619871108678605296384061738664100215546484776824735622546158851581552707249862685285177934760783653276929920690205067637879022125371993214113706105151365241970452003176897932794127095053184831710894928936016709945166492380744210726690361023071688470574757316410835886349528720669639892464219863811991605137873547039942220336015030901861369156702387292246124985011093134192229706985796868251324853918655063859637521029800247812120262751629181381251178946423970250420709665407907652061762720732221062793302344179618889946283039576536127548698207362601685120727203893016318801970383411172101446798562394721176302147130694810884036225820978125442650011693342112180411430801073535356016018367817827309654847838818896135622888840045959315719112107799164695638104886825295413586497720123816991798928174380532536787624198383677207988486655009129374126391128883663725527076530790358119989781776747562064876018758558154334233551403042784710130204332515465730117844418223663116363400246945420175417692732902390149610185735246700880249641222050547239169377490958760618676921029535713834986527690938983381538127711714192711832578657893648034026585158524355754970615977856777256637370434643683832522425037669839520455156302364308436551164604513396668712576144941750322378188011465913295262490425951601550992154588278135767998487835238484811587351220775677126749011399174037738433274162905209601205969508478790037616640486783346809640422438237426737278670673765518845912736862150258581521314955590871272179523242011611534085259697557754359688284932306814900831069266529969526252068303698484803154176041377957049371956184219528447581234056459096977585350459477536427509004714392313568446803366151880697380282919631554532913558535409521085214943556026516466821565799182700222470734020211640645302956237507519409161877779624106169382394059009352949593802780579373873254076391988474661855952373131777782658021303319824906317458602842247298795588437843585289039212119573453132364140788583587035528298265965833662201270199156663116846069928382934939525566872366529453721019192309690252851769747816476972035346680815217904138917356977807157547156712410802421162069094055614163088758658133805799558353308671472842366759839315754036624633700162227230669375396385608243778043109307837711118020221710143348628294103640045831529820831659517193158213464249216978538649412555482083530854325081013386719361157245012346036635060934397031573493545453518632006528195240333670203932660121060445458458587319526442121169345375027253023450511134312108937137274155452282725840318381543289373201788353932728180698112136731674611919251312867585292714545145741540763998610645956634812189305735890857316298748015940826137679802406718483242845964506347265904618725265862840421349329760131670089850668009441949115825985940103714708562552780664337037173112644204363020144552591418465479841693352225177656460576384265544655750481620734196197399587870129069573269763820229332439320919615080924726674200718233462308601360003877124318733547143008923745270744208796596961725224414591464358153513223174971513755209676250869393807895610485590074390794677080912215597048722351881196505941337688990025803167461062336527684722909248184350381059303646149114646534850020874159285511162192673161023234277423789663071899992967600136448568957444249926823570278750745019037904102085315608291182684489589273646050464332066365750625865829626724091301747283188630193717028869256216618660058456993385303013780491908490946513660063116515577081623988892340207218899007943163400987916278531042166297766140855538443589947405890592771395892058109887825589693531935141290435916403231769782308777563678006007334210417098771136928752228528011792176004791135154534229288955054449856537289463723124390013129947347398938459216947175174455119872152274886311837411667561093943105096231360083346597659923209234257913718051366279552658895076640042444922512111284262626011441523151211300883339286063959909695333169164214253831972433394555547464705249526509016121546178923659825124716909764186296122656887910389741229444698170216718786923811578258661249561508868854235739167412334935080123569705356362561531415657004115604629787601832970796711381600878646003007547028104817675742289489933449514600591146195340017600087237162629313141659305156139496988054093085443380793903451013123776114111891047010069426605980232263907564205704891439749721917897814252204858677303905583614490490081741625047216563554218587502407221560191902301534014049637666577999330635511907146443832933352342526098298524353530731205617736364129693279441187086746418151252203528773376811515289209543333605465186949044000904628468092558386050401384021737597499051681241349068735924381000620328030250387314447721655098329471353060109631102602051634587890582307483912619691265441137765208930520412533789592544533693452965924284444036347497459331322308537838843857309251864137069206896701463530549687355875356388378325947788017708438542860048172994793033241873922244297078322398806523541639517452832319135244141138112507264017013052134578672387347249441009602708399105493598125110469872524929500255043784120705415670047989754462819056999247195546561424992760610277434092499663907268308212629461869151295650075816767290040473554784735181392204861634448617321546211947229538847405844426773069154026671120001323939870908800053354197719452338874032774563695839026943976330705313704570517140249948248272909372695368570133960171201885278496263765643320198809146527272650461944846597098010812826338779954371223001447928420397005331893392415435396400359740935815609637024233736495235994527721767942252582118264001218362830337670670893456778792936512562341768080466024692406089222600721022561736041844970662426462811226186252045684524022158208238151159951323305846060600904097749107021345596188535469410687085862773175614765055305779350025475587872073706839188364998976005136463666943462639160699879022610866425754963036384420024580163781592987323580306993752475318412545396635344704565157135863970809911907135049313146469625536181557650740997509338958222739315218380133228473456628806955127289012362981336168088967368270259240478072485979354128486495639877233833654711545261241655510976612133347710630637505741207189870544726647685095133861019729937361570059229070485355525185177093719645248443380344028357804407630977872188641777932181515171967648191538480290309736753611388987426576613939472831147125118743978832367067306849946330701402607108457115109365357156501056566847051084111992408424664474182857251401243799147789404132828252209359717266285616801335083840338133522496595626931371631677397031136244971212751585498257451579509242089146002743152987674811028215808079342131507598913004526821677204544705559785895673096415870097237485929704665723866302150616678149699909044477138407121326237546370573208942369609782892949895344379109004659465404381724142464210729741209595972258348779682306425707841547428961687806089710633254359229519411567520995542782084875155460092207858040280028788266985262800315019070405025041135182540439040764724661286172873167346831604630756527831005476898817803044221225024115804363729580105573742252781515806385666938206741741054970212454240396999101759932361338807361845221325510545319651678814646767190404413798167086034877673957907212509087447319341372205370869283721540540297130385557405445963492600882394786732370969347125922021241935944966369669408112492999516073556437066078417989764728972062119393057314583173323923589428323298827514221315633469581437663731484398619391898378001186797362962584767002805069463590630832843892428707789610089657613777906797919704011663343628141814312868274740507433007749200438643827074482028730530576108357460162344157471328238038931241785598785099800205040633179783834115335670664396861111745285601151540889488012946663957262250914026928579294391713261333999194013900409383075981907961201010065992500410535430835715119363386926407751346417929588901378358476340634700665111720524702891281728004889481398285596282356179442940879283942160743788744364072261591005483721767326401781102363894520366931712648010374185615813380512886752211261838161544951564851044358497224197440483821676035874838653194929614379534073667973365890258381111185173178600476199309798472465662804298211620221249056108227320197930691303719004920898613275694866699751479280865834436873793655035021346343203341722402084762150096240402546802306987868076563058191416821833288623506329248104062579525184449231199168927005781005989796543125168652281492132762647643932821948579830387263247145364314923456986729368988177952659110397725820435980586486573446935357863218021532853452792494260080201658786256677597690380117995071519957959677763165458622289258865463409133869497847236744494027071529451492167813655807112924687876129473759264998556837645684293157872698069483015546829240145761238663350845723753610490164885066406045033662903463335145740749422631167380257423686394908286554564354888782449712224901123098356049895395894388838506011563552829637253713303144246450867396506935701674290676210268812744518667908813704369863491412894358174991424101041482823421162168735247210176760142615849189879215527237832583433054222479854405321366137902959705573817990843525316803424967465875343624604080413893479451790377943694402603761323532124711234107045573137773963609334962921478398745802114891399709068092670769578247069404383449695267567707154799456692554982287056541554740504420664985593156150217613990019861363684033935178122215465679638281548021829950798884183228350739369506760738100946563897739804280224518355234191005365915689939510813914423021575651352281343408963901976390254500792843218178359362223876868026148976450906778024007459625738416638708812001153258581710407423958255835384201490742021643381233197206655785166986708962551175241797769984599060163249421495809704315040095659281091713306378100940482044062787150387856391695386624630781283722654359818382405975085663861671774715796174138899263269681199942346237944202977765906824568398285847009495690873043529040254226681906338530112958768651159057732419227229685111397457067538847808200761156865686786367524952511739482909315571641739720729173762460509707019887632681612051434501109703432694401707811585168813734301190279802788909667662445174840398575984019058675749474045981479685152870344954299443661610045491762830279259201088129945474301816863966599141934465455472658803910394496811193305921034545842676749570987517217235406861914961136642903539891905604162103015762329029408268134674062040873096166436050291951762225432092289113802186598277187474070913187376946187360992134419153712127581750816016912032929744406674935059412553661012725904905534801582811178766844317167425943864295587205534904065585450465881469588204786266004488901980657951043177864038982708201886655191096165838773995350045912491272433384740563796750802085063396015503860438914373968349891700004109550262876432023316362548595829504686130869070546423221978402096115575656631669675292201388132823148503762433930959603936831370113233446794952433212772341106134401271779859782197817339743088787395535371220006285743007126578540346396680167559277943523252546189938500818168072107300302727446935812664764781050719608056416078434136348399640186891836405667235267577768725670601394563827377503931540458805346074120763576119176684278410093179369091723664266886363887861679062865750875920161054107356447215035895355093867901457920464950970150265189238752548198963445202277267045029731085750058421381609817571934516055875134615044303008583109585453702360776341181514980020359124652975205265805432512358179093649365630834725560936951400552538183839747848755258099452880813444512347836868395406996076175237672151709091465099613386999907917199112383632631533651765509177666192708663698968998290574247996222807040817920330413927556058704652734728664430721028870508633285964336424045756649340878713699231905450431215588445806562996321959367477262894179725365494336587368133713664080442592116346265527810551579069290094663237511649935894623552658688484138832933766208495746996110842940170017460966094630867508802353290084954261170651642983603988030230891767146817370810088048548796476110816322800793434227069409052777039805133483952523508078326475587724238189931629207192343295836284733271512743921173342728919278849204281355038324024144757129669136971803266586417055691073286134595262065580964605399266960165709266004378987685320024165341202847744523167217846829727085261428365262774320173654090812808221005473840857885413642414729349052260815010539881618854362712158105900780092870837576172193543246843090249527915269399494732406486617769584913737225352429492101504016716410364935096030352035711607801893637889341582630930752627057411315351467174777984484488604906367754102582412691872700411751314698972897174947115579826843106831934228487923061328774344928708008266667474975215520118200073088895116811994749785660059976370017556831642525408647877382118717763149032182349581451779124187461014290187935118736442314156283960418216271355747907570048229519332603330971368470372628917826822885085264515791106566245818153365204932996429808131654597098924361092657837283739579458010394550193941166054852950469681896692350568268084007117376343037046329586860822990035550185758230079223862644326667453422174290332767390699018113702644424557305978771364740357761395406450643859357799910847322711469062820197172662956928591641798922783211595313922230985112659604263939674335367775139892256660563847019828387792373532368723009963428253533075152852859541400413184944791802386527850609231319841464308464710580012608492069640973267805221799112569664802851991358311557234164425670959371793304226177056039670024034572962589986373029463703646856130650437596229959683041804149255907490714247609022721214713217661873061744195884381657100412741753312544758863243123805025668175134257447750967489587052825752449624231682672073378249330709875933681468809817632217680469367729101571250485347512350340957301571756276290979139839758897232207972487837848165596407816937166802324889975402550746557305531862782358225798608574853883692597305716169577742688587216312816147079890250286468120416514326855087090373327356452569497618729216379896369878464072136788764916062114224358485503665151520706223855448495010543215293637359943991155081347952719961495122397711308245389767592229410520041354127319119733515649199129444024188166878606001908435832253463452839447626237606057764491195240443223221100229534839193825576460313034625543837351231360263300987449413399456643336528493316544384528452624548541860864708669660978097764183379168150290005400319041081572996722375958217929992770198817972638725034099045921968939115601902866248127945568958573750634237220369668299947158380770485897334430388485057864885128820345472460282774642372457055637989292905973888260606035057605007799711709497957476489570683583096176332272717345344761745901950601343603064694628041313324515848757212996105742201672722907964568669043961237884096827052980277994340749253853855608520624368545716286301562906468606427747805892322035177910462703285700390285700158012579261572896534655933115883313274245574721999127650973905660764575317687899024671098331128230722116125420914915397411120815251476389787052032974333852370713380257793166947508191456496320499708991851596814053741172299203645196024066189838918580467525654959592322492761066441537872184253809327825779904984729238926338067521253237719110462836581975738391647903038173188832895152893219292348568487154916940328264676896762654091696551696785000904833229899076530839440850021169516437025106922607683559617298851819938741143920008635240659975420132393156718281233380121127038620265209097422435501563473777042991173565646734228820703264842184468520326771655053419133479878837932743201435057833172874230341170006359771472210889869066493603574517571978210993802811600144948499965911632590210781899165117196024401977172710294312858835436526353986762027730835520705907001869616076548808656947799928142770650248674963199469520999928323535725843316512392528143352686753046675950579460974658148026122705177226919374814041865074819769920712879423562046097093527534712275953076556772175734587990805916323009870195279546291537623558080666796438618281835502004330517050566866413555363477379855950143852818014421674796882670231161675762555095993735356534874614519963749328236738830353919142719402043941988258263191419449533193296336090862140632137664469336933506774310328531971132106129080181441228418840737445752652652985779984713876491762786718029065196862321993781287890826907154560820020225203984390437009448497910445833849117950669148220820424814792788902346202298419030369547391165690177854798524876588571215463457108245854880066548362042857464236188920178501821643902165588478267459100743633498534355043418443230054765740525539636563930384164374312680339945877309705751833304869892537265263491115968377156888219055009878248607699875641464380774382639032890962221481406714686149551023958709690705546526600946610694722642941011246363268970794067636721260805627885723607375321140649558902974031510775081070689879803782109339775577621703964036750673492158131641284714451536695977512713519681090835218550186856590161470413347959851395179965401333534695750512648373521013352717390211351287881675643217714896058113881640528811281720340668310657104606855648241620397279435988249425154651209965935882348208304892825723938501019140434227450824125685795186586105224192805971274594920507501908495644710504406643784315004249251937862472328527835397126762506252619950389173505702598037776480978239296991209487290751359372873883158110298505575727874191556095226007962545210973146115196289670012745181084832164685832375017310023826110493852807944476785320064762613698782058935529487890948826794089825126072174306227920491683241469492402421383205062658014874396956242703232057103314733657663546219455948012575148232121165539343251923948081388918581736478050300244843834784073408227969939733010388526346680777052080798928415010027840378497890981873537057445208909772618320329842652188255771456046797312366985388159544763980544577957522100297656187958043862279173705582285038167014020177084915551901735942818609288344241319997915572521337899113927323707327879705556464710156477859365744159605835836872922711139770137804062424013652370572195801305927743742647105273349514902360821632340770016122663516788342901864801270561810913820411840751609224053702652550591175957434207305255218110840525906196105935600714698968019586493023967440965572624262911189685792792224342716091836485119799295115975560120015914370249648519988433712160535899630035761081537310287807296070796508329524697983733096201306736658602492001001359488846567373420002392211262666716405751959274158442274085909598571858631472598658292251933888616025263444653390920169783434744689483627095010814278831150478089132755437513456868456012709408929715405438546920754501940973776602371983878958190982895530899002553844551427234179079321881101096330689353655555284835571190567441730342019373827967044235626192208794379480694062524092972884603901467653476396329353142189328998753785886805332671144730558820819495532836413117931759911293467747083568584557942826023155577004767008009248076519341041289036688947371944735342163997371898091238167577668559696930449731864288238542473877328179280975218887888408617843179609712320007904457061242435897285565110201910954098839563199606229308904503220631836370921873155418289701924473168943035787512861266740059951732432064348397826392652251917777680703618800729567862104762613575237740464693404323239664270679481378887563473734977587178288772071780989943229562862891107161523385312353066540542418542076283760045711525742234426870023880366251818979951737901322928877435407969203193779320744859257403760613199327982136630387811634530103316160145234752729290122724195537185760904448245780188481887757627584307872964801411994958116314992243608495310343531600354612741375648640336453328891368134616276050883440764410568080598554494806343885442414694519542703011133661584988956997607631646941909222623516695161384556931939617211921674818361804703707644881140270178899403630640374322144966404039410203544706207662447227520960959647736666880538687085953193192932888352922537628116016288374489218565249082066813197581557311360205261967537087256457672363523757997711278108802661587232600961723190853701268727785409502447917706246502917324634958238619716553922274747281655712801876689179820788530837936042548317393160815767430420061450625294482227175616158359997928275805771023440763689711184828272578387413911057258530598223793920565129798718027789178450932418470790948659908615987380989087606214573263070940569229795543626749034810516004603795190800394511247608957172257606715160473407558081505049629531769282444473426931598511485542717952145581556945333375738443367535393854675511411547683206941714120089456964013593383305847336365660851101249339310337939961281974032805150540140569781746884338090280976015575102645143532260438056826034782573898505108506432411539102993359107329381712911636115890872107629095026946928339051983975493078637770479358125201752980405891708374862504474325326942930137916754100719663050115184801560542245686558442206824957106446364069374449324016460136214016789790846413700644887041896300316851752636156244333510884338374392953804153804815051140898979865104759123350949384939630083085023626887721714809374090510115728067043200837942810299637045111773674422067821811535781842804877667641182252908163452808652667361268758526092645995544159612938065038766744143831800538167532369400075687087669229612542973838110213525114991446331845304873382228976946251187438445367018289760815472711177257467772239241544429898243411348545514417102298488336152066574493567074891974129921631948627292228509555467893695863238296393441230506379803902343994973705944577331502618011398907106406506738816353901977626029760471664340262446095445927536195420783671033777719547414864064703477931505846769100747713707594212368536394488016126464667793118349573346064775980838807284552297778915184793454193505498124710765305009973545006269823616951723143863306287312313969440529086675599133592176095203934765248905538694711297099402694072736991977734568291943397152030556592152283997849794532267619954367330072443911036853498504807077511130560557244900290283047798219955191791533290759644485554872410826155225588969434108659315141766285961839789302351646456420852631826849721907253262288937925002413828098541151100971775315606230087672986803765494363538961086948197957291676033665714408679491220301959608729387065784032480512915077973288709200128644333336583739909119567513474542790465744127585431153974262753284144880077293174230275196440274336619023071640091686919417018017127659481464982684341847342980899411935215415095533073129673254023194552435192601223696461181881433262160643165886553876960172945758757450978298490083958988568748803662513265298379888223540084966809338908060301089813038636407967713752617432861869954820095102315803446205893038487052282794986556296961205965411431646499692763794185283246002912967722118465749194333793236883756885329090264721762184229760664311702432337173884713595191131216219814255878246682273650963776009484178779244514380347026531158373750137698351070488988334138187531270253913931481440917101130196374813837737038826573470404736956085672198681414595437535384628097326538442385221801689247610489159493562106295410878572863103008076783117000254716752593324356626516670864069319554990306588504980191644132607288679942688857300253888324555534121460655517146067606501332380108722906865698292479083019791253313832960586932003811032250396299175523504426695344406230816801516179299622498340765710506226849787179994778989188534009244820306638737983806555585232507551174335446404429025510712522018576830165088861977617885348220282453605395167283967225929725887966457918861271523308204194842740392530405090495943330962705086234077137654002472927141341101850402551685436372781791546863549969512293764093641785936912126157012592590108710669696807712660520015247528826706551438461911960029151335033979834814992415023675702674403928518790941813640857429157509244597016837239644746371644707091526775568510227981523804954863921121447280040732772773046113258976108660850424813867512910099184932433806324276912843506505987399947098906606732187242759776078276016798926125638398535608667484728998220873575069801562297254082548995853644469637682706621853822552282441499758631789898345406050170624089413935025750086482483937608492972184582792953791735341686045636352015107271367105478361105161207201657361411482850123947245797621000846076498068924725462383425357462822293357559296294981159763270147163752054053924829343177177971108186691054084633405012926002587415533068451418326987712266703276224462347729109301033180405583081597114088722472602249003780699384269030763370920518814263494155808662919948014959812767652290697728450607767133914703372679128003538853865776946427175297702306719092246821568418158931106609536324315833398472405911608392143763878807336240254479751659588327145310682488149011173332224416927043546268926390722421392476320418161186461857404393125662081712580666731652716992831446501127965870041924151772882395648040594498290793618643605931285100538966942965995827356627034927802836791509513546304146093679095427979511544439478132771674889499576174043247337561910212561472911395918194503740436159508488432968555405635310709173623097507921656915219635783780114550780082670890220049969249081424542081501513910274617711112486134222914132386244630044958841110074595358540359274729211799043618846416870555767032099037711621381322730664020154160951672440032937268097720147008395850211615045462238067654185847837773741434573124804662862074698104270958130087784025899716470809372134978760408615840219598553412300659592974837523616832486339666076447368315019638924459208742034268304974846463019272454449364408833626320163714154656049513947704329502982955461536709425227120213593276056568496765038028834422766604910767964773561429177946486316292230451776077915393560380579757223787692598294779738831613749416906346472226649439732746911507776167979855470581235807293464162651077895001518542212177826677719509231449401196848449564713145593084443128107850208873858454598484147309084225435764606079228320806452874282719391467598223455507190370144998211039698312300392240116563641082633387211571233042255908246126801865242209492445744238405771576815678860535196386305970159449458530285569825699256127297625819829783734360277791063259726650357198933464612462572978651872779458823628229282097320442215522719311334628740947070443044596065814237274440137206916906212892203301276457854465748145123202652675210340425864224044692962452936544861482049548557415888576015381414894625528676938649508818878144313654696089110849392370679963435518918742808181645329595508294586578333697056635413819194166382428260907459529272555220441193797875120288739342811048548011073937759949790102739371384626702412991398638507287573237917329885335369547089545855709255164223937363465190872904534280105578442483637120030238599218430586843678076095991766074050186589272998956763633228345160020861381702165854769819376519798011352383508713795956481537492028224236072235550626459664274670584635473893174745066996049587699823831337639384761826974130047119757017977234870201912596960451002987087764466887334476826790431306397307177053604680191316647642727111172557355963268613797690553095909697699374557615636232142109619049947919989799522491580303720840304631672023103145824837405526624816463791565890122941816677532951819843357512488393792206061796334956061945847302980412637075686372019861172026091012628312605130678713288518293201198255592661524228688273308518744288238179547471916006405249993961555001743645535225944109939966512088546875615287601827062765446523279227454554818262750730873045284257981601606333756923181696885475111343238132676415624889265755658998971859258422247565775054587953144530202681644262629258760749803023302121188347795173932927693037065037129963040965517367503055960660696896761721142622380027729747436317367562186733512866223521490548208217968547591923924551291955032133445556266015536681800589419420147318878118535424200825714820285737103244647713089496437202640179217627976121200513407423181371913180745567529352707719138290805930077161026248131326465839458480468966795539473953879805153378074194406202265944890957116271781696412877294155719976780650566051793188181822454537539056642465764109889513014954319245149375760870297936152229372813335970188180926268212630513791938608770969822322860981760897238144088079495701958271370715038754822834439741913819464468075553591519252439055945584410220922480272057727456589520800868464383770664524902266054784937696627883964824449419195645677468170375871319188943730189184720991553371945410573690970706068710961973561537562947692601364167326640085068913804385073430271240275369884317944247936972886770423980414121572956756708770731090413265954651171913484748154362170270477030194949249469420539803514455834468731439331720899716902457764116005568941637699686153184210386760062500108229116072686335242347787115495869177388926525325837914896131008454982566263371236817447962979290774388178488891751994700674273188250135305065982899451764861644886155582535513847916311915524210837891816019724727441744039157864554585179653939051032034223216368702708740584628696634011356435179003606878266396786192750448980719940385964110741325238926004200357289543905494514037941829863142620934250939208210514430257065518583879629002525377591702605379649745888775839116803073592176413406426967810859085343181552285085589969689985871838445197106834207769840352752302643034330090504985381818884898836274443842725426558487402150889199269436645375536418572419265885934940854662774377476256757490474160003805015430268443765699505289440426205694654005584581470595954722449852440003938453395016382624922948749900496102078557862994558822281852873572159626275749987844243033904147422031069587440043777907558210826429646745296968782388808856355815870742952450209285271859942165541648573888952895490720240356072521935284613255201983567190879918322016404939814561101119860927427419041099016799283509414274594297237388192748680354419222149589152873693439659642783774456257922795680104685420674449651097721228168955876433916926275841704648902056555124802516983674481614173446878247779835733312619152719715881361655084163180540175376895282969572732485165887838980081296443446161650342228568472319733388866588423271994035974374581941512874277250529685823489976445711789895435590827059490918453738310662143482238573717147440389721231759086691959105756893976057378428735156508171414648688556003450189272818691624044094057828736068768535038681144050559600953439065703842351628074402589090980650471855955100234226921428771882423998487785851329181003987183209957296299172955299177641193788493232131144195132883956618561604591268087397986609951622448902158024443055948895312460960294989699914007517003100973428963577461081907220671616608244066750890808781672447618513144230096265458631828898202769581433050582082890577605503585200107298375211135211534495704588153321288609894810528910320793921587598391095561428431054646586424337551647045555303886327183558187751990917864809300208917117350942836913343556186163683138140542268231099655333482487296773083330652825484056713340455517726497412938262321050588536135984302661564208019748573098095847634397475727738671012730426759017490142068743691878375917076000265455351862720037212041513610909769670816712767343060266870985598429130038508595333894695208381932726806244478198478882035649004587457300732924691654069994192056223267887290060404263980417327496062070523415019715167318155429665009526419821744212055707050593658871890661867426589436791836654394976564989459248528652534712872563110375854107305736506316318713542358183366403220189124203363057459143264641060595875859747780126579615280808242216710332710979655477961394019984641686940723134693379835779669429399613979079416830502820316713503561314576137684126806431648544162473692497655145476693427312072096049144701546733089575544787431123530071620105736303728877402447432705783205878994905836220207266302677088641813771874829675824413848086854929587306768695872919419476264668489738299620394397201630458539898496869348295938158443978485104379836052507866143573662123163550415707758356872164587774736592737699709969361459503675931862690694619532934972460688859136499075211781936943667675528590332132643289124176076160036749404397994645361256868451638591048564252598124203275820992666028539034496178173924441211315149050336557479291329626312997671494347342195187515988829917927199677354500202269627278015762724111408405586905772058176243654418889884373861970426460943168941644049684132229234886876909140750041985272539858841717279462398866778450523214591067981939534342836924771809883935498409382110135588790701571662064426256480495152225973955208452629701865466132704370162607918018556961741948125376840986131660325232026449615123646084437331217318529180209332634914627876514576070133934138902802519050620566535699384690784826582788643085097373381863559406646273674717776603789923021096712387939801714263860248762547036085316210122765358321522908380887925449786654355016357608922386620166616614855420245526348460685076638807026714343653058417662423208799631928229866150582782936853340720025565924046212709551024669259527070744383757154131979454822115181059644185256864376464884273925388962289051167420018754392517115628233595940655308189548754463089505396526726533338178080424612958475320442505956595377524415879835804149470417911133763194427113185216918133967551799561727126490537092028173112273752659045810324819779233934769792526675541350773735484816459376702646900808926479008534828329995544213871106452387300339396271128281192947387806262861582699060380841408947705720529179674871024017911844655357899439368973096824545150716522981683283222270443768241786267314294446141670164833434068548060296379993857335922843016988249113534124751990630571397433343236570866475249236188255951677173859040014190053312184834600621927337391357325606333527883187178774111972777323789023877935521431974356666329835695921538818908337152036002277421834397512775218680307800214744317311939844591694965765050619829297371465930369764120987260500377546240867326358233744691360418618077939047380824951492216829712902920729581990669568026738092709343906791415294833870761497482548685369674697022024183703613525080508471710049014389291657795256782513092752209198211037685362595945913275902092053100106287233577590954861409088717178248094207593258064340449725233525348890301838596620469082665356166268391192271080721427561844765668645813426480140493110895472419962653687207949536738954489371728834573305130380234847299447851116300246478561004964721669845896449706906102796385476495514176051705301198915256233041451457552864455213906218310322545900062697686109763912358898012298468412936616286547935686082932651566383786433157585796903361453728037530278818798151208689880387750338208009089171242483887015044240339772420402805417201652922633513146921354133980221441499670099809750112534049386363409960149365574893763143041494662498714101194161919899766836468896036365518240151495415777722850744524982936722828854538747263465665193466833871872942063455614180748865235625771262945908731867504289138024607742105725195454232374872730352795838163709114858560024776019972690244018886658244915751619143661992298632229702555761202582247275210082459381735581062384750341675310940684350538874547054915512767565046861144645369221939639737235240406909171748454525250729614080913799272648426821039703338401002744426222595809447407323267820565189254204296570233654596065455044725488866374556343853334116287908823355273780569195723127248240512634745515159436053005215726750389532879650413750904260511526588477395055031313789114086616141554342020838051379198161799854430299168440745139053490751426717576114075323007545836797117175383812888624786264479651731502742641114266924926889698488989470168315888610131533237521883572901776130846225560381108417271078825455124654097465226721981926714673186910916889368945534049082521836588702813209425693370533870720415061351918511972395804186424329355600601651971979462310766386193260004179092306554578215974211738233834222674843913440291029910656486212011724202984263728275461742923112008637061209444275566026030991274170544015590380140143771729981066358243518196459422605975485105191047150369604189600977723951686746420147174573566833804625492706392970884767324969028223612901891554300514177663431088163569362543230390873872440388924408273094735159844526465194822881675553822146076461325509276461965738058520557324904652120478633931080068750413918688105680562783488895049181958962634612992654027180720658090701372650854757455678159321442647499002484309910551060061528556795456874486008911207714388103624815266997746085743940838699528101725484327524311267480404960330241762406763656064280304683748439658636935787886954965045854384708726592062402529241038801098922931838147891459073799237540823223845609490209696522565999659598502309396779736427269821498346676930113657888373971391841979473258912313218442507210524590338035815460710775012415989176485744839409952489022234931601379312343547724445550468599476431197347391957743199472546574503673097641622871463008275351179924106184584514340032495546019242130681391480403895400719485529396025266409877122546278893428670068377109708230111457762848685034990586704392073450381421797392433553858770601755502334309143160833179891138883456145484821152484379428486542669249771172652332348749490386080675168878309777532227622017742215792082465347603340185731190727400338366750003666750803797175129858116107524040613135254471875763793199132503641017199121860729370136030911232901673946421658553981816787352252206702805358238384843083653739202311210307412236204360622527154666495565668969894946474887491583416149506884448829245668061073110967245832152113531384379212824666274613866328957044996723988540439996642153217295586504707050530160876503031030495980430662645642652539064610282338249366015422282204437292651964070377240665815188219504055158332242861041599301279348355687862212253301657151055070893148297043409926082894824831460321339077454473148839611685466605403006681729816823823884582107150471291514138564061299503546916273521854011226711975547577592897824799599589651312599660408946966432240025649345869451390395008299701641032826560670149732793062616613625930299924473928070172331370971597858718653428754760254467756576558884011942098540603847611530701296857865612881926139901243589738755128335455902290869872497615207952950450513494635444843774906375347158060777005517292634805113992109788858000849142448432026207026131978730137279414075450155071038052019237274962294097561854080085406968752439481608322237731067233730997478873603605251424318605759504369030905208653965709699141811725596500627726904399296120140064380774026748592136409319376939747142031293170597681991078993474129999470887285588949667452475662347930786335593429626998818484351717820209003299597000542269735998397632726096352164193823467863764193531232278051675269864131118328342219934640749367277604160730615944246894687497865236719582323213254898397032499337572177974976295026031936585811283348539964854347106979359151094076154084743696575160861726772881505223961088682610489543977758900568997261934112242635224942475230617889873599629492537761532829983242453550874359131399829035023757785662889054307571227155814769983729645913606780751055725087503442314858914945614762508191304752210964283250241610239814336942167812230602942368033456001922602128358817632661587123860640664133380397432620191845416521489807923665315622689627031285092744158374970371278381773877673923303316301061385355155402582159308870508493382378722623702153490679522439156619748648419007177656786480714330945494216777324950489063134542191028962019277243145022286931153262972629642088675859356863110287650734269878686157931049693740057160005336644572344429864707674823934997640286471551484070422796413228729996626421486378721102760570335159324516201893941825567557025730314908839730562061897031191436508734567118749849577259644051538804579567416057564583400648446118272664112139946123430797852800035871122447718866032975780100520863958316973260026563468979705587470540117698945929409562659683503340086961132158533935374903032624985863920591296047596577789444274092668741890667175416817513625243043900116127201695142070185541281560643168800458200045610959557486412144488423132765866612882290187142740263914780273797814037894768315213347460109634756060609758249891828555291473824538799764368236806947178580881902741486796986934625141114770373361392107554963014136303140428863221652041557646729835333325335059752195144102728026246700420859741577213225679951037716399927214464988427047694867737123940849084886887436629061704379898151866244547983719296824898113788161856266045618721278693589031567031372876752266416983058797088657374277948873815980607725213208327826562400180034699449645192873552483976253711240598552747155954507887225574632322433135453674875508336519681795336847413262619541695957301873892268150084125869199949315246401866648078892938790418516256834236182395245967436725547721624906436870266230446714602414338307402543112574330410643905867237340522025340470652619084899823006722424074986884903974677821366245181950156336225427399771569002518267813536736671171660976149091436062010638583859615491897019943144608364777847101590604106126927251875600973829821481256200429387207638993199718636682716395564920984001284312404098761900357329511929538361304653298274498841905462226813170013685341668144873419019103939588736453792315994393856424356549767746143630933347170673424165287309659339658877244248469139514771928774092754849898654860144997938457792468221441973334664081115638245946163907561247911248498258845495974819151895368868404951479786722089185703129059679830414051876679732259788247128028798683668997970571672656873947881071781490779664334093301684731780296918279739007016170131082011184992852334151507292990717017327099810192809779881398938202635273250525373435728386742307207623731607844492928771197598094332645136008345714078700735152392083081589116452602676604835587959209950638621397349910891994407400058921450816933608270461137775228481078165606326528202286613006321532885323768615509472786517112340646358451580682081088440136111565461751431000280859825040757797952744524845247561555435017479243791571182288624584535485016565605936437323057353908176190193422494877098204178330859925040271461739575949476740745179869060680583485377572432465544511041054401895780801512734304008879468584404547217644039032778752864959921575895551298839811914743856731223543726928081596263107839299455470753441227166774847859335385495608949715980035925368755804857443206240607041966614436773849426265770277335851198052743555826220788496386392527246818514467178241059187596324917514157199180243188978551993880394911172449497521245646337431685438833073214690528954458259711454071890527076947205786906780044240950510204366086011594399913046140525610330316807132857483583976989642276831350611701392138600217229343725422112175242672111112586656877681057634231041808892042685204436932827555796647119583274225777353574020681510101044370245932934031521685729295107565117818258859445858376397232258602267521085220537497308149114604003441771017833454702901591652320668210171542419242629574103007389582704612916040674487193883085058852227222207758531739847922115569359477651884891623791445208620068623892455782573457977317754297249242328596901311855294062087065606063663787254746892960485358933807107241873038504410024067590984693605851525244181942976429022066277809750592547716996929338932529206534822596413437925842719819964997410199944174900146778495804144362287627340262160808080614032805760399294378876593264635561469657170279101057712410126474549765940692968341671490104406982239346292813179938026583242402147481655026125682848071005126100572102981719716933186560636813005747860118772588453405675211180821544168507475202212934225174298580630366647634458032859209286515353708001226296498861168511770899370687380587122037811556916077494241466675184434919247397213736916086069350621290972605771683140642737598820225839350410401585619513480668923465243370080297900531120191247610588995441996715832066562520447619991687899860016850599930763498504665796743563359546108152709166241789188868565068766374877523677444573434792796744340608737918652037709928353159227204616414612476906845934670547075168208693814629137599611583809450173466586187762862253619310980759148836108331240971228049165454137477987058169783537316887684720649639796376517126929923735397430459778448251669473943351258557843704575194558615997884157543565956279109194565398208011170367637170680993088764730020354864041452772522239258485530197970082373045095538884718738179965794624125398290502995700689576801296037754105718341829365626438290659469272565632960030002696105952051486140438857312058964752164526492981339392938529967059958725268638535579397410842264578951932999918637839808623482362920872755143363967689549436967793077881066487237119675051830898317331932769435495326495002327838002581884021618637977001550318264185754131907597834249468332770688901438036891268505602825574750755627837844033775660645763639695541601486483800662997810858299003633745326987128846742486033932161867196400041814156203148685008716470296306245799644989301003883778784088869823573451193598091812505872336361785496440715209274455438723096926474312158453038641362183732829234925695102428825460915189750422748681865195057818400042063826719544185179974179701195557691681841247539866119635068093776517553857027229306607811014317632131728278542874691388163048458939348433282940415518595296182720898501419133785118802431243386370761143845374081838139902396591447785840241379036189836604706637874461391143678940038104180301598327898841719414266496884947440666498730066618559092633580334071577999327083844333184173880410183945892121029860273968414967233739554813578715843069495811394895991808959591426034711808655935578334404126235582664332997770127942347542554540075530250640386725446279860856685347418598014365102129395948891931389467118935658259692225912815103424193113865030509337747845477698155838336982756362569097742746530418198684141446927677765003000971279252160472071311331013479242607267109967914559525762051267878788972897799617685545330271175010809574549411767497163177974556824407309574412231636960655946735718189407572516100475137053408863836304056004083467639221129587684317880866022136866262427427221215694802380680864286179320896687162443968315120369386884496702269322096502171030264628288657009912241066097059756615039177767336905269810587407811490210850325036684179666000736597453741630596829381118016101212513672128916572225496148194070842373642154228772457652980191696125820679326438586984540566030226211158321448088468509603721085011437394253554437720365241180723528805851053897729785522493315689470891383952854808063367009076446960700795859478845794291975140564785570800561662022881141753854644465712676945945025711147445520379775394853702854684414023716451537797445827534021416398749093525474916155083077302842675770053856240642212829674724363656773927120724114831724611377392579449104632765382025368490940077393139932648901454689666973426852686585009594083150370936149545838094393420887646329587814309046792624763431489704664727840289360259647890826999152133168724842269972344355083211965395188759783549377162370505192185715446361349265218510148993109545276912651071228197161088557626080189947525613490827586554541428742172280716353358461318691665376596873200212071593512319816761749165903222802791636727581269644147208483768040887628625302678540740413155473677756829204557371443950777290613473393651593261377469083528422707984108052912031451599978550336944846739035038233432417212495913513142335311934864675585350587519811398007605111909692137344383944282691789537121924814727628029270300025871388353241389022943421661228716374449061349709670344761555228848020391780382504325976389785754976074830284304399526939618017940383689566652313531096281423317837343498246180738959427713434326517687169050297320944535049186070421387543368007365616603522526353581565321244901206406746185697686934814036861304189052811132116530566438948736921686233461611483931737383818294209916718369882235956954826944527838108120350146180167857286574106727995790613179903271504478292450846501796022525295915991067047958142031836097984111160333032696676676743736187352489980685456163721854586366594443644908881402880158946796338421989284633003068563240440169368803123071914157568322106153937670430423798987142926380241501456790687252136707242693671007056846237635050297652869262005423738029164693602521631226757224389210171997910475706792659619729804817677970601092141613354774908735964248254004808495185163280628356187546857173001181182090902325164440688956307180664050225028587705203477982158758634233053675400989361511221092044827723843292086146382712767594476704955073446184700720079586974598651021255029727503038716866756346891635042566636026976698550212161068796669282146868720987713529669764863646235933365281539601961556844570345039495025781359487042240173559371494676860294024010169400976603638858452087503964081279587517026841366796164036088368313641269982926866570025254176161444366801824967777469813699262232544142245516041853438615575970474220012195614174397476431922547537847695571388589307679650058264236220500543463682383662419754623962277814426672045159677708977764557076339381081098285433661695694470691100740857831593829074038840176842723962112306836127849552588531554388700147585227029761023313333436350850399439042153778278899613272541044365820433245937006644562876594789040440668604785968226966995672191128562376856931813614244102077661626497897687193915999226929509932136130316008932886205789134890686357588957845548995802149709469986472729538590901915388913736442509750534096945887051789448355651466470053419387046653891453612970003038704526234094716706822169848690669890973942746823026475157454705866770864639860797325210094560387088150330917617986364800273893757100831003886219243325343139703625058376761625293568052064543691272897939081273778204316034521948425514632648804809812936647935476611785090971997989395857519202309517352495539060848835070473630967386160400834388082075254406637971830281150917038388410541361776447193936188192230772685040046877212187977720713135862522519471637589192742515241779630643643377553205563767306233219199131122744862699169618213881539164673143612646174042885491354814367286320432184862137402183989603517644414974052031793702691192165850987960334775746449814812730297270344086015614691894234628504928509849624871976676419426906400903311261297213258533972151006685030622351372664328103835675037790759413124743138117357109580541254975313844139717880738730373212526614288330830402832920941163163567929253974600059375764592270272168936770659145950457033588383573994932059496460071016749153843714032232527072548964195612317103893388156320653720152598470396478722652302428105698419172099192694628483257299220446948450422963459964458014994714169775502676744019454176994580015980735379707849355025418529259792341935783058429818649850237398673701364161533840780287625391262383516943165020412165665756041409648844254756211176319983816315939987013931824034610633918894007780487369463295150480497162455373232871094011767178506339118169032789770336829613862619295180525030225012709032036603581466119099074604412598920773293139256321380831530689605401892063543757914372072937360870534413567542738905949678606988301268026428623093732345878181815876368630982340622147547526451334188474275077475328506863606091900945554946894709627141412559571382795428677831775080725300084749662348726738348087220467244525472466336540876757456521957752628941363202440613448207631731454452041024431672918985980804489433269448682283392137219067590489012725805906741644243188019801748904201591524156328762108490849205049060843812519711161843729579231789686285056795591286628102756922598967974073446802415969561905940637699146522292805630645463732345408331538409562480105013925708991932867835136608285678101314574039192460662547066201603438360901193446960820808150424499098976571858539609826694664763279269596568839712700579198494738866262906683102560275394933028895589408288372175331169496897065516899553778750395679133971624385032131041207109031722425667396809486697145408243350279488228016320346358019068365510032135510610008866164667556951851337901880811766085250904815767808105052250700306322806016717266332529074352615822756182399656949558619243182144702353888216173579686837728207586606743663015454488481058575375050789720777120046670228021881544485061364714789447566274374084449035476934665287653969661012116589680888639722632512063355102865966978148013739717879927159035960772598154518565962381226547347930919277717499214285734942460156219502029255958418512349625379876039197290069125628504409589955484610647437613996282596199899390899002204601404185715085373650343801078251812576739199125447005346342058255681822531175566806652433954198265575032094734377890381569553926849467704385283742253397616502406738373049483480608304901665003597036128944558356960670460992357458799139782909614995537615809024051557097758132533377949332208470336570243004376969848443617017525647519437045937757139389271584455070815350075740354445785401295199191744338601531826781540951422775448863332268146145213340740121742524632429705732273810526024599327993889875994383919658502336058339537130172215364378664615012279292645595494103421920782184826113466014512464839804286204822139407462508415408879705629658711234374304530597145713972457684978717771099427166930819691106585270243924971145139200715479720478197442605374836278642058979980766039712701678652349156360034398661542471599122646789330632333409426605427561645766643520225170032768434568707980053105172599641666771106666037730388882157068004921328898751201310146995372819346969974450720952920086771137633407626175281969894598622213963919805485002749565770236093094344734626417482916801052653677418725777751367386237750660071711371001375928267271479621272660094962403669704888527114132644741290078637607984301310183441491021523909700731657045619552060569717383182719750996047835851339440072162936948881510268165089838680858081416329137387544695042346410369406127490307691447724628466288094635541418774826699967191377258236541970758276911433159833852629444115574931397130135708618630511041961904620623534034328166543764280888556447739319390795669028882202966276324307197671501005906704451853932849098648742611369753749429454434856639131438799203650388277538478247766394503210027287038400507946158365754265729341477680507127587607957298106518308304131106965767603756787397332271220864635187948264439510519750003901694683586439660622696839948231389550496067236320449451549062776125002543858474875103175351290195268345086657436174017928458450750845008976824219005517063291795088121977483273080118916192050245773946014075380974524284422118659008289895950429224508855844582043290362016321132290830190308547912114028779352530275208349878189778140156482040177766504233422950449289326383627179771593921094139274423091150320890788792070167961375076973009667609063577791424746210672611533478135170070685461636714296058410599905850988043779468494586568096192292836902817639360867616096520077321188124339820400702873639593582212041919658823708829726170957665726455366942094462492897735162719454236649095919625435715388495993709684799932308599370798775129187319286720709187845847290963630093892378004155879059514396737696983161752978419615193043812234328378071960565966688281621594041713977532175493876857889638140665928630275610575960485970111787456308804594397820301697155162399019108608039720549570914869291716540885697349046400342836513931287298623535456543150384571340866931594259836308423457848295991336755414808703427944774722369435157810405409950401371805792233432704778185116748939318959647513578986010235459045347894560114190690669878583902397871234342740528670236090181506301535859920230108984790033809586773836299243122350928813864268831709374253760357066878766353927041201184590600401592862843394651659918041699067223942035970600358186424692073963232700677634931295285090863230140352250601270906354424440619183266488534344072112499090314971601731577988265351255388348563484857159503520872922534280267353058208494181314955138103886650183788713500653411219691224796749729050268071190703334165954897664603884993492374382945983141382234631898168999177571946574936372701243738618501556022516460162682364448281726015648499122334234649983476113085989776899666549200694914806493270923485990588292452449295882209158364075175220496656750372372574701023308010253423581091304040096023507135827532314963957061683940010974449863295776718955141921778964350031095442999295146652742249222493082943685301674029271145903872186346959317020537296343130954751781352573930027347888137603202706376345917820994004928955784517184582795487950920669355580521138651343418073620204408122044313952165215813959517370736262584116963068212413437338929477620715080600287588987147670966819619647176997823828510668819202378976679813768455126954610543985574117340666042820831430359160622176698275218824913868102141169389701885044152492678512228358292112383984270522565026608097844647825006974090835050458041466963441073687021633800541126421655997431218996168722250543200140697789480273497838558577615650352675752307972240617309703535669927357815990093154632721165783554133073634746489829796743882866811244675842216407888064689092659468278583922047991541782192180721981287240235865817876206705098954684266356972884768801904354985859750941625751747144517242107814905877704486446985214220058297170070274365708388484472824463216126403459259814204009948539829958065204871396742152549297782846023253130690484021853105430065671063540653070765472096534717001806111639069165700204123982827858211553855405758460074785278971707004221851349290564348007400346110110443870766937620716054976891261918964836269355931833966449526783478441095885677245073750779101770216664502571166455054020314919659237351487390629930881200057595112100000723269409654689455768495859250242216827009914090084585012063591023850542873407975628970406049764888425925488926897377368932555621783064942040810811345976388963209531759324506405968105364487348580623433479802793728171206934417006963299599035810430104245648473271594298011066975883093464938042290594679947055166667209410251813049034006212687427362107492929284165505377985807771255715880755385327985302929365970222936666302736678283052427618950078163254656159837176509186399569058633399106337350719665354084385264886917813182411848716657922459353223876223363732557255401263430802756884482173449078640266837402979498006827143169419974178995229623209858523794193497908364373138082250756938151623643307562054473349361760755877601738088886461348420599022151191363192696294521934658505523282576921458438350558933399891526698136781439671251858077854624130667755833879291019171748432830619942311665518129982983449297468226084266900420759785006520983474506823519055367110447564392440270454910213539827343345106818954171248607797344355209462215963414524979671899072742177045413982157361165848944357545793498021574203391167030289663176036052149976634810309993345233413939739179647244889353678630393891205447301781025416502569511851837826110026447830411015669539763032696976344517043149073481061367266730196120648978906933254927048220222845106159817055390681693446550101946103950128571402603625139312381608992100555969487127132229255989976403439259109878542142811291207090816362588353796459841721671585839253974520304102653216676632643300200060757955662160660112121636291347897730125874643591123857153422478149009493867043111443251122425988166742955367536707216896457115426916905442524287332455756105708811930146520253000505137842729827110875675128032131504920174509162285070518691641152811533726161389640674091850909062968924279080067491326363239961893001632920254278635617582019095129249069976240641945292161840982689942436489528115396440667560319550673228579089659923534256948071310743357392914084986729899773687606339683211261866768621453707968631064460416230941965495149687332928564132596758180790204930082323113606544368434757122657688367657844854924276861128469775005216264540518449926149926352982083185744527887148913798556616913057001613328717454191353942613277072887035787598135437388670037275472198498530960164828231788083827051826529952045073550238071038511258023249510041670116967105762125727719271667098782627787923759864870134870188532340855879553425713463565173598829925545212766782711372947855145198042879153248366994229568283849182299532574385762952028939314247188589972121300013271890674242288355244512283996512828297264443305450565293004171505021214824763529283729582853837216111564599491249854033028020369703505059787656555249455521134190735040398616137929350658100924416530598666369453928606355544544376835272703688082686185877063509089860423342774537106217193279413849450165249116836464007470115426027790879030153383368303846714555575858227628986554455845011146340847613259954737244702542639335534461390614687194285095427772350740842311865985287133674443576115837086328252729492728867614148824995665075099524294451331050048087036396964550770529317752357662743824627863960597149261775517526504564798082289627435840306209325786973715834105713113884531415244916332547087225722767667554539103998160610410975706769975568970442116201000986125799730771314609168063363939706078784299379078214622765107290640685846006882291902037942506430064613568261088159476592386359789663425569953989074368120924407185141978056707848683501822347121766682072316326814395633048119677248991063601015665919333058966827266891950896360908937563070618953643463387793535265921098790534930779542084577436800872381958203454377822057712177467297697348000749110619630341883985858400644558994820667419573949838226660502681210466064919422854607669682490003752970635334715952848217546519016504493945894568465934333825461563381596293135707802044584102003541387692342565703971398420139787567725606858283603396767310292023103040651313946225677149925517222974452451506576222634262579260868647559867093005896428626702118984340236497496394681737901965712846994407661173959910380358518994258381197987663633258829890728301984302353109084608416261918778226530860896647695935731414583530484185149659609844198384298068876540359378453307602583781606483633982024427758492660915526720029204100970390781381435648631556124467779235541571809283479928761564533606095110154832540494982690800141976014273661012682698579255700448684970947242620756162391618834938250216516443919648349275046495605256344958833354174436847815921408267893840510620006625474216326308561288714700534928172017432746081327949032084886230662826491246846603336029787875759931540932860902024210426458075394737728019187419338473981088532884061579945017850916624734237288052602074713420649525338052401501988699936658740642826632351532965838830083139660956759697478940254229106560843484390861178581228599881602866926856615273346303552471611244041820283558612391567933594760228959680317501224705880570323588629065746098496102696799694189786818962714078201358558682802859718590501314565648808415297432584536219997894716414319218523780810106510582424093199056722809784577724637276134751912478579244770813564929076300035199278271175842368586059270197274582144859686145196758812823878138899283744854046866734167837960352942605488122978138846166773940729787116815910623085577003075601951782459395869866252867171503704913539722329946620083072090799025324497885574755064406707828108264601511546001001390887756123872289132094372023051116327085775341577008235980435664300555323717703358543430338503937163524464852862465696730787561295781455117737963519861972545071479028370423426798589430580686884654652466674584605525568049599202161077395154834688708915644713061323209858025583465352221732734873194456918396281048055513207032175917632967380562722636231646126614095570886426368108135487988301576667882667359565155160696257512410400470061535483961227195791069336437066137308195356099218354766746742746383530983083306320521389261253447852081480550312537697068492905530505415664123530808868143077084577261765289041776213755140206000834667297638474407500740490706697945134493219154027632141057530919936494514592102129478261817013533771084278094431696981902867538349602110908233780445919379547340439519909877572027842150702408600125293769518857305566507259365951278491612690797654391552602484036205268945134050013470173771409022159121986232989450102214637383080094701744891773071715298443792213596321020986001870947812146224789907156181093755613575821932307689217977253334371119357579136544758815022821307696701927926967246866062271213710436690080852696078037156427658560477938855903317924787019710396572001619743228400452809945021745094939234626375069617353244901604720100111522875307677677698408531035167285988542130486826716313075315426099732287147881382674787809814441048042064820508190131114343091188231171150820841594061181320925950477001174511812897944287756189890628425489028930732840970135974514628016262953997664270743638864320740126385679142099350196367145155210425891230038799446370215760116880978334410004108037040455619521603590601630390999465533387925576088919470715387669534514335762065519662337064776626216057211609219271699082894815067373312832424247930842660454999054889856133062961790023290630112383389422388382718578891277403328745587015446506010755357378210842236681763801650682617913496973146977800145777389196781308944079415241850233909072658267933979132606706021479445782078015962674178210558033969945079087180849209870388831692690235363905879175563972199609240269375981186805641556197167345767294712131953687376703675671562842937200696193913595334500421415275769947654787990662585721944049676804360982770075272334693745686178621863069720518756568498431743778062083013343919267422574907356419065439331753146628403091279271744850322119344158675612536343995369211820778282684130366436262243303095350799692784432085300448920715635866201262170200537346376746813240390044395617279495965903457065627053359626091793678590152451917667846035254751307826186817052792931601547112300627399120960140625914138266084089631426110467011845881096144203112498120770217949052240166518589944873884514150809537430594086546368001905168151462688037342178274083329559364331128380775968743921339568673901790314492089565066873206134176970306311546570429852267120197591432926389723644198004267589063836790312051696093140987933075937655382052477284249836048636502880650893310171322843678451023252390580269352650589273140168893040003260056157929939476912337471774209144397488738763985821383217793601429929466711889593667197993450232030890803417464106303484227822462091872781751352280252496147844198522663547126807592373435030198524881423995354002473163369096846520973458676098306053669616160045082891898831194800132889950337201960667163664524792556861545868493947886971867719784087782989442540676645242876389670275216411313416408615567496681689651917122648945134567201824601909179816160067681434399376800739767554977661738202197329982071760933155080435717399344687127210105085411292251112388960536139404211986089253157726670593195250435167207170940049014257805585137025201640099986196233617054722214590785791099428830962150038056397717179067087735873591349618005402095464400972044702586187343372992973563958878677214885772375386364120739401458754335702312377236483650822262808185250211149381201312823421453007642112350405394653075951157080721108323132889806012609231259598826870268721824142064997219093747920217556085547432472875319854430910495095786940558034958011936467900788865630318473947890235036912992259107652558532665349861808201536568118770095114121294240127607065345860045180024774109116838844243880066432582787706762713633290759397436065250324290894127630743483218231660397296319037476078627700270782290796723439428139250568972722462104056187200399522971847005788482327484241744584879157514862360561978862187670667948102715591695630952973834921171213304706435012572560431510384431843305238044267312603067230607124924804150771267249413854347767644342213235302752699304709939003048480040660264896228485323429193320517457632442101409178006461242053456000222615270990171570755796850972038411778231987601672320985862679250203911836851090844819812682333201418480572541045957550665545417966322930883609287843475591718526568815159675414114332208276756121192933350975847991254419900730353348993050853595632038297891233002069900550846438064308415664123054910086255185439890701115967922861327230231684992858732881712126873134508557774891878342215294009381468731942735843491597429807191856572253540852293984399227047353568590113481688858116541220819106167870287131407080473656066380389120750807612614188373477149894049453716116870685203695449357070996954195376390483545977318553661512899472004655759704676358755598317970339095808914855218258167552499335234438096654041043419596177702446958553345304617606758479315402871210751154210906911186734227562503964058742312353258761150562416307244662966934256196668318839891946080411487903250130170471619686697553375188147258796947436605525898071244999442930195967431402976625380844454975392136136957574539492824783008949556236557029381542558383475393251137840995786942161683416083768787380696650096852318068007487493940848444534422558439067011438111150997922304336262992548799328170496791951818565658784960857812451447646537161754298701272331887312034489071745948418169301874673128076251575826744562413043873056493369669264503153287881159576615154262659926755751143893291799883785210328160737561921610702308145866294683840836773990102818376738448013393005201747905135761409229158178980228876893488498558514989039890312311438887511690577939438299042631186352361114263254572848804125472824557108278944258148258440774689728343251600005037157705970317400320451288552936944437803929613102141083786172792468490486635775334111463084919710012408807452378382646005538093460269564728033393384231749312677006360401764154640815655777816716948183623635457916443082119829120205302260869047280650802113585272078532540912474566087736588762866068793065914980401477803833659591860578378129248316407571257276590524683588225327475453681901261550986944030726316774702474137943264362566168555781060594141349272773978970020184782866161764288561975530394510591765902474383869102408303020080483129407165661899153035475939115663545511776261617206643943718227603315404093113047524026904872425904129588861700178588277218234348743474472080898232616019432523673217681408490130722333642131476592124847582646876201158992254701172634181830728806977405841827745820947628553441649813701096245038726002047554454082818106931234463324889761610194397761512714786361570876578985294697349472899047478128192299215031170122544525422582933845043351829013323168179080681434559842125472103637092295086797816598240995244923584112927516085517015917424109851756683154589793785476902639572114434890470005595684478077026340155336158308445981170161589380221052989111120175659235667662978573851516882391614457454128524079105601337076446946734015777494157363716716699444974135934084796189388523649382793550484535029986764916609966005002503772877891934700694732926932112648160634582692725954941555099436248383196624838391364238534827426661582923007517412395036022447475466136870504752016222941741544459768358932339026418023816915015665717116322852408563765902408708807665480932537263887229335026399250686519981373562498551184626276874679029207235889166821290189353213130679201216861484573443565503782427154651982417045308251225675183641276880827181172176741301112817133485985400434417427708708856562445223438277499049741298180472353772962157885507495932805500520650005183443753961266664084675683769593121059312352510240288705995351993234495158215300623063519712800042093370796508314103848439798944415716857066043959624399654005299867353561675007238698753398355830362852669790265139610257836097259540908782361832942158951415240013799983097860726662385820924473829788301017498299838312166051123377475053522428628171335053371672937019356668360867674210740513976814256732038050024901875169467480467285426113126542059546945777959842053160719209581397505750125492163746722495213276898631254100267567645487231316969557489620079415143338780895529400925481881642600189698185295889546795810116021374523167038429061650777510624005344836671299201466526287725881733019173091581389419097416458085498507588795977875636762342577112910811447469891238070146751463278197737026032021403446108543317414595303161607684293367435784005076555817520437833352360323865400429692198181915954882538670882859501310924066100680096535382411157458620989519972844444736511254454312531587464957020975499490935862144992396600217726764797314656384862693743670575916652609852881804480654117420374446920791213880454662956105241521430640790751199728889871473972087544347572994102096848404230576194637449472890678298563940383931670214393207827984801113718999518388503379653237405549903946155843635048767005628099576152307542997850759297187023015927016509753024914432534244582694761008034467344061774582648877732015927061023960354790544120959571074725409942312732038642604847916474827295972750605656709677363663112742988163230312883090302549562658864961959659998012489196844076715617950456954557655906458104154188549307438333007104818761507857173530479599747011724417826832751382891424313499037680515368447700637216147315765003111377257329685419772996736143015846595814057168852834842134033073563998415485112836510297934920849492516693761401040658439844754762559231048101884172829028162128793837452808697389357640193012969764299478915780301172469175359424107218154363400560330452702733348726446409387508618357387953929397277206740814546724534451327812229792515489413618845084679534212215696844931519092171275488626781307549968930178226362996042623726320501173192067370418744314547231939788307387190954214182560826265741407190805236260406158433292299065881793343591863196491858781443082395712941824227625314515650607543173868294134416063017223418090725937853538701693657757704606862017532667549494268424914412160540294238618424817639254423249232073556838219409958059239787098812388320684112700717102594049105161485173598662028778965011367684630064937249455754438120170948654452190498112804557971961830145848241381838626498393553307787884794234497763122698926749564653284169361358693984780810411494114208616494065390892159766832028294965843101576976750696477956355055852450879758684916920975943821510076340138513986590569602237637271778866526977622854765332949205390147687663277231230844073918609973527660035106344068778708573800351876618083040076212639102005825662835336250592995258309122023956021233537458137061492211093392437722518268732688624806713068801174885058886042517815815352602609579053502863460968736164220249642240101711668495250282317988007510260449939311861053175262448073429580856228279573310984473030916033209069786419202277497926922556882641332956596072446686295859403429416871852115751491075543155489018491358955213708450274431120968964745704986839668974570482951146793970230011472592903103491406919053101389709490499087069327825498303259566209873557497847615507421370864971884177153302740941960331412705941527706638698695400908526794582977552013384288679081420291342493109699848299910411015058987208237282113277332442194634988242594621359437764583611466518186739461591653144805774802496286262717095230074245465306075532102441417925936112223577704787850719090228581007463185368708327621492187634956092777477013199014671962350072886906483537569753349136773379663122145255009044308528064730572467781084872222767402863360929988531355361431862198637398487596225079705700162898035391665864031648286362506366234967098589621110542617998316466747307775276158737373258013592951610272919672691463427741050627904861717472337586618126142337099404663798611786916137788063846054290100804385932049539955358702899733491204510345305322747369479336164466211666112109683967854416542042786653320485164895173175076812712022225656885472370885716707914345252562893238158099356356037582117140645864369400566842466522835493360417616367683676439985856417781762795737547588574591062902202762079232751619039570175361625082741770182010941369895139629588113004845319975763175926639975240343996645284160914566931663128799264019499097770016023557751092800525442770052940004929863994212412850640732277963969652837847657961014494816132257792983004162075051650008515227446580525684936272093960318987054010927947256508717622093734827582814270115677502512147982419668286447702862697429955156302659824892678032094395081468863259227800506551041075150238671428584408677631023975762735381487406525233457113776080629138264786474222549401757678681633594392559877313611102184766911666203950713239677133023361744056113136199949093600051202517526847639040449211669941282057584162905712846187426495863196489466371000359732914268851964779413030885368574360213565717427412407898352673871444912632418221891904748664024881615135973482316493488828582827426654200740759742622155292340307423535749222380532740898856534052121749633691673982359288021280619434455372548151132885924854446270019078645853083890076180560060018855771366754179100180847202050950850370958608763465611084599559708863265908389899585451076618459978066154106031425212397331217667947527289927906567582802072289492338430168705000363013907488166117954880836892519139430541721856503883437020521331687505629042244538658161830066118181209086566277397745073696682190859426269757879957200227332107412641153419295257339708754898451326764244624947465281076094880809425404679219209904219470886695173268471510988088486839340172521894626699153283461710609118207327962582436333347542319119942628916952907225512068097651664274652164932929944317313055758856391994644070344640788465020930465528005790740240884670184717385068114959840326290140001077098303996830554062368012855312216305281164326755921909730430191311904156937942818740228352484919344136837444911056386159391845680927574829870429223906683322277470818149920216930630126695354410994305033656078306471070496006094642032125763204039478385214204810129251992651309426973267757708284487519526059093838381238662807170388249250554059568399804600911764655965720223046250505028308853210546415649073218451713529016333736311044497339160597845500134430841547864166430746426282399984988333783683409607464791518913652472496386169403991340813999114188259889925641878980889447890860091948749191831637536198814175527559603242519008809266259343039282741324416149074299706206629467156677422735103282983202924259664906349943411502883945342009347178764904203866366521558574905676000909810450375849706126217589128261759604086941929892023158124848919312872984981760214384584379466534262472915120618010408727142810130271309843901518928025459509612539240479024297071061900835235180822450039779515155548435558971362545931032122622547871832164090260951296897928573249038006189598711698083007790433807306965859952445287288376905065129701552918130227918174287686711875566745220802787839475367631161998276381700873076052877801341185206890391442832924133375365966522985735996881480142050174342018279328785192222383212599536398625636184313551818131221222146626214939538146956014953206345030936020935764062697755865559369695588826555300140708753270320878881793476778581855735941186421623172497562724412543327371715775947446558560121453878916868896188657383071051015232639295186548488878115062916786942930214181999476081304071137216515092893912268215913089447175069578942066220297395114400236935327003817588486814630934764316570437286896481594636391863381144966366493260391138597327841522534228002177780362641891932637920043922926951061803073567560906592837987546998294298158675243021335862531605550412943525897875550777957360262018434735567995323390223947456635497076904628970837332599794187613649097413518007565112565930969905341632334436069971411112662334837090576755485415204670596734707757918922894364155011452255415382298599546255118748854934946792849628597005124243892343768096238153271008502143926084198174459595030424177261598768578391209772015727348167706996933836682377707276150058685376712430747380022157267010942121178316428536815565620873927117357574592729246278326493300311701060377160534408342088019902591999410272723424037267068249738852705141222954445754598599650287391951958643294111933520507012345261751855104636075748913825392872122862936456739649032274750688013200794578824605793738781120046358158698797222083502784974869790217170620530649564546419613660929363288384920862543461541353491064133496702815230706120564785969147654590344320014569033330389544274833537825350946777368502217833435817637319267486879236658179181290414066362962962635971988100364594763709045963763431052542260366489860050179439195329643205126818316145904792547237314386295959705143048649134809570833148457074415940208821816753420552236380054160198586976628439151449786626728054242227876577206107103055055559153858976608628352763935054904405201331951828266666455718459126694364741660456851320417564382335550052647813072443010659440354412715165300357787916147490725855409193898670433053049900699206954273404662817722918897990309146918757378077200951498575115858951868997572411115164843745916833579731733631328470467526879674053011967789377209323076129206016343916202993640140337672153502205313957783553450450013061250522619547721914782682906516509959471712022482234247888197484434260843282430302769724844151114702574777323558793675934983218571878991317728062909711920922214031717389937885523993197482476769421745747280477023893762296398937758887558205769001923764791181269254529505154381144991449871163243717385430166468353788500432271251597766286307337229923192992582280835836283091140796926788542387233387422149751078502012821635628288205282054176642329781490144330384072326129797273910072700415781416387852389483169360277710790525033037446231172769773462627178360433206450393438053399237512284306030061470426209741899747423173879454633271044678401697441936606470177861844323902621980266563004128225105906945143441538953166395957984297587502974156829595307938437474353774048235543275634575488617490567857509133840939409106557065784961928192143907106072601648219544391583837324507619662285866272593876593003911632227044737087025507337806632518814508315955370600752721948273432867697851390982239274146165974047339118825753419295381355817175398351814828306489778186734380639492308515221696340401252125651341902663148149295122156213414893094729115593399035012535429594235194992792184309209149751355156389384510088708390083500497928554523290797832156203897361418814515218568048189527133232659296096836112421858368160152803512376378009875399835740507619888057649311784812281630455571968473580289180243204971319066236807232858409726797972660610869772582283513781858410597881032281367092855495883281547068604541777043578949773499736825728005687391831669059703673044801204681019177030998582983198270395385127426215549053414933238180488392315859684955129323671087037420005161869200011111369756585922314111349676708116438219136748986289041705532307852904828450057061087400612546518593918088312901270353338500699028400738080770728004507181946773356272504891041703364561066428331231481324390851870286622157445346323177680434030605616408791581271946773445165542110209932745118360988028893613131861524452456642188993447125491609551947936858670246481089921689709776473577288980868782086648680274536989457829124393545600960677827135128374375190338560409254174419692992017874560051597718183544362849908564456338464771422879272797907189744273995904769011096242431533411221593417173069618706822359092731971438190551611886649784236927397578270182373895608810889445809824397150278285554394431125348391175959677239373075537549522024014798157525353517571292176090635111037563292724370923876396561298861901544494958835412416311684254905880580357229503946607137029970641687609479445527186959498516406806716435072570328905202848032027542633431786779988925691518726581842533457097760884584980853078446736393304188053590803457881906776257161279870755994779708890230470436865087090823905611244175983320033262240624707876592898580526244228896226579028809541025357631635311891060235786563154193501534016955030323116741977493908709204441406452664834465921983240281219758972079148338429755641167425836368892594239623459793616846821039735923857404235953341854272974809786338727555598109101314007933883449778264113819833287678690828528806704490131494986766602497443681554933469785583811059872581445055001414440031495573244710799618121960460163957892041523223848095434934794609898422188722732192302002963333602338721591261941280635700995674022489904196969310613339414383022218845191471882373577853681847714708893304075219257397392952581795788407659414086410728404211236058375172011491627556596579734649126596791496632704445412074965236891412409035527015482187450842061746799409237954783906863834311102471165646841737217689651386393897659698003175837152810334221112931643003250993764681378273040503466131867393939473886770320180357786155630362312872272473754221461715774978168932915713006970636078265156997346049188987710441509865940123850440891044201531794885735068524635291993762971611294160709596147102552165061273977877211809724575006286332705076471123054104447578486679916855748703439693573139717016218478527229498694511340740807776391128846685634954557625618426950097314638144905755745829746551334049008363182454272122650935328278542925796167513296424978933687739753079102288813922045902407686532823397780956776507646102769305003787670564085314638168254642327336831376086619350778348546194534466303810733756571549203181082212685560663257325551368459265280499412095318410291182326880313950857481774559393672289982937226925397178770543340897676703341229055970949225903630796997060782899565887067098829402719878752984385229143550325611372544778119158306696414767229616793694083994582498412433966454563395363485924184130737720211324482583552696089093201998101731854115322531985325264900914779831386167060157773997203622658712428249239422589328584780483771397038474569080125958251530368636520940640906703739894900390477335655022292503404464237944368772948396690935677492697766451255434901909681363464016610257081964831182789145761874053059025204025456162661868548526247243238500622667505705733343691653382162949914279243815052075856298913839049322233249915962428087034195782649973693935893136904673384429585142773766977823549429478830043211504875451265938241002725780117015309718745867632126004163032917266692638083630421473523295189918919546901212194712215423603412649955851970105560997671397716840285062930736466568294609589659226385660101367609628399566703464616689967590611276097087168380253267681466183363860470683724872422114685362234442425685180456944551482028017726765431874590403069392174213353833798887194539500997628676094371700297467086970789792953014824528041927938856266465510832860951293953661310945498918927398073587720801601922392464620301237965048238066359662055085921661619658908127277750008025799019971786753042074838345000462067162268321156207732136488689551140356177423522561190111016721107460978467463729510632398413062504851297622075363669680082513371434812145678841051153970387881223903375050782410926143503109037414090661805447364706647832154856455791391482165203639665859740526762505353203797824999877185421177973443634877017478476868926685816767139392535297764785427703602583091477238936580256580130033256001851926711514540303833124848011147797326710679804704483074902150128222868582626328475691116436355384234265569856536294914738606372511100387320367690317911979615270452795581913657466604624542855188134187709575102748608696797293579852286863753732315801674085348825979075489324056727816435227401110539485603763986505177676752165537182808205374732044221772812843727137358362735066284146906170349054329903401257444290731793905242855249264964899579093861370218484886095053738659122430512639392043459339632556180370221394956910620012038703764841234728497622982621806042690346327836981270923811319917263202395756582305385763846745969415891634446305697304252108112972288791655290792482850494535305473874030036730800662103439943003637736564624373485703168646148988578141522104515728296664650020421581209385538306120335510688331204681847906181301486395851024796467480681685634576814656442132068818342070575891831161971772806176821275150567543627862981660974381122953722747871484236210549518145964495697907547725592257891045977968793282516571991960256044884181268225306370413263302908042051432097185065243708562805643200841536946431099844976858462740627584864295831830477479088373758814579889243399789573470433985983781901219431902672295020696543262599374695661206928343199928538056151055839256118066782142408520943567933249933592529573658552242330623245902369939544309380214589459067240690717120343913687739474738017800644090997631069182382448667942696162378758368085165232947011814659864378724336663640435893189016880898140020312775651854059194154692590756351718254385693853015854543132272875796487591466989778229124891875018486885660410643531704245008241187895964021464881457930906238190263057496551402829785000180567736315154102645490374190286830811902325071448043033179320360740638911555305520121324351528704471793385630248967409010143222823615552422122374250091139708462818242369878805385307869595681213421330218684066881558115440224105562097495451870046835386734066095378776772602973506084715946265408235045016261163205245904572669726011408283905583118460755557360647023009581682772288590041755547215883094989244047887560115569441714583396023975249840926899914176168265969233287593043729874948487026570102079404459004640251285510683509793760678278927303638612816014043048047844137188404445745661503051331550097177155907739805305578030840874278007397070830086300751365846158708519771454182377625478189198872877338876842238393787444127822182994581018251782840731717158031517564609667544395571407262759609920439232226324477393893540229960563006887240107686007807935263469903737378201650513398174414095525159304981537884661223240828449910901247284189169248500145048918002770844442554187698506153599172947074965567193402436045920976696636582248486466902908547305644698086722654453838128506555752167291585847925473819947924871332509063937830051194489817932285135774225529610395663314681654640454424671455699568535113505814080659811167021376429069154325123512413032148684496467935865952350840991397896692854232747384838113092731044413490903418160036469506637507594380551961361030114988858482968628612712368260535115335627376303924848705226423061971398706699338715195323003397680860162307461796979411821998965648048893513024821351070194416190073847588974242523618532917184965030362254617625168102724935794322655440699871738092965863803532272599219262298312432532376930517402678163904195093396704580200207379498224529691875218326731896053713007998372158792849474386604375601884385386417506656695939412690786730315242410724707972176545017740272803048941442019110553720896428957050215779521696701571746263274806540128206505775727832104145841659414394955343133239359751482255709269586265194883029932216732134788621037685902343815001528671378796063326242048945282913867194881287892275392002410478252887813656294485309519546005444780362351010641536250966680067757455901875581407416037234064627749026732838858817195158683367113859436253325625863682544407494629091461755798411412275325440370035252591946623972398038270121621752000805736588816075795951793232346257196877056696033678931031651741816004216385020140320749499704745181832177766754687413513943148221086399831878810242953062743248407849628549385793005485751092141195754146912603849013525265380469888063023553294413623598936480225190232294229204056268508255168760517261743865346114106366082735642514302863027556197141191367251243546040848980290781813253337434270044689243181883477397769163746586254352871222596918637251928188864630448716945090983757084784280839794308985702694888651414803482874707062430520635221164692409588627085866678656487189610912179170700056422206654708248340426788766127788623604943022340949482477803788190447309012726521080865430599282419523580416239127444724952149040910316412197647831773150692301417206352243121857221164169613140286813103182164192377248648328745047698362093456056357795413978001407405167850801134254446176535905025811899323028026764831617335404437102285380295858249905887395954329537726074638730522720308481206730903697666085182834841107743813856502199372071635939905253119374412703776617791423721200849127533327568940595035649772512461451888318009999051190910361837841836783731494210678898789342432835175373882963308776147887983429720740743977032172651195554324939779557636523901716524725676560456275392592399053633570588632399357663635786277973565501608056815542169585668292794244116237728988640066791708701067380392867135099745752906576025905129657944686239516170563428190036633169168526656970677761830212489442789977808638903609797534927574187758123373287481445204790846905612539222730517734944792005150243908248405531855594421260969113718714441128367786685703095947201639921193437381571022707215133740600775912169961406330215256540763049147962664242594753806001587919081356445654458944354345608292272797948333702100858943219509080966602908319369869275194465782327500239406985581438147175036161311571308049291187372751334057643311887025309668456353511414991966550266908811804091279966113001361761510011577490781722568657025244116774985123333181615836426189795762545421888886714679656809649740383499915013150675205299561607732109274292402649630796621727758465568502198714154562943140385788203236419794217732577594015078111063858179908007094343334244576287548778800635535022830511885616622800505449706103720979912784902795306140176030855083878131135037930850604911145550260259550217499880668870824434557483535950442846727054556050757684491991197348256900154390644065851937253226581344138501613858387611332403954076552151013186031359500057229795389039763585430647920356475189851747268678966837879299065349215121231923376238931698974559424525346984627940977902095001499215182521569931385269200572738449547682759646998776391316973631447251823463327986032167945913938659560619936992836207390994987830593372332650944661001424185312777283386159732460325985531559405147190983202934569506149016357947928165483248386500662617078712366555086554476607326892808988105478255246769504633258674697896612689871448362772818513072602518916858303660299514559607170238433989763994116875335963923775602831820187727826748527108906625912386503394046356261614835412913454366231421634336840939043254792853694804971957127729120338539054935289223871993616107195768199677066730088208450135280011660901633971803271251539535720644807356426442805106433194005461268094323840312532936139907566999446713619797370072599255091614226492484101256362280510714280138857574239612262016329556650605097710476317387583922249006199377028146274305722833784070331035636784092722198354578554740100514036035463204464937333955027143452787296711614243208135554758471144466262607854629904741349242697385625903509655785658451595882120692482117520767109899346232314745249250331804712175407006484658095716980093678860972627627987827078319861044184540429360717861286787704397899705784123481845701352409612906184776201962568742371228074789274095353296072624435950244412259840607097775301374053657746309473960886503899007972550666066483927598629597106878456420872131312582261945642210701812243075478877579096274021377821598789049574103435251581075121557584537126728678392449380552927054485814361908261728614127007241815649873360370518710072850019027995550417360726073587789759532481135165233702283572606592609776222362319537299147677807072577607856370087681018903390524560898396640446572100946611852588477507451160921526083262150837684332188352191671484215060801714480815900270715850819098668623789885128501737162504554968157743112952127374821849129395474570454851087815761905217489448528998395923278899225863848157229579357677378578002701040938218326663620014073709401157754133651271122182145677450854407637705989316437820646752854410000258208200137964993410582339627259625526694827932141142165327208914956842083427856391155399659388244688750345366585319473600445464010289924946796821174031749703860049096928805217134638235276866334294146097306175952924374361871671731278609715958172272405973322844018987326466101752084382843460337664463203024736903500759910811224558805198284220894944690821676479974902324328988106906977312696636357924369351730377723534267552197298245358549275048768022797148025652939282563489581212191121325696010171447854384890238111075698705223983530834202074333954435435776756240175868885213063671179541019157949450177250061330605170857981390515747872734517593919613051936679407516004775831493875606515612384880185179448277966864941780869460430666167404827890868145269271603220901379642112971357034819944184753238136291420377581206036455998757592732975576730791038288292892214337297591313526272204512926474370945263259059525900870822523250652968060220445071215018103099643324800190112330826790281683359275850670876977152543760018993075153802445387448417120883936479655030813127371681477464393277817573426164479660350732679320001787597633977917525405961859347965704628929557883041921824875199566420080798613888431830771832559653756228867435653163679299285173152190089230476913743953282392412544367018561827980252455694353808492434064052511857564384035479004238192882695626021556868811950640481100482229770591522513985886696447232081615926952579762895644922973050491226101885091930408955201193982006311271685498297068073040439271455855746830874555862241747358060353672695034704996466804721878386154184505533645518625561439478919977301711759701484208189115219750952756234029287501427064279088753788296890187676860955381415116294612183368890665772474464300097248734871290244252052473786115961839523872265009761070006069198917139521999531028352644076935601524443609075262971141110035870979390736363941051480048449275054263007189230714955222867810724174344790382538489785681829451955600491661454815512191205106983741752570785198606829010537379027992596780029116701167672878048664122332070776196244361049835902639961158317058662236807102895098675969203258629930840146094215126314132521297669946778259820020531592019385315396539814389874886238549363861802982205402458334391233101655730336577115319731672470235645591532221332495575559143733292644160614432637634423806278590382981303392831928738888174017919526985554071393676671141711333567505945944269707123508730381346846354661717737694553634848730283501881373451231152075484136095134668214335185217515669086722431790431656013873458191655116362463093224474541184769798614003233323013120385871436971376262534395664294569405092635734682121565022242273930053273930646348921451799589065706943838567428925772058451562872311900329108682780199973430307572335743345049859454118605447019474178996174097841056762758286457430138040045752091161189071501839085849011639230505849837788145378920464921975391383949087477545496757911625361923824834545805262364327782765668614247808354088752181105830993170384728929960629274322997305620663422507471824571218726068184738725770197127167020339927589338551253140568706724047607336925280639041693747392236961099438769070764178356550243813360649954221859759080013069085922532097660151060545767727010938654933737792830439411064587072332317147736133295121825758674572331975763649036498148086651783493204914598024948932602009289090883480334915951454610058792634992302799187277431721460938392123448966278168728309267622278829259141540179557548744981629701329323988865237596603758968808994056282775084192080310186306210245062201537284764823156527957291437327238441670983590753053268675925677607666341498964990699264374016039068071098967362069346439749753878451436134368643255977277591751499290137023101362984811948434002483261434478623498084640548800589786257514958688723876400635025222574510882930270493444609458378779179201160888937774885112119369725741313028570943382894946166321268496941493437585202951224425557126999722998028789452748485554563748236832773420799718354850986038652013812031832430634113383901383388911797377434409600842882393351645083562492745226303655171311362150391448047473531238931423216973498755143518838644582073194058427864621835860566470042014707787426155150103089508860471663126974916149932628178537833507106382950125905957997033745339730398071766547565287949293452345130600037927943302555568752318057663550702963196958664702648530878291094700286675993220630532601708197077056790759748638302336339747490340977668234852412158411125193986966873581081134392209155668802599403337972992833348733319263213228960037524174708773109950526844823273310955018955562930017518567283522412182892632762580544739241365379949296248910187562581385464445407864947579877295130169381697913707626683533285978126559614373922165240475135133691561029037846857748766415416581737960614704590449318102400452398443206785916127381080480020983990037022954319765636648494438955596787024608355387977847170253458793781033227042923688528309895451889060342280973559635570785965312711969179175857376062749446755631619867522131355826728593894692876302952382968284275384970070210231090431360384365918626890957838653559087399018257916153661747052160391708809415084177683363434598277603814666572221093737186791435225298429488055763482866862473867032392660100929653191482555374763877032655573421164356687861221745501365812360966622189636343383577537816709751816025851360316661005192729968696973565884769807278886545514815211511638660435985965574233260602213957483577235719649067393905790740279849398053307265516266409008948539017610568561215961870701603145130922339478636500851153676050422255245292975907270131947629683644292634679783971982754891132748873472294958491197868222904219505241737867234689699799212004420294953979909211767833163920018132462701949785312093120559370861067813936379398852755367215480560880379383732671667729712638003647113665424727283685906397391562148128203348173286055880954692720994546100719881557122446730754696874478714115104389903963684543664966027742140531046652710372177361479096119649918816800741067225836376005258605728937846757317904110417468167606427893330316606864606454511263620236598808432227777633128364485935571059636587934786476822930789313027463012840915688588621718856928578773027842081794099526606872206163372981388470095878256463236022240696103049538955011502817913628565769698685331345314211962588514028671577686503247141973924996248229609085558333057846940213954566273933770524092048275474833877768351123824127605327324211944536726464890665934733599762968470226674591032366201850004993630912607212430042208957922037732414318653050887970622786552998989090878542844331218170377293753285624873406551337488364954534859726716001652456986842177546019575054004420114763324220669800096964635496381932589360824599605094519916235571582077640679977493898718156352493923321664508597943193908019692705866829059372418232030583821850372371704582956476239667912843709823715692957713557205802221428011334883598626270699562971800382806510956671430028662196665196628711392438900485251507751870370558822298463550052409354365095979123720653867678050449070391325360283538484583656300140540683849611122767313252127067086176099232710504131430863383958612017360899361660426499559478531692817594814278737334136321805823229252252806985405623121192578892618527860701916526832536046725901678608210581102389170606238911240534488251423811396341815161314773871173504293209524104962597425504776994149127998459999514043023935618045600321095944769956111882180204406212440554732955146024192642487876046065702064702173901300425126251692416806926747203753067229754474151533082229365366816440164351514437010646917474334286749953466096585609654351508385540838799385162274064070703897986560768492663752834106354654610249180237876486961325281006799192144585212332904547668771477430370136183475042351392066589971054487983126636173681846461531933034845592000806416732378645114601996903710521651876324044290096280055929096386145796219941144970648925880135950595490104237580958950114381203277155050114522039428507570452338483248785222699831917011242274028431507949154463981867838328224489455573620180581238732091580386953661382825897048295558026956181077382754512156696283223722133197128909291491210764716236010108085461786163456391581473123717165330218078339394367955374149702599977830132040805293353462293496020946798025386082206792412035946457241198850876092188614597062122729710448749567336879387972318139884468579147395643707787515308365004377281382371849047304680358199988924345579761144321066388992458128965254761645860198762454325143884108468992852512442797389441123730924814013499714874115950228175966283597850341437722178278602894549503666680921132258715459787031483076553152805262934469668978992799688092040221868146803340019786900310509712788691615974425516622621705608108973751370663104822417974609552645909302928289361375032417972069036423438000962019024735597908627741131195704076365596967433156723211101598013865643787837488125381578676289762027563424656850825296058158949744997578543551187566644881754711842302781315912947478058598385137184882342042957647690298665387228944616776076006246410922929073930552204026085920420378294437447881053302939057838675061249918617211567670321786144394406889760217003143038576040635150277723834392582607993055461982643645493762861552778179679210155086173223972187003272300420491944634026706211248991152547584962574904675029417583054549382861184235796485788476167286813818978958086199523369989689005948967654913175980023921299597860850711812438526169324907760469133199464890048062518654923257470612275223182905957930801612017571824367023722266199336741074975924327733543931001136138919577879314757239166251875961950836298295416884624294156945185426904023490678023311035627653877415543190865542209757269497455535356403361251441211006109238483018024567818968555707237773646318532043403732934381238092884188841919893157891128544536307053028667417123265567952249165536670758884363300395730292012970628978451962452275741349690848326168754597255284680987401192050870404177489077135915513724830477474667179206173992903556554479436435801783428913478939626905264368968548330925312135412477671679457687059252661355130708974742644290818781701883319453501979568078846160467478206206322024503997041486282778130691368078846928051439893724737537294477508808397405531459923919041317067974978120244407818817243667823528421178277619258763360388671728796950264491900644384279242795460976186592578169330860234300084132358367259584197844616511218886810471713811059269037429967330251891097973003318563766512527514186038819743722203819142898400973214400085378913640981238397126237972166663463017342929380224695754439842139176774168738530904623976650360725567824427903653582589780436943127903252002010771414025107730004111739170708087625648563585536028718380410797096251111121173670191786229975504303894351257369789681557320953377427449940391078569172096543710016675608062120498466437995290712173234410096410463724293076872244856264060582073401422432774461431394553050442527083485874348863990315990691684545313915386339732897968477081883378228419548130377637372107163552449888486072918545734506852562441730559895956870834511767457057003837982266210565260881429670647128244522401818982567668175658669013307962021853413378062776138211954440769586614343293789126558830699894200263283968444003469641374894510366604704624721347810348794472180318441822680542410782778974366764970787410590312244420230047907977180440644424174326608875881578476625592004311846781906412059287235607961686647913146279431649799501942425120009938540038467337248221599009666132242851435280700608363099963348752691769443115519717608739467251606390142164173477389784449564387722658357121065465646612567535971068184619638683068630427035194454378994595495688585488061637340121648373076625543784101904076973227241584406737623872420086232303408175670091644698342244745080654986970039216619496333800654133107956977987149749967026486968484915110680282117820991548142439044848762398090629367097721417739242094833532644232060269592038690190275334426487900744982133658369688227692193868859783004193687478531237462705694889040106261303254267228039756884457457825301414629870422637499837525319930187349686730111038968094274659111814268557886409379740069748448705805454471661801068850420798808981470634573778917088540213159234782461199977226200847854118017664202615556033571996299470945017747215032204528325486192248096816444122449136228185348354972680740292487644626847221044677552031043342117825265156241373090877258023114534011625957799663343516356390783643724255915255141530876172431560674949980427884038090948190235137438601261216092086388897278758476953761268026396122878678237485689465124840290601068292791387309602641990397675831527027871316260044202660107070207821065848362848824990131327292456341721166623467443448523863461746832520080945310943978283880698832118935891267051591989701492592180761949416196657429857261114670780731599692607393721754450838533145001165349627636978769240491557125683122717075598011504040529044750336115023195260402095043179441090567842567525049609930741112384969261539178822936293553102107796022062718271166052465566893680929347757221003571215156385208293941632367340976923141754847451995303340650801794743130985797800582852440975906942662337268205075215814238422115657180028173704788242177041379738787132627797401901722121420764927584931327707056604220056874386951764602348935210901837560846217847302136362401519308498623062961090395139519928382764490599402551388976379897600657102495287228542790674084064032307382728913578119177798883950303007407707688106661989409572954444894762998860510970534888037663211025262618872868980159782335524398863560394363948114791132613866852007420680339843097005950823454146632114468196248889252604976055404317262600143633702104886251595553518690734525828779359307562604968801557797406609868916499780945561759920661679883401661152509297571256380246308553206980198586559507215308586253647854487429777624769460203925212583533831055277750112992753276538040890656095118346325208018864461821500886749494708691198396230129593296454320905384190311805718677400706308592555942599152792799919541478380727694314436608705753127776713814723442755852282092150237567836376516356412834668669341834693852784928265492841849795338636755597255319316926954858574157981530687760019826254492909509514021347237519301860523776440786903799137211210671051597782777926519968273882981529792707921965251138094073449493843564772253977946135725317819589054119690242919750723071177968057716082216056177485438763691499809978009382438421178264822888596163171733961193662773562416437376427562363574667769699048624778325674349342561983450216820167925169545552151736736843046420500255863725260271918573250816127254204799472795766553685110945984785549318382776387036946508256344909230065092363291825072051364671123373547325142909585009560124871332044325323812061521796610889442681407651133549948851311304674114321647697650392824536809539932698586116587000363849432827677442497104436128791524557682794491696758045538020030731974474751214282961855499797251766078469356311014484253958659006968468540140238233520766451739869738236536539259524727281950775026555734544510495024909330917673392991148096323483846501564710212997030978643102073533948604517042854247604199601284682184983751400642734548917830811517797687566002777576150089340461286380159412731117876794328340573069143834231112340364424968429081437453023898920899276290799107536276398484492409919495850991731017123087520375755295713079924174206138781248976813574200363623837257425426601674165635888786087225839042375777056442958413401166457309533661232888545342971831643214396385390008015147619279975298590457343134108795386113033056112693090410964963260384774542286902869802496720186245243793826933432056318035193246353158826734409876423641081929181040758934318995671171943303574223571845967846468331750618690570126937508528566540605961027699286392962602989559925791323566417773319421689832965435095054287161840496303450561211188323375395350455729709065895519541650068360033330235234953300497046028260102570716599610429214383315215075160156125284401890404390674527112027299237912951324915253786878808028871133399624900123998213227358939388482150670659979821005187493930673157780682799266240843393221563105762715547808166464062414896852843808406325093077439240742138521155081570579040897660131841716488455024761022189787828753654990277416959431003321140687032800320846821945636695966563702398296030826068614241548415441327473026344293262098602479805657988957652460884151332321636625158951356368754103385536072562407962386242431046018730921837138264015532249790928076118599616848368571849067354881682139846326499889530640650732418294319434596907755864497381953215751393464588372697245787618664741997833051141940757657687108609198677514336754605337657504573261456055746075535903479325196066398103565039949612962972701141349249003739709078682638197810741570086288765457585661319452234181095486228566892429830726853796226345306717287474760445534440161235487974412942524615239791403888784925861860464914026328058222920621856900735438877643637743917667461430853491531327512860214327999510053848799000169509328316158880811744042310719421319720767198793761266165241663227555322127697419712865788388713254352709437398513193841889719549678205756653373155125218291397197664113718933669194461988649380463623762623559881885351725741987160482324258666024084594657036268577284896611235612342441273814987063730152553527346147517042801304564276041578758988675126285387095529006693730728453800442765837446249706305741733439998366102541450850432481030642145621189212808464462537678975744929874718019196046857265946773195981030804243304305644395653957265400381980665685867330438949203146930635234469673208985784608286966323243837435429548856850375921824298706665121997279283114356016234757099098661669141881759251148105775724988444360638322774027409908103296226205005065730587986032830877983636768628811286518735469901018625006651269967343850762199320858529408309759821286061105454087879587491456168213604824106297928891434489914245737151157754213096506840658095245455506905293749684242920069767725576038742461014562246896395856172222146194393505919775779120448264809246535414164716028115575105273272009726508355021531418146650353214501340479545537995767074404393109117441980438943413142845338765972464059101052550187332658751795734780828926924210014263460914907235109035094924270650968415080843822452523766780742405318999444695722788788206743515636834561533735200246492697490874047897205843658362782100472905109302994163993306568617066249641227824472382256421581496969554507887075318373327533859475172026939473432306604232097773658699252606289772294554194533057283452391858638349885314173709087076898485164918487256610134309457741711435389917340418965821877677188586321777283520063478750005663672392758767520673691384677219669776207697254838122959856355771863870833431367690995567608308530541148921573187486825431001284486555185180540459061599224202663703736608797659226946397798926000696000483774336712830207885894249362943822402612705499769462661316651718728087152880939362598470100775029744673261028549956735124199590665884622701373726654925357600722914212191537740194695339336384851826925061393469079691863315089538597235687080984842249083726446397352575209579141686035160965006855543202324998095707932613526726505201683152517486066375565748366477183627655694353658369870708189837923392930761936119843803178208572984243485957831524057368675968844977491596058770175061858348777075588625186191831522407275396251641075341090065980517614572575780757688696207926441570048060942567928949290472603359233793526937286696219601122221891073824504620492775305087844071289988262648059258351174321950964196692609347001151535078659554761125437148756249203335682246929533909174807912246911998358087477767030404992592000402073670394604210824130757495690819795104225111078733757494697678646711815695587818903694594765043156126093667468498282922990332394755613939282872224356251531161149579752539152099065280336967856108347667785015793718457790108952104852231282187187401094802100448436005088649804586681584823299737804768946543735083799782969045482868818861447638554461501550011537485864725942602547420792812675567339750891904221915252244391226900511416100305492972607405962037046971805417154874454488287194421730175573254329137182569012305212863116490491492363698701525504822175964756231845285023097834304556850880857959516993642221411034607302565868258892243313019477681396897098366657096207395634228823343120830664959649938997531350985667872790505422093740251949060732655736889939930543335514423729846629404029419508171507907666141691917754680947480180742549624414117909088078110683912563838789351531896204884847945903927825793373021273164599783027164422599181835933895481194075735546179600262244824394861669206165652339428399325664074297349183506929887637732810331076853636050574521078409946843453668863619401225073011502368079156297986132812450652981679434833233019831225405014350803475229474406797847353908353543999726645301850627327607508193281350596432240167406013716607663867600495629713607275332288220672888505901307646592871912191158375451615106745953141540796476764803782554423722426870248339631013774490905667752258267409655393555142967483461033677564199541771197300526312470118666437287085553872827021958849747975459203764997019971798100289161966973906067791218280002711993058787715498593595895572279178527072919962307866550964936317477579762122697601832055229011801438345246575990603278890146323941063925900411290681605303340230322918143449355893325232264687672305905603620854197855557987349096232313975654884426925256387310218845554163731920741242011300238108839967037379628073217040579001415150587556835378478861203325333339755036241191079413229203727726177354861590918123092488348272835975511458477778865155764329233458534239056924569277450137926754858035467312348899139695947736440899058073954285357118247235950061922682549439405934387615354223944057173802698354322891353910888091846234091159208977673945609367136588597597706515207914354903512944564388392970386053490231493734838026685822560449506248751517424884464026444842609699738964839403462881421946149958090571824977234436856790648630889088983129930624137150618420902338267497675240371065643517745532011068539177987084936646587279638849978533360207915438125669858073948963967820809563847698191671595817659298530758193385480387384369485207055302213508702623992757600705101524838747093992859734348744400689660924946348817956751206907123163784914760982457939857384201217616523175385216546965752394725941433060852688081329648008502758818006588343968117141072758614878672173488018457009518345899924414917706506480660039103230838432256216235000632688082082233367156409972733910536540747709852082313144504570065699309821501266997830242306543031752538532137444203723724868601580765278709816499502614056635080100646039397438994534664095649004979240770946869860048482616798679905646006490336233665038049310412429134950911854945107711613893092525976509955853301033830028553546548818596493005909216514517201718552627424529784286991539584147532447166160432231453588632398538692508613683406205580125172805964788079839264683034170118994654726690402477006077659531286007722548494148399363929345556937605041683389425375830435687769156434555730473464914726293305232100869364599377407252454883095156604794007687795770274382659605137035071796917377718227623608757701614724044964585386666487835037119894017978042563390536433809697395165347145879760745934909895424252950497405300852491785140747220664941271589273464252466907408686623847047825835932522456215079258664385999686412267856493178838098625220144099509776117455573569915559132212067546226475859247068307146491906652550644173514054844464225055380474330099265262455176905969494268072273261512852176066922426630968658294950430676757494991581939170977321570974123445189840653689238198602863697581121360246191765514381113210489891504039673015866381044568943589197952017302606412635114617256233550300305379554135494868805912538426295458531266066068816646390719767009714664442299013713748952781856163526155028760238006153347173694082379326161747045606179958877432481474005386328763774334871229305654357458408719724170718447409576853250142360407421079929175413039128830638544765922028438721382656734696195884961335276924799594452141526774524307697731843963966820464055214106465847080385860697223883039615555587726659512881455435803453988261258213149715586738516782922914072515454973533829572729304465756965188701075154021564294963985170918061042590808970504784039556401394191489392850291747171296883506855936383470423800630231196259353781892873762516901336601956537776094250497773806279845769304366114800164834102483233559852605023654391072609384405313673838839895910940538323005909950554010248142740654530588710762654912410504735391980218702796288663867031539960193848794535799138561037333334343089485109051119269718374398138175403534267911705960674010563198737266872429298672720929309981556359266689822358727545505805845006438968840497859648927347339962618028733222224779177135728146210785981896326150549532965723419203523562001559922293708552477953485741123374886420223544697998722751366816057261672341353509316262365092519956109860469269239323039799438300691272384994793394237238385720476461608864611331359672906629880645235828041831077768470357718269822043562320821941607759494887305160178046465480870904586770183791280663184570589472356447849569575501755382139079461475512423117930126563456722832533654167922860139688389129409608335791416610970271085953714375263588013966860990494020109374204572775404909291632143454168105185852536579911332188522139609214088384857236269663683351735080473767052373296321350502502234485953125591179391196930213360812526046022735516690143283912575071889684243971904891847393303864935897800137657329789659109525050512130653311324188658584917070286366850407912937679960026528378136251284119476046905996459465890450880918459838610991391436797411452929992948612320458624249448580374569787800936307691852608568368621220240647222247686089630931592772355649294950589484478815838806774761121947834637681496048815593101391535234850683758864390099366650741580730742835801357398622412182205584574675089393122104854350795845808528246992543850324853021182018899611478928832543147505344684049686000394131708590918432159565609626038388621770208427818146865175887489850378501387325227618775256468590695276694169674668124205548165828121357314168010488454136830359190452519524972460521647448333752963758066039978776390888002058706625553423105705584829763484657822020096146864933712496730117333054308632971784301221381125774813167102247522424194167302841862606099651327920765945488819074191733549339243211884141247020286072488857816102816158613149720669363098689575375667789542458733436360496375576596828105852211427712611320201962351228994282569469730124884604234809861708916752128021615046176219914422522271917643918637108142788534725486721062400535802981547520138796701132986554248897616004041547046522737539089139783080930769726212025113628435615566934085407194834505542142037805616825540280227032019454912397170828870458739844332723555381038128386779251028459779106314143239503709117853667073493130383060312238892991344422757191952781979726594014325014654781169890343263793577652931835000561786940571314305935310577488077317331453769848923453840477679491324346167236347993499700620340516452980578777095780492055859851343464470668714155457579721290115675254769872823974492891419527525724307935175003929674821334077139990602931554072439945882840091943965102391062443677514150801657638133717624925216927848783547249743771613962861999408863226403196300156442883505805870557738155560956838020743035094217843003397251419256974684711234311324855619054353083785421254679625650635209265251805320160104637891360106440421732269210966509936757491157535998894533078106379285195773711720058986601630238703620503014455012088279265118882308179268293783326313659950715385303714497093152319576042479578917852959505652348150096680353915917545432519049106090566803449346455414845572696585863638084157396799923257181760575220323008941059619606840354871050918266957787322970562045094248394912673019707666375450977832779989855031471295221651911901297382607294856817641919657607365603072145654642446195532870185850566474455844546449329787069862662446709954337774351035813985249016187308887952416115871128448656478283565577068920231256595151525429093705173348860410102303283712443798231822781025821102880587125797976973320709079698360731472439886693760856831419652799860886251999967128619563005433953830624132334520601708190877918068179103313940773352447874958787203386663346109248300612956552413215478970607740192175246264347648430108479409769312656381609617450780874196245883946932541832912616862550318008845822030072164309997881714429022451260964786963098803493170859584962287351066440143277069577291457752187558805774870208832639042685018094064390907100423584174572417150347122941009123754982738977133186190845500732968484902641775793720246007951242774338117536271100330730039665030621961184740902679762864770859349048924911603018883741777272455187724741109624206712742103115643711714334452375407342776163580081910596349935653931908465262684561200736209007551665288343151814359182211573610293945440008812615741531743675194649991716430865106849603701611234400272151311792147942911252895024596151251239855597857354916973498694489068974781268444751618690172127414630652093849657702633716392884426371158034271002601200466017267484576891352936042364221144850354841406493057359012510615748556376699766117991563035521012271635222591676648531291457894329397656218377584314366258855814753176978105922307575008054248896672522277906319354854450994981210685453447882654549333748688026368222396279428934011383459677195848704157359943313014188671645262831181047278330848308410915572821074717440316624445825704104406680882580972663619128831066757579369002510024775098427789322644708171743446757056278132288307767330812313519879338660302699840070981476173360039683909242085124397869919994146913416953315802422626545013522223695681261098100616620907403375472391338018706465853522646979286524552316962405698238126971423463927738609804031537694241448100858555305587063270150509137845028749123163882722060290815329420252766639966433747368024834143458779004225120259784100845135294064870951480052909890123197001189339872967721399162148805524669133212771530831794789710316924639574822380260994800189222531848287712236792768030804051769218588433261664125937642239646307952740352917552837652630031713268043260964729501977023563345859941995178083610840102036394841761229500333931493047505893500815871362962639915636872672834852039756888872932689503978732202001509899479292952058977806340111979391617708044857907763418941085283938800317714353283141395981171835999628122983808245444924063074523667492072900548886037861925781210367196555328874203356261371415028030597327052105663450872383182753535279696249087730411878052894847706210353696769090143942753481134450322182415365832691955709804903134843327364161895715673520881983100095974315434832486474534345461316196486883173515433443387664598994423992082132237473705937822191645782765886322213424069190429998697468728942159372174908242514845106247618463206325016830703796190939741471824828300599858306495678126155403213555547414526704863265488497837724099635090957180846025164671001612619550898158967698902619507003269133064590060037054760715264090174127363332577927380518813879665940395053346807299050704057175429383306124422781192178098735663053288509809252446241920119337776962861878956000135321722378005669060158771273113620395736701822564801362375922806437861444946672789850297634104453143141672567334421930807258717821901102699330755163472740295564840934047838156354075879272078987698980167434971344920196423525317348596719387111426234694506807054961099110653411148021252690395259505767855021569375928888303908739898747602446746154180757016083128440935832104105134591345028078065159316762017912559030712170680339253927770357007754253881727016475477893871068845043734673188289464418031650210969253396828541573946607321149883824870634011699561883656693078515750859853690684391200597833129769184591596822957433432836987440167819266829781910409536877698317280853718049452361189605296561615062823604611386539289068615659705178072817932264398661671935051999284489660022434560889342174309610170059476271525476582186550328317274475572948132817235609327174490753540751048144331789434924307522289632581447148404663462311302655970120535237156386527028258265000437726972354607429066061906661549527762193422378999322410664625252088090807994853257621475062732473029413008488261576859995566514000536270784336605621207738746705083147431321675629310782798689881936356978706279084233707824175477297329187528244991495486531784139648585921662135318695065924907294506866984020119948371586054008621481412139602633675277181917841957499108131235116857710105392768881826187500844556576840610009479791191993868763206598993338234217803838041170497379556652738701652275754384877183615078556256871855260856762667919637744109182479370808142273863462664620044431610303100353691600879166608586235619915232629344393721712052518196917416332127578113887051685701501837706590332740538230460015574009431858418444173890415538531871036936445926478445420139162467270709707635494950000033265790742064615148990634385008151840810481040844703125923742312392914279072240865677705471734252275479106914526848304869287310727820312559230759668474818162643248301002408450983182567644148471634239034151744994576377401122483356451996304108874290093137498895060509908130277532619133164855749430540597167695814863915420460417771144862888599564886236511495738595635058169941812485133677746608720270306589947334239642077945022456386985351270198013393994450468492696157369587924828507300677110604993967323521095115850739913736469308691538322573509578224757414570151153805269206000645303768022178019433068667507635172298793455081067711012536930153465940944251890136755879464165558728701154827790307507840028005830539916747940701495121775744886514878095486653472287075154661172710416529810507010436325594543509298879467836391196550620516897406909439965545477910035617537026794826938204614761041225297569371591825172023390498771759157985324095511927300140019895086389524533577688439890151279236205662845668521320139127966685870282914780069642369626977190786706660294546394595421016179477748071314987524512507436157570244272498266907229866755714413189432542415840022997289236704908744457639350790454506199843060274290499102825699708220143737652338115879830318569526001604753737204452424954665212137822644826930095025015853188470533213373642262600101911645037775008405482857370072250267045302020268531552139219479641336339862865362531004598563861315868781798382166473256351902751865762605469793187447473828159541367470423605135973409911343299723499303526169671385478460347287029413953609111081062339308075075533425573830518794510383617076568933674466037384803693180824591437398715733965745996185199333025638357123503877575994136018833491783012852253085964392797917158106639111772125769383371048298042703397894336711255600396734996971896060182136411048567470860282943149750003559134370275105508025848850739166905283852644731408287969308325590873107726593847219500547659848899503817154170747498343014932929370344898356307381714882795453674310663232018335134369730479285089727118778297956093498645836094054107262004730895377143026792813805626413454946401270239760993789138088351614050112959092293525024912184141688537086251659142038397387074061975396754827369503912665710835152509340410604955619217129133785372943828054624318749782061319204704549978013997985656191319701301321495069081415496935221863876002456439376240545432423679864844755958709628715586213510375759562654467705543344079639624331971694875420612456414772735359319035287744045188689890213827686755917730510222986995724672376642782339329685702316551325126392309113298597709864219683709496788937305679094610022071930795057948262085579896443655282164731909628370859888518883533777569699994293727467311465714282302157440536219430035897109413443594427677589456721395964340357375044559052459175917395953093930950557759179627892858633432757795342722102761985277706025797272149540211842668329384764553304133168265652772636473637116732249624771730085468234317937613401329746415671443304442832796280923739717581841872707001798662420302770985092801708956172081140139505840389965055410549894862481124311476970391872370072857878718379587110281005943938523756578984285609613334269721394876944310080197892699995622882201959723232368913908545434347380930840215092165405076280388146925008911098332545075352150363589320619692483947415506374081209140642532197733331068267865699341929257600250023091780435393718358204099000678143103988004544185843965721318631103072515131852923900233318771355332756619379269441467628473937341280831513818862992714049842845620819453615481862028153112152701850975388126991361037967081585147618121380389906576330375683312816532949107172601799843772300023193433456522871063708292592103790075795244908323134535819517481522589312467546085815402230924543429580650715701569155092395597882043441839035315598459817007272559756001459871265698402727737727144895331112451882934340877896681405029265917512015250123853988053604364481575359137405693284247007962537620369683173970515837003348929433287909337325354251685061999489015470749463676461063350198179833209146307307676810672053984157792931261107298142033619141629927681720037869761732481929531917212549179809587287227231289532281386152743629168940745929081796507785860153818530934276685880364189381052467390087317063134550597053840852215120064012882613345536225051691381372132968425312323125128923486063374017046148443466331697987510267277795484252828582744751337599561900152449409955788507593871306217373899797625198491613579008891733049181442076390052446125449739162721171005221409840222489520851620422068294983008601311511242222337151828547533821014883267320088234632843708821434765578251440659712821042471195634076471035996855484564546280941221703248551325165031743320699958860952579884972262835242892600067993242825948448756676426349711226590062113832943248423806390701998979202758583162615587323002760282386037556009461753659255987584579850413899115403817017173211601075688424973266570726838691986169441851030213516196814645311882076012530807893879742802427526515749393261785792982825689967503527232146984125354941934039164792452994783459494164437010530929539617586668557192866824222987448583371221045260656979598464363062427799972309457650643185594738784188650070024282258773866552357728262557081806163995500889150508513616981322885082262441476420732764625752740212288447647817437115022316944381291190682431383176289553596588459814924882160288200441015997133049996615551891464867835993139758055131333634562356705414537806651652891348650763701375456143495261811161577933616490044410268423252024882659106827349890095560990728967025812914224381339301118657846753193117033697987339991593119948795018039996454940142779828053195548738640639126923615017449241614752564928024899453431636784823538714902534042983731387618295868168418155743015801931952201725939415458211834968270111058625724218035258433482065561291453005429180858501210235311223892172114981210944443017086679964369838341493002683129248611485394781833211768972110715299279366037692624953780126906280304361562402302342420392570644855270690241496283045547937687861330649459808540467475095002794588200102396567450377938359522157289588185346891722763700399660438989089191881671274422600294295420718191340525114235188269561516776651229395931896704373521351278549465601176179302358099317664129455831226087934279890772087602058012042358025300339016724003984516070283446420124767007969064094899543776444848618835862033471410857962462206852812618351784936355217029169969247106723481962487371454479759687211156729496707692057547860460372291065817678144450516106438975638856246718601717795897531298035454925559429912655840511054498332525616014605061944851039916244404038182339626194783617871641286703164438185517509847668865821704501498728986616660347718317365723128669512472836302227363229324586217269820014278392927534373801100761985947275605600083436917609876524445256309433061673928219866756327356328110823907025012971572868858639501173846646439308104660377889021949166982892367092931586127038045199443865921790722798314725913176341317903658111114304467255848402307683413215695817955514168279643829856190842553640355316673385685044592807686186440646506364612095454520569254912027008248174164032910200848719533413197785493432688635684150045242837602052324259109985542621932113300268753871848261723247130742404462114617142976117007116476291865336132420670770465336029087773012915346900870347027831714220446475432100699211187006988020642023418588803968308027188531466425484059080346048625408397034286701886902230755866643349021371642675595687896465249503759147113804777990589272839485952927423270590993514371313493495256884085733903775137306961833291176407096264263406898860058157435347107059989605431127599352125040944563077537348113731891894252648337881209828512809114390073161145948728163159882135173027991316773067402174239437181724936730951467292166712965707386221305348272446768529768994698030094534164427509945846963570155957916619478698555704003480929022376086413373008056926336272247436025031243909284710645988402505761125858834411202033902325596531991469848019469527677994109769918957687212723821566989173025171620507975453173617112175401621215708621676694924998225804502495674092467949965894767969781226722604530573412062034390402550498822117669709654682642224341136042576718731568216722807152589001419676144452269149710188712634219535275742301338360102416214072161906620467154424940250321854019116770907888409179525022993547979817069059861842020899447394103949924124851245882633065501491575913232300687131040500337312816408432992117330274867283147669979433325790777884722749883870179041494237970192378348118237542612728618592578431874996079342569755383547648606765740434993110025646433349585727694453500077153747206777217994998910307695127666502574659227650899454482095609693843395656900569717579768897586659627770692224049295624048352463573003716499637052961037761032739722351278855582149674498769607407497037308389942677424243120375903982398289396920594239272671793477424146677080063500367693722533561899656270367950179297861929584576505345088996381543574354750341176815336036544955445239559640722330417466166582599720467148128324041537448851455143276031715513231701386619985365838401187704318451884328753829173350919277749428485197836987099182736431798521079832451438476871209627893003600371969444647507944556615417584936956054616335399830469150009381210913667276143395768663910313194958678220527869976099311841366579826856396904726593450961698156049783068418039319424982978632064724407160651624476741983533549218825142371531595669158352349649371807172994746096816222228745710884497633613812225024748445201256777187195112030000649311220306344931191701571156588860997513696047019817730208182217199361691965196642139081993512464768273760265522307627027301298475728911060479437948278746249278462865800082284710111287998500045779010244637350295836150670683260106018109525214689697546019728289102792666642730858974569951982889837877430954711806468128130236624414597621475698054686211674315772958420996745706272055685779892879313506888133938176266492971742195648001061067252280460313141521159685928258789937665092349604001453504656388068991316841179498930133771212000010294895954955334400360716837293154187825107530612759940410717516957516240084401060467235095374957970182380601027739184910418083846708129980761341775512914022562950055776778728546588810398295128021588023943153178674096984139212386604383797072387786650461056695349353623464986028103339713760619197493310901034445652724910986471324663665838940288651889209018306372423171211466479284633374015168555066350266260341735788220798818807320852021567231370202845756782390082900921029020639947938617036984085980679537158896686615148174681956353695782820983379727831219393121357511560200138944324107587354574920779446899016518685876254196517130760598212054204014625872344499875886700991440097542435512200377476022142454837138048255955630797335051234030034709392264716644548005918856829090399350273522659051153872709439554004351525885652189142673714154607255841762257885778790714855426894749236283220999564589699752406008099425627365528549375021394215081784272879742444396570717147890611126768693985984812798300476051499493886633772525786479208552462336872317380473523864220005867498786498045147929567164984015623588806061606240302825229637083202242590737325791809412936276003252546116676062029359851263983426506609464207122226091731494432977458689979284403698965922845460295347735184357304585247509266740356390294794581415594640127555547385503242916452178346108076032786669181280473756826883770131720690366745904930792913124020536592499929479740439799554445493697178896306351368402559103159347809048893160671804976604268562959322239965995563441003511500584200449850303007584943658939381063050165821848553025678155235448261230577685261699725013091479090057173192015098952910960474211253326853982443681173136749978006806907737706786210060622481057876083288072657177496582255090530261436989859479618428259077302290866499177249963712039073086036504007231190779337509210303930313359333896882583352965131353902433574859999997288596760035476615954453667166371773663976114066220058897546240591831017398523558215380866925346228216284660665817549771832459138858664649745256532398070369558719064699534255589211982611354921489951125388087915045557945718729841439443293218363305531853319982429077323908140778323583400167528854633447706125188405232987854767805812143671972540122962531288994494050787433668702238440978780356949257888328630080630372792861014028745763328539235442024458821896614366544750099160902707480143793905038411339122955392380910882170000077480535055540173038560426424307287237327058957582153489772362622932383525941065561676931006003221003199055741822675543262067249708372689403971232865635109786220942144904349836302945539504731247420022322458644896074609559892117723182549151821659385058509772375311994987233963962582038725578510314792412469813873338718883408353930516474785383892519873873633722048929712332363889323417653933852310102867305709121787507862780035383069921518747467777902006967146676688089521857889501484441836303017821400473722254711569397339692379908394154886085366511260919270873457716041163015255410327856944969532674649779340776875960333885157659902156170388002346090934537018305291734978330352969171301977348370869967852270168191942929255438473853211764003396153709639262434405402919646427458358306646533945306004856589527501544826845332285576749217525104983018299573119208746258836227199157730199085045580033827300232028117549778964129394470380640323233758780962572743337220355077339247751501900187265936139357112233975334465843617193399925339267661121887016551375135764648336334179464872568481132518980898538026238061029355996331197416531151697298006224912848532579337542805841505406413952842309505926716161934634640105606262559643456008726538383927070739470290710051472774729904874901704460865181316907014538025851034627359766265759045495780342282377579384507878825387976198111877687020000317733541716746265328225572845300851761581230157927425869862095985553221119200137390026960561587657476890174254614735825814639392949064398347888964072517955037584471854723710362823507614327617420308955553124510415525968998616424639058978157538099991179407587461635666661610495133578676990441328657664403035929070797200000508487214219733903656224804956865849066947337465438070083564862781732039347460057882757442737496377167282082567318094297601771894479838864227263299446344705761473691943161134287348881054227294454975999095268015277436459256624827662360518194435359486023139853351556324521690653315858072450427346741379318626567152942134037280892352273919577586219186103841770127464725273416567597123367051618879660364179929937179089999619574029823338152405262119317727317468446035543376072856626854178028783004255026483220124059730127007361100241677443374596936809921566110665777080392501362570558168156674931873364437123407839872069302591828074502610029264292472636967166712582925176161998736895050086734364712454592382724575987102414516480119380459876936051093668434331017938441374681439968769822512676665954305736581259984148818178483925002971296397652009863136970233039868289982364457102977104366867875270771550779286988802937152738548341980537851071682483243658312756372511722504605414197124577210762707760772211311220050760134576265989206793787164196383413357291448468267392616522657756291535528349415738653046800273801705342128579278789328948574194871790081587020067312710785631304637243443153243733025580834530082312857285910134033003036963916012863949081575554476662025630365996162984361652007050526627713914536219428623823001243799311867822078375699737858264015064879129558072428538328703032924004942897746499657205441523576912990342857740538577705064196148121082422529359144490132094792212897397200143770633025996621125934748236955800338494164580406071981805413298326755622278111449536408326524165108295525532019444065309726712373262566583623643822306602817090225694892661040806247477655548348074534669254155322691340981894078892328436731137515387362586446896559469773621825350042260189016274748465818371221156401735410212972118472636150144155646965251362107953286465775819492106716628929516150856908649575387680530169488238307875232204183475935182525520404082794850818903201232297645617211141580458743384742075317153290292803168362394191952483718002296945032107755893160735327914737667404130246987684623540723899365349291395859088210994180209064518971575617575460375343118500859289349166398513604750647478945454535833181442335017415905052445705444184172493741352895045819995052629393958948820423509307528939580847428403150408730898664441412745610568561879467027168944338154276691314991122675766902193411814652278945891347023597069670817880685552857845268860397848650616474333240686467807436027456759272432276050116058777721723853946269991824395615557862527274812659236973756940008241473571504723490539848547277567908091494148439925676575693945936121674487062012516086522361816635547687542297071549612110253133642531477982813809120585979515867801197034931724587633143862878966816833942521905903168382159132288219192394882004525730436010059611474779484676803675698501839029837016246781172585113138230514965183965278114208078170879528130516245967674008426239710710540601522173501443123832214195621806684081388610531315310653660606867147734815051340088652973905984217763880002989486699745883262607433488950977902511141148582812508381105479435411356967185552121850408634474886810502946566840055293835993251501066401848600390953763112831891205764356607158954989316200208865401360047901008404731433519853966460140221221650217666745502573713876776206052097021004046963816713101080407307426754312510868759481623042160946285044157024623857978494257250184523890994539832804929421434370675665056533517210013216390070144126394173910215068889479903398804966583825209766321686677512910437518214997660615878214075307651900804342183270709821065201646816836046522848185866332053261275313295500413057277310052055186620451034995751015731200694726230202255874159492692595017440896666395886166428420497576628460499465588490336271166708460148727898646363918079510188599067589510176599527274438218243709570102849483618666745365561108757011094343147066377103424376195454839177159128317303544560455368533678186709261322283542566352118269947277370877955484454223837005111910793154833999434566566925414645435940426709213577511222716886406298644669276425964766383551798576814198350977254847557676314536997455542599609903297855240194409439959292273029602882972830327506391558313049541660569629934585706948214948217642450480686203607620425657825356470191951863451315082361798415884992623925561008104909606934920934844459462929844288798405720055798413893313487480166896959508184141846863435942246940625507398876886939394493572139545698931667360932312079884462074109919742455721067454713454679834277076129455517528493115865097622146517364436344435750405290685916912159739780341541567360451499941785187987351178631935304543619916005280169639849031619416946622938300817920701806911673714363221965499605637504662258354679536486459775198167627803839656411989496767500935750172538436550218080126600317254348637952084961900770393030139717342627401564694066556771893898044630071168090058707474730861344801084032252727864819668006327047179767746643659045116188690520301725065901433474445619111102405571452012465416369883088070676419977571537981257559449772626760750614092183666556386491560010162237372334112580562928539838504594449244573237297908052293417899119066776166931621871255840149605786798423253976370387750563417458338258930775197383576120919764738428384019939542749304760829376440496245215978745523775872129803141040992325640375177023982647441689685684744191669913431582116824391450272120750571082737223018448348981996231060509742082692653912411643524407838458540353903011571365405746669808057161271520347428194273562049001576263644625213764664073495641828900097942980694043727088253436138216128521772892180098652236939573525277490756030515944046817067788899666125027309995488542995712547576987155795942340067139012619591890664008586701174941255374969963517751078292596868671256016643142724238918495607360981365913404141282676397467209644070070734569908383155517085924110627792630138515252823907652451799900083802211209641806282431158267672159896843940006355718538812254544099171673345851040639641213420970326419267229937759202060066478910402278290086842979386618968579389091217756298201109135336260131269776758377954361522043868861919989084127078254597957556501208052079863257203404753174674430370578281315344668103452704827194003690212637033104914189565010887041469820030776761066985146465782494084854575051140028925638446794441006293691030726295181685682464794816636954839184946275634721135034444846083515447988758211058328590182878726926631504516495413540421109141702435083649847671101593420507312734108485561543159100601280716591389979885144634770208128704173905201671298619472893418898423642962930260021063048471724267919681344634947124932860687412442822268817861022641126157337961626502500875110454387526858265964071679343895194924869512940753339107487870275770022922469944192767416811626884841010536765128871241906043487613396339188158821676724646832225006474109386324167847974702817575815692498985174699034265417254866437899930685735195806922613673099359972516405445082894124066901634101010657702664708713081749496519596282422789110166116527684676876773278772839212690106669255154318035189942020984347592549377305532002511983327997566811892887010509529964792692499745343531645826259493281149209505329235842015870225935376206611625653677693265541262145693565908346493459323098933258124228897199907656314360019240645481944865753961561827964969878846476391289399418782678333778929366913301500556212845747936079618831393552545780151544056060235339887172796442851154505310306298973324180926162242657350819590123796569651960549074192225496589243413615075958388774494692214750947370906481247758086001197317008238595676767990941192590682665667534563290982955506187700959213336514346396964869141978863699394533558049786774974365890355364894847121630349780855549040472094630667574691756105913436343006956496430604505585839245080408987998021175060530681835124216746771958185796271130854872953386993926312866961113186793394732972674186853117784731398722766674934899326931557283796879179570916750375361994143841807528910427669498131860630176396628756416600724579862640587076454149349456612199376408343120447904546920235830602686029626544767211492708045811298933440678423079907664374002610262210904834292737441333145523267678615664722301234558908347360873924707028602451576919820446261845949041273627382505403154287582619938235340787227376270900628946854719424207126024708893129712396164667295373597490919562636075769824583434046924386347674891898965974162212673445006435717877461712865912261603770569613406099227338697390268735619792402974980340088087315236757928945214583038636055650711244964146100015440731233995725350844712897315680162083110718569205991934555023553666019395386802231924666907729523009261115994672619407911363454751533464890683308507553915778710861505673864381879229780364822955810321719530622871256152363557109593860895985136794175236819219015071685248632635566612988863626304393795642544044405818508950278904580802641242773380729399216425606941678310456015501724157589224212534568107203185310348054189031623693873776861574570194205381825189219741458251865315937840612671271052557314912981470328333856119701906283847621902823114893940175610290444996655460673498017827770326414512495024344982506257068442293498199844227522218761354914682363961838522572713709865002050268128891891552822412677025076489359482883978535370522987087138615883459419887208321316883672793663205174823125381541844212969607138918965563425259313876290005487497965888553722551532166716366754280531153182013677101581199348840590024566663722648434912376945540048839323424130486526889696951944348799330031709079453388868535215698394633533219533369651793793737141156829345733041540186057886490111665072496507416398053069145994190196073247267275084211406213486440364595824597144083311903427374526654955253026015724507794044879031372445279518584427036300131749167844654813976471049609970626120179143485218510579255345523725978810367240685277464995054848450337126145932808033330571789299492860711696845990475925091124894999646359419913660467348401136480276130642013287388994777597199712908699373629921830025165793193028255203947628176338789345568770670043869200576104287902427039498673640423880955102466167037824411814775696254605967269782686282252367393730268252813953525637709903943133700009414329354039133378243588230343092116139819589975225489986263598269172734133341402110820846220098811931576441351257141485717285250686661809089517827639973823295761423138059465217536898290433855994022984290996116517068644061474393320586567614089645993419766967234157295839986537307647480202460795150667220484206405541596558479346982093433126618762232928417353535771548770594250279079237579472270057128320903297429877946643116104525889559451682279980457449095250897769183276544431476096286486694224965685718103718852943459231579675542939483455035493232869194361481984829727973680379361827235172375522874642337483443756148899531389462013467997784114733219298762600122598320401388964454076107736538548354159075453671069255891612873171140756134729771922120279068412974499922204930145314084993258949591013281723936949282933244925578632828823066469276183830650068546386086242807889219727253183054582966432161258425918834619778861700587012996162295299832959087243123443576641168515813189884486718588174592478948258533507048694206964061147277163356191302907507355888761761954580481399743105902629612507787105836617795242528269897931331890703042270092969525148060395505501736979690878738427973678353624082424297617712193705056827994989292825970805025972517050991565520975135787116192053128801041757452726473320741306684086630265148005927697668047730467783601447750504656583318734135277656332861777128505076200382810248023131916234095248609547533569632330916915372900466845521788404978517531865446477235081369061366989050221935792838351364911008098700010909336781073511385974137776882072177453228205488542467234930338938039974439583572295405961148971306428553601268464115680949895306390543100479848095453717705413751119833454783139716479296270223959836106511942239841409533736799881446862822413162485844987375233257295763210830327286628693461874580475390092525694948757314430608894904211127479456663836121024939710969217035491306246108895887231130376737401375661275395748976959053285206516137595444130338678885807173994524744088628522209149985238788344735856716569861807908012578283197969314917560194512363290567670512754698001529953307460911843092582820235242449629572561565875678478918749518813640356619593574037360909583768048508177745200001151960593335742537889661235968234510136600302143092021613099426607585446393010082339352472374291668630015725194987188892432497657346854974147564276241749368598128492655884229536664516752296667735942859168949326578298456534310948932222222569694534370549372049388784895040962384903748115766899073916245940812213603656178608214477466446629915602324411112278148645284103249205395677272589117852896001522461742596525118588671437493833648788776238979591450479611287828493791414143268713472677157710526711733738279804856718052242441913736946669327235085080284808458465302932769140405544790982462191967984982270745752718176257510239533363835907318497180825300129492505306702821801117624001472663674634345299210375376919187921353463220647541927040291322585720940941766299210681751097269479424878563527143668757165049411380746685777509609622090165508674509603668546699003871282723063289008747826143402354248345259179908866630574775808204313146453876731501661382346337505195032209173097054257899705264566187795754457225570755786207596115436364947359340247063001263319712561641208618091137631367767515686045583074785953616072530291565555903480397424020571805174804515789282604735082263862953773469203400829074757205767853969651573205598368245276437615978582623903718155610915884110179458037694147119385011688067535782618138530489281708984285179441122655611890517241175172195165848795647536405259286269204524851473863629256602114561640911306623584954965368463688008988426871062218721300077083920857349146276516244853686242455791899123716771108952621347979951253798553244116922731296589290759163432295644638725716599953569277643899922304704854884668302363852503939222552359121409556178859238148198890393717425526424015998446281323213785791820203511864229238027361173796131804495282070453872208227679085089171336480704466302441309385895364216167792316280229292892705316569359599387839183708122071368971575230800822426304817454406136410529776013691749968213342009881501662747155290988567619388213792493645699979912646978883193572354214682592517457861775531760240228557893405336850375078802519414984745357880292429367584839416815397999412213778387626445694398609969497444428698860737768090078601243945604573913811283694177898779512085267745830336324379797658656091052873017352951364856093178007910019935195727459753274147066915430491442273249055993224451827269040104815308856964209083260902880381710866566387684493545872957477468804827170905136235659454692899649584192992857700904656094292560673710254392251843204820170619833047484748830063622138475296958776583737786081637924659662254644746298445497104057210899108820649678282737794364037626321775750419444806903593286858936609052683693980020746494405204788053618953438894363205866252695597200860992915360724799860391658886653482560362660302493316390455261111891707070141109184776129607094860210627221730815179875499843657592022103486336318086515521143492211806269745531353272790883423810873281267334341770290124994249323856963245522713015612375054424156374419240708611674191895050315626215804832080583020263094299388247363276557622084458139181454112791460247883309314435510684176677012586926651181133601614597793116017235336522688777407888445326555068898763029773404688185849335625041135122881054810399828076092288353975699556591192856362254608526256015326623382807244470521813405157154519733422924452302047296383488719892175905411956922258083465581049238051929962466892177323494815854883190247544877999468859569609271302175240375747977768895501274010162956978268259137657231405107867373466153005221459629784159283525202344587968193780156362187625830792644272609210632528535654103324611295269079308011292030271137572441109715306147844469383783459380622966837949641504852111109614817419804507442036869566881250981734513328944150158524710089127798814460953441814078315015455322473215779512303676289651750931905165568997666923377603202798932065886149000503541818954748899422670725739364827914439097536735703963643466019145604785276276518128066499177666888432030160469666827655629194562323461063353781858017320024933689681556856791244320014864587932008735051732335147515773990548029276373098371625807006833161480770879125617657926769235435126642015724505445545458001215366981728612233136676849148964256571853755701266280507944688937388588988235717332602775279442034816922503861597701525713637428356003102279126616119255871251153030538344053706835037355057979738588854049757914969478315515601426536484771926542031407064586247663708511728487553547038898870616981317600939754684364993457981706936426104976162918314122945293202579376222578213706891040982510571163437831250579533569452589997826178650972111582676976827994274703921393549832835670041452099090581385106691272239631138564025249668465338767214608580018514040530127750979527459520648208892168414613523035148526429795535702573866639401074659572100484457785320265024043888521817441264457816964522500542436249692233710650089277696380459637635258236397327064718597937585646227419088932172155116523052296851711295095247986640703515274321244004045184385993672251539806183584544278868293581296018420740722388028795416412324888994397065697533496298703211187512433690866772483446451034330450917579395845000958916436857115986483186157893038827725845252162846408095262512400904782297344290737793011531841845900411423860753466969237690625365085588603437535861840477065265125904765175078352504234384222825172492876921737416148985056247698914357385429343053340100159742377665756548927890503012900775733549184567081715470355987889995575424704363775421465665722566854006943021005338467635377573130518334695705343489684139808176384773426726894627883552412148466957332373628429044243919081289140594362789479839604129599004352230627414236254586086520095761424883196473717086198025544554296822951384625469431965498017737241593530099298594826039677844844948684405853666733579377860104241350241769518481735356624723985999413503059771070384826426547064387068855786718322570432439594107125259306934510140787953976233186299406887773355070350688191546929689705307673930427957788809244151091258656934493398979214825614843157592333159413535457801123377682512084456469748067966239295711724387081487984020689543706835502725485846926954682651443149842687957458058488155888243066690656888967720650718686977477728021639250643029967517713801613043280232235129558892632716275790471284840562192620898004044906640952755505508263642329020293056537367692617715366165224515379323856551429388350748460193724415895038137499888179532568971701279275022885330403135142761490116514742567547380810238236773658063367005982883069667691700794746046738558781194943846955006605735311337489453437185654284394566047012184163726095839361122142635634006696837042902568798169807153590324786067221634408934117201716283802953261236359165369454104283221699297644599600414024464976398607819565132022578615219346664530009880243086486718119732606882479570623529593040700666593894605229303851136585291365891646184628462379183279869147583911060289761549983508627890611502710928560755778542881384882325195133913263595481939400022071152491135250689117409756426637174822677080946478633725091054537815494439009052025983294594511071127905003175635664672315721018871774578715496519338542133407442334830139501809646256564657352914140648759836654056925302162377714349076214092296821773543258295459972881761432528223910424861502697219032364270560868473649011981646967779558715864139548334117229641734794121201428020167340599416372435682707845942338889829359022333397594477950466717476614159683268149878261938583223822907981843560757263648494538277283980343083146012539583052885599219822672371051090832293935370668995322217647322353767047008807253280723279090721768679661850938382321576779534121047938720132831482109443915186610129876294475057430739718525737309890980365003379016173645708622865923475661838482382773948662746432768227814646672445087833787684691352654757364899760377646025859214441495956183430389424106715779207555008467831424690716928043915379796709067031287894704764568557757189996119784405047473189746552128917612729388016943704929664344984090971424638839409274410652626393408337164860180023957938481772156405060253205519997859434809906244214463340375303714424198683326222033847268484429819466137957365599313451739048536169452475154645815643814964482690455525501262032305127618976910136292748591721274822090304816333866453618752090146811525975169001862577840955232181544074343488549045877276759096265834545554912170266808364058668260624201543660801627609567964645578489166137481816565869967565608789122905507984992173639614613291352338096523749698110595151468912983554202516298672202191344049714173151892906313597259803212044894868984215142484153123993760741290331188674429760551555943446702163109787593136241114527492043097329465629426834993839993410527095473221150829723951898707650735693066678406374927320139152834091348591664519389453276057867252394857062073913811052936207762672443644280178989219425625309841751860447204457693871901248641260057081384206380620302258559840006415497906643229881638243492320461921985955025642370804061422749481676783807541461424992189036459585979034685961127038413318989046752925241496815385361837606212530378665715479753643311834663382573827784014698914724841093956530666976521025738812802905213229076558994110746411449146645661317428659402346315318102655625215148324487961369969438743010461858527417271272079725938514699867096696038728086001734688696396123321970047692544214789334056432976564324068610808482908977924685738226302514527878461863050263969350639126094397792118216187473739172412489315149317144992718939359555255120817817227255463726882784462226647869447428825958456820408924602890448482076943100375720288937392394931901258005981986412455534582430991378185782997714953640851851576236671436458573260737285700569183229171293991309588857403168423112933709371407357375460657505535904061432252967324505945491869987794233447407851345344575159933846410392910830723202215116069674938309274964240831774312994931636636744165955132397253643796507396146834206850092080717857865568905714900080212472973406570629242495319135058057651249214484485501036380497437526792069740505336171363664605621422395509870482521010570933613652840369674378104063795089284727406401542154250852163780733890622321492331739871580341964177356324205478307515182329665662783989310730917681236071296915639155272110910634873059952731413995628608057801613065696200206689317677649822652873099005314121472099681455366022528828914650931778187540863249377062697625145248914740650014772866163148273800236522497465582243078778560662417757742974385638811264011323501449208964746882183751695967218719769796731416027007388144447309693727351234157937845448199788928849697285796348971142522901477866558426629137849826104313998727372327717921558218309126959042513057829849497120722225287458417036130382731073532809983192405050001862934576740926654104997108270832571572663497954583965793412210018499352706881665075268782679925048172922935245831123453935299904484188441575568803223461215975159322825858397913307459758589831714013628117556874347362380573659014607133425493831047313231547772704205937661819575399252956381412339438522060895461886372114087919883438832660887960825043699123031012483384845637536017829462990399608090907657768542077553877304459990234224222332077244585875217825864200310498429105103716733966621509581432794878053282267229809423812238028790412720041283309477020266114365027490911728502949047901152596383099057471263000517901011822387154244408049594955338930996855662077895450450996469281912640494946982503920834851535698333419951698215720230670268009897921386541020705422699087207549490752098239422047571284860134389976336163213290768815732206017695902216543151935206467478912878618761843229394119513904090242476486172783359037244447599548629425177977806776098821163266442010079403860518699735276697230428446779219097817950150843782242140546766286076395701996504144727458956049285972130874705974107753191282925286661677734929401319199401084204579945311408343029930860602336488119585972683984206140667700906718422219687168877996186300779850842099984528413837857072867468972138193073479016079282570136150825708124094927894978628742618868886842967913870970220725752546208604848185697671708556447643396648581121849403616626913537463865042364392799166721602988067664699768271043657061199973964872393659500798143738464627658588869235282769689855281183665502837155698646157550353694326511813732446550158089247619561436498077053759958868157465925570429209548882308709551165746454666349046013026416936907848214798781551415404117534086481179382085090638992388189812739437528599577724475800421901211814416380573503498151218709085096076971967319597339941461798223202538448102029522700951147814136425414728572791317730060867089996220135533769994836878463648897087262804387503250466437602280849238033021512241039225525152118393636500689872206427056441442400743026779820995842611895004761444270360727942586337116924630761382495013720330414072302086325533921366167482058366548897410501488900145755284442391495081668356009001173494077187905306962052277340064315429793027808326581576113374617447560721603030332760387600010985577561712329297275091182285021657575263502670971334141627268408856848718526992093288132921451043096638296974854952425673275908864235034945151159615731614884835503366480991531365276394337568948010764115139806778710916368939962819871807521617859829828360391671563286678874319281630587049307075157911833554912835287198674201977430798436215134366355029754901397664371152201561134003300684162051637595501670684930461192705085748960044945294041528608738532645037388723204197636725698404298623951000228122692341312162045984961292733068070519421416550602384128782570241222438783892034942579680214461984214735763338640390488949099469737710536407140238905576723284234909563571440531570713222051484138379911598933652838971555175648140377431039303089074456310212725235224082512896232958943943243936721148423075009509691434039658857366504286344276824348444271368698326520932205584527387045663253411022898478341726332967829937991814949632978048686083677124023470774742697693530607659607217248399211999899456722658963823144389187879657126481424569257754967942128170202851712679665877653990156846411630919356352107849572639718911688380892715351340595555645042009846875446552355473807216140228113595488421212682371743675924582974516891702758287725830534667499429896622023597766074911304112208205987670590439938341906126566061321846814033243071471811192409281978223748830088976879337399832022720462109710528470409671987589608760559793518793449318077009932865287075932557097529392489038050681437303242183321700881617790459789863660784221520941195924950319978118425227856317074716271948248009987281312356699749165239193006876909274724935952914042708955090730666542468671862219673176865197450418828560462600683116371104068676740854795659242854115998330763739305920564205940295331999687922345729788459540491682749760138615689436868906337744749804648606343320139758908283753056641832002942501634519890443762660705084486728985802494419860469029322172308538124768015975196299694137058415073067806658081314887590467247165289618416809551438715153998943846035703328730112966616399323701870886056735195478162750468527448674602564063347110298267965337011585710089514066328516676912211771411429231253443745493667780249451577676660404580875737073182151398288204811015255880832555898029376690863378952812137056640303748925191401756045379029525012458106743315560744435782824048326478915824398840250325615626396287996075697358245700518310349811471736402353484221639618169438931014056615795080631264675050667842663823984767939926940263218179727891668875390813385085078376842596806256197009643819709732133214507392137429993340458814554114491292596136894852453043977468450277395008488905133441550001067562669973610821710668660271537679855794224659026408797891327292527103665595226279160204885463293094165432696221845441336188944120740645790697779349068642559339928891209905987005183538370531851851180148609684902937828662085009849332979497531451417087196300650165809298976921871608136046638800080091494508996022672918726697094333239197348679192540606735883380355442245145024875333755012691572664057949187670949692770806651689629067717423261588380179137543691723513251683613551621647505950406736326795850374687482178372086515784070465497729347086007204893615000230281951309986300497510907620720053148831093872743981657579161349383992099809043643843969800824585420389535339799712279439467145314366072902732670949486034512632739068028769562296541149926261842484854200029335440102672616110840886343517961845113975556725691604312955660182981941371925903120476148616502155870367080216155331118540987675132391953151514346518541292802197293386394900931359069686050677816012009322473776446911410604832096898084494104840162421453552686618931230796467603937984305780933764753437862563550766467154901169736728832233444791321744641694410750656870509373573070884170307599200867663616659303083355137080466959410399658180576514891484026481677386318811411051836750551059057890104701770830870990043201728778164506272605108034535262369296961556970109833842124847949681525196358002381737985148027198019266870243572656473930556907790514476290347372469919067505313048575234411892593225726513296053717655882495199210794521257230208049688618372246843275413068656716378235723027235863256416169722055306145100836989347715854423567890518112267595849205388418663716386844431545496920619356666028113631413049794417542154351038758611758317343460397382566573130299546560770956571501785095743777047289095396507872728544482820558265777203840696314559294069394116858785203218453940791999698682660252885029598440797763411596735881930611553294515943271191956204558228910993965215876199005180741614330460225923380691758715057643875264827816557250638490020403763194001605061773927335358886724279518827663103291884557539100788842960763827469426862296674215797454986446865873864156277341960217920072489545105445860365656962300480048088466126858905889599162670678123035000781487742478235000204112255973785944451963329338361487700508593337762862305582872918357503761777039829280480245431105667188613330929385389715091953067880779971995703218096808508094756116938903914969040560788096946589251907527170123237672642790433758073118247820747792324610917111301476976700970719692825113886258524386510357971681476890297763555117432780603985092815665481832029546688129618653472269246454271217437611317322794840512112961777939948411575802071033537195655408110238412541909575845898420233227675840761502542157370087139656715985215725004033454321620152004490283425618126115109280575524143253542310920411160266879184061425430658010810982701974210467694837063882933952181962961880095171587866727096061737444708435805283451909595673059563278957413614272216784240881059372747060305056640143625163007772549241921551994725974653951629107660784171488060488276933769033287559724005344824169392939330726910619346302522169675000540331671386032842211625323762674434109948523503622926758491542085587037347671459507643253607891797960513972655471449845868031381381947001279310439043939272031697493346010669797400513962427607554101842747771745499094937745644467110845852631113119953315877676148198156092356796403669186452113166639932790142452916578220763834534228317747751837608518115091358823309098747365219311582529719826541629165381751812456893091432256060275264802772772807992273521948326796272362533209404916839429392178272098038788935140131975657986065453360660647890796215839021538583890401702589083928155157475941868953912715102151026365566836909213186860197530080789484863230748913536830597254045963774012160792769090841891597012457699951759717346705423096089052128112288397614374278201668690070431567960624893059885746474573138177883038575675739183723691915171543171596027044934439320031325321556267826278277672587574424482939225095928292340671145557916096324136096958796156380975850156827403689757813334065996355097754955410459130207357001314028490250222207971101322127298246842415144978876075768640191384913979487580271766741930929426459286239142343031788771494878730711466631036676571402835515789474348654921908009667160863741747085849169954336752721754916527483351749709925907322069017422506199913028972578011664718506217281021805772863043730707856038401098350615280570341869645461390320900742073075470499680561676706428899871739847894054859678390083051142298506270195253494067012034548651391015535501227782411437307126681156631645947548341788405337356977855310900180116440735380201288691563323594360680521556627556092653166241780421790267206587349512784413458534752868496591122048607830448327833681299627252407666372649406293371837067802263744715928103192694284634591066239046915949761494596599856852417439328501337422736700647250702610606264980681770025673325220816830782821077839140428843118275379482811164251861754942080119230126851566965557987774261228628423287475120278382693910522445654904505509326287804350538434374028053625390591739696358593576192987682455809855780259819548836995541388813456955345422767830615668456741800887325513761516174641761593699971780218938912593602207403251936238825068788694377558964310062832311525067924379590204169687856747797331757868612475194369322158102362478672243310639191575792847144394983327263363550242272807851441173768263260847471149676107889453514230842205918408820831256637350929881336111186910249645229985470966386818596319075100407494008903831853745860474540439734086773119675866526948874827548024660222093360983774642910467385242622497346766440437112796590515500338739118785095705879846140943860008388860835709246159927724802510011696250222065964137652592735469275520719490729614454099195080957112304631226285085664938838106076886890319856328832393999714792007223335066769781850418951642378448223059425209336683780074328101981889131233334850497548044099143144324295527909898214699140100411201970663730198932878589750555435738183530918895511947667792017325199691668382516634885910050008184566534864658774395253872153008355912664132585485407084874454645865607456072177826325603795110525574258235402292189393922160020713894577292992597032192626609117632759134135958465663251707908083930614008065174460106819199647746405636812553104678385240233191057446946293733125684513073827569755676491853548792751087239798990068326154169901920626202640782652127717107784775620521603280871924193454516706441386745245154658648045255125894327849316556283483553205807315649527403720782132539826034906596546637004393829225372624727029533941902736013101396696642638713663602021185274495782919154095217532163187735987759152161455386947298801862910543741488670617909926794697701445822389052818927226924230931444704229371654797205943380667040286066027949991669176424695008261489662413430643742357846055259520479228639682590100677557249604805036580148049950113713295011001249182992606975281374737852869786591369194251812959196325578290860659047495510650085871028491012466665643471778992289566427737123719696203030800429441876711479660034429103488717524234184752069336943769316647017044811685944798262993514246673220093527781450559802326332494569274787784558090179881235045494621140308596168595361385444434025625620759167595837672961230252169130522747879560663717968596369333311236619759023588194776728048822038982302373529132721865618116167828269530897109664853618252344958347126519442864743994345652020005592148774113546225320150220944263342820277602126129960262720401163299229547939757814831574490217531086370667131669098072547016389764746497465199196399535188512489491689689244985949004829196576839387744669559867111988110208497597857744884025155186121850320902517378907426389514212420874804772922914646527230169632883181982675011474689577203730680325962870166067343200548927200787895534492820207215203983037890597205354147281774387557793276705249619790295493868207522703285707591763994316579005290539182782640873819893565048586020801698813071519272607731836394409368504342213399276404847637593561294634414689176420390636313084222489609255114841308872703855901434197195960367742423049989394198429268120769119339201445747560046883989611101600697556983278499793286306688460716757284719573659471329210049158137286449140303999369790258987466671935185023010674484519823979805080420662236576112782857672728298003862788752719367756114471907636360609732630999377234893358591255283873869741978808059768640642888678073839165881370193144279894249139155533696849094746993229156475185638316541222111332727258302283892988171736520229803423308213301718647036639018321390823058472644345613329497782027972914338804696665784188840991743858131322847576293379653421552986050054445149269353579405758468171871898083244597764345604696304231720937584540110233297169703934476515421223761788233825538872318074420277817895175960718929912656953211072276867703407371405784422668496248687994805175749623016567327736151004056814557944267338976665485525818475242634271151912820813804284039689260338321174708709154694667447666995921531715822100404261670951891717317756390521165544378633732152724133235757767220240958614622602087753921538518617843873829394201171010718842002966046817758393628954130371616266936143177681406434728530457718410500181978258976457750607524443945650903518518516494506002592059544100869279632422838056309962395775382188529810786755032658023326546532427740881668041990310558497320030821637958698529518108742030610734228385751673654993135290330884033775229053346232934203866481814888495151075872362276462563461360125388918422185530345246015833604136264347147896143156506211543997008369953363177842888149905146009622760829418180006322662811050139250065743867328595578298925403119395304621990899897966201492729569565623934766271631942622990418374286907714035496769779440092501282643888054364625442068799019351124383231010342757768417773968000755323250482102728448110442279962202948733223372233964086300568495271050476705356818900382508314040535342439821689462078147126222107294819359507173655741277527974308032029597037600899253154875156733984813792261790657394048926131702007872125232884936216608930980591730500254446160766730384522005017647451157315942120305910276908570903277065022890359875380086772780661171740667519352351101299691616854435197680213819746279060982528649768534857768877416581190310652115776474121459750449442606154111379902537862344701542219540360520358795033391633247123303829170250100967105512221971838239018858392078998476509332942960610458024552027226580490748007190711164068086271377406739520767463236050623727762513752355094956592916242486668649676948103550816885004592337266246148994756198830862459037060898313585829468099108312898298381690142373272507706183307429809086738559758678863509452656968795444364180616270945840393780117781552728918835434882555587947052638436023200375119902625418858002206353443665339873679003425038938128146252154507217951334968373515392781909778661225218194622525280495555738593879338749157097402990534725468108406338540466772772501688216673990803866381911619670148530514071613326002086262614179565243290547917625470859051890306282568217114491484277452005696516872362346819146819344254201379117325913541514331472604003600538970725908670007236018731592033114561119899169621082715483292573982166089654261979724485229048689245284171544030331768370960536303621378300813544058859075713363191125044330280870411832312144194450851686160382860119087742165080450189538604631414620128118668022451989083244196656806364030692171169786983198844891095795941816668548513915669640378625263656354775597394847233236903978717045486587025425351517036607590716126292950278437567639943287230060965562494321012932182133380005291478113663094812965354238737350085222120895964451386327738256892091420031853676671840902014797121848783575631214773859490516539939644128350812622473834338394041810214978351404878523950501595364135893976311391344693696168095062324555658600688345319243699413284124166159757624787103171254078799221734786117178193528396619965922397560408176387111023603923377713593977224071225843298463845687453361216165020436542804374001592945995070844494413175085157339159709620969619637861758929825188042705834928515736018915398829102627589080324146456069935652379967043100365984453458228116978624326986037046495756987598925266799790871791028475026942726170417699649655406693974571806779929339467386936447604133643660859743112160365455252930225287602794417105790596193536380750608701766996786340528216427155999736748733237147034921401846656251908222867363604900367264440162960824061282746132772052426085804766515799643235398817523946089438010377548253606110119142352146734179937555771403619552305530675629406468099177135854598400270167171476481527286160537508053539954160890859997679738952748648863303080580552621147433912243417841921313946637063674805327173566935690170327353373073805757307720238733708574752260625549568739437624832023830214064845680571073020763003293137781524087826038752762403290825839669630735879217478262723754398919037973183464365380583312349458184757322767145746929837170943081313282201784552787549944330564987113654005400434807496116225508531620027129162859599991068744329448967724001208822217427426905660511878476703227758317023781557216471971055705095422159080983839830153739630463059970624428588294045924792638410516304658031103555566581987077997332840330845149368483493580098390895390402398484549687992728175174990625152912152300690126097144454404590935983424861968060870562314234387578689943161909979770049511392527894341452335525062344506091747348029575591422071322883505531851021579687704721532002777810404992211734966838251114955493299264220630706645935062967161596045257245062488918063425918896087922130980321892218781510267758081482744724199665944917161370287696477836035065574238447806232075804733281291095427724855720415353309237102109353547650045471602578896902931013232849301762953745182595274540418252875887858620332176755784288973804133820526770633535424311479794192411283622708589579645172482875188604432571947076973454212201150382519989949041647172802935670587154794447355106124821429856573074001633340679258263517097350087222332545969319371631897168169223980808480526703869642146048055785835236073468540105302118163455381060375694018368754115732457808823440122112837094085734628243757018569582130772031766055794735462994167192753799748262848246956556901819108504929288882485358322988631638442968932025721288474073347103527940594050698711737078688566604872588280491736388623135487655951541004703796929204807795902900066743908342328489151367704313848256515878905370959044092585084815860557016717639354454368474433336285140304855580955151913142475692822710472084102237103071768237344004597260438912092854155739297788020407190679847678655081890384535298835640048712495824877968640404894780047429303174399747604892734513690509252115851417122811243200009796575068575071304135575764611631166123455888864632720541746583551353238590706493615261739872228436135018386120440383717164487969401523822464596913982615601988757019962452624285211904178873475635043579558159695021604247619216140758103206754830142404032492370926045568710913835428401237303382132429248766241151159980814841149563372496715711240981607126153244591767263044117655395627914943460205942762113212370506887725579500997256240052161458209146501807845970700857780012079399670507076905652240640491172831361109088438367252309202173462654788230462131066575162365650606425968800635423809072606631271036216386460481402673331624873539908672253332708726183355812791534546440808923510697595233709453696407070183857065258259198096908046286714275274141095397523648658826275406570892753937063998061238732510400591841294104608119704673761886546659569691251694863463107664252417322865602445748828108300945230219006458334156537842686483032254324976752014668716000800431017209497745716135306518759233722150982979403894531800435931926510568860472646232150495152887702355119835967971857984745012058428049751043556835121543352630645654461537975593095518866701741260695636153432203273837158007819262306855836319859824125257726301694774455439106077704561101027702121595787051269740911521585673346137725066308371661175466083719769643059361106036011083878256939901606669926615994593799616068484279332036506006565554722410706726709433289931748310575393362151264612969682116788410095511530893866495779989596055988631851045929458409830275018124183119595919697198870417971971305062451331772032704228672106993544846524341568037324973802106898246358374355753681959109294423468046415756071361374512060984593798145147352749943000458690476798078413995506480115970531511639177082312795569324331188162752832749932391378921940226703536354269176677193752342034373835524815120538222662162706513626733519335704839777626070938984387855243887081835139553331641384286592203317116338976744542974557390526132089322323310918295837351692156597617483117218097285572276778747152136947853684723688290379593153945086478924040224125995600391153587061173230789757163121869644829089568093240714066677535045242692958031724775583163408556342521142054175522376855814183924789036653840432670071521063776692783641583363126362821842032023360216609296852673675005726500206811500174212806495600426709086057426706968126734186507946463834669336579427152467541677599796790195293441133913281515721636925495902785439186033098976187273205639182348680102869258654804389735875454216712972035330594136846323183510489904434043596267230855569073227208628388861938503855916479431084888273971168412655556217524009514908120767597836540826233060592648987974812162457050908202224180445180478071571317929675414373961862478475909087846929715100664757403668352132447338139755430370553489805756940599912268335216093599603506139946640282407723908640067482635421373023063282421544484280828747951422165240296336842737457718228355378266026123568356400124903695152529676514408594647855951094666220049729222111260528673598705816553106006951963512190173641040915584248202420746084456804344253334552591338186086162101578657639373139372212620428833395709881913462984293384654644909087875319325242695650278024146546771998362660451089184890510095216928958601079528859371552465875014595236681491826291452235355279394505725977641490285727896633873429260635880466840104419366277366274768209537729806321281986544765372170714814608782572674206181545523348634669106422256484703016937683412541651798940882657331574399945339231764935838176406346442301545859920627049562793859910040843928823312916374054914242572933812215170462634908897241098707792507023029859365541987864454402798336472870170665893755294928137214293135857399123917503145721995115120816273883410081573786670697045876732343730857926820139634393768147616705948304780883487238589840965354119838512103734777260596594508774516735616116320940014653752137067276376020149500156446147393789253380167444790677061497347453101127646122638657071425435572729740760008572989144241599304344874005148548214660535634900772319323908289332739372648767712835320162733601195509332944026660393780695512863244669179006072372161152300060651823902885756671412419151212775764146785833350408792394109183732775361075173867396301152034745464952208445131149927737967317035551354712774643930989461512477018599824625872190623330138850535317386212769284311428276596992033765758385288044901004876981165675646174020310494931279142474904871826041304441440038693156965011845256470733902441807798516371586129477705380545514645721937534460820013291857409642808545513249178309012479525802480084361889282950880563214912087342716669586886754045985220901577943531695125949927600760387214369515299964402572067042316074552914442143091189236284380131250150612127222437358574973818549882391839419523043772211608717488968284706913331710066747704615690053303726104785184485995599366227409749308643876314484678670116460069517932447645809526332712536212733213856685170669017992408818041401219932422242017347285882407492956298656369082103634051961193661767147292889863906685359683247890137627152539927633749338987829818064482811818031462693806239719273700903236194015491361483470398397501783961928661719435702797313546607136397947297896401676752439480358673007655986957600518061198568023399197159217736939726135138664202534405595870236988237732745425113852426750298542947281972223316990752515601443696503704354558928030740185254847727930513568099342277908613117261658885422173547068714897695443593778926812178196051373747675276741282886198116102885784949686555297295293553552955156742073716358125915350966539595614023087759420921035780361300703535140496841230175144065175479194720198359561800208926598263347155209096852414333992201065047927420121156945943206941484791335204201446410091870025818943589298128064154720912203497751661304161885369919540891593009201798480882710631003773734450877312433593180900377406097705787631136818935542163281919068747658228432144056874514431893899631652322137646078437398562567542987338764991665669241585867899311506039236478628309671152879560703088686103203017793089374502533377830772784267308227368181421352018190444697874054738784680372996954404876873054781621138077802269508254783691185815208213842431934762424328080031237188312165595028777608383083862088112742131877411079290072530454392739407915744872397131745932559542270886519740962873935466346583673109568026708551218405400765622340823652936344002827338563073172727750431277857233982890945082493099135828350008213874110769558669971126805672829053335413621936200865092378269925276125500067036111377992065280543537847757307358793635292574023536262528500926206496677195011540140445877363499226116778755226757103551526553748900444667146325009623382274347959963237840751999573568276554489217798767698507126705262007677845421562885254015556867525138489081695667570168374128559316356732830192902369688819760239513575523584067806202981806644237510005150335538534389645182116094618249846432551051029856118249762336432688066302508442926200013163744672387448021782537198599634296549192179634901811811323539775224798812900468013202951526457930147542757210156122397335983909902838621053977426768979689321024713111560997523450878186927663242109879937295293507578843624364439542309751273614045399977627865621555532096272921058809317266341259219130510588246177578013100623591623448345297266358789626937913744371960959504496752221891879573718403327320838730901283720594533029004461262137603008371568055321792263096985749800729360974716895154097665498617612616588369769960604045156178270221916567732203376126065183730382694600034971050102000274749085091977045800573316933407467900569580391441819478764435589761435881308062483164941279257115640928656340695777681786708633405356237434809602741709747031974190794350885465091098004793804292384410736174510998171615809556161924355954999700577596105018794731562925901105906551696378368030859967558650299506052708175071608198539355584382375080047086870521851081486461474548743351217330021777842716276917857333401583837221392248722727541127846788416901975978825542106355511764520733955151217827776465172704652179931650857277694068834836636648757488978794983013966269678402241962976174340434804915517705168149483701039297799891182820829845368128243214205354729404612739056811095715490931671944395476713427727562393343987026228452664367623178143231234771042981712274738170040741017139936869709502060610046100540711813461580796959268800297600715126182601458377358132160438590437272301639007638390806376212648966786739005745778818907802873952858597167741352423684928715968046148583455809234750445344517271989182842769759787291063470298419401636304247485991507234751197830790944519538422736172243196947287071277245823182604471400806850606730909000182559649520981329161366811908432944828169239548225328109343105338997330638509754895301133052609392472753307563960160900571569852122431618375127727925787136137218360365713450406603053302400081414442076024125692472182104572162634526436452921227598091220103633241649704453481841237751382774711326720529147246498569488224599538755300258437610839571404959215738328626466167494337086224373679683156583895888655735620429720324885914453609687352923424288066932627394006473521824571080666786867593303975389637053575505014946163827053277534694141044670288788083264770178594312344275232890571646240168007917829248702665407304915582106647321535909433188681819478438830384162195913511901339399718391277833234979628142586431968348909438809397545378540049412662864956896069066999721791699160066587210886462129171149455188726122727969603260263917457427020752476836924169315217344332822543210375923320571898210945938222565581802809952662892784789284535719067227724955865904145101610824190834367501011199492316484906838867247587453322801737242236101339691628097686390644232493684203018893595191167088260142686744710130032888824831784651490714045065551378882840815667606659188889302386128718443447960603329280005201905240344458711000022812103963815042046457498915507287147396352460445897548870136666784147376109376802980055280748212668311306273094305676040339726845937998078291908158115410511454635653355324074545562081949962502851582877515618522230833355701292388682528529218312380605503398473939159290684935446068948390744941814467486486467035913558422555695529679024817916475912962477636587408913743859557055319003516925846490290416533312132740370422768693700123089971305752643590314303475196520190425164640855628156512405357705166709814370473314403872682462634469305730923471538569926313899677187250150767672668889998141436459686216029885597603001971608753448257372207323694290600701301353152993827996794240097353814647652822286423270378373675284260646784632167512524000750456665140975197483472788920360794619299892969732817145010251064844932493907346784046426213749430961228979617608061712799899065709218016227658960810337144358824743889730570946710138149790715188573443787947066110619393421201624152996645574396258724630932364849367845848112679625627742140651500343391112689546338866630023439727195274314789448574069406516782495818104601125529109231377152805776418223522320816308952250072282240674133896577563027681647768231692360879264867699278165002390215571511807562114081186388730390526790826806451149449519694843262158047428773654851690619278342401481206286915171589458999451799220471062922290079182862338989372321197932976914330791275084991012770393661401427074322419374623046563025622286610389000116653368297292929453582523062655027516356514822240539592041118395461895151924503641965421968262357732375484581929999361342965318750587071270170228897020516780992108064900651375163206352811190554278626781057539372859209032211689197654397011644075495532683004345584224656510946913181100240965766382928235681167763472140523996909563164182838901972523930088785930012956400721750252682031615399243899752126568930163758455856672037728198055190830462419865313095465714456309109791363963797053529728509552379155314174851546023066981317492624882160981103859736591147824896893387923719104427311374907515906781725384135508491142914681825771692040570877599346742232559417284484206611351793220105198519162814060148152114093373144904589475931598996106948669569649605897988458308626092423256665610397372994226484699533591969890247533034616614942567999454785508290353156702548017291480920448242355404761399032974358323073220312354578827399960875373964468998023226880808622692053009453997924167728832322066059783050297787942908466050827301616431590617500285024841732803326329112455779958056238333486616263800270068775854863922786199612905453456227219736854899274652079325633501006930105029577319058198959064186689198890505678278617606433700578435087513121033169203081576717309503425099435764508530158901940055179262132941816873567543688668791703611419805729809010940381267876510362618527719848503514247793708866612705853576688289595536465291533098371167659918115897940397929163599070603827227604538245139138582246465001334687343995458978893650837455506129042289214136962536265308851916463347235661797040472104360980337098736249644978948290614410100825873861542775900567163889018822211147311639161335237632963231305763821823560777561355897685611378803776673932271921072795737236029951726880594192960708066261010919668221208389031859543609120188358413119418032017825635334934826530229319691012056039918065781624419888026746521702818000831240170372782322408875171829637553817424222416698233282589935650705299653244286394435607051494946571684673870652602698718543863137115657927437889313874440965036008985855005291187076701310950338648020321592388929356854249596212494897810306673997159671618992970416104891005048968128350454919609662046217760040882796900074878721666982327164678019409547543380328838342144537579873668988523730084622656610130016132734448535231044907699374899014954219780764374244683932800990947097588874217942296651147153257376329442552230714812817974530610240089885494203230145874611328133133731897978470079568059814789524348836349354315919894425950937425605618916944139800050834472437926644132563353305020701204415740409254411897865844672354763943826560768605481105550606023191890406406462788915365816116596083077388386594409232710726634179245193246599059504366774093438943375781610899870281120038648553960639895317817943879350315101972286256001722997593782081906899750013054647685311500910722620930179653299541485226578141962357940991568238257234113811209145770445031578346160560264887020808497096791876668636319591303065495506987974783090465534869762562738713744742438947325414344677655494959793562163135680324393240933253639219950161874269266612002389175198307614768922215467502139998450210870364953893796149081341311601087114423358729861918838677822782888947129119227977202467398226378853665963149371555537494631130718806389135215435217936957292250245156174578278735074088005665854294119508372171222851545882338860790453727114397554585023304954321986364335134485227536737800234107784490674764743164367964621967074395487241793940034707409820917887959511762351250725663877565171702760952573945173474622618567446461218770008444577808569700868341454244282601682816672452652956304568702510308715012020228940961725328996907981482193121904294289596540704249260187353314417446590495438191071891250669190544981095001829281394750281967975060997812453211059730027467164248104825437417206529324537229722703144660501641970210528459964728912984715560331575602505530012058853437493607805716444034412791148396951831300033968551250853956591984826218583791769835630903955423463429377549314947017708090718020184785805848867255554223623815677620291382436782789142393428696836142845321377148445060024527524862615203717876151033397877046415982630469870994446193705844346319330376420263094192874583020912890444599324861460556585533058009836731437482704342386558287372546296090914168528893349333587593017040187364216675981040002675608482413157036827852972839879910232567279653328099831106496213636951491602883582479284135248644615260950977564557832386711652408883427604477791097632894410139351462121092360216708701351878090235037757174245720335797031285435384217077889993815237672011861131020176107206421076780898453124377558699963487076933565597771789746715660431342299123128873405475973143546823794835542857447011227463803749589385865580970373235067492025839358286275990228353871850796672449823497990347713303855298420498530224807788563977742631975347015780484187461952494106841027104259161225438828297758633662739677929388050261043313073958612275492564193204239266991383485313284551215150413197495957741086187444288024981344920909058360063886240118643036636229968343163707453247788472978940342462198475155732883387569180200405543691169015143563704822252202617571254826806610638679653312181317775771560166940664880151861543752342746438995796486280217036201258980865871936637038749786480530049002266831426356687895777869215833635317180110693739335977847442344543614602655712694128300924610061109246182213602222077096239022234961960593154323115009670295000277571331224857342804319994820903681452662781504616914360503591824933261964287679031114171049081966440386226406302284534325743662134781897675062741907622776984051380078395469484095444478846570022719736655782195463513864181468442917081460345382526204603499332528943869091309894816476098312431881462965947307638731096107027890756616325119484901107431428898156748513573945055942858156637690041806015829265960381095152212729601633087058660883365443029294121794058831840861734682123458367104459989534501586706639757604676005041875527602351884253431238546137182252180523182472608544833490540607984982486527969232923342944956119450478270207402439432378446427712249440357718542370006765528509972387045628270616730439176726670621783976733375978742410799467669047112679908276224881941809928939356771160076560027814967540270698627912501434887108186742310218106928528803428539826633449938750434896285513318032416791993536678303333876198979470717223000377828260123486549187162324583846372964763214897306872556373635712452552304918707170129425437695013752482015776390863312433051775046359057424210387581748413452979387020245769051333059962525965406668682949180363087058765361470100123887447571588875096234243155125636091676836928561286267926200827298310340305907339821362678865272678967738538201381368892002132409731412969460407152820209814235360652711629172305974340908645588594863676568665683938502115392313381982430805605159560637246319003146185445498808547571591930180764826365802335598875346789770543304689679263000955091338344960828325367419885840635758816396410078942850562710919974825890927786758958919576522692049080432091841265269492263502523497350875238021828818629694990073337034272534405051955560147789597331590255117812539913709528218135257016716194881599769096097421310170630212964634852867158502072054209784650943632618708866627676923652422768429440414824848495010742829136913197728980476223804222877592163599961626617889700326344073143749900446545833879908578635592954858360868504672645780153656773093995028439457896492404969500134329681902428229199903142674428883940493222600521412426799811159611476276427238858010461992471995471052168845344926611202837355631700948035806918279821733692845011884383761079775293776954136784961360496505581289541162323184890644631894255662940975963839346433605309871104416761549261013935878669994940202890654263468362053205414534504210255913201697942142207842474138269722296297565180801880314542064928351162454109465574944494842634372000162120527084352476437786873681803724369279057291037261193119637163956723201377548351949055286875149073600381598091130796917643385944421209216914978600567566370350253139237497677758200921079841028122711378620335517390687909361557193576418134429450688103067199413571047790446668619020406527989585266603422987907808458426781725434105097064353331272552419776459331794221314872973961433745513155930937931263570338443125693798694942968326770508421548239022225972106206122558084928405820600966039853518642830808351392392135551337377619944284613187268322179057693851678902248274568991128064631628977958020382933639184907091778301673814537057625358681311658811514192841669309492336257122559431085979728748670668325970783411870941821311917788317272464828552550248158204232566391066060720960430300978838326713956643541325440537875435275161736970876351628228867482303776328949923238877814906827514839336289028409534936505866647224628160338535828392452011291673332821244304843173620385869870445841024305228073914818687410759678942834509159716528377361818859906833407875509546182880215185732677457122203218654325712181176597268985613722774281408833075646884089779927502285289469253201534464992170139457635887967533370446336067235918359619621131939521471233245805045635600821252000877107352975862730073092295392544932061930119970805355285056317566851667236212795747896892377939632432153533473575103996824223540699945049769586990204679036819761400870872819109491237044610515395462630230782832317433592055827990028989938671903851910761268027389114960778232044309947596810535008466794847419047074295453057033428634431108762000393056856849485801472899598551020096123067370698785836160754559496406696155050373678057527577655591573972048807315964250611934204132376352910620597003775015293975507358704868804077690210835888896464851412744080726285030891702133268792262786266678645653630514464461496412929515199354675009276795273335947165029733089070892713666161367474417059751666401567149719430985776897366936927618077663560389909275576329002769826274612337910275228095557378043343875281884838562066433453350267529505484864503849718078988478659563891313769090343836319987134456930717893262638868956498619451839852188102408864968081573823890376743505072224785787382220202567290542612974615382292323385797442968696715642041623690575854983872870144018002988321642398226584441801029044985905851820473627346665148767877607108446165109996110639927104639239721926318837542879350146228907567485090928816448801667101144593849368564666869368073109509467860729614271674601902548396285298540265766741314462744935302052452250740872253551908579470038103795295247589397240556590191393334529896774123944142621570520806032038225949779172095366838878660155456699826857233953545032328105821337243560455055025473110044652974060066405741146990691320521330946949257254013965391115626897784957445629217079336661837589255373417531117398472502404440890668845048209689441495381384635319854172659607030012756990678628170146446446792791001871974148433480132761784374816264090653424558708682393779590079580312322092481510173029022419563621605575670205749552995977516836952491767938208996588321712717805802324244941000945389380765854487236496481534681216177821300441435018746637933177315816246859973869626269547773247074384068479963840762882154925928661534436053671640458841558429812796522211032571495337195714023277789990943209784425733265347910867390371819590451917804006572660161341224686827642501221955169218514521569152700650476874806229428523204373015940478740637435539518181231632724786993219723304358796418325672536134971972075573952171059005210980722888634455544637860577751662902148310017600526942660800245418727823121408203789463303051858795982912202240144694686557839396321921132520699352083855045896898806653215201204616560843340968413446188959034248138211351726230838137768697371717643889524510713609188950117135478193066414321199355783298338405418496399990500622435742611343228408158547774409470641741972112999952509305051302868851289819070396302722235510357099045264854527942638318326330141915525163557305166820034835783947952968961508929615946417645225725760935208103189355414372092838560502676295330041215113120383896828879686267870678445223160311410858100345632743714443787432351398629897692695078229255663013020017347539746312656611869723839641449018771005909009085444865274469437330394450517867997688635201044458100400098648474283448715597872195305710194487942422152976714782539713934240040906580349748398752834820835691192043527002002593016711530233620467374586417997898158166930672749493770669058455588008182234164808973094483961293576062486970027933239029772994607954255718153226731456216999681751624894362306427197967509341975221511713849094799263247999971227082191811035346520919262905704894505814541570628538246480260210583267681270142287644879870903154923244110320034221650419738143910763021942692574316846124832703066270735032994858925930337691568097301975210255288182123733460439717650243198687329629960163529372018668974335819894993387991572387914951586196894396978512777502542503224740589773746872875821882393697331090492427098644277991316474976188474183168755982949526313870845581846106863851310111937128123382367506705162795710648076221358444432428017696343767938659382624708169380649177094711472742965936681816595457485140494968841065941887342617466143012793186827706498563915880775689704193326041870733651185747578551915884100935996071111172473162947921881467332121416775015366637353812155416191943562841030682311237122307683294735935270548896984693183087697102559274853968388171797826126390328657830432530190868785075808558614690018034810022061810859574287732650621331448756224999950728483383669866830584112216206144208028011029236261558407745786612860444019296527669626317758395989051102339907957981796973756869264143312819725580428448610177255932079843452515445781037964405681715081205460398253496856312016743025277991931089056858877902374495712492483688895402684887615151998147001557550889746104151239436356956349860940260537824863009528541406328288659152519272316247602993543003496108475636747571725617619948377503477456720256502124711953308020002839341775555026173882649436964120860636800892133962551050286825415724106536421835302924771794024117379819091949226588958477836688799427676682753938898228788423310166871622236790317514122405326659303281721216998398692318247483686495051193614559828842907836075171230129987555580507989693509694763548618388426639994012744083204409515414387418556586850466999746867011548330064772890328288887536059583120345399668781003880223521937850077585206200912757670677531802740678611019950792596659122455028725538628930993765088312270001599744117044503763652967160112012802339015328371454798421246868592269107258219510542403882387930601821979209754162206197792249022869109345242126424075912014947909093432405199552166300264868544434475366974702236745749589755524180514657304365328126921759413422514032409998882398587570545182797501720441693417339849081137302662613600220781069135087235727398021105672543827001421395729174900706161868320511532954781484229540704290702097901837685965214568528591022208881076700480584034982270409430038052983944697990682882268335918776275043335130716562240765124054259912663892147111854117259151461177031174183934697323994546012802894364779541769004431510558226717441736508233166399248000975491629363130179532852845137346814591278903320137299379686766030689457723370103695785231112260119443322577009418074785907335392358812169411921667908584147635919808823534470344588018118412290566587975873578042770781113466123281877583600123917582483463740776426154837395604007739329680769329326659969568808737353691467924069208461371826258293676838274617000781587580784701377848112267509153912527287457164124793171911171468724732907688598030046375471746618203226724517403391187713694692856813675207328868805791744570307910811299051392405626405735500217117580313573420817425215615689396626722996809376238912795211181621517673797058410418960391619630738002148414310061661000486509842315548402745766088861949826800484218668987700758699375821920744848120229671627377338830252077292194009207383713834902220452591025166553915812145509280565732958003783142978599734510764870706587035317393218992215497547121610397069183935933744913852256157164144699129200816562333382211131234711993478302484731754134714831337442387078978789991271449785529275654953613590979496041579373770118740727091402356897868725054498322876213593230411809059374502557494046715011506138706199359222004653766403591168224800245876319845976398778888196398395264107686188204034110099294337506302821808204428123475110964985186624117697107661707313425875950346633938231989435002980426218411329339600129732984637637726305907514672238825441075296026449422475261630167948485941610729576171323809780173091900161320037102403325748718728891573756788622088994428885146655332921513470077686708314347336416411089496019145110805313446916214437706353778068781734697101243103430185314599171858087871479183426745481526104521543109285229020509955158483210952377114073837505081702842666910798228182610618525939548523525021529095217283512676865543796710500511488009964861637028063788858391099741775077354671980436678779256144151226218106168685546159667032554742186047585651249637568042781073166394775182221667372363378744567988617248960024490440614503935021893735840958704665684181158593694064558331222214395316869158355971534901209889437933220656780533281433516232371383929615192197355277906730696282315772047021587590561631540694413667284154795745507730289348699031418261377584190888122238278340626223464382476958326367059082466541503779881317414588044072675730927967888599032527460850134660661487877309880775641350405492137163699683665850809863042720073357047150170016795806301459238023962057407086072898049864987346719744656712972788675188460308571845547505438387405720921356775984402339699884233918564751665061957785382714555847914127184377556977367289792997406833618793611417219709229534848217120165361684213037315018694204537868790724890699480545954673096066691824143675050860638333001414887953468758620443439575357301291595406201359133991228164027676517498671456032159748057727018729091938666135446650780015962669387186700295814304929100990365404775824291767233486985964488712190164176594254398457502047388016531175306095151938234787719545438973258034405980014567743909036281280072447988953533721178599543326837626874909869400851967615630171205933498486643137877717998306825218713241583949264537068055615909222876592083621229275141396934980997532811562414642964148506709263087514093996349691399808818970476460786957477898484313800919345310649026541182218081049758700237281134850399365764062442356010050508545510568364387607753181418989693082554177985337217211046356323544280089207006876930413986231928339732401030282107312018773206340890955742269841952053506640331930366486342168628265219328416092067977993297428160251630685215652898321355458477435832215975447695608936009253914033650537378842597213739490698001873057502412240641090763601296541750448921859704709325442527712089474965569212999100314561642819135863044651202065674444025531502943055236065746874949144803943360477133632733317867229353714672895157947467238126565059828526285861163437067427145811732325979181141212642719433112379947800820655949040801754959634814355984325260758747480104185874270085734117203498988863524762129946670756190445907392437257876304706691312594560913436466037985262793307890624698851060710865403727029552410313893008492641677563050437288053767808134096883603612117939668729905021883490866465943571733523344217262251891337654784464403352225310253471650988619858022978673566963403012878570637744498452316246927156983483057124951704034685215681972802301372290983383631133780920624044123853995878763242024353376994574387803005807608022015159256558638793246747717343398468306354353262204442883486017561787193566974428550822611775969676593237469261906694221358472664136453870163945799250520388029914171850668244793544233377371326745713306266617723416378672531529424356593157582393503142984335683387370381734641523108351494521988972357690055296049057742381195205196096651245003554252947975733618696244301264203715202139021582064153191417370696007650267585581712193482052132051232224371766143305784655109746433812972871707972932294533685842551394289084429216291119131017439847840258081455572811190921288602457759483861880154052807371794910864914737990512300550060101360949561559918037914209298098096762457008562831818412425850443080193024780947327901828209748414718030130580130409394186501065144803331814461550436633012250558705646010811498612988201221940456165441924959724377402927381827324374407765280779654703648641757101608365851704748334535163096966912027050603589939771563834401756780567925228299185010883930715621244330955361290170481145208759329333016292017608954367705574614808816241080644552477942275012329608323208250198524724765086363684424102426756044487529505273181305917875329542412771442460493607873419548059383069925905154055031580300088426090255574842064735729405751135220402004869295833098119625035357561272363907414188430652165554805455045071037506239397210275084129066453460576623678579608367578132934504862736468678627582635453776234637296684676883051487465153054661226025185462414532602242782244105932613953703952486997921025531155979881025426482192438579363427452752459390486637915859574686391590345936138288785359561747277386768683033804336497766129252572431773552255662844677161997641775092746256392346730986842872758682321213776578465750796607206198395978744953832385931012492925918624614267446915590758304423391695763119060034090068836247603637474838037783190628780636754632627483637827581411960850224284568597361937579207850532391000861484690586255222151723178526025803258452108606821607491529877411269600868713972465260622352242941443885087306684143587226783072072942483391191143912127163649276016404769529710739052880617863378194918038247846309387502058807756400678958120130860824375786598617343844339292887166095762858708960902492663682009283735951121220477311408772151882390534856521647544378075855581348718863055864446267523291218193087608705261130683294094467922724321672959637338387469367818389101438561802574197405365512052787474223421489358506395150472051626688326050292503765483979845773389121483569097503527830053592235047688625500824401695605881110074871565653296701864124042509137362683291309297831429210979701694241069165131283709145275370494084128036055606597559800185749170738507428447439372041458853938634891774273974178624106635623095438336689669059920248496844635150072626276211585446580516506093461243875232023694298793738981969049621867108601346765763338664768902446843311092859409194098344139173203699599325808821455731251440588781446775231326360962210882447316993317997109942543447185068291619014042835128876996460827087976760314633662447987666772036078144171871305105639147856532306599320511830785705331784473851748655532227415661930108284941480643582678484483841019332755538916570258701998952620462038242190849432822169820972407035660682126246768611557923170169764467998067975214770599053992593012697954623774671547737746948393722204451631372593334183264362361262220456313372251064315992576823102541786369503975611259259861945762661119827013323007481114619315055930059067071312122301341437643749676935264686310239996109053052590206082644852947238499164162578535725008475102236928058342759241214398461589316992167233064596608033352247894332259279658165234193268848015271900800773981514859760519508144581457633571969414893206356464586780218825902656631262976124755252760673246558118162750245633648000878569048101045110536633095248177390947803929659107758440708440990012689216203873290945199527474563694848039812337652190505731716603154031097499336821863669397933514954233505916009186787464232006747198174198801468381473021177435831726916103254384547940220308820963015324314246192633620431907490958947845027748423175067842022899315089963018109554012045863632312943642770950135283686018682974626190253034074957595979964524052868274478579194288985247731886709346783058549436313730804947264519052597546362203696623565547667748224531049004083543455916526888804579750777029444089516462758182171726896195634765622042350484787722137752690718297301505272895907846938734066732011687420072280492410168197012563082947679486607786467361746920775301983787622532113196298370523717419087569853344448360215701887277678683951305519380614122880744175671588439330375764149273132464398959557182290017076844453089392813894436838355640596422676926995693754200773987399931634682585915669518174094783291042925899622652053443267239504116503736127212735057522366907422564896867820210405401684267339218004252100017697026941647177861607839504929939162300003384493057774092830103917751522899245679661066341805964390673393410346722189877345205241453624002331154861655938169003074702211766413307161716948752326629214602214960611408286710971918401806923109067905959171267575777648545766461506137777726175691701671340501377218771511501516690108843830301812993630875477630602777370646002835948763914409971970259104066950014805955333670016483510414960478852004552066993286107109118488804912525698025999996091970461110887489551829741304256931849311685427867152491415523869155309859797303650220942405959224470179418319296202545864000456813396789557497269771666359911910306716373277658545423109805181995302835813268959431924337878682545311796395804603892168767952015214795868810728023258377896566842917961303316980674304199194736867966897637591643505555310049172130694525131757362510880359471454168408596181918631247239721489588982311459331109173992685160411400116821791766923084861122541693401632295870032162805222424500755933163915660882100948271105893795303925185187967884209077178906079084776263368422920908383182600835679816638557329578529554863443654130865683964172691906854511948121667725936052231852280586614794584950452489775443654880213033681850038220550373511387630056177156717344116451089838290830050518279598316963968830207425578861589700765108313021030444331407692959326468676807572973992612331596879863362963006877649646009654723039354808603081357977189947660849884976464951314961316798227927046033219107933591550129862671902863444327876422617873485099355670840471555374265666463568271788384960887003010523816962403794001491955744479846317336366457349889346244703548506663573273109996236672703506003433829672043393436035076924136101689757546683981445984354357422523994083504413403437533336365036624878567222438809728837423770197520643612530924774061806328546996494217628150840723717783821639495497626206168540057727886041885929351407961958773283098602953314318339049067142966312507551596950445220624580911566509448418508924492241393928613233282918257222516940704909609341980901884016231503650406966308783386962890787150356591954774161764850714789384163825656377988030226100179323213745047803409058232534812244188577680395663325543164895621992839564800322355010788902937268653489260240050540252906351944560287458725050195422921872638072939443308151190718207970930846091759596421092333145083864155110665988051410193206042032692139975061936707056073440966820455034318349587902688171231444481052337006520971037769122745094030722964118072432545646532803380426588695346586067159282741745032369935189442717526914865422736275746026153798688443177804884489117090178731375969568040548235571382954775147087260037870648443754273434646340078005755889166491584407990573541414606808727763784621926378310554950009035261919031096516838511560941396394039433853639695175571315107873186400315889738224011412674670828943413178208995191006990111101814383948166291280661573600025265545873364932872329810644237212005279742664435434432795680805710382281156225340505688550375422115436944862889464960123061171575909624459903383731771825664234095475518958235565454371136566224174322841468818505063035323363227133660183032899543819957933958413073968146728432082064667812286765141534436319713849494979365919486376597383417604516078147660371701350950555367372507270215338627645377830642041703703459326924993380703255041734158323203549548756110057545735767942937735268590942294141928537214346106496941321424322058164225693174313995264888592381555062876612201310080711146161938808549824924196759746363747368529983646283681812336091326170687895697466687135810081232469933875110087747460536323354640531779058764479803838283849291036996810825188638201530807127610503434170521824481459462147731972386161396616068775381524870735249336193174867418412793608057238531751132472777398684204047523769173563840663664095412929649929735063377252801966371723205760987130969668985051588749929381846265149046228370712737068937693206591820623405963320390687113603941798587044647564610060026268704235482494705827234199586646322765929813862033365275519542797774181606674907308903471406826839594565961063407681265922058290399396237143835177624548500566389559457898818012304158022239816737100912306820770405947007171103081037491186384381453950010351649957545017394069985247892555152972919014434089489479950119922645633596335462688378302628127779987622830545294569627614741757112573253092288818046048572092996613942798635204219996347407938067118686780142493102506575854855840019501441884073745121942510302560153437306901816928419705205994752949361523786064665639496339607402122214967788685947609437168551864060224673735702383754822366602791056756926166276663154177219516631244039049877683307702114638505471593724592278732057168520507826290903241630564747750038793044792423178359236882693022583633022249006102015009225658007602614949159996047754185997265794783342156069823868916809329684118564032903333145609243276303228195985689284240693924671573452541976337694596967326867827795851272032563197589211954607023438322359085246471916206586526290385523983156502600441838184809958187958750569039893939783731239294039125382287887159111036401077672853394554001029348916170226502838481969460857417614695136955046168557158396500148612685512700440250479036974892844020856101393027984871424562469635821525757971999945470697918316921323428972127818167954966134815980509330438248132400587878463776771069968605424825804426105456852047703738057386395153975907093740728660592349510612740644808370787005365791013037097395455041412756261867583025853057612539300913011879320014544150736807304050257746124014124588318916956848803535932464432946880691875676295763956023462252787609735053801481130456518056463225014251985891235902913207356403973529823355069352556692226935793899386581184940758681063726457520842129870672501401863890530840200693259847829843273842664030985612767291411771240373672128069820165437453606720913037228947458098578224215441829229964234500865807899482863330895856944583565009175245215258443871159939318210425586916232515505694087638100056633002206641724524414558220475543706798068036932194625014729823218745101933630533112310078781062487345038107481909078641110069185692556466440205512324847408911549197684786185811069736231290135160994582104980404889881347867680159765844984065493754650789503362786590964042642762969600182007256510213486449395121551310657798295872402991376192467780743327128283164780580539829779464590662753109710340425516762548734871757639199718757585440408772570901780972642945697306793834299486043482437445017312967252389458703149329104799220167127207233026651309078076261649791644510601154586386970220100872684758583541195138077324970463232674005636589991716644725800150781598676352973095159908061117705568971624352323996102739356328374142415387010491568331139562427728774936708579924542327288979265697402052192202293298829850785170602350617175411505771039470407497268911699170240076079448484950820389642505028899879011764783402530776133223293690333607668789157015184556955086141532925662961561452658699595362978107625456469819120251531991575026577169493501797658403468523841913487335565927891649839680379442981325608551780903712315996734415486862467106570285549602839294464525913427118008746129418321658550981655050206655266354511404172233037009804478724941599999391090317253138840439043125641746277110023678989253176472663198495503287305843897806242277907517135827536451765862883887249489843309258161166632816812360928076565660596431467398404516060013240584968178850972886229864258026965875498363916878029958977936721342304905928590711266079934080081853508199147292554767103439026654044445008761389944498702126926184343206786424865714706695219941548766691547369430427347029487537136359945152506915010513918349402994017571150469145555918362916554385118138951122000290992167394403242395694886757652613816227730022668324038683948879254140047321853645544019629202324881463507798961844142008843208041808866996322096440075258717192702666215775027596419088010694877354619214835950324957083499059769868611881700133807056249717727004971769841055494075085564199739442957341094340792503315621263768111685696473327432395601578736946547072408560545800599027169400267876113063659996714838127266484878143381038691680765894900813393704774872845345410980051908818003427154901318035396264643580806470917029435389640799448611777942074486233078973924006372254708428993090930254627563509474027886730262029196793912601781116541318078810168828007196829944006636071534245024811794344069240808313553423515266116371292086462829533822018101806815254314836526365540495720825181603730032758564269336826354021258481032356947554070400388633444519955359766380978604362318070553199373231128473807929149326064148936671756197425173131997336901376953580700238673786058783761647460847902063263887117430839152591754046330422166732472673546661650319143179789391763929085494628184981683040090741153344930687357696865870917905583444734925060676239306884580152083448486568422402596926783914716583143729752262306739484774781964345871627270900793937572577880416495506108528251755893443682681286529076906832673484427249252412662928529425492574848787841067791109165146725852790089371728423946118553515810335767600400103752130815206410312850946462171648900302292809957770264378148997633136487050064007836659899069629798801380761649427082347741453089586435932931612106044539503743565928525508907168825757972663536255475556005557994733785322339567702362279560758083815920348906566815117883123264331074497643065119934721762515888753222012529515066309770139540549831668042517426052840928850134631927151770025211064347850767357333893550410558998661697045398446250343544523156076137293923859153201882788268690116337390072987014541050122915429755612099274089719659445766935060333599770763360280748374289906401497096509425476347649997148034243723287219567190360697268148576409204205488631111183179964693173204032700452808804499833540865501797671189171722192267483539985742852541829635801239645253930493325334330924624115833070717394728674543465717053482127960487322374395852502714610858785296268566094250855984033279764328863801475333390884609707693491525383198206908926225335804704253166295381377260013854081254537410922384556706190171459957290315833350294291595515136096669203925239546119289492206245483017289051630026708225376081618586517004538476950046643662203880143051962750051916701341137079712272245712146281081965255754178332103612155434345125337705598345941075646872070609212440461243379248947558323309422127274256290008707851216995020698455584333340615549956592248324178126006874659797548003896032641762403258955598688638304165805210323815482470227109054716282848613894090994416717183388483875626890816003371928889759361210938334534845761464603563044629647701190479226830137439229223589222310368811015573640556075479267788161998030062399778954491454936278123586525851250612823331230090811614022558900534279272746917245197547670287560111564430506533530239020241501451866630844863723941739941215319217959521239158752830007331492677815369637356026032549884284789888891708257337650433791167648820555565826067628874416550133433872952107273146334253635414868385009644104696101265610598647334025385409602265855887231361267794789885087605448536463833339922631127078155712372024364666862882019145983467553090125848933457074189096586876378533661681408342194663974918091882466700106905460573325662986766639880713092168666912839045488009875390233741262887490736048226789023379337939952206389914020517812211285338521849924466458556014549506980434195735572039963235447729761647511433405120586836868823444695068415877717443630015176053531021308373961933372793059994554154301135748983253880961306966346682988433038140241768946499254883377265922137923748495003411275004771289337905554792903894661916230925104512898736914004567982467388559812112538342715223484118138373001469700769230156886165890010718925364500233808428640544345325833026574388022910313562257665690871745789141211422598167908464623764212153191313280087736676785318466947574243256325867049985694603192569000300816575950549406343226955973512294497384784308668721093940996865504477132519872487268089718363080656942039785846605249272907899162880779640739268671105737053369841202287526556238597782534410633121232729350003262841902572953014229086031779236910780386627548233118234735243144652457044327254841905887616739290754852560602886809231751275937788883150288271750016018962100835231955517749794162948719881382177530483621930077148334576585024593272113387656684417242011080033285371617474880538676174933543444547435082259773721734390003174327532850756236134595079075832704849114594117561218070996994348841877071813770791037594143834205078944685991738277135250303360242720688533569530263720413535544957935232502291538661655137194661537144278183628465826606706527102126987049472998461318946808721393190188786373960979169186871896355394068421877653418546667608778228280531056442361496761817720983269136032248273759837047785696361791326369108350270160685671984188539213935576481360841881749910229700697168949990005987722970723127673887794629387788361912868262490379019425321533071090796121483355760883055574142329432613155167014548372411838877702764905917613139860802067426057614762720456918849642989628110976494162010686940479454011692874545515101525346327159340825898838791972207330925942454880961233953354604751315445795814213384820330498474354620465099145633770719247509558184896158139140180914942636436389904530312154279540537959994459304235961843881415782821679386355929561097527607267939500181352826082688859138876494100009972752421465485842682227208193920969109808301043309137513790461225928753338574475797575499414499557441818627122323342691139727204252182696405609832478943313176337567206103093537551350705596714096978663159034794591051586180502326524668863574515731035245980902784056472227637284835740700161621519619348384567811317124909159260966355173524985697557502037102158088273072532680248236506013270541871593280240450528529700680276503078520701246507108451047609894264660956199614043044488847812615481827173656658990542676356846031083684031251427776188086645205417595829170803961816086704826614326861977348612152705813104852656102006202241126239504909890415903008913758163131155619466165808312255129453745296791509267544168519635536565162317830163377305561121465083391273887280869743216729091048164659182950904088739459884848627198525816546697814813613921116367663033855000495733406030764505366106237111912161659028077868862979606114707567487710145358810688711392749830755571390717053495373407355513342980017471753333851934155879740420482701521339250658827875453580884250173229330509612356071406943744553145475703485658660467892204767530526094556693416201667138040007737539703999885202295410339286359137869298985312083957776568214297639306448275267953375264730386938233498359931574123914983929609749429726465086063248912322386165677187031109068502039771727323967752741164858537102673928655816330410315363332552233582227913779906785231777022231000824485492066769938113299126584406125768506864046128383303706153320085323645291036764516599279420496138764634187464883839169206249727803246888130568334240184108571715590537988098619459834435283790851438566049009383335551299856285504359948430737132876649488187554804646101814650642367341442660463083277306470375793159542197593132767054881354975460626817879749220341435343609042624711888583080239477909797144049311955865954088083944212718481122339773944073017312742824448456286514907247339033326588755403139946580056534489232626541492424028482183926402915943234424943016942708890336458984568966334625021765016431046659998310635019650357125050114070081925557606226018282007727722901714554770931265976462395224013350391164651329500888922512629801402911329412474693588257531594348906724747022317319837957673497514856052942002272738730045003483843845059503310794966507596339834006220817332228580761353573199616049069444277040430155552863227340229122950139722919378945616411942316902070208671989709421245719589969429467285135667075405658144943496746378677908683754743550603872050128707293430736834375068135905235807618609876013208044303441922153499270519153063210463033107923123584456321627011895388627321367317487299540981100225328152957467287240258347243091154102104157151379291132378568223059580539585319206085592496473793917610252422448801635806315440726102629290710246137217199691272581975390940120560066812369567240043605812482262448487505499483024675585130059213800418887830708595075332787446434333395754860130979897784992012227283181649977144956696239602417416744736978789012166841055823000047503198354567483816196398344435501603907803338572236662951854796631776671866684030633792014153156895705324077151785929896400145087214808984019211784978519142113261307115705143199126760922241747862672420484816815492798755418322379590295166932997282927385415194586213345388149775393825300989480996741240138247247279237280565429711603385903847271628575805406750353443922276186806225053474116385920415269601242822890479204091284831611061642874754711046687578855270047041967916773428003643883123093802118483702526084779205558148683241576128715862176728637082460762174411905435694194017458966079523933627051752651159038393214246115289351311191811481529675168328549782489790741686142650503558462455597596850914308237272817918801891310041552866274896970553647724308782284362708517479274012658219388058507117983677103234259811750730440434307357100575808359384514874360300841748048085504765880730464194672104857012777903233045927891961446088625672111330738251312236333841807123442373206336565112221093741238258744826160074192237835021682464310283242808735568151333283028757398718559435966693058048217991814959443543673597209298942085336488432926132565390842162339683326395627871434853359403134527739426106585279650153994459660131114145369309316828758417195218852475259034257973149214018577771274684888643801492488456028571602296841863804464299700119155837256401783606089358792485703938481432222335542439695986404654776650662862600858294078784583500376213408297124407403897926084423034578086537202183652254562445180101298966381466257331134626330254084781467287649456046938753992885054144051400111752984865911206467124002212422239543529114542754133233757453085681330952093045500269047162349101883419222095623419249113248600388031398087146366874374494410275965081993463854713369060612660981279838373962126810259044379391542995869175009648114654554287552083186964892089225188234988595997671867675501800360327260650037132122015969031639143441197483761779399063165108929059475411914005046356693399455006205275063226760634262392223404132546999161015968174743881398181358230995783406091255810890942653126154218433534049004530931525767279708123272915353484816031937218660705010912766863856963240422353143566454666270792883379769199156424936660989157513186597423491032547026292447863791922192036101811717118047625201720379791499033431365504773856904571867409422751637846702992081271572521491220972349316544662335914353399355277863245592403378329922181486048654635826440928480541895811921696175511551679488322113514025548977984145916237126869729376114535186004149165742271147839854890159509954304232404086089542258273565071094456229328563261540807591405201956825520377535816309946995928921523457525005313562240640307410922703529663824016532371042314278482972391774746247170599293281660010071711400423450270773567166807592688269903422108561087035008918243117984632375943547005512714926725848404455623420290077925494266605151307450310649475138760973071114306643760784437801565928770283891920353774446381872409215673052403771740330211701270667221578253974525112895232036224610436584322554585722561027482333995265161495875603472125727905154893622975748753005473907120507544187681538430516066033822427675304780861624005467768172648544446219309461321155669876234255591141386301813750231987690110427595653201421371837913641749351973704853437415037716618107575307734812187921896271801785075192819995821631512414108929975234463682724759011095748909723943046705767563481366505336242930457690313454893147542630640132350120525284319503206924539352916946818483629228013583186215664135279140050995464182172848850791978626359999979905735995434261744986299778560007766067986363438029660133326900645089628051839835694046380963928723173785104949329457415387283020654326306826782771075635322759063817694030582071892383438181639136438324374953044668930427358798665980464003985402725260104264409902688246020363114945058456813897131634061625889557658346058763542879718950276218942911948704538963525578559896680203324180652220276142231123157861090522867287856138495351543534314079819948527710260970315960688908274751558947897761255477691149027902716611910753864444995524813802684579655589280695352987381574969052503527405535287996569480078533565580907929128419185351861678501367060813851845670033632994178237440161277053663698657489033700949218429481999609329089683983719933167354613847517943682308622359497784109258696126873975094023900906897721346344659143731615065866171317332435606747522378865240068043967158361236296718794612095827391257318806633109913589461892881582940796727344900140764752779667814890778026169064671537260590384538274453639623345612237219475483348482860426185893259558549581364311053946295376092438615235637144829446595965887931541329178071517888904461775615716630479443811322185317021167309808491634195461751159755167438636411494111826911339253581149090443616291949158437297069775301205586861645163685051111815148409341682099075908899468632195372377207656507371827739227098724859197852656639225883952451661355167014635396832646153461844140615845422912704991556436216309102795888761287423272357825355105009081159213667553346723985760441370611190199943741284163015562515002065186204901084233244900468140010733578933691599756341231638582443423879337152175113060160194014310259013123701899823823229797904380974864215063867469569106702094590115254081468433989639461566337101705335618925297220185209887704956240921491607840579318436904697294898293378066923305456975928833435452691152094161578281937582953940086991308408767198076400133266678674104334968205681322817216108090837888302496394197908374945157988460049614703934651296570797401625502775867021502168100509525276974811481644610794281409867503489384978692451759961531961695187584064233147976482280650913714030452838808982238932829833766051253155992739831152193631400801701656048407246046129511973952519837087101612746924570204177999370674315584775369664880449175090906187438636342246749423049513315344857040486457582652787015758778287178415737966462701745844858228886815464158175282690269085194456312590201276107863464366359230960418015101827392929313495547615186170483044124700589430613076900693324101663096819810470481628477152891955649980353416201344289364820109371363960753312805435818619776459489244216793740391103856043462451923358949546882782036416329614248621540546915018096646235369667620484084926535702264400634148939525064161813925221958266179337760741527782815987680280985365325887757315632128597329132627594978586826524590391569842978373450403977598380830662533195267903268322453513750725086927592590388332991704749588859943887421344722987437261263882902464875365825342979012066768024412209247272978659428515248723195356562231864144571199942202904720239847815369854150602838710782139867295229493999783752397985828207564035602248517646987585282222229407536684889514201819656544148711337506595251079476583412172797666902082566248388079765314659041200232916177242619173065142312691376937141433563931934393361682489338655252950932209120736100630172626486952474529813433748839020450408362457577457154982587468080017707337344833414803238122466350995589965454044526053126352305777459115248906755322313940310858981278476124910665934444637221013313045214424453429373647786904444899730617938434506532852477839397912779084402572645466901920458539937428921764777628572748063173558144168661462369356430576069107696705217018794462654485489902804613293154049117816106530545576572163640298828693545609041219527285809088186141980049537547356993692704520515141985501782475290501400150865570874092590633709297955857634113423240590516087290284782035947341784514667013345076112631511910060246745880901581297828298814743629218563278660913839966909960846059414723135804710623803229234061595514546486475844064379267788134641627221705224494784591157591523626770293731817717508350499979958938496489193055622840766813091276254210239326162543752452813111980163989486332550474131265682586440298411491141463177697211041625336182079018001962333992649472160915072760207335115863375110857563089209182842431738628796989771826744276797480774853054953957312697538978033184936495068694120921973750830485623869635193367977083972302634685049563882067229990710899138319433543862459518061120498888572664505969154186364172487351444204789584732990016594207866712057914821449049293785650985371479775019078877420295169489348900854826007629498773424494872555152271780429720644541616645949510165688549950435669995513227287733325273373195736251118496416900853198719234108798730015264268576188988459567188235117229337089286819049549313120149489684535170446810602464067993769180560099595235131605727049825128873900761801268451172246920534473605780039544507262573676321652079086647635038457780579179583505627875424686998711638346918543425949997448608942995928576516794981564833456499646079185802093779739492902934630988372452524415554711915411047301570827825220200072828436279268514777345601133110169519420261542061135627249073464630956523908225481574171230448938187797972940558964082337668167505843333726779755279291955986717740428830600026392049965224042455682075265863813185034638102895108325607127064989198461379547369093391349765177453307084443035386901883097785047129034382395238225010688932782523536359283235756312705941047001740427269077363146562358699035875610419299845835186934723357954076441173557500156683694641063199530373980494280840112646628181453751123046773624877930920274105103087853597463453135566858256977481719416967413139687111880281367528123502045032529619631707247776235064651437001567555228394599243924479168636366716329033778725026312095340054948356056474076077194369866191521400881679836824644762435517344074581827583651682653659213980252165324031717344678152252419156566126226053346830010399918882692387380735124244963287828513553376162218904653460787677213799683133726724882577049353468803943214820815262195477370927232724942390737273397099040363797133446636541285214867236709569140167582851193297747720910043701497813506186361758884320737958971530019279668449369673868823329689689356945112473549064161788784022951900332328521489639096341869489683162922210599219739351745533173278646622169012194639787375145580509807396261174664909766260648601596080205060141420221133859397635384548901875252350795827474242929523323041770330384768384295395143576044901497788092120213117895878011935359108849630120991097061167425482955100761450616753492277126732011178141706721407339944131626135483145590505138704940522841940470289461541003495747120280046972711754267450935748155494352281020314086526091889855602377257217855854237760058891674249555353099907155378431738522081628826951051085774405463940079921357334210802629292866382318770308700125890978553373585573587986658043210126708241459378314604482370159943782592608750447720180838091322215513669102701951983790435768066778519445254022119361207388050786605008819245950303421813101043361706724513957001087683848051285773877106312506663402373427374776222347949568346149367043491650163222154100532869130217909711198300563888195441982268438538442208945913793795728060126325123615490153348873070051013679767369394726865376379360990677425970641939177754465548699013318966078705992312830126601685810365636093617701888519400679681764659697415595441365958464329136369854982282010559084629417699174034409224828889120342684443441832228444867902894782621628510004153552634397033370246188705747407708762637580030825723466272614873337489604302316523379072143123486001278705016327946346408694601729144821149758968786749345580795040601422829246539867700210519257000553419391439294069700564590990913644335000006063590021129804072405991963042961914932792975466960125196375668990459141833409931467715062343425027345556661250236295642325669225495348201071035965653444820837029810014896210793299468653446770341685901599555686635213554423971101270524510835816147141600966775767614205576926027285186358559660599573151010035841743692558290776919908534964734437514541729528783716138996402231181356990452229575687435966817602843651549469639687185232749375094452391389364309705721832040816237760748301810227964387176881722981653785230155406881985639078948292093519175350023880542554666679009080642135178542452175363085385456033314250925342082665594093852587743849621580224102132574512074281823771202433860799959994571420115654369008365317573732599323526479928226509656744461546889087071984623275746660081720064316028816124662309754877106949206241242945040208405013801228636332085942622982782850475913916269406175558975720714784339939810580258701033847503410791259131375709187085347317468935103290654889111898226533572234121074792164988587227796599492086727834410917840270080185943548098928734723398600617297171779878515719033818032610788888335755251491868673144104692924374593947232610659152626520340013896703934200001712085315432266143523992670320977067312151290492848199110878685783417257945128830854388572998502829705197410720117906279679286055300378990594054049020615819041206510373488519699388573052864611002379839395939392799120538440414753337128477423064638845434741731880968387155548587262650346081082184732224019785748755391085156815577211174288170276003073871080926079799606209667963839217220854847860967026971260621661897374670061283016297418430510592730970617945224769203485815365629496888356125670019605750469770550874468244293571378404412329560920452463122409107290603780317671659661164667384683824064240166368763548837912576361692047826395002173066030646025059832237821826831971485510882457573493355876831384011277179859986255244343298902594787485561954443335577595364731447811170640047167203591498090222811789158563789121551136812661733964403052842525149339721114151520736713796360125133883921401288847495059814453594903392742043568673194178552190530209995192410982509168290287816871219335530266099594032053436875089106629942632646044778633242466400337404491321651245854676783130501876072045557010689395534739738479162040537310546444339304753693423441794800037396116196516588707316757146135073790214127829500881468832117002753806691857418490178256303008652189632416376464961311107932997286119489181471013076708172672530348215386993660928137183665702199807046266288397567519959855376857126102783180823025383835628305179313972948380961303723189944352771108131988556484740700697513989185548935981817391182868062489763271806784804772693754497361632738312322713542200051676185193767484886892367564225823731081429982024665813071009377411099237195445912808530290369041981053249714469358535030432974691773740818672773343338141744717545676447236458534203490606534081750833672657558848025801097984464500307028628777640349821945634660448571519219917557209087167068803005394896647745109748799333797155596032775359312795329522393057966552823583615780825816556082131886268817025652380278322508925127727977173507525101392025357797709743699159638053830378264127068665423171596897863587194840499078692243046190825661076008375310177202904111855123571883889193707788619478663532663061166372344926508971857061066246952039828477527664785980685144397990950076377460072445537914569623614474434678673939226164957882592107402546202414869804464567349974054008484458631059914471485947740430226812664079070237193457836888187032260126396372087209831975866054347850002705247944106174412928573562776139247263744913574233024042285903702636438441094457276552527404278711265705082270476472367127235290659065884269550954373510494816712863324932025628775506599585687895101255400585762326947075659762657022645424295846010869451185755252727464099526925322352421289442399893258050939340384275039968144456906463807085817445536716641459841259230263296058136051759554463525477103370373877401157323939850275380214968976181498737030150476726507361795093917699336741677307887411951723941836166498780879154313613802035535598472903749670348357981380213965723485995052702113488620191047907133683009111234774521365293975620304404155714899124154508476201497601696775608474159969363030868722339393476545765759854277857156697375505790371281397814465568760061256967580005002065798465833946710653089028889015946050743585668531536023561050594136167639608426396967947546909357572487085331673989006534961182264092899244883536679820911850848307581215411531563785952820391366773781236859954430913058602596213114771324376405329726022289731058807812250694561621086178492993592001605385679177888038193985696926028310799997996203220624809462216721643563748428952614145592735858129496744340669935537883013169485604061329434740680070432072410276520271241866575355034102288475536134880977232147939486289798824440200158872850112574645081253692473327904903103257103611607726333413656029316345967506730725192771551368539946930504420448514066462823140747184725033690432450324866030221964715510878550042163964322820238207424043654588880225073617651154115027846613778189017093282386441853840662206671914983166161480743219634152120816396674150588992164628111363310154039157172113689476989748785276628401079805282288506998830416242685535462004365452132980360012375055774921266898024256338445032344743117978077875629105128823687577566276597005068804581929970721458474049933700059785727676085867097680062876009195963063409672978514678649304586626096351361034725659147719838169700485582758797342959083755060710551440044162207292118912646256204938236867616051027191086641556924122962642869871557005423275707399252810454263299865714044967276222508706190638675003687500725868123300070017040561991237650648463888149739175418700014361815807381475346238629569667487427880291913400866089368537357646614111804026986071578891790959301511682786068972533278685281525375510489427474586973384720385401808811858532728319975086467212920739908538839984475537354992880806968409314387780591044031983849535063743150814195166126669325374729309341345807548584702528384363137076039742520741906591741550326926698354871903917729739729692395672426598428517561747801746697549682229177792133633143279139732281615431745320505545227346599879770471051703966902374927209291291462248103447704023552048514993910617494515556963313973695910484011819519691581581610123282754430944199080380282234107346117187637368730102542341392191374978549207581603482295926088862004295450840481120687870394450231729388742587102019362669875906973638923170120466843253473638778237924445277184761193577790186104334377950489645630294119908057799094444246042776059702618548840100193551098015790384590524344287641675090506342736733222841283145793496862285560159989801237101142789732061393150809574901266435037798938982709684984409030883400087407281204614147495766418097452440869765539626405317898628864558091005686783528848867811768476737533772774361101708965088422000258927424082382349935249080559432065122226840788147891354961706502241580536377833611807099986412918226207408299975824533891286266290554452208123877161704854472428464540505995320587112115092791584020553195602774283405550254666345585122290994444838510588967190703864018574784849947885193478130452109399188766242940845437005840453747406701425667172213090390357015824149787059393175408154302520605754378871576992295167601419589136957552833993845020728657884636144473485616690712909020961285540139873434397348491296016438362854355433526627917483243193654188314241386023230668675419408213687716553354924575904228906163761468522975155012654269515803320537375730118686245421287277735237629168911910443512571486573258476894531296120864244284988723770791567445841381379407961922671238847837976183097951721758229509377305056306266296663506765126980104406635918344771597448099888904275691766443312735321442971028378890013271358015641018990074487785767257048885396529526563105072764769197304517706995275528318238946930550792018915473356847740306062876469197777180763810541177303221916831258840704070450304277879773851851319455377367137986993623804973690411490244495213187616265934346407916320410723680155652516597797684694224520487657853204058432653826691450941228930913209578928534104432900775126536656223909731076102633453527691473473154417759484434415337528968254369069769129677565109597024355469120135368851841948144622454700053800317067258307457186267972610320436369047918647695342432292673326128207231916283105240897310676753952338593785808672433515200175369412105770257339945456428074318543463823634261446223134830007820251970157776392666913212947837484581014440594532667443814228810573579404248424173082872361457762096317843562064386661409452989275553387392870894138291876456438587867566428200288749825863966050151195556810754289528563079200852274781679923143013348361163465818260590374043864666431372801710466664732504733520945477756871741805823338820143544779574083628631867798100732020628110707903139375525064061384852805250883727274899848265914561682826556913746569766643609185383026689646312453470280905576966391289089209242867070222881222674536857150261904482324529702215239883666848695315713973571375948010138412930205976779512364222387783760413570715242490912213981182928381169855435230466588200081786048677322220274939817266501758997493777269688438721771764460070632374748262465696377058694036954944226663566593754345003676642613699258105732232053605840431088263320511476256313321767381248551990068282487021055484702991289775051595798168928343952546271394669453264144655057587444781151615074213676503550688627591622001174346009606957252810231028717994346571064946774646207726572134304923543908519367819356764907351215970265230416822712291792292920046013323550529059061267044938910632109971184543121350997176536473859435301720205233701122547154615898725952419066375249537781432908152898978472056181752740035106287926369104263050039672461661581518193576862827280336334550633567927049916797208669890431952797496958765228730581919143088492792510871554473670924569750785445740123301978121228407985933686770646488615747587394515602623590274795265867452739300993098272139850786510502903098901340001426114278761597730286929024918779156081263235126287629828910795063677911879555488208665088085892224573550987586710285019395659626069610762014488623461019589798518410531252642213614167864242504990325452107379208241629371634810222284565132883606553555569625326940294489298503954385157375163022483737576860594519026224471740573817029224053253197167392178548120068398593533523328426223186825027277067885098580809723642880275472538454228357317154894031785616169734311546701553618373785613346630883572757997817695110506038469704774123137184856582478075855779986343037643667182744076285005638659565409210312307145830418660914431064451064700880311801647489707231823785797203951497954582668256381243519212873952739801764313451681601353620155856287636668631111958391596045303453124789238501515589402993036630589366694337465164900740836582321495554063474471189358576271278364626702043115021501763961987227183191739098208421096023450146255401751299004900109764125184225263201356816977601492662672027717127505644177910640251309299496659837279782832145509045225131438098078835348022453604227542383518180578483011908020596753295568107029844034509377741210207307621154183336936901007023377393631701906698550526567457462769843838768972562739554280515901049369011776110572678874935667917985117134052837766100422831817160307260301639515097298461697171576087240900069098269663426357636196352808471205746599988783016905002471504614927278509019461681841791552491028863359603938632668278519873577719893350128997694052910347708941750995426602107215382180251913889055801927731586500518569230671872672902069973195046250807736249455355618528629543958900469351750545554606498516652952701838125780945961229943836073165167587595628077766496679256561149905845404997421778146889509940907144012342419361154650167490213923877768033363446666763432339622664076740503614342112460697715146838400965994205536858116770846943730555367393143855987517777684608011166589836126016581333632718995451088352800156506241705836670152463731641970612643475434861991584671817120854485852691147021135442419092266279079937085214278433444816739903969194822169621146522811952831349293827988027275493808532917472750988028306298797130426242173493553407293179724046522347332933740589988532605762890109890503101926509778264665931058524122451086556818465624565578458566244079322165528872043989798398426524062590259489593817774773873670387934075220169618305312786791699777249574434016217396574798338973668923576076017445204475422682870816751018925342883632475520290866391021497158544270749533535370515933644414336408177241863792189047618467832187989669623337186726547708392545681139288782855761751535325562566518587919880482442224047591387126077361266473545123850221890593849320943352209647843145274143135246180492158969517580465514038750979351463774108801341326637950036307144619167698834639331152910615082074067569677655897420017016911143870870709583468438049035228361478241984462502225590941183661810504947759606494091140129247919216837270774852966561844226770328825422307553645593548453330656757542124828901603808099379810438820457617074138108977876401921403523421523776605987712587170417988394144278174561599445751984088267569465997092751893651747730701794932256895777588503565951903275644399328593446785649541997767390080550852172559944904546915263085054345645004248166425695974511629908740590918498214151508179744090270738587156332126911070543892042777605735129527735091183022577434255472400274596866306561581615766039601530111493312027592926013350495106242129217922399785379785462978555563598224783807389697535529077758722019368001685633489468917065447876236190462233063854303828295359805084969401680981157920103849497623626085798424879015408076129784439205128034009951760830908577958027212871407031601965726747135295937168800879835140915873516501433695148764714805820541654611921120769070737557053750462356628652323862952823662696530966271042476669927700971621847228114017987695076187516867637239451117354289089678523749466320796361826382035080939639838115865385706503563167558778974262095385054969017578638568987400185568275180388582804466381812327065633069237929080352044191093213718842943675610180823086924760585654938385294037465477746695683816284959530796651407676136211033672918023977883377406800186839571481599072061326110881008056556730774337767064745821942148885872417031780747294009342147875328135552841319962549778504955510226187509792197429129216777297618219743022870686930046723713189021289895287029569975819599896136393110885680306122109181038070177229163067377840719794299138927261284860027164789885758610042215504835464170991090804394885871569404991401101404609396849519027126089798253864478479496429662094239668333091120477202325667599339275198953735520459437009271675871794635890056051507697652047420187558899731017059692952986293806429300244588222591013706687609158684574259352033202206777461083313158005273986876042453042489992600681753882642648876021656136644977201127342105452664135214817145647408914715202651519691510138648903025606578620838130797822009613626982241305414587923668971141094382601901710531477542326016429554466324546006369493346093740592762096115694368140323113320524892332710489082689738355475181598620173479584637369016241598258116727195329685320278327947250637449223244387320447540289586323430421388901460400759978916131176689756254360201028191103033870331709120423007379572652574599045854875829585562091938505768332836793575490043358124675495319571757190414150869383255527169233842198660229853899628136541549548432174903880441646993178942351058499392610954047501616600800231415627133770212161976001241028854280070489864232283902719187740088118875214873387750777385769104977875358581232157691931794854166641498136429213430964641299924482692139151553823053727828272765595969689186223600593616076404599123758010922361118859473559040239545005413083170222922186282933968600027800679668878728092902850895294583080559119928151549628722864150814935343612134150125379850896483974384229877213685168837829003435672920730022672086103287245272475163134206083274948893295416422416529282142389389874170582207662840890362806276445094996310705941482082140698308838579059351595904504774654403467936378727372499835347933196151849563178166779220149269454464454271067116439916814817996188184791361361778960951682444682249669380542787126631230465643558592021939594217673876434068734795239114294910377843556247315919288806815204062357224207673684846588788137982306646660372079928097728241233516187638731487317538604458421688261243064085962936306993958924693606763217021318995218374874563269174038769078235904005492687858422904390851178861366998906045097563403329636672085372329082388496483467848396782126905628535048805302061119676756508615799252462348162281146357358055180583166059248623788291032307537075626621012935990587690731466857183434049933683083794932242709719136240903995353088936918714322077719830484476129102934551203355440355476779262316745485312111314146315272327113262892987659853343094502168556390551234824872873764339211022974327567197091691093072826212748751387269986239017545118019101657794406743474324915761350227404267266378958482964228996561491512355165470245212332012430164754708378932214915306494912754477508941974873848154564203795634846546679605126216721673362269796692102584709505081857399214578714430758681329525688083332114856005978336899677076710489895324017692316861840043939768909397280584209549735700850480701836779887143379775944439157264759880590264175495032009479499192812714189607744057227474539393894039549997413374272890919582892606665668921543310424074437779676324637025376115331133676559250723048061371506915939105751984439259376323838996613689144679596581301001694044522285162995901190361418806138789795631522657589954869489148636448967894017077733624843950625453380936392211213820820101294632400415728214020476189748219897863704734785357972074756746033682201208979003081249078219641061908533599202839354364457097026324849152344230445545625211811531208423352234788298084658817803973886449562514287722241766391808874208721081464595750083539696500121986059571989790654544896758101001518811970845716381066320583936079502435852399029393526002938332519811038548382873136419598525360022044943029857484834358006949211379311762956533088625089860936725804282718816625616430444744425341744065128832509278926462087207828981066752313980557699702606123363671532167358272556126302385665128377359475401832562742448974332074283530123013561104513496227300110428269281489800432241100412307266849095508534653908038736586061074163946888526690976859136838030210724188548454556002965059422664815840922485473924434547948353287151814112651514842376528298711420853151060540704333887615715530074924847277686230202699138359902914127700543359350510637047376180531266798157981305310498174118470342168153049019903078033126779474201892796186629139557456856684368675938319943659231533776160226681638796907196421876966680325748112676651776020804316207343738510870860055315174071513804673555250519368566852547412553145419264916809477199214472287190330707089702800237344223123154719068568433754998109952952329899387185126288725900854618391319103720952166508281037886373733268184765486594592458286369652547367433729415943450246026792024294789721654660992867602561609676572188173399211200101957094054807912545004439337289714374747098536576144806101766503031851894995389476221159599841504387673019302197417829005643287105154449090260314868539724100584927476717552252626789637797086946722721342244540335973290593632446258352080064537265325581574904550205360856858245037326701190250175062238623218306063910910103864251568058161085645658982786157816321012941631339230828957736511855729008408854431989537263525050861309757131477359453774800843891652135676084482618266091401906454156703033108856469894879420968414651006154969991148218233655927760942975760762814066988277657144273813680050455826540524953023377693316349642796089815977550568411868703558553433651865131636129848165945032935628466027803140338953104121195579516943243582415669878229316869186954454726914953430250880313983425755702157758766738860365351928257176364055911090165997541226959379711679184456263237434885171387334350229207335248778322492449036016543225547097185092650133119911846098731147483014231568547288410528810827548512040539368034600998558819790214306130520176239704671601553004660652492001978668353723836878968235600607760772069350791834648074146940761191402968422913883874800043701789233616711962699152523649444667172075557983063910543738694064565488655708696195910023648041163035013801381335219940780974572232565240744616188569355991991214000738775930025854466951545279791368137565382825063855274693888748678025193065758752964566559584983641077228334138590638585866447462335401407757247096353137094762686088697813730563284743066995042858805568599316936431876211050147990135718058041431527605114116430482272807402253812340266838476370087999078670702399916464324928541303959906470944155163229027304368863168391728874058910892214744717275668501522217966814519543615443897905579902978624531440720513989057863793463703814799308798910491785830190901858502646933833897056662095293494645616374026210900499449650306036600808784979602393449892969539224172131392648134063837732059067051069198441838441183384055525687457915299357603010069089447398849940356343185954674483047080313417602239631570049255363533994339139411069347518008066523052865955153959682142757097935795681351683231850289869585566567976846962258373980794976650392197837882992587039918279487433122735930822560149617196771636872701234404898086200492802566933343348184561438288552009706611829800288436761324761972876294257632470990914162677462609237235673595364058986488036675154221125380166381435782816633652152951381534214308885261523055865279327511278163858208687378717927866963233100202455220603108486883180728351110227086944685492720397447601617595777626874456407342279219217661783986295279744029272225560407161007292141427771164501608548973489676695260875424578708908837904804199589294777512313628597616999104395814664104994016747188756956761531912952677126737618206543367017225777069241460919935405875901628488000322918191697859459143671559277297361830301482461894898370932143400920791028635720702812963576606341412436236983421881488710908233054724005019184015572285485136917721663025366008515786944815853853584923375965742911136810332451991225178826386285565236785899305844502404618831742137129891000705680295600036435827561649963363367564907907250710012306491019676616238706710164923332670014895615469466298463704123160753964366898086742614786680126218609490877933873817374538257235958406097860680475247797159847877375036204432773945737402783127706538565474350318027285616142273768164058826962201445905741557049384901952591518327659237777876550435631662732507425406669456001788114419167177543709586591306340545632364187857413262537659190422461273595960477228331754296770918999551968192220842443980825587737557852432590983477671568207452322402956115155069201063333284033772439046350414801338409343000540387215361292985480691926170742152661539619584800816075705018673193938590295792503047682473277799279633699625409420134036360342294582890977174452803112775863363323447044331226488964078705144914846136801468981275294866701636217596800253590759146562660217086499840166467961423623776612042530442948558661437202179225343618389589394260822275762858659566982238569858633310252330043794401696731396346217241939552691107734761434240673102722787565074780365352783095912536702790420202092149158489206675382436560904606000711904308068279726188084717298020762439120295313550701295317893769561332115637242906627397545431230965854690117592807885044700422240920658791853547709893146136722900820253907522587974166000446226333953376818553197939473247824207693345200439103437423531297283000266220293609598746440817241534421590019951861318349079575287657135149341937329697558154623887955278621062658415551986938200166750271669460344744300188825471477630437573379155500654424780899295708429580958724086189963746186468179195894477145261550748725440217158693132573222359818935360192745381187750074970457312833103453335362722312768954608635930096691292180933827610826975127666959844470471629295977001601254451714379110380420258386752737346067178497385420144161778393514598046058385812194945134288911061246755177400844135352894239394333475548300642882558019320672719322041040325869819494216141294657427479153424873132722210954209088024368312651229445153101764517247831873349965005896237737169995960553086120514680592986825972818531052542140586874382427813131318229040195529219447044498458228763482293145699679575217375802092149062305502087080761379773590903736626628094814408324671841311544071547164059481231061489258909952630553633754692817944140593666720051474087145547722507108353272704280963303317536889413957085128964353739982024702548547438566627971751084390031438776278293097783106917342317746031319212511126214028781102246238109050825261286224285470872757966297382356985653422249694044869770899465639973269176082409325453488796432453818141687712093725788006272483829999221575834864115611827018802777711735281089963211748799432892067343518478576097438825357123196220922429661168280161069062558147291183539184844944447550895008171950481605320052931239205042245111697543783306465448786223300450323590373652058890181623459856202797164847968831987124069099448869223596883905986336603128201000768154603742545228756513860141530814885219988904108649463933167225253451152907398800998847928335736552250404050834734060537295906288969223217611782205902545948496727902279977789650005341461173690902691778147886027453591602101657249626026685962079442365602863825167487038674861342765688338014831234200967027597277029555529760348595661922165437037932334864729272848994087247662371496668643607991679293090832288022303876484969227214414838378646576076215110780298978264674600541065218165094125180350967550315578422778029676103671090993335078852827654139746205037370952535840908072015402294932731929119156121128579211512453877825463826693158775811062293801005717871562002116340822816454496105321187539232161800434239597434510780923043288044122934385457423463883183831180853863954320415886925356775709017093392080835072845005103080977105071716739408629911946381135668571035033290376777529677179900219174478879154122599372545085042314336444124038020169306551406233892734227638890740119944701506959420142316322005971444337298993012293540437986396278087249125663180433510886728960189551769493769527078895084135541570898667465746626592478272689369598787677424455996298492181162909273538277460077853219923440770487314855954276492223759961172774703823977483637586773874204843271746671654681570382970340149807303189316812326945145696428706221052401587646718873240132835309338739894632327114650682313626032490121476203067589404718357972370745864374205684610666018059056841504964765465545304909709609903232197859479057568578380266725863738834203729217605565710589404462920779782159849097578138012681454325526637051388025798521439392668420763347043252626967929930391276000764367305930299832914150519104416209472896896591098242350585088696479558337819031471605603241101220133060396410112490898738404675012386820229547125653316294345847111376823822872186737737650141827798166582700681632450554054189709267172840061331729013203025358407351209141653519415940935811612207734151013162423884641654724320138004960483863617280355337482017365529593765048798293309736510533160361596316140258263354184151808411724612479454385015552710849392544227606861940304508023678023444987789591932916079827086103345749462393606687351024423655358629697530670967535876700280648549761923443364113062481642911543664527447255190018543684197758221198821707190816809886023727492486364582482735054650650601083808749561564289818772177712958956768752319619620755442740959152976778058595961431301367323529873309199645098210163470383222803567286107302254952868932091951896683972852074899591336079863428260421035064488518807642377059494399386270944407728744194908461269935945512851025405168761780346936408242176770419836706876939988060933284400303598025015417407884334796928995327862692057216965816601297353635915421665553637723278113709464872403143384290116499409215751526446190895595424845779190928615401212409654757482782955939477041706150672140719755793258962839877333182881493337021871781161125275185011010614838042855412578961677613230239306907799867324007894344838971309984334124239590244188241158085836098139069621334816274329454752394841493509686662680362615201960576550779446277588363311637684642771391363982840649404710737011512131894160306539677941237070570615323009283138311963133560777533025574651832378633432121908559433517692068592026877641674567141797695983318187797678335221259009115687938089820589226076710346698564815728726867548738285977252794076881139340964540793183662409448470719707011402752431220343607524457152400168338827245182426470723336618222999035309544220548806387243912328176954127014497352500938445688570116306170264076920939941733616136710380584503693013047233759753031154912182665627379691326585513744076844603563416568233737976093569964270357811054059236335429206240413495110588722846911849685451319003575974533406255916961044022005700224738143072819540270024137744816990271964222536819322559178824902452417825271394861404462950389306269767580197270770671445588883004583419403086220407601155788100093468335900895511171910989763304960382058437818759406359883168025013803723676946038513407124963663849098704895779178228606322949546433760909254492842423824020936819362843584533647362222331060334766092248777751833997443281040431989192937622474050939060128648008524102282564947278634925496411622239035113741859774023825954195116036155079750389288954094756640088441213369283563968661374919129042107254101824430406338311465553851078912323708366458169645211105319323420555658113772513676667742332493815997802234255985314270118437592329261692813964443214834824596390408469787001095150751185508710980300309848223843207564318222160174033162142095005768420758538620907698436211561181262505831356124527383954731742947565538203228058083247065856075197223373455759826725492643053243338467787345677048053051533711985906913061956947883042710486168664960784534395355451868826740305644656736779687403216439507100502621901287245087829125959221450124179895822682129337145276889638428699201646447288598690870364025123500362687749118385176454396436445720868443657804694307421748591645263321208327693988953154175535198861444491122134049331921774070141642971336165694496385172359260204222353370647458997099370372714791747521319498262577690875053772888205717750330543337317339100466081251668906041513349688484829777778386810829508761375140475142093358928020372389345102417359248346478837916570913214597226644140230885180861533531769777482001316502091762847485050897139867849517540049320722837431416984516328343370280838490020072177139498802032086748489101912463222082208885147277249108792291193362684833542863579227143898960065634467300694263958114007661637816948707037251263969905633303109728027818506011920812751103891904645010103006650736097382168898411370086660036604963239091003732643006549318994163523927335844791928442575800402615557118840661701662291118802842842901811524687167936634385225848803169097045937618490766699238689521195081296593336214216064967797313405975768702790899911629200575677287551047073018773992691064005059138171226511327228518343517907892515576440756664529192440746265616939249266896226922681292482310335857022908396363840780855783081773168090699611094574741943388966719587251043748969142114193315300460105233277320946495762443553189938910729739246276434938623872379934754679744141454499746010279262205897126904533807633897639572510389308059638663256110770011639262407647265950985034973167597514214751090766423425546659924716527098315093389413123120879006028916546614644315356571296530438107762377772258666278154661160118624732483291415946074639468881815925655310559951232554914742730494279246617090345160642133836143139975885828080518586715561804727854964364188182480715787009075477312444798339170276814629462694058775723906041800034283757950539037183966441357176907641020782282392916952452379348940179559569099384166446876608783066713786705759609562623745898881951604784267358365636622858765384918065183088210666711728875720092779444918962181702870224512736579096503908439696119069777816996271650256960673617435808671074677682884337663855456215064878484140948757553188935689929944643818147426340265651370830900371158176675116310335754363574945952222405123675567250645001372005536111177460645605139508951543931385304292107529035509541295426136742989488244366251208760342244729210909225167804400741394936758883771259196096157547240150601408869502040819623394446607191285379776637064082154184812041342080150279152499031080496214469580098126844016818262733109593559241097643928769391116187062713757963208137012975546426495460555896045468303407474506086036764556181731560743645310774015399694841325675517462251007857740383379357114950132396361449050556469888745619494082149769776156684601263564961130031974354184951764551447797186972757224515745916671933150555998533312671001511373406537783192046347230488722648654523093495274058467988403882349283932523284324168499771601699617089266309247746991507705510273096101854799515741412138085854723529833585317498525907579311415250255950347950442140239975080938145809841540689550570373123759981930519252811122785851007757661246376513378653688409571402466605146954512034478557695363380977255318773454043169168438541874363932926229420458958321618771591229706918572635648341615688305774923601076751093460512416630376917011805238913997863747953296273402500685709691888399366505547693723628807062740131065409681917326330352425404934445295547486450063676067648665292756686873207171891862237585236988790625333900043755340333170320376298365994186392734811277612818692533370338618235043351086923563720567648662001147930797523059338524974397874504943936224686877288376364663548261703445069098763448316070166502649337192804458525946503641163548505527368533114989907492172602890109673508837116821302710059000857153735628720557820553174365090136611399653220953556458660357612490313394937959210972732806995174839092052408512818247809530684433424362328229820169158915561702727185369275148646881771036501148508359516870312872631238298901323273105715108619313118656982570232664547861875977277664585260748374668126332339255314269417833526125728719450438959272822024303150995503413863714981817529498519666850102760997681979445559158538400007329281273984561256266619416297605698974763443463416893088512850308649528849093372063638468327440243604372852652515707654085983399865290065265787542905396683266564597241106698381400805413717398078268275039904214243271404560068140682537051342696081557094969044050423697472614216418656958076006426082909565035418528740190904423907911571880333614919652781649832595458190706633998752913714763163776925259635899363155827355793793533018337138517703653733909029904219549577412772107576156841663085658442005182602895085673031103759757819577139720988145377049628569436948591900181583808241956213964946998401083202034461572574793967385515011304727065075224530551081996107447153620482856892118356751558171889515900062667216112622187352733729971106776261676561858717263202360050800402990321866061963576825812243247818751468384603620038617012084593048179459801821624516530870051653327583926838169918484131283378158010546407040007664198538866424655553228323544041418579297141250509756868549616208808270732284158437768371263621880141239740708190296730290965809648226476713938820082068026317968805475111637432993992995556837224114707161556090526504956311892177657658583766040605529890488250592461337281523344371398700423233465698690623213998538790128463819970560429272955572945905339397220266117009978894412377690915918714517784810260734715367429552408867822423081884328873281443292963644999482821833399067200581478982397351739237439923256597829500770117983359086284554920886402371943329561109444440094317295736189174170308883956130533455320353470565946985049912226032172896901292145647459859862743688465056895201819815654909296317746642057127238057229943415211394366918109804420928455502579263992071338016855818319092605048137492648619144455097355970964453473125753250696177863465118998611746544853362163452303310189857524066862149783260920301242107619033896364907171664456078853437820734422024030210740927033153185942814431448135647734470190065800567369285925526508073441042610958043245142636839242734880213257667768817631961373649429445919385881944390602667604226583074664134408682554255904515048177862170879995743599818104238193784607954544821998047285939842520057609949672518500518544835273991502169696006622606412612672270925425687362770015095126371964371448933287809180620207487003318948657821673314814750859806150129208453782665855850005460640700004176479675771816695872076106122084078246846325603921203602229553277737333521019240790829047585766228745109393173259128962884542450339746960679671301618608304206939122586322306828104719175415607431359189643286743871244288439251191485356116972630288822318384382376128591994314225578316061053456994564881898756067427375756795699567292936327525501870796427372265998848845151406663329762824892524977982608956221332350990413827370746666742535138082966837503659935209420448370369366103495784498513234291662010543357520475470655348957854963741925469745864713234222722361246075558212859534401352640371522924082071599049932272227603540596730015192691915570132348304119514238688624470948125282955491458770959934145331940713466066240205991939357670274726012702221101624592165122427437925708811793932708330465121088666413393500421880836609516628645111237837411096422499869827032050586975057411876166390047918454235536484646944914181439385630137558359377118537749372491376754481211184189620285557172123687264676082425409814486103349818295633040570248677650145781792588438334539252125470512835417344185251764630026071685340357395503213532756292488626404813342684329905002768578480891068598701698404188192458631427293108000424813671824964789648364241021574475031133046149747830132889218513629328873523158299613442453925264111695599641764676727618869373172009730879477323831749968868921299200593811214311902569237829444754520074222545609455525604971491480074091214289838852609945315930756111420343909618134328596316482656491125501202580675146271544817233628622867218224749371158559544794595393159014102774174229476037610264976923944981613075276241641759366237840743530041145507765006317646014201192959390405927546524220186864543913024697681042788751554695053857402344822622657351310416258118140112935367043849421172356546509887387317238794858204088877922524886005499005571198136277828068223204352967635088756574646981363201160879865550197981391448793757013563430134044893476438697322273979819617363516723439469367799376681043384703333222493041134289834617831064110881178192202248641009232976959354576441622782823811794912018288914171810004573170334465431914288653600204300466909578520534462271066214356672148445689234603907259817399171072066470864938373081581491516839945063026264978566931521335649639623532072699296943678697304987427656051986035131545277099982536241970379645178822961439906547357231213115913419157584492618599628205872666727450411112840860647508082172685754105663688441492580566828503493614489180270230162202328709939146753719493444309836865188971965455584062345824767007067031499846342479439954581307684941663797662066587619818826396865127844271627340439822596186199124331095569199567583421700446615962111108135210020365450347706920390915146467628941362130988166092639281466497667020344275841044446413673248331401762127985230412069010316618437957453480090759539175788675790778611124049247016233390093969902287006529418894966277431910881560113442113215250968819637281242023933269798219776096768144763550011144350858313888007740112310835907962226780348991688608773165743718357869570713309120710960910850989763376315869416942691788577207078503309587701169102121899177451707175530766286796281598433691691438339851169812310464366740780854437906913485353714569778280839384667603526729947888100862783814948477886308210198085748903580645604479571778776327549372536796208178770784003144162217471649187513441829724446115222808816606233557193126596213175968900308587240394410939174229317140911845542319244810907456281967587254987838879128316817598225753779369959001334448101353430915287894329510262748623803103022492724170399128809197770217065728459574305957780036066453598913627696393144923567537558693531422340292474892473453663166364890495738681342228906714204349390441289824534711854531092032162503896152779071946882165547308273072206805104824710478120351637238366229252467267691140719860322979301731151579927529513100138108779525843722852648481180135980990140981184681026652307895429202385532515942457373985262544300806863482410449130326237349634194557754990354927936543416927371020258873539697468755948083529113434671313525577789628882958383518829708697462459505218498217694649831676645925190335304871057384487610816603572980055907833162032498133583766037581853401707453035263426600788231524359190830019934765395612129013592374218531122337822090481653117215230712960545131758819413227832069128121084173235129179221190985844100646728412378618736546052776900029546669860756591288338310200694424683547811435543502696344327159220640530541058589488855163188811683239929509311465510886961442773520445520368352465430679134042595617185555526443782039035875542595534891611124967701911958033188567509363006394473895460954927108863329025645732811362750948542698726564961094509036940241178799014411504160701750885392647797732181279394323389304788056054608381778090993716574659021141668181431162927278871700546445656758434551068470961380247885063311742764749960136849346410520503213092620682482243991533122216376628841495772135262776896011397597293399091338464646540231249284140619434739330130525476177597617801405472827716387112203441265845017667481476612824413208986255967447785933446377109205995231865221093492549949713910178654527508818252644378640978257132278185234327859929578046722105821478752184368144872481617797286901724652969012635916351486731496445358528022582504290689618143838743824488486030570712388109738638201321199218740614185198939145312700276385155805747392696668373813657374593577603858475391876293842991821640408582860411966743224854612236752787852820352165111580631772242282845779177845285987732659031248040170745875948588210868010683669222540338962434429788578591119036615825100451437197097531677554718807807796218603514828980879510570295325517571854464419135325170669221999596875933231354675594338858161704960021477128923013437121267379457448772435348275332516379993882549775370548132578850266318483392816247094581398615241720235621138879730431662739475465208013179700153885082168609059369817104469666287771944600604839787547877216973971497234807701027615064480441285373923506444257698713008649132339807740074231241090928804252488044185858481493771011550947274244523899796497018465337021031707344781897120891341988361681901342698552072140038028865680431712828684818426833572245755968808282555512347693228168648916560131223980365152521818504235883830226264555041963035862185625862324957364402374874702221680210110321716639276569466865342365441132035147741483613947029332559233186668186662782217868525156972286643105706515432769368866380425396068334546068113311460915619159095586536388216915832722730689547674505231166539688694116446792446123847837162502225460613670016213026408600226544490524924563359925985891514223254134008869886591208018441213491085901172776261768389820927391564656286902775823446006293495423807776067471174017618721337861746816734765801743852995378908227280594922636682095280121376975082432606021690127545143406846615949613148597013360192232351210246723782022654638138431019152404997900628706275385850011109335986669253565257047633258243967312591047666358544274373518467412198503294203579453212527252985451841104958341112045555023760921093229871843439860159072916734243417547120627513236317422827487878699531337642688402240318370888679944941150499842320178402380445827177038255369175001602402755327281508971206428957408486801375710510172732899714180366297559285674974726826129621086036570299137933329914776757958180788279621433686399081224084925549830792764161373906049246776243357611963324339833954844990147515035058417482994607195612660674558484385088582835685555913161066721393776776959435697191065586142175147716051244749033523191987368774309104444509042930511049121353035556630719413877286677499718607460389790501389298696062938897977193544998023363085168196143362772114945200124145161590427317972114587575073078541912445919699599189643378708910825339690662420557296253911245014457111594848962666649106414431555343553666000233350434099528121147549582275178896861533707329447338759951037675910017616373787675658197173207865267104537784290662535427630448983276326944499115810515165950592153622052616251837360591164574264068164094601832745815932312415243399798838773794895957166366877968292482966367472805533611247080246419958787441936547780744643122552876770459095684588732727515348807546756548040043758733957387544690428863175028275183633942787898359957323265233924904003549734118492758608705417625441795313534814112704604556567002453370971417485018527301949693836780981267328686604930298628207440799306089449696670987016840500025753175464760649669878923549393521079626123979622970287818244617159367698973135925153428731137024090525901526711063476564503752796733630805080262568584320449456502185058056021731781930064278022413377589035674912623901561532727369850767825062747077400853185290201824352014434211866288217459050003039868861018411844871522669517272830778733544881365714266250098391377370911792378242549022805885560374850574885169009748093720331414180369437656156101754439831872208247700132463950923670034005710698964590495526600269329178098942429662448144133728155231007331474991993301743613639732738211305615231711056578883862359547721218303012680394487795305024843477637836731768165581246544997207579682573598985326485892634715896762232044610653518528282993274370832752900935527339045643633210967678980414064459273920249014045546687947414568180744782126170772501512543294627852239428856144003021078394763889718184783741337377505340972169946250289980241335403306033215800940218012815761180745379972059681909085447113405374998730031923279953524349106623178185557965519082403517145325021705591118332974414741805592099989247294504218670104861968781106978509449943722121093549464677355675929370610516771874604050362230337538974255671768094936521545725593831464744174749965811093093471230208097420015772559224731526925755805069585010731912017500738113828532658791183313931750647536901619416038445436634218992982664793605969035119345526674585381125677791757232476118925259012266981904431379284185260048540602219510176821203686428810432082174239072292244280407178656811993617660281672098656616479965418963440418331386497625796326405742397280677670282778925766448695274316590955357274060548199195626491190057487406475377617980075040367128666369921662393890494052962748051380183922721837259021319316743731992715502980718815051569517014130672468414856899758601605324824211183702293950286698052461226455497257361831426995040347420693011237246342133612693375659848744160485723332784298716975185351344509358405535278731282930167390688937290572082911598256872543803542768292552740809452756344762366107866859318571131376764814927082869493790155543480585966666567566033268236963659399066167862574661618363642524010252689552206051535871172977490678906409374831812129674211965961295068398337219448884863048499275445363036762100650184429012697953042600127388092723295717408070578230441367001489588951101507857922558645040672472687507798413670697819175992095611420816828550624689537834905145824215605216037956421121665245154170024723022689230613563034861550228857335390194196916506011433610464472883482549018129106183847139447918748565949536843643103803597043736498704776179430440114034835772989010721373430800124082761064763301117006532773383941951750021657218756274760856417887793272532002557287882811930872111604816602706554742183694307463186083496286517025030556131695894423033073189345604811827739599634107341863006522584804413266399094803394012795473258116246224894263413989543553320130950163380379722332756795154479610367166456480913176711461567804439203950073082736420411639267059157905843639917752019728639918071573737258027521712522507509184484966745043887640724352051684297223499784577500034837407066443330859911167726102194903516817345374445179039861741510429167052962322518090819667211036014445395733301314256107840036690037942812294971484467581941773956659914353243784039671579407739687088703120829036387368866600574164723161570867342653171198018747917164862905970792354535527837936775268013184596888313637791616713785907043633740867307270237002834931675259191217589410475170535877665689165350875676334411242617888561749277124449766559648796030425085882526322786576317988780581028826840793333181979930884860149517850546643137657370220187533260326685383840286684052267000689788927816879942929555975668559384150976772602375465507193645361547067598781534359308536195664068770188400803900457945409360361619630567071428794778419306673152079026492295753142930135117949309353466373323174460740259604557801528689320678794788917552182917942541616953966365745597087429941943617674633669384830337671190675203277620573307206678408365712159566151155214007543702350855239309142714028374193373183119716624582929412323920173967813564241618053687394781334976537470150457733131559260258000983357368143469520952405586080587043984162487604682914413100969977450491518247153869206444641904293716850667522191103147599874953527491531557878069657556115342656386062401000296928122730127399990548887029619272933105245992202545480703602831483988009587197211241745418265213868925751958269080241821903215110955734813667346831148103506988978085995026753236042972452011177260119776178965258619230236146276749136432426483830432289437103796820547580398634339222167452175348586226422427630203650813406413555093808382652446394759210087275091470108802149612849817687153789401317003644381929397497057241116772129257332652289388906103517429417541429421618808629864107558364193321481782107438425736506356104083228205023319745421007799145131134286869153564143712306764616949385125793599651852176877799282871857147509442062398403023429427587043509136507829316008838315804053190872237199861603963952436046526245955110019894096736532008411333131278994084820365067849195695798034839551149099614369328036426087916958591216960411304090887046552515300037902312476759121845409766309570381223110308580523165767276995635583405671692601493754580515185618079432222946692905387544316912275029704148101585502589478650309547810073264976370709484592727916538660225047368679882806328353076069486701669776376663428893808309329090614907094906894656255720584123746070562744575190980819703442066853942172966599801033956760156345622592480967490003542002257662051144544878299111124854927900912114596393669583858722179836178623417357559337902506847594141321536995786293203790338626280184667356688710317821270982838590810608073750777687126131025628693356459038841875625510605361032760309665186730521452532546820143175940018442247790466023279372499520303490133891799817416586352457013512887753468555064213440284965351076229717706093711832075686391590422067908610689543962544036263507528881660107305135605085984941698952511653141074820751317221610069788794736583966846631397629636298915124040528815917080884359497966864897337145703750781219527068767798924356382091142140598399128654750189505656987490751667275975313042614717489618462649870237094525621959936223826369951626018084112618640122271304135732170980841186176338253873977195530247855940200951676578880773697957418248750029967353821507746349626558539355692224947650435172708348362554288987073301997212889130081566060051802031497040728629757570334187462078799479251095838079282223131221726021171207501822502813983459967852958705885988185355494090017228203946134663189324695343195338734307729438982515343582007476714813088223201457598731401083310326793893749110851177751352986505661346547064859878090892545110317352588984205746472544064603885544726142415005638803703336019744605822593080546075570633163260036363947478439033897101148544227434434471175009060533231836894900391044106411104613695575041172850223856625564600763766029859602117516275653104625243099821450010451623857619420925474665932948735296473625665159701070940183535818992469105007726804192859310401688224173441750171617670356014468681152885816015624315175249245531447600829809774619106591221605332532396716273290330150582391602046021939768995331150020012731227677880744427741198286196583703434340343754727022071445448635750528712711526286347933452549176173231794797334908525303447865270387034768166077570560769779323886666690343940886926955514507312476724718264723578503089814074737817707846779708465577052657591097753780108946683943122916175785132675503765572540618818788606949686972981737829779516852214262777124736436060409828976536457578826133472624134441379949450928558443023471317344708760792752190039035796866847211917419462288926515060349958720444604028220328150184816617537217814177011956445921992998445045826424492383143159370738162816428297844176993210376181492921646124839192143993792760652815276964899739999473859899082057401071399818013624306267373495705527019322295921662519928415579450714381144317376980311988127167529758264205769890020281052763302510027839595490548695418293456924101038058986793124268277701279053941469154488220586037770792260081008487077447432733931294411668013438062050398806204157567098600883103146790085828954761366607243246673111064084134901460899113134251224327881570028882821396780323460739633106800083501255200818094011941851801006706548741063533307234778009630652629337882588890562120903623968966142128233360332712919003892211939571192762036641600557600564640850548506519126547905259409550532701950951015410945747681556337794763315205003727992531923083787744240578555814878323392083414619400107825366542697867346191208946571233110356616621263071169509159534952319494567208655014061025175731746401348721461668941703104020998964370584041109523785898247341641858466556466195800234332909508611935075117687600492677942824281681209086570893030448211903457589121735064290127538323318478550920677689385189381808064255801669364434329229286094856645182708638040558223661286518715304549080716923314606579780917230415627690800477807404534010368798521914343030099842569826701019761548309607228431636939851952862423035355002563825944033003016403822650140428775703672072650096933042715554281905597198901176037886197632422084653098486103031871105770188310437841720024967441452454764062819332214062024511010736428987379110982711142000389834054963887150493904157764758196538837534124391489255106621599542404342913948911029294358211423104866694871027265095311653867571532547964508999118529288806384794411015622644415693671678972007153195998552768288785037422759850618667985483600695900969187557531590030730470733200217712598271989883926460994309962032277530921698475544249383078099421535916395437339755108045754467358984727741255833394674664934264690966567413429059693392004989709401535346536405078787795143192365167400497533955304301121796651551357638281777969739214016686003849214169104251569160299717178661999437405702913412417806450578089902771634697286337373405666368954591224906140395743673876775307427095266683380710160473615637268312935536928885533415187909377966807570903625336692397074805034272359102721993599105357889600518062457288695160165837089681480640141596618687728510471734886156528563295791005939361053965504620201879330637093414347574955020856517386752811001249542694757970915051063817536862198173688060000536303169780132433067889799360753789790944119215273495947623053753886076694649169167612459949195895852470378913224505771224790988671921241086518219275727794267375845697129819199074724358656910378070964279458989119519822639109266916331995588934973192273759093976101602686253041349182646396851962760453825221998174971119700133925332115974869245731242920082654096930153766651636810788661506253262961300948145467186960662092241230603374157762892835492168380810685915002626962568092154710375029746750935491501340413330004310283671391418271804175290438834297065155867994840786230740704907556815788839651127879870497299921506003784578380406365420624317794208038516130519845632974285830733175775885338015245608336458051052161344210134963990736421462873651626513616874712817901459413945695215273530394102620845032004837595914595302601408734251837398776943587117471531231902165510631823409905089023425717207816011742301214350464138519972300720226448125582597012274607657777812762417463613608812949350837744419994877172698065880571453419867195290071874129502065589545514050259905918883548022596014094262542117047828392446884262064810245503904332114320270680730185074880927931100857208888994132698005210920173699436208120332215953421302618262787902929843653618107893620583543309726875852385833380040251888973019298280007222068970638548814748544153538841778050625439383620850478774026266141049821739350594876790975383582307274606832450773517813237063162585016775752804351525173620252195172393447821098857049474262042649010315090114108697045375373672461206394456229265129901210067951370728145159649518511600546437481132628312238434107012838970160214176986269978386550147574364683546977211188501115566403094133687366635342303644524313659891823079884495097559748960018793491297251385215131814261317029043642436319755625945812137275194646539005134459442624368550077260063099257231860831832432008583045630472994054534835601257707526140808732475767793473452196122587481689192339694445825526757459338155992834178918684378332532824098601356647582925491577232866940325852031878982231171381430932751637862749822777945690147219412555453131711301031153172824603240859653025042450816395648935962606391666228749951941111405201901116200896868685916932163905920883340607289270381311841899186202220904953218597837831381270342982281040103110027634964003993748023725871761593029115507975004499823493784307229327225900544928596534518480402859590627814614436334212498154553270337991667722647086397953902980574035025652567239515108335004999291279078453108145898046232418737119271254597789724760218469710163551984192384569493292598457517448221332303358509384102851398061053353734387959380012441320152566780199997366748505560448360353924626081109730774594465109340288207826758679973566460395018232944283099074232585856580755273851506844304470610350772470755085999414238269599776878532563415012329414141243448655763683847011140826925564021065848198566995870538007999046733443223555279999740143776726299078108716470163030555200215797183504952962032443363592260888733492006905761025118323289336308665864939022810599020261160628450503371393785081356993199013511839363312923849056337613556493847422037225204826727661932638071667778547238054879615130707475995105534660657358979435578710717014802701599647748534909757566130717287675434959275494402079134683637333941838082017135498422330175519597094254539002978254639845389667764355341123454606600724045868195687756228833474573712983859611266341169942035430248683602270901834755822896403482121474004654084283515935108248404598025210367796003079416186291070776768796642576682295598295011068187879300450543037731373377315757597590892267266779556787655637016092363872211638393188238866906276244635118094386633821510008443156512921045752982047835746718884474494962478808497804752943542707531139968232920951326642720902916953717308191618350269482040522215149042192583447579821268555089532810134423231352504583200770277815093034264422900762173589419888414157958504419067510332783075947820273535561004794873435260841763030531682734979051806092887409026760053165475909547240146277856717695377383920272007948441713918022742096791271714470466044800789696622891912645715628394977754702167894499369156493398795659781952716741388305914868095950200421601690572232949526404560390580645298669457597893451916352023557797947632230626134835656545066506465837208893855853213839904575513785036393666732257092852033574844190830709871606994772966498200940401001948113080065742640145532378591884449473718360561882167334651432562893724281450232153016020960879362550297241610509883664043457979485988584019384256432198486745466224499301751126782376416430601457935896293702753213649696406265583278058900881018119020955690716666733840078737308323480160692404347389411835457916642455338880751059431749797489368087795536503404234863872118200940716608635033742542691659571997083414671144388258191920671547639407234267264479782274735033865911318010505642928770100996823463023450149314316516171888682572522797934319244199352757372959571218267102645927193617896260446742071088656846454621952760091580174719320224360751496597728000609425682955887192335315149524839748364289581213174296602937094326969083484413131497710268969559269609133478539542450805412128623148198136621235491646329086730233634955525495781012866729458500555744148000361936464024898246992610052163493463265890241455563935671588983752548214443113353709741476775755014429849676673172185294644463374100596231747161653215472274563377118882865767505282035276491003487139062574455476677701842348698870746340008724296009308659413924074495871135749511570290794018598092062898204284789345626647318678721854200463312869116369300456217271730463866500605296142446808035234138606139465219049651114128462645461215785449245657875920205294534952475934742097159344817887619493212629943634259589364091799832699169902627496712882741198192275293650435521078145355965668215163209660818230392306911385696604908590769662056998582567143361922029628223330438179029189942398074225038609405347433656416254432638440903307376497155632257351896261409512244805280032182693786267473755529282394007034098641234523447346069400889632939582795579412233709100292790547076791091252474849921562605709963025879075096064388796624865959217170196086674989347820966160427359124835649324818514638933274789438226562298337185858334352435391292245271032462985617491836949555945884268367098702649220737048250883711967518918248025341293603689784184754847210332799896315078674815142566709273791204142081722918831606592775007774499511127727688084791197881689438156058248715053217353483131235706692617605542189988946633693702175766467553622087218853230272483896772507861875131835690938864275761997354910611433424439209417906988393324463304027099985219327825716838147842246519969570871559867080921999989246251652087683996882068245437186806720366484744985647341922026038566112437481058394456649935774017065231870787531338346649560981823130805251692883553641653964360538319806688934029389234853484968564717076866777840230262694628555017554276975152129097712995842131596578737419523865348089718201297237610983318875459427869529997699169907520250260135760744055262035036956450328619655804832954216023209716444187189399409443433437797177411264973622069583400861211378464439439264670473710629735473170149717262805833575251786456376693265570951370396629455699292188071124335537181784423463589728649740973556361108825250846215708275025283812187694357421223969296150251586715913163116071778573826248792216676304677502031976534315748204073180674522365905152115814918845753502982533728340913051022327536231110882940196164692088577122555912560846319962085957990246025345920621023971593642545716522722271345394699530763999357114218260185187925031487528174623445125915546984242451711254186911581975603841401986233716728450172642585148527547060841354976783908627789171004986983902549003161512881006557586014975457762905964720332885615792013769411430356679886412402090917366805592070801673570045848392641549760597167432780540968896628676142008119728508672234212329968987453244291628524853670649898113749129646747188238997547983954140188786653221307486353504581803783848168092306060817107653765547102223250859263948583113707085621278487871792687106772866415127088536774793649255701379996896956614946377379580185984756585949920144869524770032146029750735983944651616437862989558286828749361137543437205640887216227950430173249952772930852417299942739323306413483428020756999096987145266126115061129395698322049153722764327298670331012878303847410989252464933482465782841768451077632495105946254547823039005141634286548455641883137618544425270015726649555118346140179486398739774405303438937465542035637418851447675450424125851023014439368026710045804588147060562085963555279515187082122585816916519760409394340478063433783405241042469740740982859466908425231563215351612233220892698989009731711703325962919458149947339524711666921200407937621284242830966631149257890677020161927375130591832497998207094434654044097613307313360017761751192003748665042146794037449641763504698218628477652608451442563291622975464317105460560365896960212031355591758676414468309341188152219161201658946956108067299154924908400261889453952424549702909317239677823518439363284212721150536546382769546550336061954089427271864221277996523200350250189046158075909589879075888246316080894479363990940528471758523396484540754119375085920652482354479955182574380121042845084357321584511439686594250876837285393660006953032503554442375893055468374861414506928021604122550809898117460911031827809177036628359114987410485782736943006281331332604940779286784223302820409526134650168704398737072457644984035927655371256765826629846781465951163336896724871224678999988050696921746481273464716304417905542606784364133632883259235089305593202926200996339194097589966492853861918101649448149958854664411769991484441553259869351731886282460363992556379881475137587648103963964682080429165887538908653430496495198816384301514987106450397519396727616176062572409568970819413441139303794483155719589946232646393766938363130137626975862198705705714437787560256194626090152669013092280962629680590693880850277883481137174736156763606624066504708236672402849896860992322911368728947905254973819758195585139714308808075686698055218049006172804191285281963800011668083259694408022594824861256097172291983453405129146478249038340698631202279681500066393973791255248798277515250578641933881305340066253294389779425819788543936509320309882533040374192203338843785232402773068154004276617994489469305087425608803387387916511265367580670520300657034800111116114660459663285278100393364037079302676244851254529756558705626821737093442727191927649746688656471268033856396467249949178584664725823226864952394303607856051226878584314450646185861138241847292142617915407449083026296670214600589409798661058116843994398403302125865419557625986435361867852416851689589360929702485880974712334625027759451800324894650898432700081020657244912224877437436814240087451097158539989307153383758088183998612694319410158776678524823739289364807520429366264439780331027062320659160269948386249687071409443577750268416828446244666271308852399898679390125668866494256995705518645243587703987530708395204785671229643207541931930442397464412331542992606601050609067692836245894759852667064913640844689033867476859485686806118152926168899988248491799660521828222688724959868513504511872111577891571673587207916313953620670670569508662057841234075893722797126410542497434966578899117410602860815884580563058518241043451539005083954799425416670705703115146493406328984573998476205526139976659259076229628470539012064858258575160600285835009753337632971810082006105851101924398874262433407040344830369689079492224939114288632344487720195787259003283960129187154503744719804915286351339080950677765990253980879422509548620361277434300616431195457904128523084369851189793742010411750685850849334896798394188419513423742477285524463215640620399078762683929718820938119048531706283195560113609182779492412107436295586539750262120092495647888267307255824933416473160940876629399811522809431939196551837160186829592799506682446670383536870907877400539501555123956325034864609440586426182266857831566604391447999743910697864714722970332167264093337989634537024926807971564778189033251510319327501437973755442852066297325533290730831435052498418269560814404125736660940504561332732027766783639485320071735368028044486695821014257600570839539628440529649239958072084671466698988481588915510247751917852189136063777783721030337466775753128174353417450850892476918810650553888862676116758526919496990370485564129379459720693850321862147265932928255966094397799276748750226581727773763365055766387629809969057430462990997324149998906312521473654039280270775566993380106565972553277287133642337499603962610467205755548504070617392880583926568489425770713584348225022954844705176165216152264648136696149059746635201044446997709852552760537429945217081620139674892537984751559851192186749427069735822762439304872423366922110547772332982217411370332736266736145272074163416832730594544123637408126111852693952596008555406615763368433212735957194491860546577895275222903739747591665553983672817611625150650963118762706525119473475579283159897806944758022777595141450815784371803760533040545760090666614222957069642569251298757764068506416179573098737299483558919369463055015158451800508947433428395656385636353451732705543512332129647043727498532908472984434093308873032364553639282652381461357517442835888432210114878099480284969670365745971153346683566365679677723423937085719412660082046670909009501164396576542342417568905994183810166950246588985120144387632826901627008973707927714667212269639659078037151746853112918400026956443449229104161414054322994417736245149586810996629081924085574503494801092567377066109170270088811313826638348283196145009493069284397832469210797959914294552107890961561410193959675530221351894627459966417899930774044299103355882110968435532015490998339175513883587973200365678098350774804558152040968117247520938435577307846609977141389590417779072732372653722920982163388737001889635087184269594779713418226409266535446557778552673638395744530493476692203237081948550517990587802982938837859745968655646073324053512886939056375004099492671219637708697427574992107680298579919227374358976289308182370231658863225729851865690287047916891314393766998976310857811187658791863914676665204275169569863370003260362514013171842606251457338292686113305186852548157919507187392915182363876867078878814472498914737579206446723636440207925979770980934349345901051280993939138797116807977552001901523497438390845279343500473240277701567060887675204986836643303219788114238863833985649943458244983906297748536346818107794776732165345543363039346316623649662627229405244615970578628274465810862934659871098140761251980957034645826902552732314506740723193801691786715308844450066907013860604958948794451244000484628263031008659754991048868863888611058946838203552260969825081684132127963314390635378510023782239439347409885175805644537088375191677005293792154133139654927552650005583480651951770421655742427147804593315548141056141735967086308200356302941082956316260097980242051083918075226772664690373760344013733405593286344569752981674854973617856812202584126556249675435941946178573947308519144360062957643386962088232297948644679510502322447030096693929632591368095909266264771120640115745430375185343989824407169578236189231074196337656062759478011376212699966417677660401831247273140345924367822779937701861408908572324898177105088663849386024844020005267493333532127041540998954742366983068985629351745962860621209095955679829986766870586345230930479482925707210032440533554109456365133843269706603479098246888527148753988713252714710038681372738631223052218241861451974807350473371397489615812787705213007035846044970619035324696904033089040663354113999114961926829870021060307681858358542061753237546251977521423595101355159914091960378227058333853728820265475969007122978704692734122505820918667219013532426052542331392648546368712608226261013801753556361512969525956147714291791470161722103631291619547788271553644592343714722818315748799697154091025291244516186705964645555996444932937030103196072298602381119761045112312218539241915940221605646977217177394364270358611174275018560281081059066288931750539403475338790158879088604013953417570042956546121462617456169438096632216935408920136608437384706037406002243442127584738483193390582119495784866528463870883102769636717335928947593866524456512585496916898399510156237453809435117099241461906950328125609261258052303050637842469041834715018824961913807619281230155615951456284825180835435567737306762007901038403698472175204062272391605116829738726187535030695853308503735775660605694713585560589726532848452577471412623140945413138363228230495100985419281300536339626069085235684050637743238991351099845340823275962425494514354164061469740115157395827523291691633956741144849399775326607033114300669818229173695550854302688180310837545364060251179710323648577319630793923607875593388761868366456000961144196662591065270666807449869492137466974410599749406515561990797209913958388939211358729978032387644254705183744221763390125082662070467284988998281818213202612296705469334381881059024130745086914991776210774250314672691598704104794904148259332939714666113238631943854228076575854328553526225735371459811471263961917991142626598013950320292857422720844003634116301288959866311241108300778974834724212807948559719092288817182575594221986012326808110043227418910723039737349541367452723557171145117462709208501524513645363281213086116824243026066125618042938682466812592386986692964626825636807432499752457463926259664972209282196483430453529376622776324614174961690422490949113112129738267159314431700405848752673582400901527400594445292982800448150894343593128508778288831284656419818559102005104315376497549254555868749241311431500866266695391369590435526100155990506634884543150301237668124795459593174721274524257130831323693850187169824333216460856400873165683177751804226402895724332469502990924345825597650539904669257549649636759611207975643399838277934283225884158776589686242790462888196396282633691575934619826266297051963944256661005319269697285096520173335366082681272736747510514616350383198731234213747477803233367007174555839078937022163733469273092908546371071732751026678666398340596325777034282755419023941721333762086582351675039882713318926391650621345031675160918682420359261598740194388426836193976087793342536015377104795735756953273708918410727763222218741157676463217030638786252066294196790195004525488994308128537679873605082904323373597331510806730558384292274667330983306477556471972834841186700430398731792542136031940919124968788194654843654522002531043571105596520533893181634004651289030836475127098357474050273486315497779622914647140640933617785505204926082212323087711910613340326499503083271327295239654442378247211907857352163390425982425671516183739805401906707250228898509825183536555048068099561524853452647823117644404593652930528915827874099585080824613722567448433901096377594731766115630123053207103897182875111598621266706762123997426761613142978592406866849206992969789062108575649963642552962897757657764975341239570935535583257426693121324247914888387869996431227581873310802248347789385014965377254548374053046623307034406851854698419117805089681966337964308542519240968790417349208764974075124500142863869617377669170168540727878527587712925456707017423167942481919152200818516992456514107941174610906909929993687266542425799699057777709925436325391850045600341932308185110717954597321956260959389608164732221088185250809798564335005173972278226595958917211843103202393663452239497208839709348869602333318590653146397624432714173768311452923205449769998394258776821784855307956298755054009225511177324808919689916669516076727959183093799390998763682328954980802791204928470051411388597460100552455455008879460398096167480220040780616604210198466533895600690337787553384801900624019791203528330180722930605072604823566122001046866715777233321928086607218034783425386625589962508057292597137371739747340924078845820828501825977203912313869196465827917199671693286597572511461321791432470271262220584287781384093413037840595158954348913407621490796890698734558322251053327044954291301403911599362891483353275678628256630871670262453094271255653089848375131299839363565149083277940623109029618215547566745080338739732934313273795954164521150771032380557965389604666210249865053618054439882070206259619587765840430488189820934083769905632865770574396680086622465866628239030099390923503382044138192134895540137474294858053692935719862849270838720372602513391849705996806157902873872484437783012332477748767519750391130127685209404162933345143217980185320659384545861264914701330435789951560552788144005860386287512647873249856938188333893048580468799279457207149682176539366106793310433736557667916251140663269754310516648049087003336643254776042180528911817366322930299980723832641197910788812345144091712242380479062718179563349031663594360846850952282381793443794497034277064278480333157530038211547127130830139414324179888869505704841417177674134225561822089854119424995959990049768195900565203780807516325050092642138276519392023746754933537752911994257001760553029460737070112244124093806652305122319262503386043072560360786787780399814663978026397391167919249827526933427894399909271452223609281992272711477630059817154065555618676677930514046754608431751269093859906109682067153809505413816095667479673308645930740514314215647512240473421877983104989791319588269407665553993927276896086016979216875460223866084471389037088508970425429861650929504153855798595105228444630429401516969454812393717876026502443292423416204491226057115313169925247523978517886249223352602948238740457513627476946228674148256579499334989707585273629949156467066340411128275711950458677156186229854978657452891259002838031220991554941987715823399950684904168834383858592846887833130259737671414682880155089896303089553878591900447928579119543114687286993264952845730430858540734940862837650617303273417575362231554481707245918958269974173138936897832453278994477383584267427579154608303047517388278547704239838946779814759213256630563926890520363946134220088529475137076083440497078273175435852924309875162914213163258924715407187288965276415120286305487096374652058427555431296288297637365108745330686148193357237330482411646530047071892383632697750990397571061731006654406453056828098016469658270946989201860476255715314633976982361430435765804925925803730954885333359546260221245305033864630477262627253858273663291702472446360690654221316922496838876308159139974286991969349036946666092658949638330609152870936557701119945353449056297838181524941757994570118029331132222420015970423633762924386926998795478636838664110790129277686926872061385559049650416984161146434821447947054113201269274909870756503314294135783619235155224580002606276645815310484604583059983160729489908724871061903161335622123966707046787957528026862636567858983103964599354602130749927527830225440386071084392789219776335446107690938392703839105444400389407955221361283450247222662739581628153848271557876567478423329182197071858285192759781119897140910102760766596961570558349655948378951668600008346597292771597170800770287731588172851399466671223549188700698967953034368663103245629652761189452126454698709747105497495345305779536901950254868764935576498876076997114924952903375239042013254841812289757678757790986204325814988133358362469367598080261638340130031777443655078303508181186177099384653874752842026153950338417534425956584689908133022017847368184843791964723260245496545844935036992985956188411969555855000510275481878760103224798133764418862702206715839385902060573950331801120096218236602936382060133989928785655816261757303337908412714040470245713509823142889140375113780176494371464082705481963680522801154983730897807262656498704296310946537300106475451915965828339526613292994816804493825647104966609888517475719073278872503342873986478002624640349757042729524467239811347446363971802408641448720098994661571429571208854329390602677816743265016111013635643481129065480408762109069103785439353990891400102958939090709923447052531024120850725102531579496231816595016500150870892712490808440877927145808857329330994075286491084092342470723219187452650717462711472188594758141235126540485569032249011663322265433540655024639045379859838578150428127685138841093516681908094064026376827828323100804281980260733531888069853979991851116490470961435806363014922859907828175110632944325433890499679865248699924541500128084612278520508699609170886415239496117244572463870807126321067309570706605250288657763679507238398609210649264752413893296023917660061621891728906816123604009912320872016520974867979594836900651716528662511185387329405153040559197866454971731198921336308166046619399990467762642148367497687830918599755607348159333349438573170283554518456293213181602700271716947254413259175594872085587726333370465852335066295452644455230342176010700323806239668615490291718985558857635859469265978828639659622531207454855266334795333846820043774916648573954645134266078276082384953496796466590306279619734372662218097181538596680673939574236964370667182263181741482511702155912762230216081429243940426923222386875417162779904525445180720217857780562873079173244836920562475057325131824526828864482473901338237323002451986882931199985926785960249821973367640633012061638517076334119953746965619462925140049122097145308656257079897658197144004439775279956111813054471872878138833755596229524008763369463742085611175177921976219754000399743174421009932012038258641735783009435008187326427438084759154131400940732462946760996419845430089283547941092011799905099298286383090660506439304717141811535497066634846057851587011870790677734898285265575556012842236819172979053932943728857676727106632907782538462745374320053248930043722098822665058045426944335770971675216476128501265514957895763451023750469371372265180718730214257138531946740280492972421186827647548188897234257385671217321518975417879722622166267440993540652133579955477455987415792999199431470801234669621172161336650489962091544297190683523256684800163353822901965589754353115423621195421958347965027609721065384475044183915259504664895837190237742985773682345526858349854402741149085723282227714705935939276546506869845441159799885302023607447527338087263192309905282079835661229528411481683460015784356250348007136751286758203789745609191266810612779029476539256164607918871003907821995914101133060381206035624521424861137268939745454507340551381674210232700818068679793091801460685751331083808328373211158700211610434376130495503764808448121796492892772543856979822380749152364251238526624867558868949903260909102627981677360095456152782269312249571192900206173948854445199308196303085331298594073521272594736137017940993881251781866796701009107637751146484479091865565642798921470993033618936321796663958946472763111992166597737292924075799950473416659798274048318854011131569041174839456414527564321006770627282069270505710061475408567045392411842504568560741566302735788958420647808858304444072147200515197803969958971128499182565738144795817653897006375149219648293665491054826612284052304915334269223421519568812428267236520972925065316985613133670583124922002076520473339954680273209234341727805608501093740478010638414083829472851969152811620846297278085383738896490512985197639327569182566151976985780853821280824249525037974817718725379360519817362495660808233307660372704434783168328411360183480491562733310589847638485255621981995033047975004992989394903548106282072208606454155556016710655060973661373743929542314829119882136327216903600756757945988756936359736531180056782183831921354548396060988020828467196564042196580036193635590982748154134380599250509038566843189572557493887980908918886175426554637509806292187627448362497854013736131727180241209934244656860890015744607667553710850187986413472775925758399764853758290616718173546312366982897591923318990703285049848926430039003211673999094745411705338420580547261037336838779831785720356210680870210197918351499549234688881165603467170916137401139046143791905638200157452557948673211969256212853201054745419996116424273342928743078493471075912703164620215323393964228345391808293685438491743022155171431035480796128264101457602517050612355266968487696097766206436613645214857325361779289480334574108836037839258934124722264640440008706732618340958633783073579429220080389239278143992393032358803047355894431092551150750858374652606982128154094160160876552172048498422817761539437884831838251912040440090582744186503761563210783128320451448688828351410358988644518631792167016285919007588120497285079388839899579583104584935883745529611063750703705193351031808652120066218672949540433326338960072276092664624877895719607513246901772525982156525670735428191063545328881858568549930202322430815021536725876579816119012970436796304447592049327727063131403717731903599176308669886351000691856296959135413048022247599766947864503013012518771917039127670965819286476593341690685753192018852488222507615994868663687474452327121289083017289150231837639483764052940274641963013376753549540986303708510954894072162143625350675019874513102107019333404525314199168148129038701001892865591653580241112318241125355453337125340978675191447973539639676311382270110964510827268596339760582384379727662999536428481195571561976808621168666102048407187159326428974590535004734484580046606786680110523408386478551183751440477921961470741761563551728572185412415605503535187802472735068557565809069598029767262976799348672042482297032688252048868037753160270512064745010503636326002592076000290404250658913361719290147360066001764332988558757178762892025651007839243491864148531101764065118327073902280966532715185927196224976687613728766583986165884899624809180086788187711163051983648830717439297874478925919108828744776981892491666266557443066555087933178474706913977269127317889123930662743027530749367266503214039442291177351352869657756634406764903297998980530570901698252653124736263331223528638979136418694035787421135481091245115971193528520958703826849763441179128569920977218914056154225678368179127685239637455649392960673866578870829914767550790995030989930913484956407061100224590428163065861747752529925623768206633035743782037499351129145823776155691050392922657623709168402098773997564597082897227819926658605845533123808959062736414840150121696813259599136268772520516104455830266562236109469098898236115386014616552569261463975369017829305772809548947560254962558556051127950116981119381206359030477830207771066074098286455440707453818522517731343766132951306455031551619870329923285695748927444078343263567705209964088695239493671848011733180855460618603198039425348276375852798450900020510941064584084138469440201821524305217033684287278253393020282385246911384640935198329408409302478267810153092285291089807504692432249918975321695874999831856586766370743147912822693778796736237269368176261184428043756266215344203801046605120649521006511078271354262850026715066344010675898562027337854661232950799405924041529059787519810355520426877262103362332546015723625332672129781772603832987158035116250423661596741348080842604936216703971021445583174012492195961512959604261532054853253225386392899558253229139483164289549485261623835404710977518932786020498792825401245572765450071962177098969204162823946902735095400035518711239347064136405544492759497458044407356860531159455389813438178519777983796437957312164591603823772435286345538994378889088413010683770678030363435434917068486582720471326952518490867655938962766583601322504345471347913996217154970490184225622880416905950047011841232469655309178195085686141031448078058634429013340463499226361489727242955248234515713414832620668926290657805261152177255060267723523029084944564667481057306316965686258799115287118803967579528736778097705634429382219434451351314892980731720787192349277230608839175873738426727029041184860958096554593783941629654778729920214069625369697750393800954142050852423635100401115431013749021986728806742978289593366258533415657178053633587918845220418383646357047814479703161099649477290281264362484807733903800134055147827283651663543730848984410239797948205013289531152526718156543887112467938252716604254177894202532111509286285440353658036619468489693420467963972048101303344053005297026919872342353936096182056453822533150480597248344913174885769088067940470328596460412190752860357022027007648754794776418432929310634440715478767301474273479857759113886987820635683404722251679458663877031957896039200836593169708324075402187838354309730588881284777134252588194401034052021736909049658541003123630178032108207567948757711796475985785116036476712777288678354801865190579866364046154586372878492150557205263463316466496995657021634784146030683987411743943387035481575571084245171340582443054238019844971459920808051482306388375176577314529812690332719132944812308343837404538013251807510420042940526055005542630325328620702697351508905084328547289886389234114952039056180323810318297570951475399132673949728740096651297922559705736668455111621148369940827439680966868399291562997430256106516995507900860401457218420817277318742333104360985921486277211126074429691113987920132780440080686579215972339413048997148901393272380480251927882320608605124706831159387755334377760903736245194468516149651952681409160570262913476093306294144919778543583889835342906171422342677262845704611627570812038929459153170845682063062788426246862478615653609507458461322377066535973531393575603996068862442677769325876935263342107651899894606556263243151574786182446130442677977915083126823775748109452705250506190418583695477582379238417954164115774478645706772348357550000076626926603903651649799064251430458848173939198021468690198401523174737931604549239977733825594488268742770113027422311937609882731298390314466189424014639827013080281714882488842758637073540015940196422230156528511507826800678188557735894195242059401505958747710448427149122326946466197897196848136368594351779685179437212965831859726891824901840540750335925006548733186924454321698602480767010232198038910273953615982695098159280353555298727369553705625133657396039514159145296724097323018369002247403380594173002687699388513159220215876172788701054489380558721907215179748805187005603205622758768503702317148417890090870112842252688845759821870529736134537961389761228802910217490361657651525060410218995617693404885984815418179926930895008000908086843651451788843936178193751733422648424200989803767950171529484727136041462762402366876224722621494389700880476902717807612797682815849018909493070951895403869654909401047595233061640697449360388484496049431197218753227073107043328410087646158310020227314087178546668852963372518258054480579567149156189131102431968179289926458320927520022902901885904282796394398089446910594504946422867290593079656387811981334053187544027713211143285750317854021660559188377421991093451921415192051170422215419026314267477872287759398334663366240487161462830367597135176847032302052218045335789633267056971938661313378966720040648380339496764457043263263056750235027708780718177346449583598337843642540204838332406899376067053560141469087469659643494658073211978915460093817029047753838722794879723833139377176635030117392542055860924891129670659110891229323330893599984930195369720786504038746634978441865586739403050173424778419020775533388866777464502846995808146814322504217190692118399315123015334663766550037838434407619281897052227168335278779719239978212461929196236868021987985715040080872213401917441864739507235186469430733272283651989906203248422915135170378549046778428112575304956835710076552787159873761452791567241199932807820927195444798900637646473572430916697707488248959803264553480227449560697156311287211172027784148041322373356225623886495121406620179149458544096404563017355754064716691636709731752130561647493058222881983564046022687119689208100040078166419031184485566885652317275639363432017381728130621067486223332524386147412921087105172509882208408846176266494016186373353495145243292283388546845595345860420111756803954303281456736889623697911460939900828976280785772672378600495471086101821083299037763069367215336343824640166526325516275074465028513483474151266549862204939976586934565326876262596647572389693800152063276541003516182702253147395186725538825414728989210728777885813799450284207767367383107872045054429362969610288946940797270925413904302279378553396612084580272096110998253884230786279740632958663585879261245593547452715047528890515707106629341731696162386314553857497364400183714442209963408798648455057593415522591049651776862403324474419743948047867263982393494935834502839502777702542260517305843330983839159545495374447462345947848414290754059911568303288220526928488067569907595227074898207207343560960740726465169197080665908963045243870264447504779614166191712670317444345059109147594742432586876684361318997885308335180684367306401565970592900755557389985785424686635011877268283477341938906689686097118496731499981954439592020664094459254162083593084693197923239275103820304926034553910089885135553110776057107480936941895666389961046100557773471707363932224539715386092566665321205725615208632934838024457523303503589095497960469043082950193964010727322797670002148888700352737391881115309245010370931695958424453878626224324412966983501332001702127220021437677738146345461156074065092990281594923009212475180188714576284326844215386343609363908794808982994604618501906766019731596007153265488257063749199441604290399789866430630893456588966186039194801575792807366698277908009620402072229719900890110429721493350992043610595091745015467786578776523887841764634017470465955334484810537850420288367970539647519609189169465545762190741725349320527228951774162256443622334447613420903727809939961325682453336818597588361668463089568378087812454209102703980850935745475563880446673753339476775018062996117486676078653508779840452750132549885488424936133963414638991699620406167617433651596849936951559956642523770017047632567924646162460379174109704002089037681629128101259226331254355063327877815743595329167230854784712329641702709567443007193790823802324641570970122547488177034994263918929564565044087189552137256709309172159650392928406868059810444492576826352479014017451571738111497411791020466435495392756823740371850631399714794861972234266837099926173938139131107121818147066681637841580874130998904059838239527422890820278743345345295107228994092542804188506656231650636838217920009280864055588875165731192053360388359181820596757652465421399420107818804281082611051400651240943827584625443226470806592146365782481431860801509204269205503096485765360558056791173188417149778956009475131562958302877582205388429040098902574507423362490399619826874217957354859114204652343906020083000072867627309498511084829092858146227801549085837502917784174133902527137856345257248088984866360875008119578878938281070986990777889497686021953381030841814481562827656757569497233979167992323694739602152837346081723227579348518833302894835398381293053912571920475816301839176071233584584778512797020123433230107421462878485785830976403761914378485787283013251040746069462753697739031555032714135856718502302429735008255894249788187168225054179983693480416428252967183085863275493339663291396430841067990802887373982212231456471851808472644293760922075712270040005062521652037043042656175291569768346814170964328861557885849887116843957780162055927349201608587760287925445703740299694354063570325014058861743438232612641013208321237581196538727974823662628162124945603990357344838390322772620225184847985304260174779380373350421692685524935332078043742222527522070775136264438322811073201534470906328715871765821640750965917920800382733906133968430289299698011637665956360319878371956356457127734978337782399284914210553619059857391553046411644663720930203987145577454366870606912178899064883341056038672983522070041869822027545894525469014027287613908199301531768632806525749484499449878656441275374807725761992156886202555938713141670393247059093549035432978252038746752056290055788246163509708180855823219353932099389702731472362025580067228334941901573547525003597853618732105150460078243291777844407676658327780252418574078782847397869484697340413284648737505344576124066873531910153807236537769312351382748104434480022675990115531709237908425900051173874658889820012053031581959019136639697512687927181059930036585641380141550153297167458241624887292419725708749902481177809626716912722067944003118168025464193718667674080977100794628560306913350902767576247298562327766470110487954737213751525353543824320000511680114548894935095714038503841174138494471642688276041059432719601232837704470722689136992570516143505202218083246344109618216268254780451348165265599094596700495248231226259566045018302011064501731837875020891111712794858842746841508222419457025162695957680223421806484042488808834378623136117011959004420125526697247057227892018629970139884327209096719642604890760581048398361065759599507367180704913998648423181318122110701585833982774773157682947706262644185259861018459207755207956620813426279151705881484980440733968020325811506854580773863193339915889940978609156639304783315907271228248989689916345780070043529742560442343656026052527035802820004471925720246922729221703463902435653044076308004024581912453193124450872284197227278414403951343374797891906705988774138180473055438187572789031358077740014506612705742862444659578292787289275329032342342546932296591931953183903976901056849435735077223690345594466117030865232178943199031857132466095598957913373275003583655335506313155824055025099382375020978821195828017593772688264357972388068646765205997411974349654538700856270988335385234690246940558320813276092538409322275352070525534425548743116616093445723304369000661810106686321680405724330666592070650384577008569139742415956161408982124773444153174932348073783811712907735715557197726535101639585253397703589161835025910103847862003935054701262172661998490669664475985303905591253264937230081500676862304805316727321761805263887029168211107769970032729579746466355432976199245167079714405931239870039177379192271029855473198392915444956420875601251733924581286807222746107766493702506334409593530546306337964934048154170664808017310999963601902173129774495668488838364384537840700497907915123196919192896882094692960941221049418583125328303026134962324794646438240965774861938320817582059530510625113720939802391470012428903569042077284202935264489635596808372908964307485007849425976723420418096826837218243623624539621991909256914694952435802862187097323923832634135141606345952051425558881236715103706583113495130532632541127744708427586499160833314773189150552137446091820526336957777084665750113411484707246925632547172329469661536265204179741781188503651992790838532335384043436228555574710808743805343126449800473398154624315448509983044801461165087907969008166150591407250253935008518285612551687010021991287308311094798581314335009780535476194201037904101894249560002160116356725021259101148300517461556965008879861172363096140193953987841888095464816057177669396975550859496752169673076830128474232005914035629712205951049493421990759974857425181658073638165811659278022769806532566583115373581481036372823072686738531077125681594794135202923744820559927782734502453173565256920916250874044175281407127588844642537238991909651728802159557446027264405000587397757628080333554216265850095284063940606127482597654919521817132571439461045020564489634734239437518400670368711568951857114839484592463484319698384345597444739636986929868822622366537601979968957777360007938765942891156489628551757072511649121425944158763191271131138346819666133229930927889696162794295338955126313288009624374570573760460305086828623058738013396821495798003692328836577448646924326034046896514819477797759796426754002325600179146779812200013718420245239474492027186380923203759453351149377685587469496616874945806766814076855960255141086975302575714604821720973326880749343686983960216650278734584672631702926487683327052795471260362854642286548564894936060381734129780261314923310775365624436585593573684937781068881637423162560449326300347892856635939347376645449819854437931117255358382332463245479862866467959239408440114862332329492180698667043057357214923225244843184198038070879476606328120004525339465325458306546646683917938219435525092205700061557271040771280966447940297060485580370604893815532534557352223290830296800440284805703732680196516968671244288118900412343971324466393473412791643409789094189384624857922530006846459376825141922588348643676731281634073318246108411737692203207153029747072805895407221127399654006536924213213302182151405630169752595329011790206658274933214738003856481946040871355571695389306397591767251848846291857934592704144717380410958310816125957164803660987815005388031153961468163611251013814963434208413717414120713249032781119361196981371370886956630462925810725580647024043730320875719434874112660884811541781236552900760022912473959723652101078355639583657349966471445913032134170597668307056880104564706283298761941996557908409220402852697507090851647257377739616343781873600438771939314785323814591986363154721073799081433653822017904169613118044880333851423084717997430802066833340976384903959015709028199444143998616549457857120250236101711681260787624934539860643965828349314979903143334859772554553306408830918503423007093862758800780165192866383202603901952382293826558429595044776390711041662171022634686167216336183356647301604013901864813016970821718769890807247607999535045223400422203477475521856777243382493654289373792274154413733555670649395195977216600257562059990525592554825231524261205575252156865749771126203778808950877108378029519393592375572880536162638773757487252834415377203481393393908949212091214232219840994982090706163362050495034135408359293263134159001195789677964595913411093493043001269543215899415896725083025210241171533178511361473687378045675355585761182945829462849582020481286912818550193585172460170200934687486899795605456313045438554073234737134626628169252778391434534669573392969215258418406277840530680489724695697641085814624241574133608788651515402531721133092196226966121446158689718744827967648104587564246204461689828425591837024998562531811241776041554874327116489090166092728784803594609151412995890976176008329133829271272859053899015215910374348968129179433415463166466873598488763144155067389724692675351296110934831853686455410945165384285907848129084402710796827889924210469516008469096965044640723512631663986282239144422970270816169754296289206165548540507484244485593085963511807475380722627775461158816294084700659048145455424938830301690320636277960975364542985555058954783219271778867088680622057112882723666027869600979691251715091575203841762602487589456004839114901874774539317549093281595181094872679982710824273341598684766940516227647757614858364564176706550665944378561971463732477709650833173217603781418966728599253832832339417224876137846262016352444078906120884190210442192993234971258835993941312512615499694042563341224149707758259676532289245624722193012003501055789021613737941232535863339377145204553295167122804632678143920603936189529147612830806094189537564753338453757101961492288763005397215648850516606021547195055192006075025910960792735138054423438974305368044558467928886674528309864910694814455887951979478153550545667154147544311968237080125017514816459463729524336919700610423862485084056074108741099615563676559810855682429476623734195650731148668688711471599360826326396296962995469509409679695742811483120070813838797534232613313338180847410763399105652589524814138448595386017500746036926112633934567564731670741391492523970708039940483528613619001189785759328812931130044592687203359789165027124747857739320046058417502339598440422768353177907579083955067528122536402971791757945707795409918789241671667603169062319467985138410065273424822736437588839527772219822622175352562698565758812420477441662876629313151438791595067517942225899644635167922169418071280374768670140169598007157829037543052636442513764761877392303257799317125115877227158121260125622990331864556073447102320180095248525914523333854187352375170859267417311326555055464187169848241830182035899058761967119489190072174882104448189735491594232922151924169174780433320711083686585312241257656272750256918767688518181965182674179584060053905127969048786796699244433042630002534680066587773137010348886006228271961367100310839435171044918287378321230523535485383434561895725204277476853522253640700709528624329788262972118454000803513818653322994211720247715745685055682682226503316755870735421713198033143259183998608352088697763102470865816539505141871651233570059084642271047642685095880536980423176466906253554042673109441572106231635112855985523365964102707038693901964955502445977449710472927822546445709643589736514534515234178631139175606093305034806904848699949575113192602859552401309184132755418604495119465831526324789670383590959036675112998591516180325662847198991320016897869630601751178657799402367979376834125621900210886011189884322786650665623611230036935924007818592628573188835898671212838120379788796725535983029418829305522537479412323286974845968420691332967704824528290629579230541612389330766736501667598034215076750704858125977524021986639806364579404213439308347686388523098138172442045622180850545071470040497140556973373237870211084648429085680352985575469182280073457217027826152910708954250718127899055973472451214462019318744552237572451408669225037224735572533130741648837796680982062086879691213410003963720206265441886747929194617041856896773038437208610051314541551045081823323178572510984891479578193811202921966402477020391304922875193066645853924675017894406938193599045424358752706429157673849263804592359978536639869816205109018478504383697027785076150491212836913252693822626432227167351948622413818872224686968178246711559456051712850957916597321094819012685836028580109322506542117671499995781173828183837883659302187216679087724146867111177659243701612419942878265702631717081352754040273130100344415195896295719823798944691776398017513718972669428475435053347783533091438074555254032917894567034360665124902222270592368750278376658061132257186617203037842251345324672850799833922330724956221320689009699240547508031087678938589541585202356750496380709753280936932240115055204117496936476590430300489616054448263754918989969425987376033213104815441791393271160138467990439033782875218568564353517849067795580898449520134871913456410571629895184990475834161562764338768262545592577154964334454731701158640301000293777064991557794224227779486863319026541292122688418237369684201142296111453440612511254180995510128263274423536304148234683810278281647330040809245028082967692178692465173498692613984177461060592413491748628113210839868011078448690301940986318758498494942805666776417071864566564587217497435692395772929902180753297662006161457341144844188018881128685554221400055633285679350721939909554668442001547465182286408516780183140379719926323336876083645697221453901885314670288378694301006516268313153013662904637938940242111023507556946308619643999516936238385016838837786211495052305188317654772944972216543461176280369048244981575414730520567668674261162374133348391197977648017169703214341730013432938634742973162114474576129071419036483970427781880291408058117303065736154914081711314322610971870667451068866388136750733841812414259807720843662858912765787628991253365544793529774278381722700507723208495249140438950825103007490689572104308984569583858928979253331148390159349430155355295852426842073870654227893281364267237628111233047133015388865423140768459549847828571035738720868966164971443213482491461424331698328900380648272624947420925357311089516568911453143231761869106719929700522614742824445392723540750604171803675193361773750098450045668789076081920058552153027120028296999958109704870344630969084893488417517741313103532927177285528194354283208688963144267912154081854166907017323230381738913337398021116865269210663636127895490470659226240596353207665581335738600526165134889654965319795372714815007516034649811308377718877002756194185490820263947031691679005832817337006010540877430562984498452604763918728137658147174836940176456064369841494394591669728164454778221753402717053260356979988154105393339350384668119023371394878616517058473588335774288474997512635164180126713451916437838621690590312753387862567024293786953829421787647203582209776741504056953440313303958098560357212813341128575503027622614071257648565820205652681517306790136191454234100371647326819169154824185954025206743189903282560752329852848289564857208035102300633384350248682174757996714866465817468320735012759365470537442956009629791910363773413806346484629589015201334293830450485906891812024261962438536779040437138605451251132059088263834960943291288273795522250867387176084620332591797712497032512680089446178923367624394039294324995812637634853760118531102259916925046101098651286867586609790921169336173019115181994122577963525813439298487776994677652309249188681734496004324449577766968746229732803746626908424769367133742440828262200192622682554353425229822058268498251876045399762716397957697532678524724007269354410797059625200574982866928397312760746694261289476208951581928535804149285049765461682507068509713229438116213124603159278918715912953762478012703596625684896976747910202570047410365171199231672479991713099353832431378529126453312089150495295739083795044648038651576157687205652386027636843898128725020405133424138670416460612179426662047221929460531651787328712685634703952792179019785596646553250764362955694839114108295079849255045780586521707963126005585659669641052808123309614263175188686787986195456996460169518399931032648911131715435385862525840778220093900436973468122845796849490436289261207832947165562453510093450468455627502693674189142007233552014239907826666415217030784178557237295412777610668969200523814053324546255539293963675418689257877565795682908682318288746602112862413999554226675915832864528442416704621149013190880683325898646704754418959496884811798433667493196846475589242909331200757232274717133224872699028841630576993748553359111604432597749898301426371580314409403687725260422373401763797211631552009817299869448466846322872057840669280086104792585968382797924474672208822355909996933508823807445291504385225012134996630041074254215844037928404053444128677802617543718953242303587049201011722481765090221895852380361646237683745624727701257440487028963057731432604278613573072395994944027699319235022364595883926275381558013480047802570527365148309107535158527385792936472247735203927777582032969889175387544263802565358814469538044495527138914244587291542015350890409445923727683779038334134516543142210425798573947488161811176018411739300502616201048070815793580372427880807468902189069544122895816589101883158219721452211194143153602175712245386515061956052483477087067211211766004971644419277641501973525972922729523092987046397170702256008938686659849862112873206735008669673597381195845309178325493046147406209135556241670703707171262302296464330156297142209609312421256738368553994234746726485096736389163788557362580461914075141575024890485207943754096122523962896457707473115819506768073314846436337318718584843335056289793250239365086955341805867189966207790441355454719662859680103044243972928323717731048414552124016922562658377980649729040784129356674291290216974138184839453246928972459788194637528960218255784512403304392880757463639076397829179054964732539121287307205974892107895567234646858557817343137717704878182688235977499271295265083203263122180378552958621386992588429959035939209754165373342342111882580751176993146429359885795956076187370382843032872310673876438896904289024776999446631614124059170301278203353351997425453640744009676960695683421832169926082361319847782839130203762626648275265660828096186148101707025808710354800300064709726992478343839124211329865634208817878083320239307093365563453104230427096808181650077091851651996093211298264790422025602352126785100457854233261423754449580384465314027330302835934384738895323349846317626780731607231757355492356040115551930387496996893990330413836675337116725582316432403324136629346052663779099284792177071261927141721443821649416547199660948303649070311445633249740844820785617255584044104114527263201681560322952775544908608583466577806401505541871517418827516603956225372044629731799415884003209411829335751932109850286341633543454663087319127936365387352443293600174467459738716680206022050667435282697205717116917781135870622956535022876246179980141256332125711238619552793765736252341647737223523549579511357085763369136111523114935184138528968928885854895348869862482516736870003851689026223392971794601424743748944761372959233838416862283213518422238532706598608780942810291998071686777225085377319546293656657689235947828838731686969182775085362823236300264376801662536488134036690827710100083750290052496106933924158128481647909971373168500459846217066132233390416476335416406684704717507148815620204412129350521082532928861704850682128822956968196778568279277501061863555300454431289287302827312765609768644264219380652509766894577535293178973413267631291569783480910825695653359260783848212546289135202467427544682719340067334955703509312256010924070104964330631806173877513411057808292460877146388638927364121643304394283263416752632630732197813313458234454203887957299453888099359833197813562689455435804164459328207741966891976705674245782311412231452386640132579271649138699410376330299949026641738509307354405870730908975617292775229491410875281611968669328690058885761237144890363961416529207399672221844355071485701948325914131833648283716724957811918255974227946812109563175907411308481252322483054239695689962891834945943915537349505362769619478436706418432692845217270710258754068451768326897925678095586350094550528208590799919865726791136370879337491316810039548820601483459145437507265086174109273559487961190094584382156055126712321425640589158878574962523855721890627660526875054878446931487195937698819464821519303875969790775566081199877814324094352240254412258296987753408614772951526827048207364428729878005141093292130199588326575580699475290696133770448957397960486686837061089946852284114501980609077836905754804945693615778875003606170855824385608014319619605921820649829202162188249287937304924409370096021345766509582012393201231145458519392272205698971357243592284156860735489140548074817404523457993543772742436145796925686501260037919297796933771974293718735663738249980266408195832066508864654480538236624196847017965544520867085088781393435989293683445944761690412538465311616272983020571696243997121712369732854191073905224858287324611817183953284210011543288833095896480152145515727531010772505193689400466097994257823494508938647873246695115392050959640321918998258775994306803108757572656968798359577105532412885530310872008001250710896185207786922271306894187805991495200662227244389174261648027423927249061041011938376941140849196568883887079182290314000144793688644720141735802848865417884239606005812247580803537441859057295155861905492164670193748095758685137642697974544897759333914621445513431289867071607854017051223899877962506091322938219819143104830203301942625639577863992927246815127825730539098147235741367063930507973765975426829271907510883897198152239009785031854665254397740919250460255184584134246389971860867234703200820697731660459172708814759989329227315357635038817439786749396649973165076721287639627788005277641640200863246647630737325264066560841726371271011404723400053034934561067917098488081395114424436239316550779329760262184008705573178189330202581288445973144338153168632164812159343808880051532105244679762147621740160440608945550920125911445882028809583489272600885689053210864978871515099830550756495230213543330883472135150159171488135553690957303237096229856316565888121796941879105681509179017038190271118455474752321764308142563153983761499420560222989557166372515488800811138549570212684164767501262125785361199627888551479430328402154309925162076749658044660931114126704293245266947355440861793929035848724865287226313263554835013687692080972179307353452933971607994713247813336740055105068984082111321247468709083484933849564159569171666243280743675662221143210056580735084957395961959656526212570642713758050782577826538027329744891444659121231623321797236312604064417435318267158934057646213395993877229687765458175662284887031961787181673537201325845578956826789823209689055012971257889820112983381363794100976921741197870061780461036373343369763006482135190957799477571595257611869745115433035308862703178945496472160270246969091385957328198208150586826228163001666649532657265788579455890833677411931693509213721228311820368112046186727036134335668081463569870610607031464755062829978203894717163968842233871298478820973955386921542224090765061527991160407153443184789155233853872183573216998676704617497119177719129090725961596947098359801524979024477136456765871829251750341281682579894791335651332270187771520703155415094135232857618563354294443321935515860533032852760037125133565168699499423949141199252149088721363016616659019568153076527729454476964209183546576540941608470321844930703095329145139351025705829769848469390855005575169470786239343157110167868162717064162595503151983698697483429571165657059521775655746811733091046894853425683396504227247113125341827519846432175478493360537419457444954896050998770074962264386262921342312606083600754228591960473976857798858898120161834661695539386590661533034677716521697624679343025089161993732676221809373050312448048341215667244145170012372959414516040874364875027537430267335955553979996733984367348741704808700057639114643752025689603402347840360206941702731807003599776783076413233763878185699440831528681526714490973746150971233324820288295828291868972906990904377672469453047269331795673523239161697067894758533022101268774511910609606536505364683819188416621453099676550695378329160027833841423868538570452652168476783196741251755622474139435043893470420440930549691548540380358156000464141951047349578867827346928192106508332787768427786593230647801737886954708481438556669337174874846637011989517295142079466174096139069416668631045480587631221297659059257623642486607828407439059194064087951888067203684137413400529572539091758105032612948474864327145294009505316853100902973639508413215210261028454044964248510691823116248951853621901238937255602174775238555516321329007685508919554383552476099075417577979829677618481042221466931902937781845467657840884855691492230507251203345974030727163234905568940086729810305132431571226671244533797409546911569396457770551880594112006356361189096453342568215639338036906834962772769469388680884438549881904611098155924833650849703963560181064909999691805857167794703004928327167512264803310814348553370788381621204775321081118025376564641364308805210814906145819899098144291519495050692781296596440406249225357220864560046068094819565326828896419109733813147839420224188083158918567450515722884681647957886184020743724849189577339450397600011216716740282892042909285150258223012844191737178289316305984921013749582566983493521301524638878187671087557720067272934668346771515097707234071852759905593180672373746120733213201273180728415073880389580255763845109693645909810162914065900033316821670785616850175055757702518397455460777093687789667560736607962287292963511493896302674772643479943728487532708501886569470196483556774994687756817698647569630939794204090678791893049105664896607269945378248577128651062689142588470065427473621846398895127585260808565109110682489881598628485750156390071693738458832442159242519100700381305258289893040067363592307421538403281807387287872905230282888342205153109795291677180644365438743409528657672343712591578001134479933907264769659058124308923982777312764258760333440594086223131422031764997999963217311832064318582212177569432867486534489838462099514060513952108847925504004088234964777026425470234406382945808856161234385384065721265018370029659691317059736937670360225131158976014556440673373850708778012921395704571018129522772671160639231432718790862540293846884123033260387194309682052552378558421859763207287771191743532046159965665765095945247138724032295590524954498946234848628358372958769531091368398401912831414631480759490747716586425433000125595111768335732729930533135400002401135492019785022520184681958553606654631456150389520156369974425958965903023096130636778178570758246375682936133576708539798758473402543542709930419711698756832558601687129714829933565495239182837858496985248933470932224076690975733463092742793318362238808388739211840478339546589158861041646034807417211811075056386966280385232153216979303750213061026781560645960655130963088602040016527852032934526604502255757838567352154816621907164928985774593493169191073443330249832347121256419926334259398390293658714934153616266653644755336239943903929788659031113546870707722197864159499461250021327865156181460094729046088745098417748270690384131662552052129581355331105378157786057501474957263352717727354690306310899712920536293613124116967332496903074121465683078076867137785735521003631394121875421363453741788813333686098519564010444984223136308393428736482373725215536996735688279501572283945896995320369491217425997628736130109715663141837736912478678427284109484847019941186626800004237798277452918320173534841705267527814030317249785431728295259375770422420135333438544199638109708989544964428507200650214688782785526445679398261565208321683346366950437677160606616213184040639969958343052644917232811163351768269433970006749170570270281531434838358943832858070322011781741203701428841968763892177772108992213828301382885808351196597395794264793005940105995905928263639377709458222051821942954649341971497137921208117877912968697758278586444424389740357998661845873558546788530106624286581470978069548056659259600348339857168141235835187536151462117652212976463454244763749081624000468951535649368328459570122372403572755538879202509333444313361671549752286220231739527943973454791231452685716278933439559483248171859177072270320464210353077328295990783158717531374511625326789284698859906482695646195537319581508033970869716487764423890364439098408734364269716909074382446079546293128165879304752861400864543300836524850352911449763134390761152168331042476412308311852558358387809505758297711916974881242477747622038352465363195409733577547122182340445550527877799878277259003197368492820893549137617105541309998369495110796475987336315616636209246663032494400109228946976874436995221595978971092515077676913302399928266652148313619596223103197992798466661767327171337360029050578953914336727786476564209046328069285423182910350304238297229601242152721132129705947358433183643253623519024644377326099207370912209783450633651142511942290642034284321727090351000453728756475093302500238539086490175783762421116159870918748098955964216944214667659432149043123775787426392544392486960370419890002430442030787500955565748303308975009984630684786128851284119266505251177063934393837388253416852583648782707637925468868515679018254655162836553586028214842828243180290781269837742075995909810815769252310856873758139842823046903298816159164912301337814984240931460095546326953097154416798200958348334495224843190095944130936954492347512302471076429742301620961889579446961483843318120634941897213505626117101482191461192009614818363507995575546475401167015948486949396416517244886829465265814483431906047824335548079228128668729004338251413856576698856821751486367518370378977979396758556499422585094115692198470613759523368095756379891343557996767568430086682776103967925987151089197304852784290532170773131414892822658567712963063765575611773665082059205086887239835786768007411706443397889708058959944165548222461019475366876711022605036315297451313995834565259862261818596453139554941407609477575067950428679413596665869964062528572691965219108647886808531516516805253945355836988846043093545191024236434240524036329661415506892633732972014725832951879752059846970627270758494965496665689255202883414766455730827848975881547273747241027353597042250679932649234770794137988420340535084263088539059249398779136837162491699063410878721902365989628854986028148706146920774504924548699865053120315465714528270306063180660596457737740028611198812320440244696775174094509768271363371571762329730584172594940551690818975781067508152625033309782130535590966822103937136148265212710431445061401261303968049547916341892577194323529348056521654579388239333192300967742457562638712535179228223459193842253158654128891255107096145146357505876595364533711346208558283504952155947552456170617181339148720766406692008943263804733457978542821904630438156275363726667427784153274713509729739646636077437523075840274607451376435317197230271396032645588763900647457856019607055820281684172977175949768025693528472243835621027486041371817126388073317654728883353331521571522662772438518518833861662622217144526293008191918579829968747941496508313718976121984578898577453062725164812959950673093928355334894947205217370891492846064491942904396421528843450183918894561495588134739466433691469988084289314036798287639081738934291962309535801770374929132771066973621775037617493572211947492730219391421860913391615219959242701860812539409126535876229138261978067910519418927657217757451425332299675165450646870303863494326930517647100592194398968688730365911336597475009081580302586489451548961140547542133826276314406927729528575693795310109851734675754385191702682080250724000558075071355567817408209919033496606961335008913816500121738949809885081076064285499039321260399424210023101691864962234652567182853908180246963549401983850246131451523774151334999810130230615183785394233640691231620090432451586431633155539296587024844227893074608766909905825004348205916763296959624728646235756320864647947115016093978247222013340559422264384787843673078309958220176352597883894076268156360212638440876943636704767460948866727292291239339429107650302205310664692770310807202114549306072384939427699700825330821409808577390855442734115636194166950719536153779828964942931732527635474597486288173251199323159281452269139989203276766143231181908851198144187298560560313398344109888351185774718703327090386663652353255690970777955976531693788573577360848618625132798298162935269341199547601900048180333456066726255927330382603547764010965560294919661756672591440922477704355678324175321231496380676909106408950119321313663792555283271710491259998808947121682630113489659508957537445085419396540197791200856418117072391632843057151196948265774988963599484550352105090538184965004163865432015676620116656419219803949937653960877981653186005266973324138135837545764120976932689304880834870505026335368069718347708198711503419242526269272153457304909271354058333985886481904749241961020761644664389478360150665194196988497504915985831080760139641669202919252002790673794042158210697102969021767459694424188143106388751178465989186755887507200001693521256042498528051896191016709195192175707384127341664944199638875391573074933657497093540639186252083058014368572751853664959508696228485660745686587233492225859771399899998089923950572011594630993809281298969546972868639463335674727855720709662396389520408921845639196557932196082465086421087815448103830531300969946518020367482370517379067686313227377671462282598778854059749409896071782863585801845616652108925052113447365806111199288461075467646154308149867811211303083229755628356983911547810424024171359466907557129190472544811409196506545841037979651517695404518071086715832369655493530279020909678237720972163700975844383188094450448311572258178374772670748681570987126430997638707102036768134787186942164053552195369199378636672869926357728571367026086802844448074460966120027925824933152656939196824086331669169025500098677210952200583891894094994335957202030211608971967011754155703640090576548153623868106649144371309547502012974327943393497965551277333241226913588270735074457555628708784386618822274804666097145685986767760763514643666346377868679496887765992199669867342546011346219193599205799650365904213234458349963053612012751413183877994861279404916071031319908326823125028281966344872113262805697664228033657457040681842827606939240147422587989026605535985994271907613943389888844002295112497769019380563369727802388362504616760254900698205722856362129603903150352169228183582451965755633458589437117623705858564408087192140893552640754023009849106263696201119943815537245687931844312205418713160892976720004908894305279879068034667731863167235031545461956831447560297031719689156371845912634917447598740577332398304346125352783163562448952634965242147123300575610913589763874760941268168014100096754749133168442570451211910547689489178216420642788190378251085240965031282663415974499349482915378753520682124037569424110162642717150494495465829916532416214324506175478526885574541186370952875661125385844099169547243026462420961935331765574800548953710651634527889820513934375914995737141444248937054607696008270792318951218315679870058172402266562488024132360518226898788342488518848771636378909530871450071078668803489171585735167403320280946238972064396608506795273057814710209773411480438242776034348613338831016373702327310696425444401278027441409175054245186933122199761065737802815346573975746490063301189066576898471507414206473768649355351916371713790763249244923406175337937340041324904973770501331559051907706475138175432303707027870381040507689156570037777919578482035910397282775247743571001120500643843966887664957555821517663311366291392863955823798615550788901134891976419870654542334259264742215393917908374629558733113972461327826030279339552471417113415032840402936532659560479432975477761875995378405646856363233401250816931433305654220119643933393068473154690780108777439959769200891215409041595589843783595233340527701196769380306588825752605602768486514305380410300736408598447189211527847154475638415577088419811159963250173523640924601941923756308471407243170585961621002670329627551307655900750725743928693310145948278917115562054378730765937159231740891607000538061498062751302321670494900159306813801457283680933550833944631778043102955992079078950779144806320993478537216610172143173868817014248421063835718290057256121737011820938114572802073317031549352375265593705934798643496227759478739859683930975870023827623893138803221524667124659984364377830695864395066393236693884751694837024832205561212768118250138210863804970802625586928660297695463292308961305299331234057647244628996514004488693822710495912013662734077945532537693496860516666280052199655246393724476241642343005540689627955632866678923698106176460164659209652991503412450779771097834084076329037367783955017948904529042407076691182136433546175214708464250640050875464482913517606411171851471835225664519215860756244865908701925368873191182491753033049561970386508568728043918596578096877476383532758449508839941164482262486509937576564350063156640862493539422560251978913454684989394175878166889456835923140101691682031167419928417408952506865560889917741118434704049939071012780458949103309066293386544313561487265440901140784103869102766237258929679592494409042887211018410572930953388187651420316904207127150712777121385921234678749473725590233636910268345403876394702891947664135968542870120324791155449560918599447107785739571054434887495528006907488032390911530695282583973917646615667528821031502682249456610856616258613917538498103604035709068649168276374365462479545804521407619088941547135299464018002441368950727032692171033923371735697269494064333885375562997682078153283181804207206417911814675882814949414139077204760364314454834652183634126927025673074856260887623363773500313087804427854836262033247066282209087928950225953373040469333272447410460090144325072039893779416855625305388086361277739107945349872412286710803559880677473402944384714591680089306309784350278912118565672232931484041632214755845792740681093790375130353621265452087846551693424759963985348970118539266220508833635982889547722074855920293555397404015433032760112496495720313365887050448669393318201107158127543638089421345410194478945937563276806962238070970961537265743709047664338851002500839994795022947576728965009332293675149696775446950396484291135104120819869166987319888215306453985715016600042020309238470372499186557580785386875414087927608932394858713358293271719794346453753330996554211812189438120733967354470722288931592443625673121691198284096065984528799715313867677629835903610657944868777234836108607044146042505009754905408507586046295336963175389073403725320236139067017864952103984661598582415176309884007996231989431238009114463359037809886750414107483858999120972177133512590518352824817638834951579498636293317477257880375144420289026241593130880642833443001495886102885996372085230389831747141086355552277059169921931176605671549218003161443271390539586406951893628570430717961327088012206740835599716269846960904344075874314992803642214994790638052766934850571883015354412367436967564221101563564520696709143792750815084255389668042032791498449876213129655285484139337245079524388435251397878452834673728988774644096262991383917721316078266714120044880482088771722419241052396788003569907517231969777290190253780921550542677684783328421844767285120876170546948751795952699445442119736463094835525392105547274329497862825951137398122762178076754363542286026209706584424359363615210345620047262194381534644361570707876531050466268609032621866263602725597071160772040814648092574626093170838919560703442508032128921366297564311980590256788406726376053941438390768573919194842059837259156985768162614214628270289765261775151634289031876034179652068005458820547503264669976115649593782311378793190557320497522492083882410821735530135698970560785328557374696648772548949998871713648243851131463548237257586251610745595349069725765908444964903138882467943244277342555036739850537158286005991759470200918259146369445757870980611403716601535089953657194358904054633436377894460471363190932262284558729729518601102586194177622657449053932130086149879021232016204434813867983158472819991387150294140293184128540076538392236127333849391317752394472779584943221309598578337801155499384874656360852990579903114114105811811535626761541293588043134292622106184957219454311479664474780443445281323741951141938682628682492179194837778276906599016898087910612785092355314735923448010573052119159214852072198183063567767952432108431672387725053427677818254351397336640762501538314896830976523229206874273785343424890538888478241958220163021052180415903583247587519558212766003047594804572412897225199000583548445427032471880919198749141917422866273078004368202956001862468379794952148673578626103001639024305296042001097504875598135722420513856051109963922723491030679414358980119705922928188098412945040132414179887758475234732653499147473883064859560114676309298282374642277100686792027201276270710528578877029259782612517225051711679132414396304173771550781173783955387023029185751912309388333907054430470089824339742541049554092741257682420522853997484303375115168318045769782644350918025805649313465938083655508535930818104978289598479729936590126757360721425523560716502550532519779668844640084832675074655156433806315056501236657318456984396416139322013735283276680059725962202318232688079997925834962707499716627176232142138476627463606555289509369227494415687468554091157357393036351676902233282234723190227824565662052134857532096003415450050999716659931246470640141391070310006534712260673067755416629812191732076977805176947928867201816522993403899611832602710868798783581250825437049523690778026311243446851012717900632701447165758738453832586601162004538425684661794018631342271126616280359837505544507589093004333425856524631548081654226276440957181017991192954369948695270049120130717182351745560221626822217608301116203365443797525712727601661432011996683980697306959269572222736073166581118963738366248096364843784742213601256944777919339959406497016268032235443101104305347115004269453149978418648910560612035924374499683363432201747551143786937234893886758005844682087997326671257387867156459569909940520160337657922012520705630982951310619921719693123666888795264886117744794019434414315808197978240742349819178279807125724349173624847356505341225068121716557749686050410711668690373130375964773414324696854793701833154243684961888085465170551934163842432121172517822125171999789497053395994555340871294266142157365562051411118162374545467605786308744421540147003909818894248689861563198068274596660471682884106752089851169074475039295799896823856104952366374268926490360029625519490200503668232685995153427923492083672468924612685773384258216955507238043087559005726518602821515084166834754667693444066353339898724812891663856586900825801953706617002749537830031364892196224159702391841398754490729443679382725013452810860051822257227050506103269754205438889516402537537324149723997009134345367313806962295582648253631051634926548513973338140926035545120730619824389919160641878990783016588804518623673958471813243671626530062269375569502073567592830871597626886255758087272870202205961848513907613478642934183827030080113795848932070125798526836548342431085957754242236703589990924778468263840321455646946924101927656199644665561474795914308625252410550023181593409425483737776162700079810510266303919997311172432588161681336441187228604006305862332335988906848912088221324811213112012377687464119787737249039585429303298870798692154183050785289389797560574750813651904927907929280876477553743750675493126945818317037286742044728484992447276122238879381532909194149613302125514042621640898353960437909328463600072027526223551468635372541769496093265415877722153197000405274506622856073148976706306580205513618173189506565651654407719789329453866715832469386528058024464104594491333127887011995411372842310944957938622051579202742790159878324382616769856246327061140651722119652312868283622693676930782281234929997058350556051498162013584454225919499306345548919616949601225665628475238326192069117982328988612274917305778116252665644735881967829383045275127593108569232522682383123613048618643448245727380711431511670062071416711517806998757586023136617225873361747414705611748506491940284131628937797636495619563376254186514023848539444522212170700418988085529868769366002941406924205956416576078007351165027264088041709581621660712505734416965981860252818601770560387390982251988768141973200171708294916903008975468012548901265784277225835066866699998854830601277115149965234126652369604278269739391325669601930108191894101794403881629609911823850518807190645967403308594693059321222550045304756722040321753118728813454321557152641112177340737765005088600706504406311961204044206168400627199315041650681887146346462420561396823931059838110687194134994557459708175166155457820582896217099477769301730076906119532867048471189297738452027427480409904639082071584268119997950713991965583597082486940542587054405114914306056932090820308326589913681540478701479752173887296834223512005781155406372992972058525059282096753173601119685510380092409778648941286004987624324925402073849608620023894015596290118508570634694352058395413187060535175226214823956104646502888456313842017508651553805217793449224088578084062688941016837643067728962561728350577230204798958602567595561411818124753757819901668231764602936041744237724521305825650876154464996343469976805772080290685894960389170108306821621489480606894411550877399814808068747811372979220344829621355132389692936699304752514906805892005507452271207961412825953466473274497996558803681716906509103440510970311839983798916480792481146605990725343208427925559051973828934530069457154572757724908639588822986355401127337552262846455515269604200168837072077735085241457847516376883244711405077031683176553168147183927380139711535663506191235923152774718436716192942750307752199837444761918792277729062188916677146871504605842955636347249719324794191929353412650898485954915531021482246871229737026035730753298310830396703137606408768898820114374839095803954276694756184054053916938724002027290408552764915888502680811154047154055094819838723912604513614326228393726437271780670664583939119072303015975142294076992576154044133237470024409895295589946910669158627084189224054655622423630461796491873240568322303345237647345859480057070678577135621489858858125118673222164385333694797275090911191272656779269877637075539274552980555504280405830950069557523414226534777246358771397873636359309873283547660871602110448668876012132209653230439348260395915604536531595170436885257833645739730471434801589100216789240152810971017529051236530963864025013662838203107324686608753007400024864895880398883259299395967912967829600708905829518405785862366606490366377263465171582092762539239167601295433975083202478597696220788548152173395623521835128221513384801042222198214569758999600783449760091197339779748017962199417913060727176827983971580088070443185529848511455602614823337161112578886280083199423805221849872608015718577136994506554043984946581736843761877126974541941032131787833665351878782360928619733069779128567159094488185235922236108388865657302054688364902837571005369392120030130608756421420552429249722417143930409043466937717956210888883110863672212302987089973946145418608959102451304365365542886381565346601583268754868315086923052299359274246046085128695630757505647834892650372876914017944334752121371100486168631005708030227154580752862840905169902653167376716730935695759381667717468742955671955015819149338429399405626818162587417479237809317534056839396022610415883096596138063980725127779178506842828677261316493618751771729421124480997337489543043575994458153053132248228848218249438782479158714905429992862563025962734883129031522253552388527556814460631475523848964378107439390695229403058396380661498476602601724264356826134266488719067456097458721279200815330989415138266633172909793097090559471087876886774583002020403131883972641213668545239968467171064550181688353724523768825578718248903362739545376354569358691027280870101105771880315607364321700989015794648506474962865822896356080604172663842695010095977552385950918489300220579324415824440855831128831145601477472001017584189625954051198948898339968929759004676932282628178870865732225429284861640061305373231150143024134786408586504031929363309538457241878632223811798563297281194602941901108239790466770547570951565906422825995704434254668152574213385267272112053247350943057850453684814458092601080722818043896269385461503393969342648996974113623683280381955607275101152125871637545694311865755003383325726219381198870776552541423014293399930802885318265664343373020830691378212014086425966994350596040839319937706437184172177382789746403385131944687404634751503681331329833340075445947624236752334675402644781185995574185744049406285146322919001642502894310303156255841958799937638737917373410806618377142576111120950126289403312758988580311915049285649316140452929117563504041189151011604352721177135532799988628241532788397867473086412059599838404394269125672616296329527413463560290516236573893802624128680066415214280590595570270671912064443543420157359090952920093846618517422877385170761193867248682405178270344713129211364085367766492432199720427931922751522539056502037915572800490127430348492019886031979688828329945975933305338351805908944070644987631242864539093818341770620722956985841125924107343813010976738711240592558430360015025138790278337601629085526294030130297125800658701238551109115827613101811215182453696786441021818930874887143002631847460092285734364088244853345115513220369616899054312486022675335935427445961393647421250173523080161508769877664610742662635337037165047748472327539752492608635611209859474719518100974648477281889785968385005071049512001973802396988020928468012802826351612249174718203386871920035119194123115242101330210931565699138095081080562541809200297698926588415041022152845320251618660280853745315029231249710365014927027089797034811685461635626839114961071547886317557430755739177717326775404378016855670502200958117913239480662627006623997555913532128404257014987415795514933010019345082138303600969826318055062221686405561945062903162305126327590016718295323041735376197109088654703318210025458304229427177076533317664056989462515846380165634859133735571660386373378389062362842615110652281594761326305941126640737459321018218554862298069138854149581520434578424043366205632184852984589035337343584107232222183144909178084612723867126808463214502581484260618014020866768049828939527679818043541736802872341072192467506901756337421799991036127563975150771443433112187565026620198597851567829167536870827570877666711464609189304040335345868771569903036557659102191539878294264104950303610249276014175135091029375821990179017165885877107367335567112048737332855741639705013795847235864367779575894225226893360542296124511269874813822077239229328398511076281352987438882121992381508119049799962276018226538687355432818974264741853022054870195722070054602967418506542726385928842078473832646030990665760550717417429013482718895404534334611833120697715084855366469386113381829882008325288361381053765032435069357718866628692470391333390710552853533025336906059140817760526186928479999735466692259576620003899761328948511728817191093999339067648146333088096861660174004265379515491123789137699979010548533293936286358541209846807883464423321485411294395215277547004357747557981036927997176458612358994186878324277565559569346033294049446632524257681774690158577061066992190400077891725818780959442865727734239066469635061764307478118453685866824727192151921619138653498212307076516302873237996299679033836770660001697780657895184163614973971651713556700687039675883927744342984145474046362222439675506387055873908282012267312626785645751479665645664681622232170132130867713780435257316283320146321902801029069066333213839249119407490466629026166754177238634185786169834098285753941984074665053697176019750613844549212436612321819042665511054794940599448307531017756512317962283607936385457171933660184613453956888188944291530534727658866630978170308960231645369500387434138599679463212606730853425913195933572898065796055116257892618853042359228629853446176244661792113726491109815865356179679624989588700945167478621555458918185688855414110566342085264676565062541869479951173658842615754625509194499363266398882094760786777655561809946522892855825784796727459902305759871900083539534292917101003857880016357194725157801130587420943241283893387504777295821560540558724203308376351138493987633267253276313511823054149830919368674185889513267332778583456213875135591930205591150615560729372829383645961192114079563074000622184607089265558171015303208620175071016796211920299434682095480404169558254770873872911762501955253305028369884797256577080563772179642929095903830105327553544148502423831650268472482364990865849311949458259732560735530599140284599424797893887259772364688706016370386533059600690074679646848538357739606929355442522190367279260543886820015511772865115210029552816393576958309050415221918218359407659541184572954793669218349578666702613830845356943813477990683562690910817686652788819654337062165429592360264395263653852982778951251253945480588742965347249957833210989601584605502687879343545555779837902482097260956250365843708735618572415469443081919007537148587366783429870616306402573295978042216932893953242134856881875786515596987885990220576451435580079412513251975916072477596562464522715530129966439647122481702502590285478651826995543175567113867834361891371897852640631168477569000700211490076553134964149899954847992887651772915684725161302602853527436736306030091266210167577834005475715534388726677465193814475761201064135035862502784632828833247300850989860813860694686369463964922339610505703050608911120379421275089846924945333079838732749952924513923760688238717956487874459621044234651729964399220356666226733186635155602918663959354406640536233143560632663205447093520373999033794840237718694078708543937397569090825048904944082571568032741825608650721464524818991017572056682293268398974893988630440982119274786434875211913191970105350009462182465733131499810103562317371528965993089017126245392018632535607994567285981338981152543908148399362765484576824085686198596048443919756293423410180798254031614191190727735714530406489331944687632583306768953918235751982035191269334423312893367001281328163460110427709493080712942638864929968313848552855269034600338658056448878235198407755129434617459927627527637261729536599791737423317914357262830256438607967720882374386820228837645334770650864691494991186334728847471873970455044623600165881557423286498696558213967405557566601491703208053604248032305758260580688494511182438952616454155771817528587105249663573270223624672523554280097874229281250076870728165321728368943482810157465953960827566603011994372053092642346514947843802715730111670382721541280291176346904075454177373628180236781299283033353547538543939807609709920208965401884397919705242579330175817787695498913273287081280936968264324438133586831129667170237792967306432229618623804293370766245294791605360237286366104934664148822330815771632940087397217126808498111147605018354675316901794001325475281438505386966384832214481902129383459781779911321691854990631733083237649899777270433572820575435126776951999838144417423965585448341572053841715648765319659555255929435485457646781378438656580060232976369715732304854681015147020541245399045605203447912934533156992728623903754045163583559675601602770481120538702460742833679681679207555867580054609101284949711535146231992215561613000567505829305403882614091680302337901702006271597481307554148637236346190691617426150612247239832557540078247556418675908698205382758852487225737141369556529260012757560874192416284508811070738693643542275772672195533806864543062062777822472216699167093271563246392584092631287797934257033385590991970962529428301057942400878201212624736989420422991219109326196846536703981704856184816739864845923878989735238750201789631619789204946124889471057329626641726810386710430465964528311409341335307285959128586466139494047275714599173333344272728268744585739798100540637061695017873255540257459363403977438630779125560666115275207894724854157829851265619471422169712649075923168207892640307419893809660810626869051585345282403862017650321388664464641137002158332893554365287458700790815875069431565234581461163369319188267930092443403693216608863354425339545991121681745652288834071675204493863119595464200359982713462482228809494604845615924599557342673654831934895636803292441323272376267041192388700104462978475509131325704208134871353111355462695593924139442703219669336926229538170818705883164517072998916857238018984316892004660353172108894469923705970736461763015425755917536644183101386522036026236056429817394424555139300986249874701215611804474814514756633325172085013101168634493909782669484589927886884404816372483022450143023146693732747938707561423467049026989193049195157757521988191269847037028981228966104536637631575963220311852645200503950581528302225416889113326349065713411559754556719013448643866560643240780805848245439405308287612812662971940953380262371169432988551501345284141433592765048124021689018185535481484141759736126031819490195529118198252093239954802400606105848186886506230918003879079244214375299884261871928279739948898776699706005173052855134109727777642843908318814227298044128747014015197292076990195667761335266977297289917532800784931997381305657373326118613986035745930335509859355252311387557641373625296736061806568891537527855250696644845991677998738367896613501935377320383140250699971586073321507943864453980209684105650957293907297543699955045977425853619680228252992306250396851680213351785622042800821277641817417465600957576158837922535696072973687825333948072685382411658898187008080678931002320352418145982643554176656026178066212059992042331362075430129892888029105955999261401384556879113910459731239920700036701221458282127794919960329218457801465722063927925881286806388928797464781460320409441846345973368785984685399515930117364861392738405223451457533538964514522870572547070951388766548626253779216341364630909575633080368366527992175684792988093975351245441859813311266627415044256916186250207475958031688674025921987373856614221891926155213223041603940299020607858903924016384928082511207829351350312283729717822714136838741050950909770447452610832740236092800257641107048382039921702355871148538554297031988269848868885048879594408968929051560322669441949716312218462084698642425460225894482271993556646723008437265317469749795921005816655145635636575542085516314591393499493349372782404347107164718202258846058000521297614567617772458420143402152965965336402416120965543194153982562780774167965523843007881631313145367291075061147680865492260205983294619504677620990077940018394254039785848715856977529402726590831039486268498174306543209392017511162306350950223978658444311562820952671264054085335077821355452746934264890563864995698468587055396095165208865184918577241793389613600700984824611320608910319459444190430927234446903483243497153624883868158450941247323385364898651705885450106389514817007648882117310775037143744991362246096986660405891354741484031360624572764944423025258688457163603634186085429764619362536904391320019975008523920467909145418587470868847330177578118975786764835917730496107893749964352862435951606461888793952863774698034984521463320487526011917958199429309500733579260973574832003095823406537552176478766718383369911960589728775910787116748158168409006666841422457092678358096320040811271157302873641265245601833063019864324478441374227285589871517150430121762021516233688788425567124168579886032343630937551568498695966404220859928618993930867045856423825509237274114117263755248433052471227452138820561505393381904631908550199159935814944156559644004051938707974563902009238775689250789059426784397491345934327170383141847293709871290246843097417172811996666802641327445066200507952592699611904671761893592890897950571660568078767895229853854434653240943147011644093373900991827065780139416091532569618705218688861149442009340221290534249441985717453387625483829813456261726025065751516590475915118410174494265909570912506604445324955111105396936713227948872862560425327945385840148646332103799758523782223436213131990124594449880439469143082902620927335220236258756378237721381324459123440856629415066610405605203989115857261950693451124009959275676085870604022752423084204964193404790968084635866926596778044705087832205597120929560866224087392314715472473805163500085599911221625912271069284480683981216975622787402373221712456009462865934008458940549802117306192918814462423432019781560690560118251491713214432178177333259704259673504721855139381687161124059558406761051742263148368400008621568039387352719516628325055248504542602565933674154452601477266015151224194127749388999254426838625113607111754774527607075840565438286775401688175052531075461096735275801309751950036538409393421826895562979249208390775573680169676136383079912011109098502666308507270338585250975619877854785667227927049405340772490329934278365369804268342226640795259702836822140765679137064969149847721445747274922082425192420496761699099957544253455626437972583022076523253657484865703976140260024749413042349991694404968683025140195338086747328045604177621414833036377649372476099665492264906809145469535490236110135314760951562267343805760289426356609500028051616928507451259995576747596959712547822296708637874423804542013124566505584993544493219176828016504376628387524979827609556752665203971720270643832632153749610743000579880830859258094771096764164600254911551720800501811742748892917364416764165916411996782148166980180924735021602058996873812208979874372918744007287211285516311319911503348954322572701985606111454553029926489200383271544402025979024900957040334538374840734336425765616089014847465893472906316092654245743546168735320752624729906856432849409403646131228103594951862761042337075196585147203838146823926453003409862171552581605790481225346191965323830263896073925598467385621428304274588955611707561550157761607581514797829036654009853092138802510026206317403803929135682953395448176772630316237212797712024321472972633126622150665378281374458731947298094775627382742644071521629169646902248265689661231766342500268674344908923778043375966097098522728625880613063265439479294504616080115618551996408804160055392293256031949898007304494771527556194853506847771552214867754512000247801635978757606352460983412881878914105910212068556691808787620981908108006270899841812819243538166814312024564488261860507436121693244576252514733648688499397923760613648336395177623480652725481525204479697758831008988322570025066992299035165014552657576551947939559674150211559530248854243946975210661278304529077201916364749829086824684457183883965522270801833284947682407677097456605727532086308025871794973116742678516840680404528943669249510603212317123315708099920520461457041758801813587120974805167791845795432601235044210199581306047161455679074706904085557430015697585192059106052564254705129950830395016451540180733996886210799712857868507631492672730823145235014570606573850962297652833526779445601264744029727827190766846265961624610579699515625550381367090101576219093845801680403080034982280060776129404944566891944439794816999373945116572090283614714114055374822597280310097113987199904736268409405230008505784871432581140745862056155931792672037230600910107258349023359933627022935500498391812646905049899241783805884308034230110125065331089059559003819553252853889295026013518269679253082716911604718475024031180892814436329523402197798342440617404131497272196847837766560455131481825573714928973165951183753267000264277897605233236659783805798559503451577864816937100311682981777840732664720263003928153486138040238534337867524701935310929761337282371167907072917016900272762005977805352234141963749084126444705367964233009541319496185383799862395393748874810490169265895798697314738723197175454000199872774536445009411986249629829906946231884071272288900474577639109363819856070845360938525399799417396848195056896418934892685935577925891488766635727765975726851727286721272708381283736971875933336693847588341738193064814482413350092431462076621107919179297706671357156540772188763927792137683791193385144936710898630328263836987637998301143211407330651801762485456123049478595428791267170945805784846257257258659938394852717578433191649831427977910860979502772270345993421962058117083389142155472518908497839727448368475920099591890900587411477858754137183198657925506079966559946453088644675497638936974754724113206229025806204974311129002766917754025943894959820692501698285669289110660934479618237793737894271789661868050201548676240148761755796875942652096359232618914547229871372260542168725473699439242803180457741667852131873053292491528219897709191840073758573472209973391133698723591921590934225028727761875821527898017719151859815319209704858807490062285883154197770851151258781953242363532609989671121916795843145842682967698637789549877882383925263682723967390578878470017396693652613461289460011667264389542335909345517116980968409733025560311368442860900704843342279581565771811237164775446003373623668888341047162697530124040804036794572061818017515114865242260931158834881606479687819371888453106889198972713332512926551650035246389773810788819458020851378569981295916806466064083910849708301811321691089920559777340793255248537592653621503769050033165887130320472898456719651130050112510810693123926866711072675903452215520159194871363988882879928419899794158716556647114036771102727701292873012829692620797430767651628543304804484702023254266672871398531679668634756610885610105789421110274069257914578296329226291674728763825566658567251222558800834022784475109627373122146582568824249303454829991076317730534251953590117068619118032964558745296058106760814425065134765628836062332920800331695501626972881035523782654027087568842133615612686263044284327956044247540831622283315355122995627863264618449897348578697610613575661868112169925250001408182693383750010478829475485357810479687160069591922292998603065325528863382483146116510367578366484893906689093832888721361519462441520605081508830041284810171613902810639040969224961805667092683010852894814805081301739267275534313842373078514412666783462134175020903602692918280566572469112959217792548741561176943157721680380084840494210503691595441970924501968540377655249997124178755664849474849298613791200130270764005904418894997233171322360190318776409095613027844337868133417665103952902873981288006172506337336470775043652348348604808722846335522853083192136435967697844559851715037177264764742576593082701441760160565543518296906386670860630568234007936145050093608710818387762655150493911449187826641648138392308723940857689967757921088835496487953421793465510224116650647961039402142085591138856037051484590009193138339994035034807298594427278043493004151733538535078382988828302095706008194699848877917401166803211620090728649063441279357731066825521302986780598160186409377967209300831705958990395164925020015356915334300246596403597285925770604316367250113526877123155405955963550174926782831203598134433879925050561185196119322460555906546599135193468642087060803968685032593024689061838266077584133868792668917801527260508814973427981360017338732406579151068410837889735887183606060299330091094503854191840329375060197344732154769462821234724310760499160945398601771177813703488064023344526211181031339507624806357622723759257041725093075192062729401182745807909220872858612106268598119563131012673239202507704515002917363890108133473786435030186188304007767925535171557954719072715953200529583743150683303473816662422669622925027884925593726602724911872782101959462225990233002155371441271094712961934673917179502500555175408081149517258057241955230911621040542507944148232326209509890222555038758483271333708621390107507825845289174253111093504092711322184620614358644673778475891600773183105241694712751696764350147052591667318700588829050343013599063191783700388880597986593066997505525794723810043604975866384620191477657998787615546646866649806554246675067754513752240605826352776208162314049625180624639925756601134335518980805975253757607207720110547550170276030900348384782494449262262553957036391064848136771149531507613181840612517201386529381623029417296267605924394036548222721376866848200495731072963413090479970305981095227362319489530974862372711103123485905261997679578991534261655634198214505172542398359694912097806796369622944250982866000526352658838120948062671542369266336235951780017857131502360406041049881084420573039021128560599474457745204595906521751978830621028968897471460293171171961258692155038718645537194303702845695331752059927827081221728289658604791410430257391668960226132265669215709919386324254451459911835949346512326573167671388995469412315292342750918107049626647217871816198623775940434714543447859723504259933109656407570587123253061461966914612301441486784272137769496419920651860845103648958316316873058612440459694870750921372477742666002852251250676425828410626254082766034472963565596229561459532071559312222224769547704692768224108343243641262041532282723771504752292284960570757349897360732213495527295388335845449655208906831024307268690517592125938704356073493068602273078959877068811317579982253824710512507572647183387474475114514247949940369876074420202718800658666317215847819081056657964764058232656031006189715011576063752998436514806242748738358133290882984515489401283363611047634013038059124678573773218322021652524904906348040205004598679629788397207226659876999999525591621834728485575387252979857410069963864447505980705090603747281367445530776177216576064139099165341848034129459114323720400910218686131061982286419755683141672659542396641563689249015931193792068853883285353106262003279330363376904706317150268178368804722520878106506982386147997300532845212262612802518686031068235714766542910244977919777087771592902904030344294104657301444895989276987295397559869854361851382595209170561117988159914892512731045311898283221529561675943694387455107738205102101316759883905668749636518455757953073247759090467346166488893655406977848830123415952772681946867531687592016910353725681358867429717084107965211841949183783920821061105253817801898204336806983250919716338927631579487871482851077195672179522309395211796757184120051608757336616891259721894413237059321964209929011536406587027135224620323190003573339133441104154170190239064350047362790198267305778598465084594103169057401063489377044979104641246116673599600377948387443823402962379677004308365032401552298154890141374046374184274016888237525700245195606734482729458189785820275457674296493962717395441177276806558357020929079707262567714568356738550442945596317959836941833835242138829934267978318895562608655653022435818732566696593745965882533369430231204338392499067922351814610944004211193284533365806862616024725208940014014733276477496180309844446527613503136147263073658552184680542426159299084387789561257120671639377860871580127555617892139555717028911861455551524116425246064307162409847283440256465628508666726533420291620690549541547307974170933773961899482757967819736486629773995178290110700140778786265549399471403456325896671146827620573613096904587795477089840469951767840215561199641470708583295881208710532401205701762852895561034006176237047790413810502725093026739968702234800987405408126293797556433938247537647611812932991697259450691318694458636918547076426933122473774905393380453533175430947783414509639300920562184599914391475823570009364178245651973026294715111421576031745392419084919396921053786424866899172443232796487391676158184367674415905310149027120343255189378051499929818899891945248294550716372623897817062615916784940906175548741341076471465009521610987528320416465553996373747640525833212043368151345828004714831096063979520455896500659403636680970450417212026043044325880356954753936133929443843149117521392608396049610400193244972366631217108457808455735188732996417862567639030106017421474544423699161608670421496719311308287180889900768228165659785099311846092143507273389716030539872508818129878573699554263262033125423093683958750672217373491726591431425790682810217453785526105849367326080427562618393364139410865298598935512261093033909682735520462879430986917476001612208523442440194409088743272471436316630715460547654297394548625606290680450760971150601180212030276272984454351523823401444365404354655468556786492928890482227838171249167788773702673051412791566022900681148293760726330511328022464664094699744436415825674510782717721296256096738830700605562780656583370766328875028655506859122655262561604275557521187903799992795629183147341531940552136637306449828913806368206332127688766004524360440666211592627705343996286193315043210062309017357259824450989974727372738846485487817941731174526001341622393286617540867164194528923759964838005081288399144961929596066555709708532620943658581282631120023559840575779934420490471324579840989814354001582905997183088879571799941986057520998132366530422283235330293027559334557209944403806944292819071866417452691485289360534721900545543858363260843061839726245363325013568241963280688613361354316560768977692117555470156627773174990619444292859934411957645215504470983880288673356877881733992120382793616840849260181742932707089763006516766999735410561577997872622387652854767486982044986768657744977624988849577022134369549645268151733163952091659385369187956397148064682953026245488554808024348520139274152093193009343736128796565749128596612752817968499910328476454015358869954001713877794303993949929308952158681434917331280451785605193273741734332562489419850963191568074961359284717511612673707816979929706334100214059514318314287180624828218962753009312606405415608197267245914640955967215513964288864928458460484006298334688732332043055250987091910787995554692434423087200889486415627368887019814241456984412152636618291829128502325170589169438243737794719529446525857538223411507137007018621611088700448188164382688247553417682201289321428936696835332147714866660330526115613291164327252725442883398855210347559131971783328355396387659232615862176786845616748217321812590078106774912623622806700933275528963171365798209576118688808542825147937375794174406544484946508501369146563909250856794563595412007507531674860985811095920583421135689895282632021828241761776658347631785590326775227010560666724399328994303822535394545629543467124103067660973212150627011849363511418241050200558684066052775090578425803278396849015386931530149739553682738683455553768179284645486927770962300851268215720596528328170757657089175898032958292091055250218986815751248141856930529941978522425408372364437574366740809087034924950516169317619729909345179420957573109042042258452889135691046608679160158153845887671640905671278549999477932571171333093176258962758120620103391184785084649660844228987082348317653852923380944939467711971786374703193843953747097014295733604979797676056938751012056545509531578903967951994753705189208625174064508306384702324796227724479564152004717126123580994029877248472221587760331590835230467564442409462080402468111806618079733910030737377870986552417060923403218536361114212310334008253470349625812839179390257998292839217261245506482768004295511403641269486262589033840775141383406188986296701556183636942136940212573507751565032563787617580175815330861484787782978526730388808968420177799250975243331562776564981450442032611536278857928587192823237384718665677042942821605529031338321156604429325791678548628280081923977540510910068729528319574064960111485547698230693316734706243755521674838359008124594806442399848777998371145824910551995330241688028862924997822313192843457541999461885114524946285975789046307415468622186854451026761295767287574417240767283376424162091326800698656126697977885371935845232542153214020937565411242945747916003933694942802876039016155956307217246537490109202341806102992184961019688808888639005976688334473965031090843259212430332100633077442677622961596686782829529412071266657484794279298089211736985871533142005239287153384570711918714889132931091503317283545956541598793905141802758169746441972879363940965613114112519031216544612045758881073982219881045467814209879049334106085046186051034486589873478478927283272008864845534118691753303483678213836921708307193354517957070072774289241484788066516455963111869370435152697064720729890746168595367873292047894310726193821884552626175924224520274580691667810067601226414048982559745818532064479536827499427374931370968701310540002460969470100902803580136025203590212723291653644078876122046484159629567439962246042043369505834337599638027530461914747296912818669420469400433355552301533142684842538215763633159375858179322860864725266670628994728598763988320691566604307072035574409364086896326689155311214725325466972088262366067095561968735459211260409653241350476518098888072692227753127335656997279482588694715973798269332550340464615426923031253251701897984448902248511983988279321074903108247173244336310931517338095088454261361861912184925730548406512456688654214607536721966406266797504318043355613187088913045127536157462450565864715976991629705168757363359192279406913914498274524229276114227787821555998714382500988171822234861573359465899532512865567825445018396320175278760268212622264003186304222063729624036701551196447226089293640322638684287504484229365938236584279378663586410426658487512691704214338426137342885500960901061903108575674283594192744363097815506492892169018579050599642062400444069918498228628192720685701443525817275229517658985278643831824303624790870217912317362097813390490856080201193787161103691151497639563518846987068298113495723029202190167322971386177359375417283516472917656500457609301598962093746513321774172681022337660457757881592905415589366430285830906287800196002572490053617795157932246293556061501867790920114071032004198554419407657395485847183359141924042288106235331169904584400292611538587106937040890079938345287839379078566528889650282229785319818111885665052118497224345586300355509763477554499743356308271402761095702970113446044092458318753736778078210928078294913411027784750385380114832832842631675387862817994914277505231384488878453355276102999440981755402364456846746385642270045364519648369975600943870604439568927887041043415680534491679123822598697400583920388098740872709730473230517055942901317833070823853408399405459289013446917785583038908925592309744353189352048076087053216478535562366338038055384166149402352736135880061145406579336487400870261392519058644398472633344964726290264685959068927702012565937122421427000697597946866659827913544774211035141803564496303347889026708590631649471303940380879903493217738065850896563539993604261862507943907012922598744103812643332493119360049075708993106908919258724066342883327512937220188365641174409224250052516125043389212838373657692384932330274246275575026649344867263296492406630738684884995471552842500809481141895534816231867561464016900924959514809081849598965300356524892680603316743151687628083808606524737484454565922043938523029237854571539010801059141832536485105292763822738034533825134591791277025298807109817829229232968256638795735087374804365313310072603505880897675525491037235410962447640554638256303946907210106044359691889136517345126511247557734718314129219654356224123790597498041270006567367019481791618135714985220710638662737752949718975238290951366815496351908912368197381335493175523129768895694622172814394310640147981775813417890670519944862084853239393407774066516099645659166414229258109074188482401524256183979094289364964926076121941284656919197920678526137180006748022200663091117390406199058846437082112684524128363538476111112963958084276240919212450462209289371178936866643541279488076087842146080559827940529936306556422172508138211454751559501583603274106665519195586717210087115750257052244915826529281085127750030764841032093393628116888585162424024383337293471555384241778239816143066873945001507845458337930180655790687782609289514102772764003772467861750173996771331080642328948534167640420047332707912844345363015694292010052734008714228480721620328057050906671784822018830727845015851470013162759490965478966015271287143721094531358319374057911224345391060721592712278448777713650330344952588700745244254488741321969019141368663620040439231260932340932722659647432207600186165712415433617493631172827432248107754193411680127428221919490991507981826728806208002757817707684246769804024945408898004621595636369573043045357909261369562010616316466764723022682754590146063251149614803614850804206553974380239376468842106130146800877427634788437932300207039946445323389606169126171283850999609378310563622127988234376137013231631097206482313669244991345694392049760440822959786215659964214767463177364300445350296576435847208854621099570027286582168129382319762528993206078619688796994188690417412283858744146354184537519582106944600145008378028936037600237654088405302394658769959382786402063830519541333925912439707926491767207128794732902731423370286062943071445962674022222259628756399477636796773238842754157791227802721045233198335375269757533906295209979545802749958178004283971505058208741801185610939292988562367650296353776174639816163033857793861746975668214656423578374914385421268230927827450845420636785929735086717523050856967878351879981604797000960677226442003151463926278462303148868000597269577666768516719202772575872681365000940764642003561093552590113496984972541991157687159898507074706158654260369319062004807319353118562400076810957330007170875365297046747514095549126626961949244346176819361013399080006206590473500980289660678974792108755341191624623746627551935297660426354379953807918112588225133984937742822334983407701707547832250596695616879475079692489816217689263643151502940272338164398977922159416032230735906640069239064251384272984562411577265299023052903615455294956951163794847863268480709202657884781229878687254415968194961453121611387046711632717206414865347437772059858894987852911090146661511826886915362053308110479160175633290599581033318296621309019384202434500785985444576253924490123578414955942158661813932147991383194471054316172997731860051037665793095004007067154941112748669489058124555343834312336919342600172154147546442592281109614560147765216039535110475256525873233811711533765687873810670245199094753795691749413410148539925734521716989554486798121933830358764842720946864984462529448456595801639017637879717613878225510048919477740198593016230331397311468635165108065574687794433636345879521134564703365299597747476157708820954919195171365471920660002703468969290713010049845434922647500455285577442695742205421885702433374461055990384519068081712874252027457735357382684604998313558249191632220054232076265576308485505245408789054675212091299423648502705396397326945989677731599249289189067164430674855556529060108474928085117232190161068666064803339725819962465839904342928020244571644208825326548766258958260349411152599101134032327470218194030198910695815551191124994731953454133252457602898017988302497146366416485862477323876031412712868175366156091833973579468236616586163994441642185690749625477356137765484827027442274631128833866552347328409927884537650474486107272187498481937910268405336908258079447071555650509875427035169000460498961316962287939690765054692171362240090148488926064349081428755341093364207258020523545929261960944143173424099182492008452889612559726187093767927028607842769856007010522008713944125367595714939683838238775165148947713348784023519428632859134221849265315263318239676880688448473348974010477460963503211472841617118771252977241516616564341426712129159473326537886383273336054498936920815396039608191231820929223880911867737887457224625081575323370756045529951986427958281879859946015162332194971221389354682214139943895555915518530245617499099890426775263232803260074485500722987023503095544462197631267886799875095074440535837453256911118378282640090151572500530271331037674078010972732793180633349381469902077126498903162056127885076929812444126644519868122279747954598226945144294665807254400841082598895545740088300342529729519968939168809350497966789006957446775739365094662312301048083615614431431555604022635597555458677803203467947363511676821213542757661789178555612567990337101128372031523162870511051942412397217123513186223329714882401842157116362300429624690156005757565989905979794250155943496208371522572100920965448608135491456730536598290133745061820830462547617290230955245321125159974686396127511508833786592854546125793265417690094742018646475724451725631342058359468968603043229477838050537244077337441436318949115501174221897689082380223547127833521369997310021833618402633583522472397018546505535565105106367392705029309272323920831415598827964963320103785307929542155882973308859582170118361710416405508954873727598834192051352221838168750804151944138243188241229096455064033174540185466698898515720045529114015933815375982438075435426724761315262165954733626880826391751585612136440831115509719399403046251620836954785770083004303090021235765586640467858008252429066879962446340288604745120619237290278532317021845559530334336519905455608690445114933449732873057388361838134005931023189103048949214503156359635965389851317119893746520065431943439514372193572308107232473922385432363911165493904652646369250284479237370727622548988870131250507366886725576358672668225706009198274651625539882468959219383071956965859768906172494525306166517335291074562104602971599346334573739026020816944325912759972390210631542826495386605610175963589531261239070737621379300076694158208126129973124766332944803786474674504091132449421923750331917462590515879889943394353922208290231514705824895228098256373046933134613622862297461332240864432594747047463733186648651899001305851104518920717641770256891799781055224857256811964583333925223474009702902301851021354462909645928931373982534351245898800222225084434168158430740158810526414014889468714595435472003544425080937767816183037765572938772990757724258141836868752465216991513106965946874687964062301525264828122256728056002877168647833925899571913783746486066196073169100959229933640461230738756807762994657196780677105684156256521967607170961073712975870322494457644493505129595909474273543763072286901439179937397503970581070070685184224353523891728424728651548417707861363608216607200508600881286652506663480760490201840862614831318432966997413316897988586209758922253314982818651990385757908719514787291419632385081687698932296503886152568271955359397781333609130015645522684540250939739844083940057219950077566104775638131858358640477990847959392758194366151541512265531065616752446297967268227545462677541155134012100595243041044144153471531570102586135541045828379885247462305340980104464913571310783601332112338148194494625515325942449949784281280399092959998507631484308781530189764225399359397766499600876559789809004297469738597982002422267968237342822673917924434502026605292067164667999703941326084747352331198825928235173422914924427958489365498362196028672730878712454344660623623386134200153076645879837321711242911274647030744291981506484401773523095798801518852441394088949172495099639401603637019030699465770347714729804287971026791389897091678787277420457171444681624328613764151500377042308024376549130001182965761395072602378663774665857926407598202953114108716712412297107220268994215624542869050027040922186925657609336770336274323615583469756300960207924613384917536134697030434722986541706380215253403100180996887995690271329618632750438320243556504810176256774857329362474458932611660765160670377000124109830700711273600431912357337534211452185489761512446249979994232856848452076223766145654616316784696010976081179667890237498210505101476356850995649978235177252220766057706411863810502726804146524196054613303789201621121123410833346579390542674678581697674569534582983666461706230165222473636817543691932871874585672666287699694455493788644834632521882113469043535336704484934765621804759081701237506723470604352518938342906761595514411356946168054214414170541054929789973059433031675109785450274269475624427246223118254998667309077468693792455325748854827805296068430622340553773170279230648663478835246876248040185344620619475839974927668785226713927401939695648361987960180253771487242247753080304516367220698077102850694245567363914233963341811330035424961342409267405732680787320339388590811946117849782285363989538448619765711084488916445369192510207827066578389244754042083447921293213078472428109801788044937949570505605253378615125927881031879606067433686333206187776404663028635018891506812982270673675981847218359170195171330360921686064648642650551205536595365864988307722805644827309906683285864768647982441137380233628132945871431491092952469690922966228302037138650970698003801498468650791764975904520675819154914627982129718428293427088654002508793935530528578359980141806439909272709251585435745216716245639856258524998288537332391935830463518782526035756507563737601003842557466453715145482654493873687725447530361242637231424506228375986522959826783055367901194378111087672086634281159042399122378400228536896954373218010993097381576108529629789818771304867347918312316212864224395512921650265024335568750275121745525617508536453624561897444603064921919675824269882970682255286193440263472751476524025476365468672610009474929920721866893517329661354877679851030866704988813960670702492182011724106773810823078982778860473816622664796447558123651352122212851114886051000881607802321950852051800437589285154698775843686158905269745053793387706619084650603456169269986208251597500914101296255005644316106668117656225043467427912270316985629125215144119606552128866450688662084623059041672109440679113488984465472235465840887493877384817936757992652763959062183268339341482133776223931870034629516898592783259044536202108926558495920606296667087150977565887054273410044121823934952013816460239921618323750044624882063595697981934886883428010737120445738569368523865924228327102429627973035479282079363081845689651583915502449532212190205758915017904577215346283803767566632666386157827469340562959734747796684668044454119923358859473618666486284694409637180903834908095188944044356598298863549086704928754495917018857104681474058975535440596542318707480364856709582328976179373220483482009340155674622051047169832531056930629090644290346805406109578668633560385680521740718954808510881436426693236077090067275537472923982173915205052024440352358147506024610153770493422038969803015366685169077810132261100048743780813568585568052828134360330555430500220729256401799394873718272060003565461144859705805933070125036359409098772676540190221483580967065840406590829131729375463798709990428070390528518042780712504265709154072146171671882660693829109197732398826678695409644544458616907269640980654182055413161416971754173207870370241487368355088651787492332745080637218504603229740462058424245941906130152007882189013905928752319292500804008279648885962352263593600693395976669001687588202838483817038019434930372129530690582679358811150400514963486731835384750583231730754770634443257666613706445611661516619964006387490456215182651791908648595119980698880463850127848592876110088913069987167717039999017573475904360738349955440620555940881144913045089067880925860800917589228751251530136591735873124821927119948906485637849461788856146182103987375738960085109805822871317402542852478137858652032693775153204451017938810460619317636948813862732916101140285819539735030038236806356922566433050423401052234221291128725895102788631056321117448447247321739942318019019273517125299460718495810330423220748162066582468207546640912659115732573609036224718271687274035124076162129624336489362310697408967515003945799819422386105646159350037113880113335645812898279972975471123001615935282709614912337396055959186543234374030824064546485565040845596817854172998734742429345485283823580844310429817015010596865832551637613548630052160001389075894397361784969696431773104456137290552753379594944596099183444852183200872935413017508569114569542742567601100944607794115373476078553957758928191213146677250623362775462579745618363873676378473183190446994705529167501976098709420826299742150787916300855729300697540342465010258161333558328241919179999418266130283992050983828474533744246790851534416057898164910147098738434578729059472202635096315598571204858181077065769066469263374615114216632459529807228794832823752283166760935449970853033979786603621616061773852585383146312918753867181803066334505778007985450954652341859325092987263997874721407273169919613707706319958588406532125100531885689121936942586845347352403432041374022337140428651627286079744817461591165227991540901810319422479947315492644295713894475268657780846390064367638486761437042702949868347154088246449756366013228152932310072545208160257433230545828485156985526209001895747921545463141323070697934366067423554592623814246990695854930541363794395827858411322296174666341404280055819632862702779231354093356710473054177125670068549888335585138246986763728986006414121432469709003691230039673590478135425811233415028344131891057625276684097256079453502479630186828682395499703804617444609142653525820820752111753169033673470808803759769084009816556298222022600377250022689725168288661889733182561247920400939981777077950164398051480816639630982808285931904830956621541811190100311357671590032940324291597661767805268138593574886572002539213313161511448130928196598484254676450842503292752189982061348876443982034745132558906492880344808802797363330958395456653066425024218833887439578052335499855239894067462993506277055584796995533103576559469847014673169047812439307663691314253918006255585876568061633062816305475349493651005650269857059525061979785657670096716928145267705103300790762432421824223661064020584407095668776651912286987302132903430196833892044988778989611926655080502854310812444654353538026436806445939295843963526450456330582087146457875086268902660078310506075791401092304216751896846014817248045761750235221147936964202790180578152000605651804468375222485998870273064294053039437106147423262637216972532461914619347462044119278179137688601573921351422085805284192114189357751980758381633456400359377917965027809978485548043134523550982140086750958097492999384187510649581202966473397604430865128963278590894582647625751286360086651249514404908509114605313079065412894503186387913312328689241134197145054878523016692086540170052312522199870831516295536120395649317228740867496670360223267428066025321809097270434782279114522967641006580010717860531042766546018474216217563159197922949527826216602219850537354551260855797700655120895006801318648468928564300070567700129216437304743069262447663945442211431122571777435509027020178743218207212579932992019507131345930953333636923445999889305067487251784395093618564562040411390873473936504139767721851278702771004688486174051556819887492449933611678050781117803606703102864258591629274889685439300557852959577835030747597414610700621337763393012583431423297506663236410823117782780162030030395812953640556946729995152280809796341174327458559043967015815628198375772476462032033690100628326489313805456424055757987214454193511413797887050755360935949611182613775504268861317767438028027867314202127078573256740475967644500436613942658760216305570774885181946746900384917337107275755926150570636554709325366584243443739419491044322495015228657308982430954362144222165066167438968001400039783820435183353071899409497405014763097057562593455820368807840641686249670690957230255352818857461093992210796287060595668255334089641930827881564245472526759420478778176269970176193494515872997340624730293004276760239258825051201028825481212376952242629987442803301935556748612227313784353626536430502374908540916336529432006758226470024128241049846256006151737834135694009835656486979763974438859951279697778071153597750739434349577245428645573707874710543299333275585575584138588067344812839139613548870771617215152532160744092474529170483813765796323551610814499689164803724428994520779397224063291470906261122522275164031380285467065188327898208135024926940442344690583589249336559414124570445594018070550918716444998616155249014045847136549438960707403372373641243862177198740073965695322717347586375204444277614232829678558093599804231713576453106815422944874049279945865419510906707809923984693393844086967833093951937497999791377288934263347313157185299374418955851684913200717318048862289243027649435320611779384970815473517885125820943071073842132994723929643117681204144703439601541709905712225440863631259649180041096060042444682173403299732366273352021958635817076413401695234369623652308427796562255222755617948118567983829413789099280167215145053258669396641807297426554573836073524242346495120200658619370807478108517409206495829829705907495163915709000547416712997367184868525667257563489476818898894511836498767632412113809125595735763979576514196223988718521557781275343850435797354983956823853960692478551421173916669212745499816194451007195343873838739634123121712145942691728713740909732131785961969344842442419964481024444618252015035088868320972533429729389048657186383193790310927298487768847297497905369311206932370362528894494141556382297927251927251703872983597896010672434074518849597657388004813630802532678483530440502071729543456828714878145417800073236467276447952033695239452267240091878437966755170087464807800787110331181472556902851103378556382207732062596727126185663110865806168008944579669688995692304893301509375798014738264210747353810633063339975756295897315123866869516766929253502043154923196739306307944014690108728037494471639718247324969636840534133378149440412142399296967320070009728940844522728044850549972318631234648476710275449536388519619136853457303253487459915808830394983634016965246531766409614443079215548631376676605441384409273188210509452810504837024493479101917535815774852935436028679647118411850831109643849665829413566570910002902630101856620040142881712678707836472718895833378982837428899366052798858344342699985017958522009117781773974446238943812723542292903362475959241022766456465166431066912502227116323952723744427687212317981173652979525632631997131613008232079657925337848414968167181688539348216755767324804963293136894330363002064692767676466929969992454600545205345428770120600100372354460121594829866651033495491559594052773126838965383433575997138094193293654828119528794007232394535019345220810535527681397125654371893859257627327186587199609402794218858963465246506646960711047353427904842701164535423977049787125012981173585285881653747320768205243106037868968844740211385296952123824585724868535318581173567965082113307891977416326209860443639306406571909723145182407762730517638010709471532034601500644542558703118263929242653302038708658546380616850356524417174109202014579043376112256164786551239503049789333756058488243473923569345015514281900230359017651405253388318042024723511180517137909941820737730812850456686511002308771206945345626424898244848526829585716198239212976655681445660775269983530373232865227857937167119200341493883670921222772390330423796807853038719564461989013220253262696705487997285623826709521791949884648653032060614622474521967950451003415342814961750379693369580841542967904499792772539450516551349415730167244789186345653005804305442876806440805734265816985077731092943663595743192258214558746915376519850885527842599484876325635157727487521302632769038524002984499889961065313550501213811237678736341654747111530468210134203832843387962552710094113069114405901175024396760335345249573301347039803915173570519994996782598825572813599090364464804955802293824043018286682415833555905541234491860985322511016904449534345834657658117699414476810030050191487631506001857869887413963744623242183185306767566742005769962342123978910091998464478996420988578683550488924060491978205580203488874791340052472566727405082559198078770039457349223316344744652088830629325116389151279311564534931746819429695373346905284260574534052021133806128333064495457027968655190873812878400711731485327553323896598024001473609988577674873701556670189032163577572081958607310018943125637501269008870847589909675165969000414408733765420649231564871882949557977372705947291275248803649893709022094437707645371816023110143630681113337642538004660517282326259340553976230103483347529891158818170381312161071387651970569467820958805618042602306245783227657986369033379581113765216879408986416490652305636412810859392519038621453873563904434493919727212462177318571122601899895745986419571082726564950978815689982047096000075003585245698825123034902388588264499292451047403971789980494784686505292884236448515165621579237902639459305601535733822543863763630747393018064385637615425569943753451850353640450899280098778141138410992674287253297038248098844742558397311334053280381287153389848308144394616724480136884557749417705186317743407817761716017653435967278079985722949445630072040920960446626194606092618234631011602648652243835243352820852972890485031344513467083858690682979743041898774536645438416057672228222892099440696515798343001324436689614814046112976953879846014596770992371220142902050685616419574376892144463539915393349097449586508370085508150331523952893385083973089533753094670483365115074320929145490059851704494232412685407253154803446650742633799048680624454170518844362659856728186446030849265429722192637116511418420661420226805313812547097794349748206993135750931776177866612088540518646765772185725827920556207213628699631813640970763079095143538738783012485319985047625448136091015684884911650421114007505411222317275633189053805993524615585134185124082912197096965702630440169749478325977334662080047123854060185487450902886506663115517911132360823597328903333274521011620569392752913754011766308940992793976421934982430875598484523315640101310879934439805125148389427815027910020973513466160472033811662332998431771347144216269799157519826066912186002447560216739858683187121643146058846498103986991847948878756123590936118846505478508145699713110164915502153707687380567697484253087921864225254978491639364670984652158284890384616043294027915309159626514181888039954365462308903648870832213086335476512492219061170348219770295935338989434277800370731215264248598468128528801117308688931804966960468891549388880639989827668213449275169703662085661340265693091835646366552587236388361780975898277124956587367533770717850156373621225539901929382992806009897083911242901879151870216088996136607768418568763519474732593866706152867898393390951276023657417963688663513362459520331987700472800369193957681350374037086884242696228898654457367764456788065280478834725535640775996345857579391052724961486685436548193877936476464029083584324195848252475463695325442935105254932516184115473439008768161220502539773176397254649752660268174933176383450073838004237401470052599908346269359057548999245127601845734193979968153118350540729450650540344185081254547938693529891828812687249583035139822314805296772603927624818665497175195676679725008072438918009112015805463163767302409396821727723048896447865853342314611925418805691803694129600572491209325711696449891233459115960826826270558954523892337727255253162764649085383108429475344119358857790747849884511705665697834590010076103358591946136783715658234696574178207050958382232638911000287598626139006853305488960189940985632269740209355045093533581190390486952078448208370688336173663133475550056176064732727800001525983922568638905443398046880712056872567603485576044241755669315938978587290576183943842357103086821941255317454420616697520305654256605086633282180684935001685826971879136669233402294962302614361421522942239763190830706590659625359268606703869255583054242435117771082109376082799167955286428118534120681687166521826531424871072185721817959105214059007947592803829837846577058980514181279751341985758482122726847313825096410818487637306406787477287998008407588869769928689799970922643573284069780249181606878058182901849540168172232152111231242689094668207111413862813515234068055445104894275344908993115839277958124291563976090815861348507744425745942087533962103001267606927777141905335301499212786335339338465680226713038138957436320210252571629316066457262657124577606208718403380448236420883800175422771424045494590987663042001498714547358369565643788125183382664329491371923992258516234824094915555569898883217009407177569778660491493826329396904403320752407121515602216431851585867691547514647086211271561289388702390883872823757866828248688068614894866035634291532371163856580836044816665103759400929966694651541347872917188595752976176280063033407042877505753560440300275140447569714620764748846076541872231457361470069674444208775260273411826450292144326491088530943234291525780149287234179017275946197352328849221675362048331713047561876391274402716325058245447810715022617696603367957008628572998585121777012731306692217085781518668773966496249732098811289488053510193326145823956573137553016850179101214238881883476984497770987854283693759368136333132579574182178227597340964575711027602329871059367010102915037024316034133941666172050954660599755144574777253518308947931633726293546413683856146154693449661112570489599421480465131644050877995180101977662692763749377541274821937748880285708804230864124683409578051221109639910361839213064625936303639848598438707969262865751366146463357591963757918147660406356394111238374313317480670287146968434763937483061288557601410261485952702134599670667281739021421306025307698578868769488569816819547370776243352205605193432017117652199124632652436375235989918297883988016717056450621099285038295733364057453123110080818315234547452616040100676426841168641066652421635299549145947964185171424299272888305826446303308746597791447098767596006750551970313243729648853057270410964875495217793349622234845174752538136815417310581331664973545689390477699719552621530418525611403658844522491167990406718393758681872966739934018847733220481040762123312465925363780601575268685806625052776907216100315819198557571489714093671276215648077395960783838815074025944255691643580873630658487042946801269465423711579932209058154619865819218501512120089763515937392574530852665316007005077809379952822851846259302606753527004564023362450715953005856494363768866442899907232050887252844462416577584541564587235315497891876353737994304759418719484423589723759687227730595638873258641441178739242614712847343081026324846658215343131578999893585281832633922688734977767738639061484510093454121426083070962115694953572926665581420755806616150067126337602495599277133215618062013939142991372402481135709674425087431891767945899621133718583908801764575810427200064780787429746355615224852845869374626720937746175247262634311484654003723169783660359489596826459967087872658685159277011567399224915394123010330509479604682879564422532214719630082355274703338153599956256753964690643506464652682911527785433208735524939644199339776683376618901977978579676977928473617723785920282695374223280049370389941669046285638849727738223309200424724074685601082260916449715466842856750626230423396147009055165517980913229199202285882350594234102364757712240885371039131988857129997463469287482842140985724803052452454122254146787399611342785269481674963232928694758110842494337071880102027723590455736865758954323076572740914422475870397683890997388357559666193028339555804741541577090015627221648388960381008924171798163895907265216239795769721274220287663839086790769198262949800215645322758155254885321966206746604536715373358453194541485633916740973028540800151137031615725555291205306180482772599350278314436407329432810656985524971509261899132712668082950864317068004048521353628945752154296156474798474388382546846395732693758930874955600937882884793579726748507379222230835341651193174198497763647246656286694508394304310818466198291409239075620481098119509710708278568552830198741336256506281920013203765923214384257222865693466817135620708827165732875318039354434970602356788486687616761565244740181785734730956910146892640923390717648305306321438030553021198910441490599405458751943029328840035524555896900401048121862489695163070069880019062290270467321513158627866330356989830661338529911038588422097284141205757877286502944777414875351704294586981495951727662734680818259586615604717247321158441874373833740325496372137458600607063172799254534473346614286836749635240329135141666679174294001809264090974434970197781285699329042874505834071728089912437021048766444284575298371177364899837227457692272036534497944875611406145301615586442023254996401164936645462098706815222992596333253569774307690130943734320970597165052343187812943872810508305974348979076860381608466267792856504540230163806791281514641200580248007583207772198618471949163702954123241112589321230531988127854550457983170152706198246162596525218284926275896435505070975525557761192986161470626447594545072698235815535902382898327790416097718629050109204143440979325097707592748961052365657802931117461207316841434486212429749115823446333486429588253800134836811047958187294430556551291868051729064908180298478475473133170640580989040255374815105503595029039817106870835603640711160811496095957586533184356745773831231254068610714325163286299886168683931308594270271275799815553840284554729314071963421775647193859004942887495457714145170392070302933795640102634111158679794482024168746086240012118492380778667698232228225031797440668339997311119175337858769879908103651302984014346328944285552571347018155710268025781346811921417825296166224826230788379607692403229742325742938231415358244144633905734291675595888607600670530635326904325406044923005665317514801789786226629113491427365480619835958433123835896659331109180870514621117006786357702486052572208735161967790453472543397041054829398138611307129892725955076262778423232667907314057751524064612356564023631526636145474497248026401874534395217522383351518648272996551740063636770737503081443310501698762968830241872167680809845214692123780268419188299439735980071048054298674706151163359279276194095587236462463087897997693121557576175472964873488492384842762492365349610366673411176851580687215303890826365443044549703209597133386645964269254111891429751390223511231638928406032754765155403337107847010898689360802423226383919249333786219388116941552656372573637740958974227371035216088661799510567785760607418337311901225287191511025639619536771071461655455245172939895048177401988551297851771351476061607764288441475029587082460897745844471472721729251753193499176640216470883300119071486461543082290641181770361415976663071726602558009215493963121262034429002845213860299516097758691034547081494001301484207029053293575569228575443689491557053204688792892410123531668260900519767513606948622240243978166266062378990007665242720407554127264503199560584530934060541298881247596072217054701017675356615053784197622783227022421120110139734400875798196318206246580954026614306563722828287675365164443545391305368264783466382915809254257374253136493424418027612529701929367489987533341039225629728145728359135977279037774756048835994762174071778907427558375566727883905326638330419129850912261748414009731268053142472993881966248069072690648726341873729446236467298393129752558326629776217891357283333094123937491778333963693717814079257115615832470138244682462297209170546910751567633976032666081204146118063086268395011423335183844470074467939252468972877663317573255852249122212674360475983003790672781402457125188883824458456989259682193173140243849708421877261654321812423291157754749518854219200042432581778379899313833462993187102726605604610485335479106916371468458525513684956181468667482825892520993204674076938133462518246522172992250400007057042456183213909407706333207509572630260902891956642750073549196517738228481044000841396902922941924634786744333797174350388383317732324501763060197049559056464709928067567391773038404332951111299319519977954238744754989189650092331387778838901430999173672386720415537472779905516699171622201594273054213565635398403536400248528834000268262583109986361144264322822537718997032307337919402115061270837413395471306470733045732978645597088050486291764806124312291882439933817503331930436838587757121537159980313967193905528370591992683830039612108681130054755602500561350321348011738475365569205627854837544243708677172352822457014756422364415845612413541392514486046933789869108531183224222870136169473728728576500884313781201512953632994159084189518486838458064382735943451019198068304206628970600409812847252960774631252445723087170686257181304547229656837434724110673018263358760433684803732072666832873532187887995338748828809189015171793237479000513588328348959534758772961774886040279027371193109468754714883455536619776627839036773530702858172803819257935895548029418138047354233514893457086204371663907981414863924935170263812941855425623301193022931350447935774234938204644187904419732073885052880491021890337167398832819956814767046282078314237824433050688513376369210922357675802757163898893897181469529844156670432098459608055538980418650747458271815773997438162828909271776453799424210287002452806004913787174201332230792361340440129832634470246042073489129128370017597910258958059457004059255071542223068913675776104374296767418174962569313671675555456664010817100141269983532271459493766034362686445802398851211929585915376417807205951455055132752356219605907092439730335579513349549477200529514691259590911992393608038824272250283393231346433627269853230338859008691907413807866551842723701540669486818147986068912274663796730454553416370407293551777144867737888176911311328644175365572664642371950235052880863789781411671982452945599123530066409219950193350834284270117254595012310092680490724188386089037346287859927480092388809545671981464394363831376830920883270018428627695806766155798166797883075352686365481368628399153530445099761590938810309718000043581068643485184959418846593788996044432670985871855501727847331584769941952056414102997723016089801027741534772451066201320443308451830133986060267214823162404546536189856547292965008983057500987223701710381651683100946601740144730508164963010832575762617659383332971283001544176385602391982454917962567059333825476068375565664117309841253893753744805076064086833727041416208858668190188995636754879117321268709891650272965937029013752568471553931424367620052210342257624799174243369284593763992446347609469664432977092525695110585198820842312244669224728672851524305195147407337894879221181902153384884856037978588604768899430999427278897773349645829172265817202287554525312802994676552418048642586998333658897052185345942777863221359461356495662184578974568725188662847561056358073001472760696779101748925733818264365660247879338737952680752433733219540106268001924673681019079801816294657599217744599084420331945683394939733272713377025919949870417412759272113876161369071199513285545946961839502822916994215573719989119441796462283970924607790061163444130695180577877048469375567501676823926771024264536882884220559463282571425405235526037463099235095797543201313146169698620273972869908794407357087731566969839052284259701555987798055649200569257059637181737178793472602153810519935853178270141496965763296121010361506610355216848008529893941560723586326550692790120011889214769353956160546125696477366946653962410917387902076373330678051786985270566994673322970157033781226353772537585969142534355464438303794707904203975394921195787322299859725053174853384718573624981933670973731813651389384510403452572431129161255137758849329896207367253587688485523898699709148589927653383953612716094324490079512787408198384095238867090937128905181828709034909461047762694581775295641006438725389273147085622008376525223229783032161453015378406037386656322803448250558477204227681043913043573294025466344017781985950844791086463205432601677077345591574688381983561135112212566588877250791998703000180559583570727241701004133540840368944599412741914412515720673264177643795919112432340406026941531256836811219143071797082066544718212441813623433144968045252329147157421652988090076826106125043722701891455521550821927459521027673864002486638642397805673574782860155401178530714673454447041986440355976001063351802814312316045240063947968437558088555401388176498114430488673525964279862744049937318599851789774483514761117900159632144528729667044003104875841444812213937243957173621034330915791880688468376027861036963940181867849893406750188221530753602105795381780262152120902864904512701611965828042757755444357548144040005185296356752409210069396492847863587431461914618068615275143202644886314889107899741594960121015133088627799059382648956225680653999324794945064861780685150722374442885741829225829411473511731332665805732932978212551823839264650940863727329487602204961666362962047158145396917772651957163778913524819561580424391820342251970295129546688920675120692837716829791613069501002547722111272138152115309367541502634817696939567383119277683573398530949793406285164978909200250249882122634356415930137935466589426456857389329962463500536452486278548919356153006589083133515167456101538541714593523544755730794136173795486779122296684996373100340729384512858905880883483584317048720456033679877336270453968561470231875904882642185925506308398658344617890047214813817293335096482713696842906460244093331644022517464557261475697952524668330515385742138955562414242153089667067094092274824335828868012456492662430367562254832665964168146418041675747955045766045143001010617253036956288700430513433025462717489808176405079116436173388404621879863885004948073992100693896441808227317084353973129809727185826989708420425019861504078852886838314642052657041724579542560973652884482808546292958875219891764585281733661881615991824665425353648032861666114404341940282523451094581878371570606219291329699212224052973242461277156643037337821082070030041936647379019411507458467910527665107609262594995961615922797964076380876330963068741712486031643916554035495435231588278752441870224101878406173818431659013725609915809536972568787372967747432825542239529029911458347935639785399364444529049627837230658554071302198940116046616082652988828369117245016934193863741439746840076025808159862400060945879860031558247656000059879167787921907197930364691759280876734664145073320641369261582691387380132814892305933271776460853046887198597701508088705322329753507356374772611649181424776468290859761785349340881266747098076273414056007344380832669142347349892076211878865068161085741633321682114549727291387470941441442533394027559236598722592149797707544825461280820133733619444116155838531543613742740103264551115431954412451385168269918700947990687656256439868560284606736719321571853893639112987923550146751795376744300470209026909499854972962433857204217169095789738253379384997643962689390638154595344138286158339748331900486142647999181494804833089318081716516131271027994641687745446606133636345406187340032755553437353201935189475674544410891879943642960653652635654556572531778352104328629533408008570530516956595903918431357991589472199766357468539150707067826003873983751225872352220084958318076133060364344358765468005549511960938229959528894693405306206600720304655879475345244346362695545808231143357943950595714261928919112272593830084777040993952322662572400450603416782832854835800583003657363701696422706199634628260299995838868781759351729078106594072964807029661640954148771043629320035891592403455700302553528435209230183556890490578156825443833628639872865177996383745252592770995657671526394304603196496092902128569624047645728065863549815604163883351932072220972124197496396989836785570594150387716778510644118579736119696868997884637181786370860682771059824759031465622927407844452751525527019693472367060138798971461697875276530647223297768427770668069898358947063940342736021891660927642753312403667067478017736964218794879602679229457712965724766480680545579567871842779196311598071930950764911549482442467960598404681923959128541146189219131620473455328005020925930423238837576088525035923729874198702663592805683415923520819972338433026403876523015253560915851413987208324525468472470706234753867938087536198989124607459745736218023168438863196105840303430220182197608670829107280755754907136239455251321210471613082297824941685884568614930045193378318225910724887636423048356058604561386746900918858213239741649542606801407899147386495464537301052659564709202850045962879203065109168915645353738507126856965326600387637635154715693884412243588510745695800086375784708498751139283065566923924266723033358406181857463857568808329858203337839460519950063869758346031299847417327364275960617776878498906115733108324907572917134417304471078982877314654638408056073578015662802974398886159338417694155873838092741916611325577362683370763941113247580936975279718120453337720229101270324495233644438086740849092717614683125773011187163535683175968194300867893716816440353363730045102205980660279026535804496519375349282080942527100064073077850067307444644679742528911685362681334179938102506506846641632833772074857596054668672939411858401033698127943116898112311604043971515186763613611815606643840053191289933918241230306751225046640899392705794784739120685470711354942153355164106098489285899679845516882760963264825564473128615942535078962574812015397713360456126235890282133498134214206113265041034710997424307420295695897162517724605357373933359822771954392836707671752592150005732728551143983408687627642983120977393907768835315971484775374948808392569672733314161340489966638826120912039549725103077115663898440718967350154545067391183929358128622573612151281893654568830170141779974530571084842048865789593995196509975491313554321153059898843042448949387465475086787592730201478133058490464597866518107397931211826229654974932567045598753443813076773683763285661473864896914262139531699424704053250910131163156611738480368795214706011320674673057265092994782567255694524700646821864880515792993419834895021897065327538733042588483057543941453968395001588170579610149983939692999511699107130253120329054142495557622800191563885805076063665282236237918077661586462081440075828452415480202626498344740925194968730839275181991095573228473193361119743710899325607317344154452135852496794257474127307039692184384434501063414923437661856517490604054181657060334574700332135113654392917974972391410327452435590286100299474060017224993947145915382808290529629771540204282253516509307897753621454500661846251278278215156099418944963869283394352029202815369200537332430761777637483638448192814627887825625392598613002893096284321191411370964102834473930797847665165379893270774604931191208818569226638046428089618737382098315447395609148325229161435504588552239288484805807941749546954000969657582969485393531573364470290137583863035006519844922076580576031514183903860485594358527062127359832632889777500663318860796073500441579036896292497563133158146129467034667093585159809668952703591413624428411531361540209061049690239247455896293048893906983547901331188642639659112436075426283495174965203002866383725073382455780176926319205763151456492777201175434408705627900054339198707309063311614196682828830256404358325463554820409624265276017547150318671840537357733070261756839010011936164021443711014307162440656326124597928099886941529968875510964788154489856982468983189049605188009931008598269120786613813840254608865587712142952334080207764833829437576049835896261030026529022216361780267577880592987270531776459758058172388774936524243695990504780596136980157904145878432767544083062310488336102272443739337837000076544396954275479693917498879695656893229551264627973095632035021950083155115623389525894485520117228847094828149990632950926717566067213509722949476596590920977386147569938415130352014947102209881268702397480554975891348486424274463789597797643115754249934562229779685369216945938327883527341574892504592711492817718218063583252664249088913291401973469314815045462898144892784329592335706862657806832721941782458736167961575453018006174340339690068016948831839884653850190745881943934271446515163400519322638126154030204946534439272520677444369334859660499153516675236041923655300603262432392057152747381662679126153208530641816846134919426623365528819938778141079058901550252474919187222890768061822994716010677591464909960776815470541743633479066503285560542106621884671131392744825083279970824772259682532525680021990017997606708320441626713394170276868148277594079557422694306389491509771555276679116330633580435384891366389157936674129222644261277087147937012096529795243087156226208101792019257264034300067951480304542851657430872616682286861049120667314975723503557430899535560049243155243391848812482802943723396183117962138107377863819597963786353058154329114549678023201951858269741230875960792774586547270696467268611534751548703656091936823317353415239215594965601481307722593203509887861021099312603589163378667120176881527723938289297575020398315208670119124476198384294593304605147476951023396835037690154009568891227514632273609697098450967354688437205398406782420538997804221223040493710888210731174882510719753719988050475528585349788444832563470288702438606257687668469117675238895228099181842037870851113719897664914826178901487813079532147313910121994918242927448043318896655451375377890580463387538767316895599992325303238455436962816110559332482742674431703127722233762463829426557214571233769659633366490633314861976087628903533745340079393392027324122264447529470885459361932602791716681203455932420564882941030753330324872954869899636322101754201959126985954032051937243846897777527298358105762180394424472162384592530025020031939129272109439035277317147769624821809630584113461310140073190910546028921523482128621913606843672433431697021003713475272631822103928404968841147687276399158063585484925477783924765175215075611369211509460597699616874446837423866552728412865559284589121627468428233483148186778933298432193084284363842326727240726873855490278019472030497607156472205817994692667378993440263500121267517501219478043491016786399490657658976433502307058521877974332826075883152011261426451285250044357609886862353023396842418081777425187970850238908699918881617497406060915624460147344764070949167656596230626984478766089514210389684130486561644231141224734059080317662455673606795379556055829980101573448399004335659369273258014992600436355138135764770030348385019911706956201994626027190179303609200247439868247054891076527808354942342388071924686648026852828937710416193876791830379207371985008587063814685225388883886558610519440775970702713412401712686044680009423553348928186797682746635866589518425387169708621427458265724209433914693449187592900278266432848184592265741099928808463002510386491656772567027902581201315839598910327150558231234981883573359679038828824965685555822149645482122875041943641656264048946152533903797564302966360295220288254174139731206355836001040131909492102169384920161336752227256405726428179408719339752665779833209285999286885599079958582281047950483495994587516975593542633474094160111191656960084761856896883582307996283223885107978145020082429039027835483064194160081460838460340466850219648526346829574160311200616451516733477016215738232569248121837064538133481842857283814132488836187444589403560383829882643206008851030994845468273700426151068555711184945477257955871465896604033014484575786271868876207389742333923128167273539930874033472276705570651521464107647803059731403841569901068670126084843258583913596176380630105732336986643395198926354216839785096390539184692744794979545477358687792555731767427821023366569312197389101919333407058861011532112888772669836014338108243939124011454102008897858852865877072541653678098804234527032800805926479068027764235424930173435045488634774576292874558162716231980088967667332535675388153599188561201491733867760263441667572807849523827883945117791340040097562654147884994262442729919217719652555724390682484450026481895792326629597829176108180471325389787783411630378969915248602589345357225589303631299851721969134606015717723509741220733146391832908450132909908806680532439141927408301050810589721299917055957631896498167744380196819179756838297972063360769427396266394144527551937513718047205719138092496661268781338376819589056609724176175959137106192967339244991468832828823538462447622814592554418563700914386142896145711638082687869128698019527899048904920906634928047114822631947464773716477988337600331999715486500899697439087455509659007800268553490402379078082250126153124718634731254746954542948916061151890418596421782001449202554050065115127903869898772326298812755171352331648509937812114692222903192702738161015008514260447928209462228654518951603114550968582120139612054633244891317499763533679901579937628253650357365207848273683487469867747207652357995460310229300099637890554036518805111250453424699445027316515939234907888457599563185210840510061473780265819510794080755173390113094561470903910402016016007950357290707621321081484619043200205684554746426085642667993555633762740904068102568760782888538058045393924504653843722168581996095592504281576046053643840323124644766215867014882719515442792343605877894732256393347984238446128937407164624604932019033888918618793269512607775195683061569214692378688079919076655929150678921865027947309545851147031383866921559847833533846367347974237972590233519685743779331412614213679050152998983038434931832975046229706999106865106041517645529548355420136263237617995709859512162266177481998086375968511380669323199377646560957101889653973218144096317322518526738573128750086390276380789637018215171264322736561375299890575209540581299494812174333382376349220050587637425065928299479322203093957166900755015482736431263078599966747172935645018287768687113020460169123985104999961402793965699158743579242397502441303939690260587484959195006383745435741791025463588507947285812434394020912426439349705893868207802854502184455169420528966421763915554213569576020222812431046910595865695349676656264780890403082556022073110311249910166962733745271830120394246551761702907168748487447463251037977426793748347246664254402256014542170389804840324037652836725540216295868691180805575237070575885610079648930810242096628744175270972210131576756216039800612893063001334716384495287735425977836568672588468288317510072183917413987837479633521877577222481938839827431303672380432602743184427907597299684770875255207085574804022731680527258556096049845589387549931211138953876622975961969499389837417294146121228950496305322197115315332420641374635423561715080751722458572917681886205183412612840321173574970389083781643031299891491667821029531767193018334357690022729729053663751738467088666902505023101493564986245082274445471949389438098049471493025172607942731218540836680234967012575986090577272480034850008558178443229967166719749216041947215670381517139138572155725227041613247851498252258438817894036076280726240814453585706904913379597714332782811053791611421007496333108348820732452516440204748744067228000433761233477767430017508226829635908573654695176170613195175578721597532237703689145314382551278215107557225406189485063578696080841367590313417519295048925859230885093444627179930716958992387486918507898955385828380994257058657137926467526401779149697259303743608192976349421471242503249901764095185139946504194231931897832259542258663253255547854679370326463761334385867421852333628780236225617408557529305578275732198834324623684863596128988835394055112046130975273037292942396571576918791520746846226345230118403453944391961477158559348898499461067805706588588933107502904833446886753409451430393511586649569903355102802831630184331473795172064738620235186175585388238757681224176335519039014847759306071423461238557032174151661066157870499360179911375474545636638254686214820501980481378616972317926725703933197623755444186159190920841640143394887798823813233178065972435154375858376950380535721771615583162081437350594515006804063327564965023375675679413205293775367869572752042936395303709643092518448768479254014080142520215941915085578609905786685075284496723274222637192196207485234452776164124237310731649130308200570281624398345308617254006172780506330159872513218229938604782884749735687406710383014045209439490903856412994745069792303191462077171457188673182872221491734372120552428331043385142620068271323091201638902594941877355940491243082401344845407184587727330334281694149050383555347284472768022205620250942433127780663411969530712046485672504998913378902522585766152035895538593017047436573805987866888258248628174266074050263581325115118079345427513279288815012659313308944590102347774672386719164264001428848399593407000804577076482232252234394422721946507470221966891849983011426237501160412684311144372974696387864940119165790064982339613953641902504598834372205378179658527221543612092904935892351926267728185671720591027818576231711616965248664364080006832029104415250294821036908787599521798773322217324860041353564250970761095887428119319560808374547665408993086427727718835001947187993705521134049047395303954400875847336788094293842621002123391931341818493138539754850323669490536592245297003525421554806808356068012729313330472673570504529714803095065262550855251144940333644641032483828501534327629423344971528927495899711861488284018370301375311532539767227655579818529140228084965475741079255895046870730288411769283843137874417186005197351203345028963022548482187976043898273933049125414279317653192527827956599733207708308121583080587125734965914493778723724013164024334359537735007779669884581679988020161906247251534357413362587517588189804451641153863606794786180696857000564129755723547230333843729405098399196609733184766202504100241353591388870516186354762807269583939354601085548515530560716468558066350348945771941869875243712414757728944243226123804880495752313558863878512111041548520809295474997262845041240689856850756243906524279979042784526407220631153718548672828524495276589048921802762958756804258959643960963538096484955807771873849009073110261115259206348687631841822588680342735811784199911895676252355454251556970216950642643103506605504147421810914973783646440261154571152402866246916485540688946672048894321858220998716511012352963693417261362443894203556967408728967625940413310136302777300274673553298276575479417289141846339879153411672125784947123181885206194101404487165222842107760505551583974283617116257320981295044426003661497056910599011716239737270717048377552037463276693344272476542434724856825306991212520907057591705787611746467507524129423957560498263703989056892828701617306392197623688435441426337444155366328968655116014714113545333051104605331759150880104150499196156291170344903754033380388292006330670550727187650661157375037103727517745846150382426562136661468353003220674400114776628820550215900444165409824712458572947904840966646227620048922786321389450797756605509939813198537915569145859510272236388043388611983586059137247319228375050499811760217663012970276672557767068837654114106920308904179490970230237399774983130489719755735550120829313906514695355578278795356431715822234214164697842978949108585749192715901614706678017586208122721723371707627300696147684358552203751342767984505683045388262087355767911077750874405293392457403183188757925453235318940914852880544118058338783362993070913503351353701976123918548013865253846440765754041518787156762846419192379744338105950254803222141194686953939894812521834883643480316099540341915485018685108016358969625162319828116195897536934404021486320632111062588956261610002414009346898680570370366498503089823903808313742128426713922344253882273254948183837566934829645600808798455497353241461914485480808428696769525001534772257654194199787794629880157959204466066548851769046288661239149497593003322915174825799542704689962491187260054657765446026832496101230816188160447116929256040993457788685119846653650247490479238334879903209842811245341813722389075362432769124315514825531106056403749305394416029622107335654175396958724805260462304196960561294606711227233666499686862469737009867962703531585329203354231940050694201627648061840902079757405325510992117949933753325457986840457896310050022379986331335727019399556308840484660338678969921555592680883416161819927922205232133963835204434034094645646012557771641543155876711971789292128791233453250508023926250431993732861831771327803538056533318331525505676061130556930501786009557527838703378522327149410749142022371744561458952678627705464884125852941340383442304757657260968988176558020950972865739458154395542280796979160977799598133998498433313968216184954493285232769477246279062522234930881861744933188723300054900595877966004305417927222909324138112859309975839627275099408985808701391461879962595071700363992619492665606880490816871076771018575964596974802626329548518980584924115241120377370452293331671666934213212463943022284050602402934578942154973084087465253063626938856279364293841609961637811242109771782120705378272226411291456633818850722129409846443057879410041636069368141280093486666927449489420228170891635517057514457610700373276452875375115922869804891434766014518755581746068194057064802331438097451565668455464575838787662825757873131040304339744226772212466316131511897072334586136168013362796149040929136607522246680240537913006770853499371836875084554137585400748450060723423526816717517582509290144608192990227147948119480228570081171919548940816507129645950671807822391191397400883507490182980646056482222534174552459354957830233314263034556333011713734433722154099603513662427944560002637789392468888573274909749289039618553253785671360350801928017306928780669789642090923472211762278669806103199526551622584762017362044516063190827900038331166071569664284396240957792111609932587745833340622928673608707392258698430691635794633120536260382119275908967059949034787164237381466049082707566620696858425188909599683889218914426136879715440244304189445079670106657667668652191333604681791925616516600168990977863578245266350103266950530964908969731039856929962736366330143028064595980680754475036156897663051769585138285361843419534920605081244190983928160514021153448513547868958463262718079122446702364505871595854449907039810996440518327663398644296884315208470887005047424997787881839567161964249303043091578330760882995668138307544779442207676111308900592639613014959293621045054168987226655146080276226270696330333265772199486556235490547003277405161454694819601489422421010590373129612989583277804049035253351421000531105586612495725604480257431800892649867833093307291147102425184229347292864817296028805151023570759295776572658731360462154220883833882088528984938261193324695299414355124469069440916848879650634830574596345919648803373884775305614838999278176458321821411843705298228453415845106513153633946895452273713449807253242261823015223182504522568610024857313740303731240960988676500023130473545677032772460180557036249457487598495034611553446637229401103837395719220090595108363522802893500847190553044765364415560447744792524043924383528660835772296116796787023363558134563144510610076411052136120081244111897516170060840331351151847904059310337676669374651955693188421250599227950917787108257853351951663745946081769916832884109627325704932832523076389981164730185338052070288212766255578133196065322497855039922181582505868415065491312375475521564288932882959372829658151494200432266432723259463458942158436458361667689268571037116020775988080316208001261604450949038734250540511165867087602044633127895325209288833833986414446529933484780266423137701283712901822945131997379274002187222536386523139629480929607680626008496624465573474876926241707894514347691485656823242062250176257998818510227240042535851437069161253010237406768585611064336792986969068354522566650173657848275470297864136493913400899492409082992685595160378271748200100799056141772337176049935269717392415884969514463310491434702022734161272261438972584721623400591844070706506256326943855482084890518614044708902212411151431020630674516039643747718092985255137709044856775026240993244912023641605459852704289168678400771437293190925710001553521663410041243188894206167971491003439368123428739875712638291680340107115308978762470417030819989329966019954177968603958204469900242844807685522282180799410819044049149567243938920795957868086524840955464625852285524571969313778032147251074217336898515289712841780688478131053510782810835495597203392851653804976270651704816309656071112684711950733262425170926950001166170940270172831195981356087465062118943101176861683084523973496895561394043408575495746796653445236600288963085265539324261234534644133990021747098122884976044685169741295506455518810747102703243669006152333553235066681356926374063111289780118958401202366330751269758903789873313093403746857511483947553035500022308029350432221179642219769888403848621435055958041494661872967354165367938240333862530989140877734917127761672387090144508480120990293143518953602593735403480642086701682350328890257271990579724939256496351833614897220403578698756885506036871845172821565741608887400909333868012395807853255869100535273763916111465641767890518690641815032880968095727815704948451186508613743911105530943280376625894329134045209974591259202545647100852553498918214599304983870726556128034476753136334660721119505883454479894991065938899089155331894318927177163491543601309114698879966040083925812723126177586046566007225107013067111765305117972879013293151732781767882649934311488079154620627769738361798077099405417358119513141593789463068297974553283634718213823866470820513998421493959032960917462910343054130572980161278930384100901836038919774946601130928758698145386638794991047696636929296493073426618190389570999623788157947749397971097262974998446010683753815516964822320469994839473300887221785442668586172241760460192446340721969458890609896517214331103503490160417287772920575478292375435938348579721220561924792394366144451070859613870475248242787244759082841668741485960285946450242160477232320197686860236529161487711839049745079356601283765807198043481110713085789061569311131383612284460942241045742058440884022799489579282221284236455700621147365175168228283917869141391440607107052403480104398780802882887768257808189252204779620923225056767731483056740717530993325195984443792568783043895506411695575815037351429539716312590416196932556823184530998667296024542980945062358195106630157447425844167524875540731891780823333473159758001758558878624477928993849901746603168182078829343750678243936087942305349787506747481399059088090600223093905807935206454289052184936642342074099123754803975262740298309238254553960910593005263275182669597783030655720169445540844533790439434240838036053353516731546659169162556766250348382503940352472685444986843615716434323039281295103529653266416662008570564572230052357603573144316802849932062986635641300090646695450521344597911508267283249472246911136760909809048804876485214202082848959592872707883884867721014896931209033535496449566109050319079190867788929557449419201689286968377790245436569254759767905354431005426626653276254066697329335559211480324069960721052415546466868479613745952963893665745222152794245135651659600466679257994339401400107681953015057329657484081489238899811891683080651242293484511899357339402534506536033484376692287997649902823807225225336236123952058091426591084141609200471635274949108120805156933441613071055081086284312809663918848847683095255975543773867360439409059715941271656464649044575256243083847775206949306403966706092044817577075483052244632632402403948944603497376606249377274364026895721862800519023744777443655089122780088079761833624789266965095839407416279947981948477259856088519044884622443036176357840015721501810239714182007793951578994521341395763840922331167805751584524757347974845850462392211931289770422297800577730621546131213284466318445620691487681305668141808218814106963932258746049917131638822697705713942011176677282598595230599304341304756470918352242141266377967966347689565391575590263966806534618283708607393338715217219473905654963744077253868079410749218381140057703593835710042584804565776593463751936555320217012690828589254998479876585696669840485940530152444895700059843768111638470854889360979374161745022201505552905309235857017396528530353673318699529074927208391482558923674520034165141816460766476958846874440119592071447192339690955203326778890115712729964037911341219403668396983229232173881394780525761137761981032247346186562208342107002211131356358138289046809930071937387987928605796426164760333802717040703593617386060352933923993858418818775137039230084205224717315375012159456277783897997212421812632374255814450249847653189072484484937832848569412968143081231654223775638576825808279439815830832955371257648870078462523849192513864706866713139485115991819404343758749902293321953564307730802264638027609210355277695773820778912044397573088773502937878261076806227546011125969861764790701904694839355945152782805084580109867031342449461448653030924630212409778198255056341371505534069244443335062019421995103580544137014840115031276191486827389823999585838949924018670907478085711819776372396576706451281759173666958706168422337993371308520873704463192054855256377134228948045731040820690333350984435231092924112414416324018196661629804466285873230907263547628476850348046811809877205215558975073232924996325037458122221278528666333577316615903374366054955615271163432990220634564126996653129740758180644562887772880652147294101586378686566016457567534189748532501149209694598109209072886044467680720653992922167836585991254039338345794651114029166766443895289391699066140883672456269185460542003759091555598545043857643607471808858260322302774688282398560038793973553973562971359154206825698805316246803185276420502515438692812654250355078748087021477764910791655098374357707288735674515881685997894992551280655971816997210497314327074733119533508116069366490376058183000670911026155669323958312359819521631068046431040189309405744818971711156742644175819352814861190030686088168517738976936747453288699982577957666345037480220517829834156157324203143393443443972529957425381764330305941397375305173329363545535270963736731555786462003566892574540141328374938552043706373413574145558241853628665198304381744454259635660238985991772946548143739957333468354782727303167264132353539230080937729374903089932568149500167903546526949777260379508383084444831506812919397843978878647678117026609943225297462087210420260557194474870854826265737439368046915654253321931461571390578734762575144856268436012449827176420846922153537344092722663707498628031616628949440771452318004988953870698406268708876224314904290444317983924095040614052688605998756828839115514198316172641104066312751773751082273325547198386092465199137296555986405557520508074930455195059804728145501201622245544637313345119268557982125886193274803958360272460068102813665759117675756765519341500696676764187050402294485952141932441858653172285952977217127984543052211602010813353090495195790305881445983690308150094728181644413792740518440933656068457309508078084901366818683832564781242893202772794417579232383313188864771883232913685177001128889087731558363047175175850822718900235629444188308661418630111341802659035889929858320109714543724732032616584689399977980826478138986361091799022227700888777123883646635888146910006971219263798302010119159072831050597524067247103040947600075822063824991565122037691518144506156735996778242700194161277219957213428151795466920588474911942726716082116374096232088399286831434366572875194990989784158106313729584517793745731167087632451813606524780589632362491281297536372913366613015165493948045473330834153156965939330032186904063282408471915653721481499513299017565183117726322348014146530528169759218832737759050010078273218603314649586025735382307884682430270188347524453079519601345735711104241778034158858543365345136005925196586224335301282644476531154636025837090457171958118135692575492850975571311061961147014624147881422406974359966296047131214758142264682803138117335513368769738963302771069979681129841026294858144787707877631342207452402047647077979728071068494508583293708009263815366891527589345617267645035627788464503573795858949077073567789358141232441112458790339607422564256862798723635480869866976923104488270929113922497797250315308333835932631203791970396772086437225421160392353716179429864984875837308405131926524132903993882128006151270292586781825420079707598425498499731893595050042307669980206310247951510389036340422651900017119095928413800409168835785244845411367280606129049556529671145822268325219856057334861156603168543194178933130028410413304586263481551023021942622975858032145923927432432464686552058861691679265237028447821962362239317244894391270262555518208693995843639843520611538544288055370502048493448654942041206568736379167225623476325008499898287773194020212477974925300402911215709322867109491554077725144216325875541007059722103839543000188892383309250943447329327856351838443610723847377525823969834138378294621737084930498530323315151605004518603376737240808387163839177630875367197786996719190309308982262407023312609683155363697828021925399696773298135589535081527184008236051683571200550254673899831187273900337190711673751655107842743109491262847216002764737512169207601667923032403463297555915658122729332491707202375701462736161487608500429434131528618944113075085204225271222449132936446534203351524323057305359907230114257568500950845728653980752233781737230317877378951382319915639748722904827018880737057585221265931595775620227639204815183905684476377432124833118234407839336593834139963223834617467916980106369068216554226313261400775793033500155314651271242179189449891098584724359773960164129802708216042193529929458603905788218461614529704422908992895296669595248363404876400863628032361832946163463786746750671290583873589255423197585446341820983785272716760436367232694089768277990803656456710994473003224721284978420617027402466046218840068099734596813713872635320606967979744607127409132136403825667551927491444667064348000418179509093848804901553671266833739565605279160693108453774735162722129347331459520683818218936968719520591237679142820354378256373259933997706546116484030602512280066432608957033028629157921134590547504204059581883194622694919873339128323517592382391596424323799593917633499585880796196011107417620192071859346950871985793974873709707513816042291146252722274448164811771348797927193109686587424863615565366070208967936630739508663864737381787431471173520857746960722885714508122692801166192513058345530407543173307532878334482636092670823703463280143773460747066551448207412116090911740143783759388754237816104948030541832224175489705679345475357990361128059760450971989909189436807123285054137676471444353537733933841902298786567388546732612674606211037129039718150301385316414942848261072418077385136992035667383367326845566077440374223424660476269170967844522063671914141277259438608128705196655066835077457062651522576552204979255691825176907071764748859174571239911092147203063050667115844174722406545751150603493923055827502796607526110803585292471390913434269749843446921012570555350228131386880746613599703927085690108581146371820965358350850313040510659127438234910034121698052335674323445467144898954709096871883661655414945199798668560024236137908177331148913663133834613637779491702913159475354187141150553730414363118278601236709976220958042319975817397505065417145373206745715760514529556357753995918713324775364185679703575139686518974982976315169651629249474065362219313560191419693914349062183965928725435765452757833839878665240127400657754757226579256269532462047000973429532494632478621525456734724518473180161160544863000583968910112733817637247965896082886835757915287847549760422090950022520605244843553194121148854124875516118750150692264949819998365109463167255230621770335187072911825306423360153484192503622528148323980597781913320521404353554825876679357543559613511744295999749423365621481674809691390291294555472708369383409747376351420453386818703033484032612909416085306868020917004847943134546300097344574247692494810956259120327165848639584893419325983310374450578823486678934194395575009475559974487331309568651002127179413897497186483772845000391785547304693254768764911523731390827026459840967909431295170777303429402102589838526709191957160262355913454754460748096793267365020131102073969345784027992082813993156351472449262120335212058184759588552811640716415788127047295147830201696279426915662441446839829962151523146280761944493234138511129621520417402158234619486426327591400568085015355346107563726016756977448290433784473188024035366506699763817314977984594922201906762519305064611914087278774306076371792018272176449037410677444783134218731279930673612627558335389097827439932383358277998013824521176909108675514331805548144337511628204684172595737044589725224640571024602777450946498307686730324881048300335498182731069376895218758942177406448055306953928506463250417713346654492114931605461798295126200151219733839716758529429163190565942666239403652368354163619273232767061048658034187055254367622745798947537318638471054080454237591583301984615348139002545542597534686629761344439440153319392718542989974248698675140270638848753190125480463533286812836348568979364971098953297106795547210295051186418818297142182380133661987198820872401188607634910708075563702625247080863795836569313125400311802068221968145118062500956806413090798234004819391168598866401202195461830219138804984780560352826240638017769229890907656593795611030319434067134104671066155360557256716645866416262121515094410468399460596464180240164168381120024917523492531249616497457119731205178675755916452621730559668235242087697241210502648457699095310024071022749261986001602177853848510619140301613646502163038703559337529477015613158531429207290065995393139735484041068969145299432235679414702774675296336973336308395311697427530292339760602316053809781762813912620423545313763007594880071549210082492600872175463620203122752481870247519867533561169876094724478443018212052365006017912457444997738304483272420670221468222300060451508644508806685900777361128780873649023902468202854072813722174002872620505804424388971220152939702642770922075384467353358777576524485961615173626639366514724551852359890138233219883001070365908876902364954395915435435528971839285986789771913490598029363947165818486080732249306796157919266746088069559293218570376528915161716793885388988381913020305883983137706634218266042048455193769931337915787151476518940022099582820394611808416668443675738692523169652164393203793511991519712494383777228838348665253421280974743598063567131801875835316463967317173085421281508762518894532063091213600307576944399361867959169555012431963404356012705747244358991092723339572260877320099802311176934600509765190453224014719024401639929952118866068626986983811739656288684868517897098017856601613650923421203530368165158203845213420228762368868925717816770936757855331510320485487740028621031049964642985409952127924556482367699635367948848946319632254898909356220312854257562470855110122632422406116422759569423684027077374981245547867642851259302397590320574785774590083144445111535926459922669881482645491175398871498324948196464695169199307891901388239830126791430046483901126448697051699079433858034897537275085557319498375534019583900066770898881057196547462496387908010240871061494547767623416130460725571783927488217858640107695008764577750895718800183892849668640305216016407437998693038111602798874268450434297956289420450230298890323349764583518135194469140384270029547280518780891468927379738221462403311581101072006159868788958253816230491311379260525120665983861871269282705986324513507192512293499491341169609284863729527003816180788246027910282819495593152779751165359217385895142788269147001349369531559670274400278483016545538537888050897411947356370105785976884042290633907079156982612724397373304583265174770546998440222325289964799689294444951834867136303055613675971900939914084916071808040854609756073018473663884935814755429105705808175041899917801135890821530086645505423306264597292842605544345757437747505717688440606621093861904190745105595884814074713006123078441246779190777907463321791158595544035829314628399935546601609918362928743368432835527256767709986770820541530805062529483975606547394001078370371417199057278313024297919454982683958344426902831260948235987601647300283891602167739276705641965775698800552725146073446359964132555486583317200379814683062808623545268998095834412673341313611205178870178920596209134204564059036822983230709628010061856228642277247282427631794684325696692538821826054906085831240900839846970281878698258541820773804131739965973713995040578027179804190723734954443057954312005959347812756554225439082551761380449328916428819067371384767645783685512057557506337601174320320244182562740241742190382533676538274489894273647690943213768412355534357650099643231857982562413238088754857274709124433244599981607929792079545849193406186917015358121609358469272267841336093521331386176901523234138845455662056522345852337086770237792443143930833525652355132036513167884795447527645461378947494031014132895689218314895938774555676575343215948182807145081616284096925604767422091213607327392886798257101744263790514043835073416172450281066550150386763848596875313667274418141232629945032469622013726860535531282234987664199764011401936624002685974134920486829851005133534169199198983853562947444106461939907244625694795843607349279046364581385682627217637439649322344668607584684358890764371539300261192952069329794217852265501595170342529960989541679017613653294918279390769319953074077227733823700706202441700516823804310703190014175147195911636805858550390953130146932556429632524745038784523253291899022530826340107103454632239266151348937095481522848525524957150156725702655062258503212147230938314632816500076791542682543594072643196689086788387301796638825363903673448427559430304562794823998241966785861575508965709171233858896743374304017927357357466765993875431379856509091013848427825544858620758330112665551717556913698174933177930864007134905779808321826127372349734987510128857754956352747087553065215942939166470751069972243275113055750951230265457286227565318991935493083261353973654763630316076174429053800308147301547223233801773213887257564275156244184043767121171424037409327767923126456884139506713270365566286701242724061172875729360670557001950714260839448456166105716142297620373724955284303420627479573777917415393007732082035148981224548965518921428954501403491304064889819551721552832262073089052482176464846836059220207837830517317186022340198085692176858573069145188471999604131554215291300486741507174016335713459832170354909273508237135423566229727560260690690407435084967258236881360540445095823129836752349129493586705026527866493741238331174046366487403609923267778627029501434890576977550512448816354612206639076495047936103959048545208345563917872820549152713105164646511867833921980877106947106827748980147641542557684813803304669364882801697684016160229035646661521341742358980971256092048554923454976530587381519530930667709720784571282731287914433140698653587343899047498406456911394028542755549293846341397022150818780846142594045173372683723973248281942952147964936269637275747958285382907357821106362823140678827145205593921146615452715425847895885754717099952914796863611254295605683126261622057796868872608322941752673140473297618864336900568106782567573615578467212496491224701556290172541205502966018967278563048049720457913282070029648118895565807264313935467925660202013832907089614702980497014825364412567223038788730698760983285656331741939883140348108247727172221533731974798334255385271639313877277488312769202536914373680160168928897464257722976602917051175757181474980573740343483486490035102380212591379484563401571724606886459782945213618749939690048485339353343565594163622060881416570424677297748357364225673348682700814640384023079619215911226298822248189918182345278110456879660497885738666113388487062500231189742770944106052736301336226492984804325447071487311218765074173825195170164071038881939856543665418010026225613809604417781579007109086863461218062487386783708667876677833617746477922294694083529496793796710274686936856930308222884823824469249865201671827985670103096516810745503544121713192960915202479963731790456909032161037714993362702700062961454233820233782567176686374418712547794960531030739392340995539349310149831167504321943352575387931991062216425054455758320031518085960199230187831313168426334456481023972165407644540521756649486974517615993246277051355902226598708402742844623600162770199898920940766105782029137508118723016024592180253131268145025265402324640384616398718560076675217863271537172100076849283324912569521445271564991148075748189151217944618489453641028348964090909785069195656010700899124663525706696184539960101809217604159474499039518572736741575408806939508340132503533772918754402419697312500996135669895496179623928161558413833407291720317422175154642319564407807916349950376097939188662569493306630557686066512941751896692640657796414697585099384074124402705574281056507120904461148923422767798258255901688758606315584408655239684668085218003372793935665426661681354974836853232104054854436104099973278662725114298426193421864143960478954427075891997345373521441371584318877754303604056697337716202296428733471300061638532085779226663338412601006765312170704258373683234825930059156003422146609232248265254127482733223648789544645448036398660677270913846320652338368645220171200522239875682996864119817383675861168204873155592977038002785073426088113014748594941203359046272631936700728625500142700558060535625656953852907758241530039902018810143345772302868250749255940588334289647660409094473994206032618281999805197313663924381359882529121619816645141998183742270154460041736028757853595894025717662713948778920956098062872031853417350410068500791401269852814747999042106201163321165009103999027871904887605985253944814869188595714329740816396201608505813587618936238679808265344396282607113069540747646551812796211407547162519873103603350275041292338903372224356959503413406598058137865812289332549016671629008818061524050169157291220400889747142484670582741093697846077393467488647579566243365720432560990798371736979796560077214437194397647570035901206904324504401808090051399783549609111380821251926928836176306794610350569650595080271659830839741103741225961561796650790720769232003543487522331665808191369118244355202786171183282140082242504816048390804055497146718973325279900710027363619386387081849979403612435918594759071121974978644240340197001267163950284084156485605315475156662925972738286239580027765615304355761351682134806594388512359062859304864042611019938184682621995828887452977520810650142802653143603016271626969865365432476882487640889252786656384550823038757559192466577427577426600345794903834267339447907688954805975903319621794618486026606911369672698281679767932663316727805054460816868271247972591722351938837213245572009350955355799235283599025873703731788850031589766492848714939999739707601595188326030380530654706265751899681051888871382233732378299030198977854047709577026993896608795155248841539053195571892563586097888857296136544887247399923845814303409049847928099610918038070336291620928932018322350164236944144744362658743692651957729805470379256036486047878709705158158327635667400772910390755282921434154633649135604989102634333622924792868345040963282563599627990038987253850429851167122890026531047568886744425389868031476908499768905278878084170706271273343937724096836077040627035941557473773945398583651917998553058297820225271619337173187160407160572084025921721753705473316761525690473476636935197821144200812936726320521835925530537753709380732291216803261330552907221997591367091400605151465399205259238286457986365318792227600882358803780041940097321409965333729720653768687182890357326565151599288929180714218050307293470064804581445456013266372353381039240998495245146805779846846501718049931806397195926005611306306759560808433821735668345197719385530617656881678892701318516572058986689994717153855718726589375960739668853757273708483390262130061400116946299066244586535012366247803096364771823729313462877311252932204505946647993585422320548786948905922169782988971981581081675955626980381123140653150669400825435059585838179002441976047707369510493665542411451770629284165668893847477372719634947708676378300307175822328229087981293024734825644748359131196016277479073207889894621581468210379831780715364541354393812640293111570883015231327584618863378729711256480548404504807025454713373073153004429117505724180097359576189796415696166917214920013573815316279367499791917245807232200157120783601945620906120044861989179796595588813293152970681121928645388733243613415298614169674774225629635166630027859651509662366573106304113440587840388380161167232224711404589233925202979796007465457233504696625685587517088375059909153690999768581071876025778101686313352521866172112379672108867799436883423115681597837033317603481961323044657199956249073427367214812855257218278098400509334068778175915451974165596128485977276197859609887512366556172446201411367149627440098243745653540320647392591595652842349443728226266511919897600685475656890275486658885275123291618557479639019162632231252584389502160568282389521340457458807049967460072619107318460657933665217867802402709990381551635753650022694391146175572223945527604938946585249661150864422867467082686239974265422574377298347772131594484127316269286675679138587471727420738813092940762539785523757389462239423726606219909979798663671542112383951630180322889736709375187623811996583077994565710717793735416844222972954926813793622976731288838128517342806881056260748831032943588063269300022248837642522635904107086643779625695624228479333587202652147442472475050661787092786388769433583324521667464917654312264584623203893070882989186546729783092821405486960120617113400688040001401425773381983316434656237602303041275940035953703408124100452747286946080028146816289222670410217183371304909132724348559279166504566755054647251046366812498388423325297296506860532569199301990367337056408033420377796197400536262650042260239774328589021516866327374198747961715531511160158556542094479036107488110468003942628178471213048067141626758744609545721235286192939251104219066115452892949663137548833170138067670595711564595481654549519535430027025430246049958676178117361126771329425221741248159959524119877311620394018645954808402119839367973149665681769248182796686154318397869925199947640503385961494276479096971776348755471321621366825859135492200066736696494571901712375000827774650351091055208735716392752746824323115559295708414208999819372982279828822083185865263546987565446762408836440502746227926928992721266286984557150465315585737223379981661146248732836109005429142626158529853690065281937938842588194170952863938566085103100608762490018330312650075082068052814707916564434669110992613711872221853017762094441717343571799702955347974606089363815665754259141048543521411461261411610952895039108632611724211204526082216847916602023504591705607082908892575209588319311780943004825072339120407803579491142649074461614822589844670885054442047567907370850636532485720706571363687180022289288203480202171845978890106303987478478868401895255619810242160069748970689080369618975582037635767202943140666488957679999051466684820357263450596461079982289795529974517022708347340343757398870955722374309076430329484897480684737924829673853313670684754394477434107797647998848054388838991142050087961609701898798093051697721848900848282028158794954906052308537194673910807863975501734743212523386274815362880578594221832921307228017655859031681135639681963833216581953683013265881774055707784449909066774550865225274412772077728740230211107350355398575848807129007729043845513029241330318281792461527379907040660658472091331610568698138638167741772102526391465292843191019839618084565687878317382043039821049259480637768050965700602197006387665349770516817839356073934892738001653886877922739701449007399678801349480438247893433062977757680316099748112558553554876540993671119488632967073484627872519865292729343948627861219559479250926764497142614675650997929583304225770912337471532830927061269568058043570303969993235523567709631052106717908083487643283219984480239822238313928187059151262553671694100886109587018775304875782783090206620365588749035743739667668339973963455407724415603932496115291887177466019882042471251010333776648109887299642259611479028423205270352241967983041272653364793520508007076582520263204421283656540461130474426077413930872974758983240330344160770474623835531898534699768857815689071353765045380391664859170191976255853790777380930152236550188872741962071099729422256127876441482768591545707152845101227578228952761035382669087315478143927608119423781262621571450115049264498179940252505634005303483998263763997823021582126888047590490784032073485544839320972167206295380439565865962799431127530501341836847520308152381174093101867795911432780884438127211726109685509857419460064061177122680763374021229306267332785056250733921617386995119336446841119555700124376961564884281643110201028899661805590643893748684281166094809932489810566953623645452481746687959257882855455140347904682610099403536074492160879218847090655083003746641031861355179609288649541448775940560906266803278738041077260206047092391854270174974958987585088301755739164224375130351902498605924598018836519292977633076608887212169978162139751633241918821990655949821805113388843270451140062540271041178852471229691467730268098252822926481259052143859791906117687019234095778444463195116527378884642628435055482111034458807796139919072122192615775654897022877397996825526158222307442688081513265356286681757194170388187092868582355493157995898348574993933249139302172656556487119603962280170721248097381393404535044004841244833130527962921653729702056129777644754622238613519748345707369330592756897840999900905185224294159996428460597594794190285991886542645553977858316510775630320937845954685290483784966532293563664227663628499264405119955438178343498981886589148797394572216429429520418276083422376634707395102134114035880882285493102792062042892499714376698827336679789963290451060723135326733441694128986755188311402661364215894889707801466220046937919858993864968684415915151386406645456822155374430725237567470715944132401583057797628086359840504782959215403322206592261334291815055147760411218355150191389955556854771080161172194955236632159637511844907417645878568664053879501652849695904330762591460462049874615597374719373088423694087035886777176450600478740901757486831716306820665717584867487307183096898633772068959724161062055595205160587686557855950832483337242905813407509099227178093200920851638650979846312694260986966819540000746547494695865682908853969540290844067253499800755405578090945891310292839699160261884876213983798338689110488550932394096602753370987297509273783347176852992853899424851618396511172261650705842393217012899741576562407038076022983370748934340411501110413682285954153974094236502473670507011307523685645348816900275966399958956244066186701758169138124489259052252290419277740685092714629374902432327075756107132445581025994492328492381069333398020988682447364755907206304659351833904435819222429066632274671738313284048606980312999981450909807550957828750719462596327484722571767354504009579276585817903476635308465117766578761741561431668133313627506101744430142327311169870124339910847621407630114750132180321406881817296189131933063258945864728661950623404582153517955986556627520136140230082394528885109778821638377523346000848234975004805267461942694104448784638921552635617534203623523560674459534845561783935122177785939479989252540064527436391882706777081360253958936201424074881072133965232931024833390349339684660409696861373473425950296093715190369437349537720817481013489979301782884907047484205267863541912187052830060128361008271798707369779001387440890888137209838670115318046380987146460793056406663067977534479279875285574949111248326357956603218156712512643771074974123869257106965103564940691452228401968248986965864941700183405228844931796333053526850701838390087441557386153065163192492584245851329571112922037701215580301506409565710191090697718139083024178976269249455248775415579696945812511492739760367499679526273246663848728301787951457691174361422756633783915484007718081305502931486807296624461264908262340199722131790787270175263971815901803972066794006511006712029701623376901787029966653598068087242851052562808326107944899387207692120060125966959525534463039134056017337738208443781322796985989738152257650422101816026792338789903600823848702047900004719498887904185295938789142461479230793830875643309778057644535917391182634436015435596863948453281490855951605474503054770312440023478853923121225493893378950493095591975846953143675734813732206008867083228089885848441032322402897885249207079170982975873096496824263488576534430247074885711855795791785009147403208426005287173522122771433827611978523320364868249299626576142196865772277500619382221198180673210109193549610400360903947037666590226300902485843550571830525620472109182030191844420295007481219377184109902529529394049921956909832659827647972978964315404111239009935767281089358508571839617187397879384403675172309325149458734359696593521605376504560953638623700992866305324309469788928445313934375252370593357156863154101231358510466867294776597180098451977434113521166065765979692795983231663309742245416480864290017171636832851959698762167104210958429707732008385378566467861622408507915177704095496613131676663983138159598639031000392026573177836329504192351388859427414979851661329823209272768576066944873101799893332477514820008268864529090429853659009032315852042543809139150937058222805660367005748399706429577520107461389046625004729732312936618824524182883855455127282399514918222464630691565082999626572645137166889963668812594310507028150477362770361695240531955242209891931648046633871697359599304822471607808717993759682795807371733703519395505159026920106355327013134029830128447411585391489578141894427189416786311784959661844326402307445691288900318797464948641031614065548630745856815418039907773391002349545489447776672682377564438251235727112016705659955664719251461701676868037421816973191948863498425502026609375720398168087478923284493482091219567246310946083903734244786210529875198459158380449763426077206366666622595213722104886277734682862113755647815360618979708378374298307450533199276879185526913100597474898182943870179376898725797655375996338315675788893777475779799313398383285227184676706187055551256717706994759837043779022081536356652102724825788786839371683171061309776019779261001247624453855611585501727121580978219301517102496107593809968768326596812851730697617587264366302825458439210141884998028297698935920446698572804587627944950664611249714296785914310388513238701658120515221375664133392999699843313996740408460405753600806990728088536111142007588089793871173940053613146724276580037677972311666967471083040944646040732742665043050928637078377261939865109334098611971372072902192269220051776321083591321831911567763770125839910005826201761558152666515782497246308186672798621975393547873187545657964956078523822880426735686793757814970699527543873665622091195275101882915048729334649181505728061745819510079604084390780882822312065101778747988068437412818049878060419063422839439173718244023309513250013508687826623598884990669087752225773960355061660111034728256617442567387857812926778909094887221200812714913667565944756030441639377179649630037670234721885883142029293290680424529980671346662438407869980257762181765328359659876619688297024093629341216265363560606005666010080927058918094623263342109643004440064337868869584788658875464157486754634175980549305904635906070673851687948703961299297822932499544491504966456114089908205961182322625037941154907866911299445440890273329701865382233897479549932311628469877314746779986891055954047809130840640255606762561337692907841801419211930757695530680998370425265659764257815155323811755390464066358332995415358436294897538644449556071618343131260632382228838943635582131190820669859645704020278237078405064459096318102795933798744626335112198665112112747817268648421371894228308126984569400142354964327899525017855599558551812687617722672135642993678956640513367991019179920578521460836215008659172861059761515142671158016008356458066310211144335104040200796304396171312246559792836428039350332205990321396931327168649847388635347082625348214487558216847613867938789577371567991802521933056066947659933901355033554965020427734222590545915353971959518450573217043801582254349801778046732827481795935578637938768860104137472510944185950249838926381227651345267138270123020689938020807548073390947504594508000495322804955685712763136864504638725516513607380845744132084262238751628301188687382961906240813113552713000317480479139155189978502950358401814590109567604002038556949515088809381698904010269971233036712558829177792017225009191650927935674623453183900148376416206469949305435574325634560164803698202608979100186906971956567594338312430797242189244272553853435598924353834240931957381715563478391199993749728123212700019205704152617965278447856361554069410581251453877975471552184340101154135380099897032692274452809345914005594705460697193346259473177794497123134762744873579693511228208304561061108033669264460471592257445510452310097097658306627597104865593057450415409614325960206535284126788209627659986689146099823190342338129779325723854926024711809590165557594684516718239132013722289049533259058601769185723355052947576983291421215727527553227994833497943182921771475228965157426497228276729623635646213099158399206289703432195036423836513944498611823217149128142598422606952660470560658937954527345716915950203309122561419653305004070850503180329713204929367311154129948166693711802175280295264249704418477839836466209994673296380425455153801528158475139197539448795734980047041583759645467838949690324431606233161686691701147635892183372088639851526466103303007198801175307504708639712466630740690460933892465066772293459477901224300674434280251966371603410458403925324073204256415109080723386221336987501484944302619133153246947047593315514477618410162929539808119544815371373363000387906228951135146291978614158785135085378919961190231993108202690437827582428825709802974194448850390054307873907096473543857359316350822662218417894974069788996945078708762512807962702729199385611577908706222852040538869219648004637594121648758988655081790644293365288991559770126299778814241922183374952266282420187708920505221125334313840629744193141277068552181666762652135131176740372257753913951205498844788143761395461870140117943697144278036190026119260034658481552753336322142825536180650000297811338355159199334990345541901699508648933404485625308452165383570225171040190387689835653325432263031049915034712902493786360645708660173851729833368848289924610875462914392332860030438785098224520681017051737982101723154734651509710447491625508558281571411621463018988436147857207045924956114801586330659223001635627035090902889502402116288667724003427697270403608782071822214899813848535018877225430559500750251691923413447833215241322397034791524477864153887319390440419799461268893557832843568380058850595737704292207313829829713827095190789165518286095997005696039884552828441422001979419961377151476455334830636528340342938690787906059743591587438644832099447523146608305613164539573960172525118362861258215787991706956876727515734467226175282277450295222557307456607881330928123701723655010725703727941206913319808213882557928912546599527197910594868143688842660480519132328745026302947192101482860215190037837597736274628586496074413058529145728768450064156366733579244244092989641437574082687346420413484655280259832999765894433935674769333269929989790617828108313803156986023563273943246949456814767975986343790799043230577261676680822913293762385537537369027911183421288381408619481517650687887797187872672767217812379214860187673638295042447696404677150516799465506997497815598241846040685172425610540098857055928987903010217718060084186715480206294083199424291880241883758872448542029839937385512497913240997034461862021622672283942151571741591480664665657865325036749973884060164415927341649495160224206519839951643976998444023821142795967143010902990392928571759506027728991813183834869861600932806585751397507858871874965565734418788442292467618450138352464538360127828483366797298343166605029015995441895737314191143407350312207091693924129578332742748447019424493450984023048922281400771226229873827497487957174845165667292925672573662935235940022016395537226457810255498266411405423563451502783991871184261435030035257937731649532700097311618648249517825851300480359617177873789864980128259779043408898462616188248891106047674157530229797342639464151837730305268392818345876435511749845732256040404653006065095192762964603570812105057638150990372107406840250041404608315276439007543682296889189011495391839613351865525406515743820080032825640860419804202496378014732053059632542458830936506138853918873505673195031602237045676831444485706027529491234820191729870045238539925898682554552947146596389240008733811394133444987083090137872292129270173117640733530560574405058652305423180708509557911824837135826339624362943604087746395170196272130187090421897208063494337768897218671888307021244788784600886190404939945667241931814999550819348943559985334008194192978340429365159137701197589465542005841989269345909352613353645926603237710049925018456287201792046382514748625983973558178661788589605128772253318202907640328214535714131949153847306217552020234080811776846934625504194455805120741284198561641866861523793128748479045850241551193388515146945913978326659674695576700262770047907132452062796679568259479872058633478624902490313818101444186792805342375172563325949382238971618119304260511121078650756578218094017381420227518929167273100579545847970112110280156890207486920362527837866012738757020559364683098527249508416411530097602351910323563831990004451943733878926023270391506228865143961683149902181033247158716040314529145348955576955405276118874551593931026662851766081546101569129561146249666417509261448413522215860153699649316861718546771014894254307676869133387012662305801403991447470808123950370787540956624098237084886168165204836609770448629147593392184622775441198007053068889881386831055509851729738646052062778337550740430403866096536762262961727034046093414936205097453617420444408192694607926012027083566471168786449004503467873472279691545928511870038048383740659170042246635365243339386346671252008102025149882601627353972971816163192446596997969694126302618016545673262052030293048281866003599427337936538758371250050275142639033100223361074976592526185365397093263485625796869824856081720501405528840492164297358366537303270344379191572619580986681390130894452654012093009934182108514554498060858642158303324140477917749003144571847302076972847355284739500240998263564678032728667974285595203887921649975187036339707499372072979706849902696143754907659358798421636028181728053587655570965035238328491212133772730034992956694191161384901027883400809327061972039613576972411669587456883504747777549774067334240768887196238102495695168828432448549213105121378917159695267923630716086968905205731724551181105870198514982218390135248851474426781940634005991958356614194933950531099805605302792790317400055748084410676054259197730765454634010226931617510974839080811941552843005961127297477544552351766460649112080678366023861524974757853359525689613879864927398906477904785132028716933957362977355774566699584030106998719932956943056334019255648744193321052623458100879166871871605760363922082895482886447804493503612388833730524115529276031474633367351725812668988286596758434044257128346751288002779348285093439934292366677761604982120963241523636018185143260888330160802727361720363537902256038799978596662611026036994919149289929562537375925556312512390168061482614292675189989353367962499891491432462157958143185852531582329850341959844728911136711568698580757672273132163424986003762842471625543591423745668269399440829963937245172274438660673392115579167742680305074409116269702058445633401603334122740579109137824061790120064903957253819163798383264565557829958450771962637436482804605140996515085322429714238639610380217490283932995038815434345044332378738882026038921282750100026225372953762823976880206059885272874790880208634799181451530592998906994267814738127088416933132960520039815640181991416819234074551401257267960843321787065903805324759474917476180684653017300258225269360963017324306566303455075890147299745610502417976245199760997306736936687261985398311824846099181176573617779587112179748140003533989237223480791099034855754711849721772047207760761109650946021690814247300198880154754851899602866441644529908029283429681914122369860568098287653728851889494510025866744772454342715561009808828594740819242672003427322082479797027996821717384320645277621976358187858908053501378356312965318869361337884396374113760375037867008006592769414199417230572192474061706291167477725462813720465171961395142024918496205592477870795989244615919173341771414687404498158623805933766248805069383159405194562014408243003151731553915518051981190923411773960741460550236065369506261358437409566637923869205104517205600183094646934939141026469388535133495407566829330325867275102112222540479121798706621579743158338406564982280352298456847674190819975107243905757919220520468072076537286909095646087180611039380674571512806512061956653014772640284431485943709141677262367359614693756620735117904954828628850281037390233290451560898736450075746113667550602315901162881563067849421552499341523675287581500286976010151567057596389281370943988632903557364929840602737157688463276704829081260390383851971454305295612810897855014609773998766672655497180365214776711107398807500964200076961699584199631100943140801631339638128878958450932755753964125247396191338483084933069162516548535406990286789438899204050489415260085877514297138110964562033203398927459146973409210874343941585882033708392528177551190459716667664825399422615361946177822558416950482478026293276593337506486662871106771056053618342324445438322525421555438800019274018593872083650719936900300333806089161341808926200273938767360233946024598330503842141905844714407037538490589715986029689220761715076465474934168807774029728120561003900649756417073163889190197522818595539962488656474990994171143680799755649533182698393456616340981109933577522373487183733154345832029469904276166491352640969516947812598761588647514389935515735495959746432484553010494684537033096434485374160473250708022927716017653540623754434575406491661658326991463094130739443717759387644728425746829410624420380368776497673038065308157430373264166344588344238024502094050054962028080615151276359988104995369931288203976703222907816131534838752249960243950259543333171424574008034995450423175347460149274944044262780056459063227245531121996885761342074358087296525582662699042330551777753653021440453485187601443675942548137050599844745651043620596039262008703021964504291577651942827978433572755068496784776811217028642558264855369868889007812518691460402487028277015783431100602022986025530176309487058237480255392177912211590615560556386838255373924688375368626276442039665542217113575782077306558735803410670101674536273889633870005755420978242516850172343029651441996077286425519286658594054817030568853888206875338212918762049992383204183240882652426371943414119300895887499919734182319929172510844070025469111793336591586215711218290995442239941956893675510931996020961103603565737232540902300855039882294468009673384742823285909805206822475927096418545489717727342404723410978634145579096946933881554746320572638698694343536804849316062399042587844942772265315476433975455085480179753602669233150880444329891018972374671839415476212986944361274933929278884665637457019445604184039018375766826163461023869562589029685243241076574978274512104400558087207558324701737262122657406445719054911950543967740851985742568876471121153719287846817307321373510603259534417440853180045664724187106912451971285890880555541656803031478548226245066138867091943955897524667925553081178914454430355382560243899863880808492411573504276877447604579241390876894693196117577714410086062085851078367120274526364734403288273189487897024298021819998155026910228773061588178601200942881735282288166448461845413425115147205108894249984463065675503871570516166588751669949414784647969081160669021206479100659354206789777602265993603064311111366275335215538542615011423258056192173706173065279384148477507489967850952454084605223817574983563449465656921917204875862143796941684665282675423597141684052867791659184660110634423127457692417808506496311932408485862941125078549341142355059151431342875447938430364116120177222640968568685266601878369121619136369865151896593440473366120313333863918863003530949904551494377746619795581372385480839005676003093558018396629560682783154253602774602551815341571278594585791395419755991124083572228169422220932323432536845731258072326862303201235258564111879837507553111517933883558638448757275387151995184325412751082543976931141047504957966984512490246794243305958584333475805867048742711498463974359658980671595541899864676460539156508908055709444786581057956439778782649535869107143978556982533129995883086078727403274972793160908961758490694550645918212014047506359856969952786126680948594011636362646523706352452160629393739067695740901000059068320651517452364933868927505965359876409638289471760375758202321320980957717736738733122607072940116083830772465613811817421723759865211908357085625934215532811190136645481085814617391006439119345931683913836608815843469571333492204185171257171292085565058033815917218841962633465966103733218282962932834592552040029731650567924610083358971299278572455946720577101642856526091380248177211240011633919938449214631701141955375239129614067558706879469953865691907179923173200989388886136061207015980284618997894413356244712075961325171434212426339928338219362545073950438089970839595160906596761913073303755570050869567563423559608646085056647352086128022999294011186511650136945537263362753534998163425054413277402416975211678334611623621846206394786242228762065419908051391331158071432787576577834039903016683554876458597796806293143485527855111077102487914865236342062009833676681591268449203102741125350506849574793859593307847198272322433124424291248202086422216437182993564119120434244081688496151061878706963550974360038363951098401213407999175738448835004783584420146984621241832721123574109066599020878745075609372962388268326656393502550734884856867065000771562811935513742718772437090084982573853697362214854012103278239828673059209928804089322418978053248003076069175197305709088464363730165855173434940459641691898496651964608431571179295189602849950280037276749023700479284591087315408530269717732478804937255477033182289052468952859851591080458860886902843246498260075938801665852698610316645126835950730910938222135841872574876627666790018837919099864476181126496962894690390513493309924849045453520802713919276053798751203172138069193464878103344136701467349159287874150915987350251544355505629677389243425162343126400474063892501895142628251198825961086932826322010280088535219479255939455669194234462730595481442480195425514164639580363451733139563926755957465678828295532797430837451985002558663273753812768591935015269654412659377475893096540066193594511503218595017816759914436457413828649509059037475383239701686491199251456061937878950526769573936314301543660776920690113582496714836850539842894593619875456114898130088397611082128437814931583530652540483934084700718708279839155348132941742173883170617113158510997883119645197431538231288243660665989332493814148964429212948059544659904474125443127855845016906759042720987982148457517752116630935536844291373654565813439169266350983378087649059295130051274599684981453108530531947520514093737820063371932410836897743945966180787076751929908254413801945550109784825656487892584124653448914502025567706770856723793582953962695179279395017373571425406262027110486188174994480393840231095449985375931130722589037651681855494386975435216314788196974890527273673314421575421839456772504012239054468109343016765876712942287461641370364299353194428099623452024478963137911259336597283920249343370127015626746259361747117763463783486043674220446372544240707862862277444551187158179126172956432012854475301839451207379983389806088998304556689572884329111977082655025410013074489058790628004401474130245012880243700708805532499012558871678643928309360750383033731719763900509622826378995532017898682752408056491739821647128578471980084030881010574371122138617055686168581073017503057104977169385682255673146327901814182744217916658465356969424103957882010647175197246918413174977203472425577387563994172941900566560326517154717368295124841269451852316146244049779632197973383126874566635885554359412360884222934253432574323335610270181449620596583811252126998847952279273556670373420947721085691721068764297473835347764561390515977834285633596815126842635173759846355670857141471802018275783307342080878698011603525392135036554513455140634596672805307583549188699310585487834841426563078330327197784690873304462467862135993144599824569977190466423822257819906963576192427053321710431529938590815273216262326279773914665833233097897429812073815975200926602905447552115011650165815309487640839251490302983514855187204118511537030633580120611450676494486544641105745478591524300179130709859477646775835729263722334761259634989943437259851387879950445939790924130349197409408644031225564380087293106961998430953383519280215723584403290163870206355913847678733703603077416022644951202938997708636002506697620808505081627687066059799013191271873701044631893275869262263019730141831718331058145827959929973132988024812146032783287969488712013751975514674586776503007879004323553335681053093104829315654493190442663204313621973014081324854984323852928673497275357595323715430680037527853085937942660311704331057435642525514134019992574336085961350711846992709445852717016680120799558413245804355750930482989602750142337655602675536044701218371513384832054464905925775706480796619682666219970128290954934553964628685275781103425060404703760629095332530536215482411999297374084257721666576636489157907882738829775403364674086993134341966657929013091145186543038513940151466573524512874164511357994729374955729298988281206920833024072724230837605723877787667263036871376958833879686048373367170130026900348323615230477859617610708878367728370383787799902562765891914302610096066322316405623378273151970823408996481208800768662866855552714465453076427006413391251439255357676212414574904844872053696920616300447991914903993102224552499749760427940016485124838696182307885282112048597448459126600532118398507267957910762607821032684379186531441278239472175923707227540690069117318772640669026307671513784182080230718050028744657974533675159892041897273574209935945939082009513150040688126220975354494094834932022909372589931733905644454665394286462162597114200306976007430457825242415384499670462768434059457847227897187443054494580722012798396697508252817448843624486645525782174713192968388510324344988887394039719287619061338643117864992409153464715094125031569124901225175692088377468915861104975258328676971994469312300650670482042375194037547151507640948341474502939082179831977178109776617624809879360724361151369621612253947607295713885280452947679578801493822402544674188839691746689608826745821747752771129724492902010402911804995983822737574157943274459078725236482890610383901903313530945993848452441840347103808460897541055805862965401320744142272186234613584532313010461974430912488977638473218725849551512263857981917672734692287384351037999421603783840546865763310580100397924988140157408746563322754336897913052540464263070836155966847583483827483288963297271041309517988390980848206204283567502396225197894237021358689542172122407730860891378493822145515913821186279343707621240433104585341042982803331359094278414894115514699939986177849653531324444214303630092036765751863560385238562494472721551340859979383127724374106188817593123537373644006720441525308035490722530915349870697897519165510630110221810719125347720120423124231209617454175242002989436795202747208906031009074601649889577461179327367863387654478576662018456179450365913365117318811270440880180575516093816164383854993962593308206286394828092986122024940907350356998425263989700077590338999626278971569928943315106880378151116982897408550107300369973041378298943751911652854603759559013725439515467163546318337971411728645139346383338380369403719400522572582262257276488870283670650387609133753233637167167618453133352040693208446164269713790010557115860725023407717257091559191650207165539022252634454294040684226365708120730324798253588390133959322029488923469612445214120295053392157184003708642474749903395284195484662475262501168765852306263074024958609255576965262901190931767185823218728807291177549723371840731174904603577694070667259795470404799993454115059976223956350965359071725401094173943597139479668942782972500161365332346125228449114694609197391293238166083131684568055958288053216003332378605753668872427828677477696365475978406924560944130993410381331304334270923076935620229843426196948767077991707020647558490957113955734441718045522694592079754927403707186544721452470701782608774458068072171342441172255205772080509581119156431664427104298926907288642432925064794518704009228340364833350567423720108868791797643769659058839952307765585953091601102681869495488260263841927996743444754702215063947118130670184837981261741996939087627892917236743998892119434792271526527628020167155729177047049068023103938774068300500531544073742887608346482169207019620394408742983780954865560321767468687979350613654330434237955953890267438001541892827926873322512340605086003379995174878400931951504539841320320822617355576251087888552163346253378308755933880631358163437814333383170809249388862064182725283101599972171601135917273312713537394649860882090638037141903025195233769083188086379190066138826266064300830640312363245627223071540342106047732009438717902602811856657222036038826785106700743764706702602377583864190970971588056082347234229173650159861922459698183081618327001395651304909719134387312138759698954135223357018840877801501542434557078964253468075731556455546782332550923075405527085222108202002682197839053837639056109716770650089402722917055260391933139843069334728882628080758051773422772024401326967866392544243580124948551773474421674465073568251685805293787140919899771423161051899684801392691239366729562452213883897471668591732080571536500390174468461743390699049842214472322673345726125955995994129707263025821048189812089810779082638158913218068162599887694894977167200631761610074561147773070339500703421538252283025190668725166354021848702949052953950300757342306041196004546803507954589502757464491445083379672168299362986661527820714489179974665650263489524275395175381237292588151000830019402313215205676534870605654761645809406771419527867268260689561161478524708342791492878876925043916604366895440406348287612179569569589059116502134792996416012690673773675231426488570392024738395158492920642008845039292318639795573813972578558826733850784542762056474162480188348831202848675500481852495854889213389537488187751461114283736773996382411086570801292631878103900918426498428890937413550103624918414607784815834179863631373808579396998455012145938064105732001069079961139214250249707976952519719786212621573552036533964474316239827001466402169847158565068124663826987373309749757723383304572085182623152431074899969586973921274968602348354588771267914369724695446365129047698000180689599242187471072573484801092383465787861510123610670829395155008660047747445502834618057358331994888999495782123436890360753778904165429944152308237869874090915665033784690553841171442994677967737618511097368364964986232257990882649535676605932353691478644082995459494410620807015508887799514746448079541446996987691887781578432163837744406016538090411257326531636217166632226881264818215235515337150928639149374274964931707526875223049507036068532418281575940478519980414938154605093637009992009423041433855042240129666208176260135863633708099767526400040945923506095718769716124526552591163888845158784418050450583467345856002410156133035374927909865302594391475256953914814902148049606410425216801751246079501001964214485554224394120508046233732779386975456789648713899757896290824146652777908081746981285641925071676176775497112364069499993233940613727118553040009672131642992387560712440890848932237555314190139319397689953706229249657913052675555450142540553996083585372664540589317741841862883445049263526437615102683480510767444269499538611335196417670174366876976944436990124410140936641177550335305993129930190787993885484933352794232239572582688305232432277521585813818295414258781676044034845427228370212962716038520609486437978950964027366306040078531266881835273236808536428554651706344160282268229183129218940970637524253509795628401593679612415260403806721459890081454109486974237088670702983325909628484701055001798733161869491612203074921447911698799743333694781248964164358045379554077755010313533179714185795421219834021069684630304436472787661802715661832483364365548244619975771868877734120630634071889567054908950649386604035627112883861022353870485918471227201682558563246090214587783568758041781017700765469494951653944202848913886440559530753430669658378004887547315141533426190461896066142187703362374338239096233442992557980065715705894495208709711132456656866781065122214821798515702070435566598326366968411842765415876449890697405115154243183472752280401445138339374910135989236906291488288025392194254754839948278914569431109791611003656501362351335028914169660941129837778708293495554612154384819375646047011150832807717345791650310022900520078294034264631570289483307473721288885924624876631200651585492535474161889468391606444863204503041745346703273951878682908116909407467001851764849840699105218730218357498112456427297127375159515031747198785507491390192620926752806310477136566679825792492820530855040768383046237464473706641851225795474364016153556809879064571674807768559747372342536544770494798055932763510665611406220602379013361300914044078117232614980692910801530849306031507404577516149926436834915241360452825291682960261109897289278561847294993261303474609886688800091765704706747485326770344169807997838058430052236027267258741882458656401025574093988117151732672353903939813965520977177095361294433401613221080032014980318825212646372037695703627551280398354829475700695687348685745406480197292116922352262386479792203561318728278099683016253988399226075490663498129781233831069559226233651787700399431288716331309503630146930772150481996773513123712973197106888726673676357978338816277556163646274154592574785883090620833905159354943267105936613653438233361388373855188283037609630402527415160569249412925038944547168347433301874435226870452997687334372648172413213689043277466882622663954186231803680803290018715662112316788618164092267199741386420049462549573249513147955506775824132399708198945454310670800965586689165963928321795824625674016103113807857778768984183803752369687676124231380936672615048560217717886193566531007415102184565845846783869343472473819962267750841142528454002892776249201161700291198652534053792754963299075526318570214369770058504452666631356899216450444345961149865685874617954006217685547287076926241431533646250117776376278326374822785335781825075552445342692885464847955837039014074892361641516485631425377777378661398478577434110974333713981254892658695383616099098534490951187572937589589911896368880819848918217374296866617234810582713587429744484442378259334322038252423377165811260672241027211847102312033728154773751277323589629389980620792304087052143527127540350950005044897697637690571516915883961749578617676359842804782816356074553158140819435417156419453311614513238795416144843648532710517744950777716991264535503907314899243734506760622729979736797747198440717070576311412932527848388109169859738316543890570269439365672344660200761591393941753658236472706462490641866165818298757947060310133258455606947895981823594208668627469855360114187451276332134289345414148553816017832876478735918873677018427549769820155344199439338120844948791535363758308114283608739682906290555347253358722035135922252237974811389657593417157082295461620897990481660727726876136515554241660838317310089922422042819867291321729804353465521735120042460213545927619309166084201044464476220232008884348512162574776043003687319600933141421920555054660816011696193020456437659427994196662821954405116050586684534900276167649762724465968689129090062769218556094238154656503202061177981734818078598619750015646207295091768644946506269757530530933407634643080094139897238493981743864852464471087176287491254440113387735780914406440619096033250734229320376545604054946630754715379424263239486015576477339744885784529741159031787356604687075618569331039609538765631735850258629973196642881819128937032999223522590889527987839929151526878258652967945500078295118975982000849254326172293271410916355022501143585706061199007679392530963796015515052301014151580392146815776879352402361162729884737399939459750520075347053363731021899560054790177111504419897453024601110504479367761985596409953088050342862881447583429619431561720406433924762323847504672948850151214896946248977864346567338956241774587868414311532062439559352898863200434998818156721198754043912016266292376220313152808372555358644942347533154591892255059306921180670394888964369161313131327193783241545955739044088357162669745748741212516120864059938873165783774258355050800252880637844686963902117728731804257306534863025817655894821493743977034307485943159482648862326798044561448775928928064266071428768614919209429063483577606865390323605965408827962084604367423813389636799136581752100717535264773373128917539820233050615786376723793090467133158114232822865101612476138799992935213248656297793447531681966914209003447165637947568332403736800969998390714110237800484581724198559327363175062054478128809445944682026667772708186362160038602126080746362287079705701792623102747357497575895824165265864226626913034863308158268360533780022492338478379784373977051768193197694151003372088378181213386074485107302362903412110206442118162038308176484708144283559474465395083176923185787099814881570585574959968165631987865586617476940872528251667445135224197095751458654718063485535250581966156871547021590035395259364903077472541833913712727164140605496867736005321863954538541550998396096959162777710441947246038957146408803808135249493330043451868329037716971980094516558436136467520171154473335885022469211354839997061429253876806561540925122154969929108209985636323228807860193494435066427881700147093407505687439805223365093179390238159769258805422249329713162564258638403464319273325361026129251489754085592637071608778035793672457481548381417491479306261203747598752438735985629401719326082146161412665393207417102162076530023351621666997125072777836279735724082255371617183546038264609756112507110871939090918726289144654581146143127376131805004623114067422880912744465826517879953516852946513809486986301967519130701803703899174006321048779491339849213325164103717432471789513230808946771015208571222505550870263308228905386430457918480895982796442703844478763959989625784409057310073906825151740638334106000070499556877744108443915220675852086865729656184152111544037624559508499176607847102772069677134043102186096513036943858256035276537428673537951305872210266124325219559853309155090818382162958249816305205243165939608496228547213540724437351210293883816838739468041267643035638534786286727921154603064603133486138706553666046501281721827091823422893341013709425184766046958752991050804789292580625531197981567979893300265864502376689011503162895374413029792829212868542967727010478392925059766259580616662994207736722356245383881962160909300440685483499582174574138538548191809234037190690665393938188436846138250815590891418695062598137978375298811191431267151313911060038071577930399413414646985239854122320306788979619354729549466346513004325675430290972772251511278026170723207051647883656553801741344073635356018956724154297144842034805345317455088378496163695700978250448730768097561154640673241178847082489127831979270630310487615514334034487216183403340541388652668357180474428253846921469073378091800685774904442890630541228257501487782479967891064103434234860961534899003904592631479388179670380515246022255745974414458128213294801815512135726447830073989238184119260399846750931212381346636832630293447771538879182188872895393555166478869078099393746743963716147606971759194420322609590572186232374132417822046407360593043364875023382117759474583190542523795281050570137831833905029581212925236697819171280557183207809046703534608003923547022085264567231981632523272292434391853536260424702691607630316735402059387090556279017185043397572500622050208675376181908427048010986500744572219388177376688557297852548203526841892736371532569851166185192018803340868377826139927063780897000956733714327601664658489043274513556896394055656847799215763393633747140533685894132802717738059918318000856692503116951259577979575199104668428838128200112355572816586107607853773425059987730184339962920406154450766111890826796641097611002469875943516050136832599526263573968854705651601938178159781624914054310148256113791262487421867624320405942857008829472304766569896411705624910731761046932612034019239107823733952280866265740183102935612272405527388984434539901696299185610815937729395411237906088962548348620140712933345096688467305762677483697201339764919791174420172740591563687095274573402441329708591990760707594852202064987100301851526852317777472492816791853331877503667757233408400602383302964365046820685292617196866214524019098504291626694673115916419970718582726668895407825177832215627400477177008709893626882737630544747783667519526609534180063333657035569207495288492953846126300661839012527636648503557503381255360924659645865690532743582653051001707953471903298219466571025954668574747365766534887099429210287869013264506522009529199054243721157378632804284306512181413288717182938632858677123890550641366196438419619537591167507842414764929850753336203117906673537199233828360995199311366617334231856122394617899510042479066877725642470938751637077229722250997957438692895107514490697476922543344227823963478922913701421016185323856963149685803371944327862053517736544574787781793403934530103147369710377261339920035383023804984960544470310654461206275967220804136091385537122255585801475730264051280907935668592938473847638824620488088742551117280494993599847337874951256984227959505385081284066810077622920918213827595670869486637249136326607313639907829245140609762329982042520692966407945066211448558155486384338467772077692629488090177975404995288072222348475871635028124139653719086165580883208888353360187880823180724936613544469540934162242283127346432014897358787953301488289416270540318788448384976464997573282042501570379496691823863465633219392634198724768851073815662986101215780270291064276461362175398789070534813596111793328959160174268432740394623286301466944182010337090024624445356606013438956270461581371650827417083739414086869644836894683212891861390039122901614110103688338769063239677514080098632112543628146049193038280454990492606744186143172150625497541407290114910380436893744191313448589149783259047197832434885120628066325561485613613106399193600727950992338219426390806130589604523501780616904781492374630216730542079627895423908403243024429478542161440459057246905831173043629459165509935148515094498755874101771059697407543318278803854682800906177390403477331129863838282803225501640385474296417731244110550406129526164586604813605801431315939683740888832689175994857294807467049383247740382947877961635693584306929175149572006556857919540240206624119929670649129111059859313461148309220860653803402478028524484697709702864655720167871691675613358339271796941012807992142384372997403020538795428429332732685126050767718218248214711928293404016561055722991596310523728705743947749309680057512597148331035612961866027461052930989164632150719434625100795807048661337568184838223114788546421395206987352914735730283195949880148484170576549802039140582643465907026731913694967426366997461506148705441214380545830853195364130521608158860402160100644285929926479729611343352326182441179826944293183347186234652500280494475616074028819980361762312963327552558137674088652572171040207251838858661728014992247308145978951886556002110408555849383245571060341104446617146827206062565761984614239229700805478087641568361709712665841222548057715965312856940504303436395821822772454277370443103709309275320696701970804323048470231193533638824227514591641010406780326064602059406645900624054704263025722655410673624309117290240379968862276679334595927944449232794789436110897827346513280532659381216603359227692146483265560985073341752026207967302591313627238958689953372139143461737659642653719540076311206931994475494536146608332798733624141878965227873277903050221596242372453890067959526197350934761154691459490286873763298894231808338075778657544452459824312618139575574745095283243621508945984037672173422583760385494250173257146374727719871435699479078740271871983008662602596697793074551183339660330565248903553781405230550506149480406919891882649686931773741666892915580370093789023753976738700992976920942277407111566889709283879546364300978230311909118195994789108892521689736667317783945717215669382384742882386235155757153097340588235626470348761842899846294924788015556381881646725373371993928535787421687982872185027269720427476899536577159903258938839523250394277785101074659890255458951869541074345482500408920980457341827090081623625935284994710371939156407155500039322045578621960171616185606751578709937941813305442735217178338686998722264986722908729127306131243234906157131700672920919488149351073327898689969551504391702405659854767093046203701155562170534029404374219556916723707074356363493307670983688267064503259222881158268825603406696120482380963637299778888943598605863734374118593315088290394194225992035059065405035307552962181026069349932255724926320225045955655277915446047078634198480450192875333850399366297302531594783701274305739633381784472108255374290493376938885805541387895252883429552021938904410547300327758712021276957517727046990111125590124439375658454152557593471823112504342048265463507261054965177806585758342753196853929780156282553786043733532001510573022032933710843638149520437134895390152218402510978828791586972889061481013238881708116714570313494427998894669993393434448687758301796133557097362100569480453153943897623346543493063819855915196829752916460751264454456151636116875840646582404820012177988755589608807977904928194130435128997192293878403421667783781472618714526700307192763347200663744060642710507986806359775247996729360703076285013431327855711184434295856055696662077419913182954059445892753428346028295883028784900697174272188789580539360444802886673710978635165505368439022036089000254117951832484829493150035758547537485751861387669242068460155540793909158252886264928558608548511646541430618593095702148488307850727968313004987970145142170491064948936424867538309131666316490064426699829513396411819047926315056759616667828128702435077247570737263392173263984127331165584536256173405569917997247148679171024803305096419695375855786054745977995060719326018224864328398771188799106534130933527446351204375717551343595033534584314389635668362814536454655969973254210540369728787713108988275388989098474872887776398500250951502602092386279496902460621782533453066865999185711812976137335605186429442113483416510047162402038287585999956234971882963321567485834024378590679652348214087618519206969133308568419325812796824175487989139367128736671623717737837536595658819041040905985341445682537861777192366823705425816821602710554475226315612587531976555045869664641994989945755476275268967811147524250884086251061545012102974041143543314101594284089432292441982546241219236999093382963963984969205874123428967548329416940989000275147371960229535787907546903822531069853060551823825039271403355631620615365645405070125517311959401483126738720206105691557221367554010149527874798202820898278141167283418854821018966861238482094602037560132336048695902247466650310009876050660810273749026913731984613002382478600057711817928209652250515874429270461304964932725087618397651602252306924878832046692009938586054086343502371243398238418230112575452761574017332509009367014249248111217084686916678555645161490856929155509609418973326926414164654857895168465818220555914469575538669291045996687674768488573326747862399731327825233821208806069314399851591713336675766792572827117108688259145824022611580988400419538546982594339580554153240890364724956446046733764645686851531663145199356425687026631730705776327874529232577889470362227054837313897367609802824787215285523997497701433740638418992615587650721999241283604597840252166832424544900492374175017400344591092337123427781787590305235241162301064281275867063667724629071971913226218556450974345993045353704606736571879828050014440028459084537982657289386181320067078968076514759640299318009241090017113620980230759053862965100858665247034217556678589216204482143273315676752487839050982252217954420759365867151635156161126077961225581991425044574878994195562730385159529815946669093261632411078315214305407180523299702343904879020685550644810084357015957652924154681482240979095565938967791270323964606622896726488478559479108651476441886023037860869356288152994044783200115351966878262643339587107270411483353122895341600744830924845165705685320395150718490840682551551743795521542078283693963355954774219504222025497019975228786673177367557324246612915091738162686085040207224816865655998960253818940384991812258049671427529112186167449899136094755698556320283088157707064663013565186788295907655523967952631576794210235035073601061925102232720818436335878524781820924125840225997188926062458503297614441640993723729530764359246012592117783247663868002552450782834863809565617489021172051140097115404691383963490058024247297607956327891940989579721031132797393884959479088454700222977613273972295903004438614332779616169688089059943287301453228719378699888242923901131267552957436977312274300583038026428864768458416492683638590901643761073551230097621586813717611288570793615115391871064752640457957568177407622905377688657633934141273194385972231632671959025463355323672284850567325256951157697722813444297618491718109009238982341571844777534430069024900858415004066871163274905791570155543458263340765770067839753931857876588878168792050824815043334729597553909741451662728200105895012435641254085489592495852685059526035231442365119767225703254961590185851337459394070652019564970058209890001687097767820967336232912392874670993995803657259056588411189041014279437509934977424912000431173267161134063268364130581802439919518722375817884431672277171424077906317974704757092146003956101983948827405436581232986274509847850569111840773144974546204059493702373983165630824507278113050376372295202815841423173516703588477680122302085792557831244123534867751749975468624548215023501735617258114952613561039106925370665214023130394857586924081212051405765271071321442372791200273077991396924070388059573529549471096684589266034379693342584322208792537755999675045948954165396031021488945451549370566951819938232431356151223519182640184050740321520972493356375316898344021750432275727869832478067445614303852663224394026532251083346483611820636688942187389530372766622478750411347687863042741465376381781797588181040274356611466622485284309001684283080923940104478572720217357071004672752690430043613916244821737714122814015465004886375683730741031848819973670325494152952612666562034202593397237321409285774794102714003376623003452842890676056859248518007251563574800827737587687598699834998294571472392912637328345275881213988804362040676839324764293120085758735384214840567837132305822749857917457042612207382432503549557464823353501158310099023804350940707645988975835410936464734220954205191182890248426865692978205607375780988381739486408536173687419772666685597437017425955763104641920141712438050191751851205114811871161542837009523322999652454460698332582603128670464521602894957584138401239057441639157996111827034105809158397156082968864768849997174736301117212441308686834587316219627708583776805116014093401584853882730062861813845819885927410819629319892320687249836808566735429453744954102791690315602004891184745017579335816754877514815554966819601887574439881158345657602863025546830733017878104120042892369613152183776342197239652962616056061648942893711497787745512534228237183715083003297230470723787241215240981993287371049317329708844889929813389669743690043495557698836749792424994097375808821626610605730792173077033608884435691701886825883819922123855186404641339123691135484575346618651091295030192217195111045841131968608586999382396822778554189765874148543511446599888426380734369053016523249813484159042426692765850965157597247127213628240189403452530585322488038374566761655590134176268804162949837340963135715654289198722110831079067496069293597591008599558235746711421760187420196607564092046367300108541592349740861792999949416752708187496341344842905857155927573453827958417468278698251901884708600812732263322498537058155015975336325580425362821396765060525430393958597334497898358981393372046915575297592080904731526916616307593563118103072895646979400256790666960647421399140608382126339355855120037959978342258331583291829253241800518616413269304879393875208858952576708606348722448195386867284034342816928632616042191633923250209975876380054828417540222880021032481009116636380476454010128859523362278698352121580499276700587249856133406639532810132518379374824317664187568276693328263112680088351365824561832148761252753582961142675351201115626985569283631011484245923295845405702045261474663012803169500326536137512722752163967081857255312621074665157072200802046689821732591577691868367831617168110169060047639353821723934288281341121398707657532370795315006659266429898769535611767379304528810926780322857004723497492947400940083847147855125200204008248058818094429537827417558021201056764943831136706248332852422867723109527403905319196782746333921091990642295884405039465680446234941682279118744997482851939775417173970722754065900162257617166352918033857113601656209673008241606614855962062638806944740947786250399558521800038882888261196499382349204739015942312452959769459059536685614503968084312651099142279702315698987113713717270283361732372154672711194577156276494743706870462511417047732929690089954647904418140753264692314669508466894170295582768564931453892904639451916140109842089238092459461191941134377195673451963944684479211494040220427899324998706293610153754560081840256158587792007522707674165800233963775036989529709655939527363439430425663288467851591961551842859120177312935908414094242994377617087731965892679654216246905728459960194904373854906899559010939150833765476145261723091366449754114470598935796980063473303318856772912999551913292988642613764851084423530983754165219199500175302235982055750810340268486533158653143981251599124330233063600333902525129142651272371022312962798442942978679804260678245169191274640107740625103929331182298419753309324803244171510405613857513919407062353847034636611671966292703504089382978677264131412913793763590229507120297818658503382473997076250674033362358850136128829497125576285445692950040384296865854407198487474509715829191166501330672256618638707655839019366477074604938633475826260686694028558353916674848667145084153484034752813815015536192527240356959150217332444320568421495318193361525003822948730627371117716304930362112897915674762458847204895355550740801251028633590406793830085514378204658569625269810509040239194780737546023227919045266326231808159976486407339483512807346981621773132717584778050618223531492448171950081095513025015592890247293341156486825706580422108736620651784582071111866359082441039438982477073636793664367575896532010249677628593346592953884324714890553987365226337951749308053541318369586934484363868686930814613311706456228777867048270938363480206637657594767122490097428593896347020107464313383141442908896184563735375156025085396587376619717329041144527033154780933732743435888704967321023957487889091827147978734550492814628481541467746843165630593187934423798535902508261220828715686652463325130715388492248076757137529774604983600013771972299649979220605125273346565891360337583088203807414813054047110402058697487646972325660511475211074417673413434264761403916762575244076046429011996662375157792513281433034848696795016744275300644679798425859414632548483093328980077602994071265418875285692220349541914859958070536746235196149920718597156883086106790207087310039273877769836377292480737407839581490705892506103388352564560104373495787833875388848807588885947242469804660001251533624369276569819671891047306884813249103978716194443183700749579094673102546542935609193311990276614092077719440560097924789850493560713975545619248756404268633484243824753294276373610354782766163787826047435484103753023203921633535320162335300569760592998271938409254209152425332939804182826482068011189627591686294273375309872251923631832581424882868273888444266920804237925852727773529866347596797993489774773826872062936281098352680404115770876108578374955457575039090999528405133067431796872130461610311556313251172422132871645472093695649048310344767756875580141899562878714673081161167920412259108469778480317068009733615212976197022303568409624013726634087624431239204011617415441465374514893318111291768194451062626062224966611895190195127811724708745984242320720573864483988180034577022030577674904186386214603493275384074804776087345146869716853815301392975903046678563610045746221782258541361884313760826326528022611073638340701944945801879154302251104106163268015064850745403099855549699689020202350449952146841604261349150763367912057431725499139644282040995869879575773475669140193473962037487689111936091661375869499859829942999133864938709731860573826130993355339109997813359790838571739486256747306263773583488959258114678721268449398638984512081951245350543173727171499445050750475289189550822676714515906553310935218613210848201461540024222389552371014157187452731473434384635555733558675250139779240704136734276582186650571645879066865083068453528205540985553278165099943039036998392056101935190524531738886160823201766931682516825414562574883078942428135573198641014927758104168404402041214236282424354003267294786899284684859000163355186970832490715173180629150422202476305543441557145691075341860080052254921373225833636023255231444486922427929278274698545401181485540239321260276389973766157100771832203628197839530330174165926183571960999319506053050513339971935309962018548667154373322949770276152131557816291879789846559789031363351476054807883209496149239446251145320666655257624477242896141227796657063597290747064149277954660007250274832675703691259592346671922192621329496762903765572474661050019468895714795569367012604479055239162446734199523395027574342748111979891187441242251954728692519976476098437133061638799542833545978800907083723077680197335414367836392934774645314802867481219680354729750020925722076165465610279488169726911401704991836637990592248662768642574851017598013280705677709498359698977614758153663248468441660247702840831271030929856411292451268531302260748934019210424582121527433996476033659822456666930045459781529320787480060114037047012396388781199819526999344302581736388177765539724674347146961088963210815467943047285189567806564753908933460500169364522391330058527827872756193869211992256934321199517489438287501724076201714855899394652561177157303340237422572372430382929667592875116669779381014268628796044694140898436330161834036439246831811688327441601013941831789933119256154711540869091574287687172650273713009052746115008097796380023073651146212360962717356251066463180302535005468654968017015246419932615791082067633920711372321027035044849984650972106124773315490708292418052863593047070107082638614034179182740773152865649167637367124765400691515607306418322232838044766356547322788485384104889164084565312362370843650052878688362360199913555175668330001782801621784584677030413563267363874277765666415719356369709061185243280679234162949498890016288687213788132097401154691197796884506059409010619395828974028103932299068802828274921363951907397783830123472339768714420065424555838776320773308595681287604680353500802980860437136550374707506352953675631240065046541258666591414961358072025301396537923143882950901105392343376543296605006999471353367290097901115417256196757897688854152360244023920105731423136802648345465504940848620953493913236952385116944206013001351794175172911848574814476457529331554916602990192605790722352464154340650271736201537754061875664617676098577815885479852741652597135020360848507176316465762010850054551721624026786612157058693379511179664189197688738017242331167288399977525224983598119448272385772422625984928677892623502637323969329880629460954387252008777544636591521239559628855292479324286254046265714426880184285292715027445306716186052375325657389134976414020106212612826174551033120524277748167971812762693699450810685906687151846799425736715847154263207324536893228923583908175661134875818322635611670282668431467475899937983576588431233995095414348278497989252187943743504458446958024894723075997414238035353919192889445173282450293154477980912446684913535263594106841920104696683345496094720199796899123383630371147705802685610951496127918387615856961556752341641874145179438241576342092087135591017741248831988984428925430559311432871571117157456972265882728647570909817531476749509477248232759319591260243283190120198473129797621018104782442876949054385277900601964606803501337306640449293797010322019556166670112277402995791733709130833603418897965438537547331434674895159000687099739986895479609804994331258831725051092693678012542078166703058632214530362636542387274979202494502695224418277461065383287305684275486649994949617984893893560581638257393853907692513553437372464963528012919178991232157385752993389926927444425270665402527839035796875335011555436924730220899342091667354838004443761593441811112768645633859196890860556207082331752672659841554906752726897430090512190359980254769790551845173675629955099466440959172264227478126081934221192030962261261667026455461965201535430464258844596451616780914095611208612891926572787821178876412403961682615083063323335081873327271109709163925699190572177508962639830264419551214943549983075165874677844507580557414558864524560838788835772014493144533413273815585352258502071087073917648554194675300957204323860854933198320692290906364490016311887612582073942759488108333000479818694401649378859090871309979483932245091669301131329920470667464109579059573767332643740562164822706245619606055534322683762299189268993751631860741727943488664084813748024745566825620714234481953186418213223594718837464757889071738493771185759861949341269675756003955747413095571117213705284979874218799982202391557702756012576846026598817514580301833126231773917685609435800414846260941355549854681870595275692412476992899299666610926328741843007393913087162107053820112021247995358996520604123421888403132030003418754916485516444180025516539540632152010494184786754080096828174145168988128705669189238996392402450896820403619283541832970906028646099044739844615081291126921845811657703084431343454918658937924896988259387472604541900386663899917928948397879070294391921819218607229243279734305217996473714725517006041774876017756845949381556544814145245786140050607638674642965429937955705697157078531947694092029579599564429176814087920157284570597920530544250939367314610567617193536287982549205956627182053080303711849889930674517712160031005517791960593423533984754954320981743083165531901537819323555321132612342190076904676980757581259150085587436129428662191947490842571186427283313878676535896782414037327409215345713129297399712161200832410732469815020809987899668430271596802098603280137044117349087741445696062272065621807156457060737535301198037729919398902100539908728697433373687334788270665356147034573450147552052148823313451361037146099897477932727112886546545972267757238762288926723898483154612597182483891399995679311785107792495664194658946813800482478314207002442447913553847688694484795064567379270074855259891009390081349411213479781722199301011790669938785314996228303155440703517750411987549308450633872536458915319589986297708885027498776524760172928123920048856435209303621966699879378548275995885987923462702610705383335998598546782264627963131800744166367310782146913187619658003360175790010730838163426291932617808561064224148696398891764772554540400816588737254816035220333254877394513067232217797847195646453335412955201231522902344140751117938116613274246909907760199662704175301910879209128228584284066717743014161659002856588342276045389721366304072710119808007719486267307972810523705561949403002347844220219629267889613726039873462680599861187464350511517642526616596876740960028130378946753133517622036726150654660628708856731298407611367231061190527251363016093902279244014808314197175773314167096636475583507238683967642232874460641818215189676227152376140437434583119822709256861119863549632396098155688741022060483128801410885939946426945441489022893406754215345508154112759438505595506077159906039203078655743197174489528904274681921092881210940567843382915947705317207322387161215803276952217248191051065291228739283321998882246163471354490998846593323704668647685213477224696626673990446524164745507545792018210193123505518537155847378195839675350974246037666781559607568466642870544819599394050333888035216323118215102303225053355127796354385092528283013441339113934526078899185060183585637797389381742198634660151936609427504380353823922903123089504494038501022532013480163938893027095318996632522321377996904653093797695819656627405917924246339358474611869316908103799186096568109045689280066123550292804804711087480424620149218314382750301981391346850632100380114454340820264086348765371892510873428198874315049501958702463550669052612936720329196518848810322425199739718371215723459600845352391380781346823980863286312087268098440729732716925336835393015883661427540078010381999363274672998616953775984604565103593878699493496979324262742918878851742291528651064816843808182817376645397495160952471232030430823297934268708155182697998905341405257425268958243530298532240276530657738180117802741727588545328571149581142072754600000195983116041660300336673122045406422107020637372371075279209387692956946008865917241905360470536335719976016233539579791787839929604086360990129974531277319691387054994575057829740787701610357539014454412436445459512492634290113791388166292349312766651353302546024666693622661919413818740803626381827771690996442967002980019808589132219086544264557710426830741590519526589862029909123460542326720078733107526041739619000860550766509951609942844457159977524953099610393434511364056564944532918812378800445749316311122397631909742370805863577005493853259450552304740180805690407451088105852779191949463586609412768738954504295481793093077486224714571568554350960533037922566286163526131944903996376934867528158732600517808065016994708285150905149283324098714927466595983918858275028354830124965781272799896328237577251400706823528695095075725625382157711201722125382899758771951294528916371704934042559498693214296615430143940845876306650801738435192900238074759236357747536288872046003847399798038616630020412089520327143458819249825754994222604830636799506400290808734246774234731687710813664682237973153160608928902671477692452692602116292832505525191732800524822696905480906890477965665643044157772536235009909984398858541090580786703731570182039816390612062077776867986543188105780911945068900505218558746049151795656789461417914801620177541790639648377744930947360560436604973383237571707204282704057683461007736113619104251593363665945319370525937867327831750039163850029532890495039111169721354614797777663690113254213740356935889542049723411491378274428497612023037927561580119514483117366605699611962940529441339342287295422649169792848645378375906978205470821936155877622604948754155951011736007101441703927350898760284454624012667078686716502874286808006737429485322191766605289200062230244004757805487113624387789805250137598448316111842968975294863470558983900487409942122727107303789339285652563334857612364038284397345992309403104263584513427395381854068777214209784518284254864145037952676268877390578324278348921391929322182453091369801364005610744694100276654137366785264801606943530098187014339258641751549944357865916376384984004282390524799881470251968168489630713697158573016810348476470272552252220766403795138925380035944257501179444241698347239728998415951080223226805284057283315986235505710229278756386513126733086260672179638369929646381541715250215127066886644269413738476827785324260079896577066634780159569470514298514410063728751848595514738025297653277914757033431269343670820058440516014192423352595551431473197497061041644590416516284026883958537353571526328273412203461894694196437114496596954382254536877727716655137437906632420731982811161863205744799739333570108075075778711818950631439695378805846579176909014008562747852015336963864475319495977646971833072090364296661184272053693250909361750899163494433147645868577839627112405930494531962079902086739727928543649636858211090483731100714610439225478185083812125309631642679415709869606031078559610976731610213170353334435832577675200623702206644406925696294993278847008373537552347337197708922249046665491953361703757789572566915568300772208552086290146974876917595830390045623843746352875638185690751387416130770251997871654553059285784974021904833614087659832333134422288937950095889262043532711977965504640574068982517487485619675741948013097058980543593557180129197887117433063650264426366501705867462548609674745090209591752147157780016307473621552631475342820502991813700538429432800175472588628758933463746643159927719302437413601508406031545146990273710118181299550430577295393814697431950422072425335249912079141047682581828968790937610549240097455391337851445340437669787260301499555591122345911801997997617346624788006478208229856522410420280429335222390465832131351576479733165840514090497780215964695937028910240367646192682901344726422879940954904163143583357943078128912889435106391634361889024394992609381501946676519700303876702782056620110194977247138115309576885273005187991645818380327111416807987455009242685745773807751648903348008512769371024676105291784981123454516278290799131141414827100852714221956032856302989128323069537668226548123948256133644289663129202887088437530981388029534579384755127629160413785505073456412987429272457261706649557299676618769822600923713096019981323353407831680591495795177603466909144787977331224509598484286430702167112619495956011361376920058160966688934670434273803758501444528211174492594009437428049730917510462721852208776984152939195957383651419690471505236457850233892880770313614437109775805994049655794216381786237722147134538598302405902083577445640944086187719318138291375759489613304301364908382639604719376862386173358770004409000965730805665896032560773066090765631240990057442962489768315704769079447621932544510317389455293945521038787377468289813762212604876009839157822794902122697194731836662252205195898746125486546530219845782826592815015702465726110616866585663350349026799789379429397654485718494934169288014428935175897270829995688679082577988353415822768942043443409559591947924499280876114013314080825833521101609734763810231467455551332498982425169588826951009547274508328665825357480554718338008385139367717200879106423312620060177456677442779032586279631325741111564719091314263840919042400387691107900431289806929595371458695887710894755745374202468560512879608173860591081757667148987184345178573250042479964834435752089471244747185767295825120268271137541455655023804279891393826941718559143383127224521909751522639322231711057153128219764138547395537894522889611128481787470220407139160088826461462273735446726526851545853250905752292080142209366674715649134055895818824706644875639155185563312145392455866741921411515770684189983318317790353262016591783643386535002462762876120422095591657677596390186262936667127838454669479225840016004899167904517772465228845413561014364814802715064130207657794543080955753564459516309566907341793987634563642305479691256985103986971046858282826652016951655379941208736232225681804368224289983668942738165917168705496850734583941073123028169042189902846476887567794349046661837173521440619449789299904777911841954691502390646551133313965267149708858215781442897260097348483719032214081632242097824216140775052495460504809834873048368397291744865630983125044017176491682203901016149513039441863626457256622474640618964616289728592384076488332889154493275483570139072281722822298307621026568575824086230736600591841508674496109230612683365620943006192577792235004415734234082506684089149531664014582686526959032055962813346710496462632805536596379329718650815259480244185799195743974551837159639168583296322332779426662189778368704507268858596597916803304629639455746699635373593100268089929768861587771925110731406703886211913487426344417003816535213540165438352640047449470427042140448506043192163060163676845596513608411259408102504908998419800526546938891644954728541779220787772757032654453088881997308411824539127586534616526403450554904274410493281420180192105210293953845476816822085363204497128712766421467758206719492512642035652283171649327348847340941007036658819158334045457537390454723554888451286193230177084741497837669263106338947097549270665142916356337182087792872561468804901463060370305545882735172150966090849187462155535734881061428543188544848913665025393108136520555475087081274788473568312606852602505732686105812753933942697933350801310501270810442383534412483120504480541515153767923670940622128202344565749748575789604405600026831038743151940470674105045536889940405091825796459500808726734929036134262092442172134442708744836683674087016334854868372062055280158611953069220968703825848576675665363556497959753551836280021674297495652330751497121612241549819590747104683252096406225587828830496100041675012555877660949907543734078096635844783716623417399696109343838669946019341855255321063974424666208849059252994433089980869588019563295675519022106666327802230917017155049301104700690810057267564719425626781746588299784353168527079924219490247840103067048143923184092538556384446845075148621930438686824323001240885886823587374802935570805445937082168740316885293621044906667015773052213874981439598615833769496011994611093641911356420217322963561432559613234098955700539909656278701651971747117103630702095094448842905458222871028128073722823593760790686127179787396633370942149521948842413221319288836721471613782696678514914867378964430225678552862807326608728976464929057548002424833030593861270079753410481175682701224854202860262326598685884886308598791289378458941391551665155053206234370763093780563326777816987836995385420765751859429305404483648352240247712997408077407688447305273360761801033102530964572724905959610625289574754640767791308427103014347170187668450576779545620987770859685545820166499988351307709099121036153495879269208041071658300162208033125204179533386653710140834856582916950544928785470701451763503592370572607053809432904854163216484298923071481752486533280133389183447819383706245865195827666298590611726876047592707688722041935992436787768941882899922023067011058413201698417532354132399615831152927742545561191650159126830556728467916313695975168550034748392975596722357629405254295743729152449991726464708812432745096962500694847294519356939096107570584937528137365075600320992577006435353228035847475872023122801068259346524258592719901599875400163803459846919272262243379532087707504429426455040062627295067227729747275499915672738070718699918446345555865890601710452523620977734294609074982290911173554542456481072954285769979730871627957609003587384614133382894619402535943802855585226032638960742645066113385321083271995157084727836070361994371760278360373158214678214979428093116210934827816694382683762210945999137442236698750359424962350010892060558762093278166892660212423410496403162834527611076021432866623687413691833194755455246384443091932464188077736295838296252335633652712426095271141889899927664855528469579456452852601507859174324103517186996508912856515097333166401654308549586371756012598601543543984746710443788949654873896045464771779857477598026380323321416268924071707385260119419278185493731232059986436200494876447432289802906019357286705020340811584830982285317084574977224404182982165502480850933560531015735529885233103140179964852408392330159159777539304207990116253825200460961194378798480867428288503785078494365105150121862681949137179858660557513008417715434780618425325317098244968704607532909413818715606565256998867454382238126258049902629646717792962305568161503507759237838913042843898348099802206292603777743513150808369299536031627172785070204340130433006545594521727500427440670466603308775086264740008179334445590877462683374251933839920925124482339942972389829450803922709787718727714658262855682736813427457579958331592692228490830190193885136905449017638504782488018993142194851526923163722582451413305068329496609191808478316350874818859648323705624920554369022726117132646385175587159421802302542150390692552998635333833571726450386556112255717524349694555201667431052849290473936986104062082058826944578750615847548305396648678493475713151149580430809770478544591087721083607897015152031505554948443276080203903242799143448312706756990061194598974994835251792066465490608744575148990663545913030592506223737343765811734241432208634485271899928319517677025082467819805351079929948140399470539104945754406412621255883337387138098268000972227965262743426957453766006660206030305330414855591397061213437222195552249312771681707683666399541930710240353520654977787751344754339179697388142248205119524997491205457468658209782782396258617348229205681308172428155793873243179751906530180845152528695351405271349569476528390044045808920185936072651419204763241918311762663535855994444879132347196586717692498899284360145939531237017196614635259255140418030748549406769635735753830983040424449722423291325025392429796885457667690340810179015959804786680378962475080390250967316384971573351366812102506227477965522972083549589436370718317363683986664427727005360083920153624700418286520890731820302809311989274828855292056037407088632337668249599499589756336903673232981351912530286929506318646509492839796520168947522149342972627191531135696581610939146159149231238911578801061911147168044253802564738532483093205725146348907166979045555250576456813816181443007470826444149441330730251549569557901137757904236929358908862027008087960240171975584913977742562959130922783208883296375104861760551668404193040498815087202902449581138711933064774764436648025041788524825643879831585984148037713349785782739860304368917377102956876164852825783832392665274595782361687500640842210454998490224282252183923781488045854892909099923012261366221722665438736165777217105329705698608515807481439725028518425856078318133445429322645816935062106678793860547928301088544827502472927899857213024066294749579090123166585772814349249032820010792365500171943699206633838303371543543536775918518375725461810164943412740579710128709596674463900096294629223851613201381030203008417191890014775878679098275220872301506068357131327586996663694100538937722059407230313866282719115975143530025892637439573376098175204773209852660616831097725661399371324341039135315549082133662601687219824059061331429939088304234354447848261064024584736694948389640968998829740160591914970016251628509113318867052258223519805822515629705618794825289876087565901887181745005378010727830489423815510978922308575460595902626535099142009531511265352496280281137006884607469925841068765416902685479376473213617830008495048002963034132134012100819785980053810166888113454913937021569523520764870243399312042610367768077339969112600408161748360401476160287592179110878956941660518066123331753698397326310136057136836540308641954638696906549001217633361641181979642232716280012222893496962348970739060513957536511299879976152445272760354123856184433635513063319528353547387282928100160986119720065488404632686726383080539976813667737839595428866471368738982763110547368651937791658576855012891423411105030451406720246867363187150810439441866038689130591581107242231617630683877764560116550468490915298336102081418367325933376704331630553742158184146599465253006553424824435266105724907979177551450481203200071465280482036476736118747305692947938820005054777541155709871804246440885324964522171480631170244321346640001622068765229375216545236254472357652580399614321719378039418905611031136670410549577371882208266141591010488849647691714955523849718892425088176246396825224441123829252503670500371097148722086857091753765323246822354271676374870563220098846423603512086020754811166535519364709701145067664770257750732554007528359400735898281215325576255539131719674041777140725178102470769239809922140880000601350332844077320907167582153203553058257997264019598111007509821472686154930249778132432558509540857523342302295556917132106930158200576505746947657908603932029630209104886376607706150439268882166912895376806849546045955221956098387312042426985822930332573400168041970361714623547069309547974677759685497363478618061898143262825152475294514019587264741445525484914984836581454547099268412512318026208676042205333849709441347966888926001904356021040127390466171137615430442046961289945531279851477982404211118287240490235665470275434914410067527464518436259918699384397211540497834724843045835116106160720233388161978057996946179209332399823278410206915064212597905672606363935217543696549192318933964026132456484200879834473785108888047370009465657023212054591383877116535320393173458140879192486926137768246542931949181119517612302355340637689774823149661742410808716550082778183079936347057774886398417143267749600454053787101124471853783965741085233711738488713964871224024788118158388550060030476455419359948403318129701018619615938634799416748322972333228238574066534537060566876874314594814870302707330469144246791048572466956059159302575476237230551339558454008909181827067045452389228638319612622541503289224309582189305175824491663475049044555628547851720040563985949231867265052374622654496039721236807301768105024748281044781783322786531630071125201680363496022769749880694955966725325287775339151477253155172020037718237582628029166659467779871648789596455178144196205030340120977550671086842844646283609291599025250336785705171323527133162263271740407037214329158333598899950121390754986859729978083226750519261288961250816827219610232246801821787263349277073222095329638979796330889386082274833616492223832017504664233344214382620870854233214881893280161954293635351136295509690744689386586184958648585754728322639535766712487127328485756667244980870855964281599969238961969375523334813647310691103120314303832196214288811194431375357892140690632566449415249935774181765623221371890365000603858352282471617731017646120582226595562366734052356496151920721593764318482732084153171342248641868544593344463391986812321045789521458477659681799302683448437833222788718167681119378176479500549466503494922141259777168960123933742509366026784435219857602918805520080605787435747921027864410518342139401605270933401186622416795092951860511086616421080382042981869167438750326676587807897459330613900547648559487048937164286706807645605268400824848704471265706331270555750893170853704231439449078903200652345966102355073728573926012697125099280129806752482835642111266070276988431823888556090709418507641345268836326385056763930179389801953598955509220946025768388450973152808239129570460962768044379147859596669176740042830381521372262426548208843259513319479486156584537789878841860564355220629807631612690534467831420188236230827654733962527439114962243538541796422990482549858581197292219315489093221112893984340122899827283897385641244075636964270081360632187959859014781176126672693973475681626315555648116347131091900182818450522735291055975072212549346425257563950563864947913503588277688169959442569110727307682523086070468023602760188657669981425565277085782012061479235739331036054447209395230885938601056157222286260589880296872916090722339699700004284470586438968218883263720679375816383556037755005032133278328596991161503288904112544605239543291560524166537424596681648717027596636188899417565351797719525430916786214531905237848373347978905198983009010922654765520990475869913255571259095935218408282511758603766820383318385525601193712190635423791770877913982286801225764840652051596712180467547378514462561616659681280827066125047312138031328087876854013147707088964726721092045167984212197972330509250552401384564502058831808235227164606952656828235344049508604491666630319347373962163745271400579741140725802222161826171881038227303430641772289971715705065681360103971953537057024902906488543679655550002646241139838380217754773262579410383914878126424602671805034950275518482700752147627638102020629539119360561035758324458929701656742255784942777444858841601410592843746788849902136587220591347318289081310221804833444442783602552482950567231436780856882056225976593965457486420624296683295955814453956360833108076574101514654087828456075685435099830625155571996978961545846416259689177629920485413437021276434668399137884279718043379305735974774502774752488396051677420315144598056836308555845511995071068678516095927124331464702567227191513546382648691395182297181717517492538802990239353187563070262267824312024191835196901964872780527881488279033886066189384305014504565809640460519603272618240777985274513210131375001625536401984426187301888967994951860086019727207359653106745149469703025800420176159193961166836671283601846001180802579877811533399891795478662356770765605845691502205511143410812246667613853809405983420485028631010255130840846738785102773322287413722900605121261463565264459920624636079705399026296423317323309111638084219702528660750914593143487750867771415613369151140926175328914693652326899180480415551848957794252294409353301364638766225275502679546459393765757803931062491276511153894422810398541815412522117610192181476454930976526132667208763048522899640515531024472763836367802316020566115408877170733526112625236707204539847725359059673982347964696740685932492540770073886605680109656503235831262508424589411525508332542896090599708823005521148052804262405129668935422458431163185199776261627678972370175991015213869564706158559573022334563324462155020179724099900269548847406743029513668705375100916316784647201031228938204785620221691384712971302659615838870071499752116091326529385510140672310351884262936991162761989103942292098441881987382729936290315332730801028599635482401251851896815542848427726416835573864196835231429725663214856691137189889140330765501326586547152568924207223610968542235325808024728128843086399425028527184055505535255831467782985950555346284407993346859137819573033274282431193032468966108415963743156701720392065485519426645273764955285870037139023183344625815492650988258081623597721269681403036907618787700365332675558517907781684665453010460675975106904922144317474146884860643186159123103499360221374505036874300222787015468352838154420208587947065785978713008458824981099460957651083562960121446216679134149409453048412773849409834109323070066075641589413749156329147168571869549333056891320357618859194064952641277406147344296180695247626458354120353785767454708249613080236033952313080942303564259418718868499230186580340560392044457879444194948553639408671389158791044005487535723090928769745396271413866008166021225935988175178746181918044661143339773288813737718199488494154114600456458171227891384641845784520042720515638107669127388977761625047076675533414707428536074635521136395921051065359050366413974647214569112165810015014016330996236798873490373840632244347734774577180343815163160225076695819356385552926742342554356034252012912946894692282072780645347773216841198079831901209548060947574111350183060251154025956028840488553910103699985839503205811244913460623433217148780136096458565393492277085521785902611256658264956701119324170241965818352781701127158012800210109961993711256216144048788949139423017778582785186631153588291277264984162891085115298520233996044409255611289369719648271000579797181564458355956706543654413068688192615730148709651051921763376113947322079112233918715263748910396011094445952227606562542485720000158694365129750529231109067949676459870977899289503390146476019401514254132255478415498132539963821684616237159308917588297547371569134855557298281771900419311811933851228554762081555829649145069857458730530455143751539995099216673877210062053805271848023096072008920657554692379822950895461295572321581627833183706482914508617200777679094158111205569193835400336290087986967828364280829173992073141204298117875254765061707768578110946140429996812916994009054930804121691924612463456567456776142523107276563624184953746416519378639281947651618929654752525439226785632672189195660119662008940927613593139608203369099794160112021487588827430702619349148449743174496101582971979014903508676225118554256496914543902242873883404818054277833147953792444695359441706048166757232550172930059059375843796890747846257481386229379632433677795963366415364624087088757880828606634881983079808236833426301800386105949439679864720241731268139914736182525873541529127533266382683155283592620610129875878010086240891759358404375014191725970541649788844441573464317681127636911058727292894612761241389373539385882393997595123442964547944477780560149687459615360936337115372635230388748222588599450599716955829312045094434656529204215676873269824660168018103476522665458435490244551337116152524846754984969139433309237102337908179513935458698298931231986882111787912445404143664588511232586053676536382129982128189887629604050374768536479956727139114880970251905912224271256729690737309598752042226521834040021499610831664725098842866505959173173391728755908885199749789745838813684463694314926076947056545590281467798803677089524614218222695170995418564656119372914509618656760987006329318323145692905609472765094811794939021960188099457643911670546573824957261645757334178384026478632852589401782710223633123954928463334054808713571676416110279976163020985977597738705528548303625268084174252571217065760249161165153978512606164939487933489817900236938089836566367291925669990131749483522432306043100575859488548409448195204281503769898352468961109119700833204499275380087604089113030163576890376768620527651696124596155654218179544294772922376418746027314499077627758989357858342409555447639239077158051043933262712457471031915546907091347552630853766992211930354268331176074211953009492296453033389888528369142559371222234256422615611351390399011122041287662718357916032321774783799287477899871327815995606771083208634886678128961110458661348580054727967887694574305626647916903667982305702861783347480008683133136227158324147992535252518362037621555466466595693098529302885778859554628446410636087758512727772061388541519540760283766988382704541667935940778639166048952226484032921672721487848330591842861780176831378487122388237648241050869268105210442638211546029013187456291038698188378311622292244505637293663645834693895171913778211679732514987964173565677733244616308207067537083464754869125063695140887279124218685751706946659830322539703901005298022973571417606113391738458966160894935116147727502632284561665234942353877266557989815553277067017610488179449563088095262335173622118999030966993404353392713017140757960219735030837768561098312645300137256588369336902304975863436912216146850588934164907259850230317705794731993496742228608097935370036624606576903922731324307372507076851427895333598146089130327640918443407663048302384016876228953026475829958805112508495531641679139370014239497568610089755456017082805149144702107185697102149459891713888387708794061059762550941153250328616075551931695073079785011498369700200202866936301902497386332515825968722846467994518187125020342391581090181010570017849296296313705831156579201552975725886495843983215312176897869130482914655290496667280283118912472774559598593052787856020367552077229133659377338429965744352013999645994929292997455892885865223178046978570690782848381233319043326704905800218423045959192915582125247273655938865098230610864063784390469316467115129752775805920574926561290698118941763671532170555399974194051042937947532008040722798001822204183177549902351753637584731715975594574164631381219525013581193231474021910623139375780995318561421506622789611577763685310313845354674463173799021890584589118521174860513141387248035974955179910534148713472020208154308886136987460108276014316483929709450361480328376477727705221457893443994804319886496262528516959490497688148201376337627944951951352580137786832318073239659635502045556140103218814975374035687246102547394594549941721823521934759932568114603040696153930842022906611395301398866390910856338731928124177689894308598155516677189214307207499403124348758916428959903399202927751872227107093998261277706431175638921185531385422603346819753269363316617523815056889085847989578985598535587755487134319153564251483520043794195981983901134480841548609877749958972222130503949139517915484329163966592920940715308903427842099786842822502533000052676090886756510971190369411357955000050947153164154975997940105570902697966635994077186788664219044754849935123970157117100317648167882374548489177736462467921208721566915023865959584185333381733810828004512237130614280184258239672073214574142196633299892311451273697731100332067802611186538466123878456698786846343862307157076983050542306900170698235864166744197886676863131039233808946833108845153195120579436091215747464369724370229245133181885019471201503204095269739051076530391466365148251055133024927367450492997895928784933312776974986705110564752109573405278658116378113649445283058571565857614710994802527892651680149221719201872609042123154385820529814215277657076459982780112492159350706906919822376508209022216519151209474749253070720781407956842517391476548065773412792155870534834980559406838907446638664993411046040618733448455169404034065123132818430502941676469351402224209621835943258601790440584557455021670277041437576915171857960164054083472938920625254149633462992245672113451767664290159630511732659716352428836778960904419778571476573250264530217760609903559591652781359902150199691508612225612092178558778097371044583022823937622442576310432865780780393185233287435909109446963359954262987053878005008758321582368448926473164273360029932360281325550225995466613819323613022875806685722575105408015424241715339391082582983866640177002663997587801283677289211213002501655487085004543894706883840860444332288570400962064052778918371885601645761971862366374375441024230285491451604167200175852101986756836943218695291491895426772328650783739026947569029764583316241285433508681584342252202430291745962038762034113490082834736074731226537088869170662297154755717558824877996227564171831521551957760828660449664240918094827515853631090874733203170185543586455382000822156948017127489579804309620637358654059319018517122777493049365687042190589135355759918174491918489324051933637786435538189617240230523012490846125680212075756026162203703859215749312351584879033908541420091775275819313790870396186787805661212003924099464173706679800371327685126142431308915614134823100624862512261784374514561963588923673054301738366509036826344463349093399309818852693894815768659521328262014425997567904595624888202031430553219918027260613094945500230015301767237807596930039979472218235810553860049312673244975742555313247045897592187387957723882562938932905261268379145038241516567675804877141750630423091759846848309659464602739546185413315793469341585556025501724776530509894161862832349044979435774262791714726524557713903141562364723038982097635069231433617453280598685409924802654249447450485888796228895850797519179073834722266008952386915890179887000409997891160251717593843343163227628904862910726009934865546507569613528448038812237462155748674752884494173132804504916352493811609714289004817204055653127671612781531415579117919623273680159731357215662522408855525045387852388302009980935181059409487696328907388899639078767407518066246071526333946175368314569932854768257365375918663380516801620754908749808978730014379743646254713405444196392289494444336601714355238555061823422587879631091668376643234452514542774695901583880903764810340542856862157129712805572376368696528555702382428801340644931237629142290080793167662368674500964931950997995513010407088177560481740245514944590340010807826124462375710298430691955268392915742075613910710774918024329044053179724968735311288093709574084355915672356618278351004534788937135798911327866408542325876204503988627965348326060124375696130615324189156442442371382671568908405533621704238855144486259174911519480457249682720194940435355790407582024642265345991783222241045179084502146341195013909782182988987183111157344148046278070231241935529616940907442655925597452381298410396149045743829877247618768392081371674250591570799733188936702052627112922519218926941985816052741211282627969051768693014759777854716393805451081635999872424479580265200821293544633716182012522539000259817851669989612379948217670230222697346988458652085806303437837128795841877515566832225202428730801294532300719554592829528683027616035639018940424449934713470285239099218486828694080613479451788324597658340768848929846491968869875866837272350216954064846085359182015585007104209336628684710152522348308201917235804484003976001499322842423994341382511430883601389074681577079276559214807471738706237915335700341252016954939902595594025429338394553545990937523765934402733676898774983900216912202645990789944691895736741972002958310860282735414081869915511858510271726567120740313953842765099884598970115561033885932918769840312455089492420082068933937525262427704075275814914339760311104511758172214387158149356621086213151326359757844565464220780076873004486271437884571658161284872763718662720959691470850808378398292683906154760700782032564639103774006567482241672247803973277315573273047168021052841990880859354101985817148109476725544345987059017314789404478073884273262420105164732575567845562770570742917168731811503272928108699669838838952117324913859368445416097753593225225022260775571208615911577215600876697540446362494079378105946617172410455917794541953622946061078282907309987035787796424068262546128899470404792098702931932485684373342374353523751612097635164840925234438339153545948456271816662481643502142285986609678344899722349510632061825055175930745823448285239174253042214316755722345908128838995956541271346875036841264450022919594097166666255360979893700315347161080546918512874174302523251791413732217484828882002112940421258993269312386364326568576459117392867235732603487155654640217113396864307463990479061488337216135163618752660978367578980821246197544063720380714824053443918600903785514941949733464423078300962200931604816085965926292113608726398862450519833039896172044951479553806549819342517539981645641157360002831120567366551281272267694393110378264156645525623239614362373912630071832120991710840306444219890064998818261444553482700749553385276855721993029466681896881198181428109610587816546643313961787333087757739124930145542157404445996570652985261786434439146883024752400204100027555077072346560279232810350794498174999014405031229059043793725171554934572656988426684472428200834988508964133323694802276638059612759628343652408881318654454245694896246021600507691853141595826290486984921066057328469150324160671426080128528617760675086801667352505645217486429801273268890278603016706839441054575585634954651495929376856142779025989406587043382117252501911212714874273358242666765977523611691379776950254433848027639511843520260870590805704376952240094510665495623229743564466244259976921347023991614000123739769576636128687205046210454354189771097465282968869394494197213537491754206796804977627397389979143729858006441517915983287721651993999165475325008538248579582907892128508962277147037064112574215619078311145999220869092727796427372010411024922566688334190239264585188536070420260093518832684073962648453943158961016641551167776836771583181159350165405558308413490999037777647112438082287655637635062050758012200407309740238053522402525918635091270219975603037132249253987032408560984561238810756289815478367780543780883519176622361802357671333789309356735643776402325385427807673732909026885456113541834168771799430258444479818468757843618684647438525324893125529743427681739060311062676434447033283113964556367271524259658295551734572595673146631010824123342813652029605035555820429580483672487412037481836301280301893378079036290372039089374538642974941550459788109018520754280033150899645836403790127689530447729966938449319889938351582702450863217621846833981019038263326929968216842375429493978379543685736952627996143067994786614116703440661710380653659629184772247599772363171435359604106559410987186558662128158163093056422579490304550904559841286735692126437639813514237131412035422925421484287394161486774224081332509152345032396034546671886564115946971477102833699036578796120479588692007350702340604729174191673489416374581442589281416494845151901697086996957181404010002968753628405531849758074614897039181316768916981595094625594205445819399745334257629756754357554770424764397544388797378747773431743097278118612701920333904156696599836172009047210547000901680894171781043244079216374410430893717845203167657563841013871987173451538705886963110343766956758294526486200522461128282628202071884053561755345238546418119730839596911610289625530929708394818179803159020358593937839350984792404731885975289284763161725869174929141940819938499599301713291844283513206535679503421604180706396616302216192377870774851355023996648471730972490400432313091919280642932106803869331660028321877291774639342119456464093894306020891526729758651402336820001047502262545384609944496476771630498754525318912980721474721744228633692568178246071788942844958799015797270258584579674103572292978321576631611674962422904963620246580654126947974216000055843770490572289137051143908530076393674849884725125886842802263612762608042906884917819249508065881109475558630523873203818960214677233588392016135093757113205093040827523881727812309590812847927154584311473243846016323872600247284395640945010337381837742635921294559323344918439243775338228639912014502947447004775805258726605555549901982451614198814936635761842663406936795421218573168402616036999713535927764877565738069850073251840039880815207249304911295363239799501902064256207222738986192975858973845564194643994277269703372588204828074074860900058131600619332053096182818859720827992992174635260294827808640683968177173920273201158898065572821731019505164614483770401828455788392784234015173558403217759528528927662850008833043017365337399841352636322090935331663250918996733682447944618835103249170030604286245796624809635986338639562593374047764700029261902217535515002793392032049041802574869433733929899025015454309092850186262075401997641396658392652981185423870022495234703935675135210175736820064354767438247831181046842278037431406025783713202140125145374053288577466273106673081481967230257013741240602881554850993919522124474842067354736747628468187017978515140564828092137186215221591851249122532010084672624425518685674994376421266355864374320040866684505346302167616317919536164363231899410203790753833026160328688977684051384120447388701842398551157964523752521302374394359289355583021458744837273692297206934258769446287571759215093015755792503668731933883220979383233530779531574080762898978333142746557189059449157718440772981760225639208932323465036710908585470711686082827426093188467852241911399286732720370350806438514880638170108715926383962964325655514969268308116064192779063266944400378426833417904163387591945466830363124526167490337405564493328986952327927712464786790995191946270963989995479062940249898937801441848224316924012231527270546080126900510596975555683445603440863382411335058398166830921108475198147428461817830345880188447093740007801402933973686067119520648080541934174018380831269498984448960676277102067313023407427017241458843778718172289634182353652947856700395623787387679482661408965745291252745149454525934451003866178652254102430883273593580491181449386236514118769217524137909254715696287191024498142246480333123479213810981780670430640703800039751850047724836818674515259001950077196280684851903889350033561348320980931208585972642904443095073074728258438599549872913482201980924095945144012379166916156855698807651430300805011919813123009608025786432011337156010512589222091835315565667537154287037671244883448874159369450398962944121718775460763200019141095606758336494409926473082835826622474868421985727320323504703167180576656299715054742174776868202912858640060293072258897950833985133989126313192153671026637246419405628788453813893711284695952032806330220181856074019261022058769718785859055524037868724636025836119975953749137790921762812590447506150374363181746621659591338027008902287838186224089552905329243325311727902935065101467566664622894043805623933572982404375605905165437374229206250846333684312674176058987356994202980937459909016425087745807378361181281917804950649346189712249389486909792625230304014140084676877416904098528105861768507237975743743246581331318613201287449071852630036219624337574915621075937610568107461869189483980700325955020485560073735077272195861812209413392090933823113918597198551258467503732030995217888456832243959532127087736230978302087648366990587936439776948334616275199485137352032690380301089213190654675836073519588232347088287698430593587608939974449558129882327237035483202181993736485883933396054057118910642021585835303653116192859950715614565341554703213125222209387162654229872175016520411931020688490591798451574809492074891304066671450484727056633896131731879746911085775709388235229592993209185088642501679284663520113001458600094664443732284692185853147572829700572021634332705532167325703951108426100728686990571863040550867419198143335035595066147650837127516893385479157295898779047766184416056366301011616688775037341850984386239385879422597453217373229962338118516657073835673219284893338470851627238310775012185130373402990376824199492970621953433840379058284400099597131548050966969809146937647718401858809472796742823040466275352361320715389769536330497198899883184968812400734697372155828161263469306197849413329474251736296981688839109033190074973802019701372391157928045364418844843590821901986396508722374362558543344788026706123240672838923564812426699400472577853362195121295313942693681311192327735450592725112657928718602587817996439604722503742891590302431611350038061730864226921906930521742478339988947336712910112887557187087974882275824852519161937733338743259016302132583409825190247812815045516215552510466940129923891782402483038744447478572525247780299068871996336564112055383776775965593629926633049477628544446525702014881580078204203605492872885526183966347056272121137430797937818825030182083817987767360661160547024106247686823584333988296054328874589261446791837318187068253088675384599504379089277532286078696553424685207436194133293049912721558261323786451059878771438413308487814057294559103637767401253786558120158993236332573575308127507723095352948341784486241146043984044494745957174321086694702827607569099768110283129976865547894047511252348725176919722478615595626171564959067262017028561116414745549174231389060024466510906728541493161853238911533346938396120833556304917935357604550100615354927040078857677955929004112052965245013252105345434115178603985390398373165322945730477162318348311112613773399047794094312572141367593283327754184365975677566828828223838179117613697555088529550961552585414444627713247157659429695045813746837996745014804490742984128905678940929183923114432493961359122373627596693141760431636571717237993795973516873946442114500783951415344638443134701852430583586195239005380212782686519217084919214490363175433432175941194138656929065505149499787818660091499341745106931973371112735472110356304862701218658939558685353993136491879276875416937457257758604723781506898236055919867426193353492713701965887317956429373358256366070414993409942497811144216551436663467407853135852701556945425685498784455060873141339927999717185765216893467401527971129771373459824048724638526473541105469912195249355076775286660385737932050118803853153163261992467158992903686249735310882708143520237520922915550727544608250784703975984112823518483818447884635756873142099122631962694124569887319872037854426134060576031734276185749812998993555516822317479998031988915862999355778138123021496011989024303973723954688088653040926904001614452639085952573164255357197454999166390987609409727181946732499390668375714912779105682477857003984306682498714414996589466580090843890015954695494797646796143024422999919897623480896806653786980739609555546561371975522769911716239145721224429231600006319505481835883957419913808122844336499994904043015817831123635639114486975665117762385973195515440031080893591040641703344273131132366589802262130676569089853312595958098913632542738126722838319037394248697231024978350965976619608817079134029414300775655734067905389345343696317547797073505905152516390933932735984504087451531113521969263673268540033886285920082876977429102546374913487687725201059284553835279043348533618451798034293919592835867645948167368129657771143175817986852558013100816028039774977173638714898160119739580037313384096131550990789977866716446716641427229148665261335730812858762401186285490990429372705833854173625054238528227762671489242383731174345023066529375542173168464181742976953979092351968384994972725704478386719521277332219633673235458728557406310394022854168615726220598235639962541088338788436824296941507368105097749600735381070749516763574634170704267372673498369480624229330817583885805418526941196573826745737246501019940500049279801789833824039634449552934641873960403037747763464833439443281290397749810624225207765630490050125225790217687033818144480610018205643778929152243052128562796884952828754010628849647512574077639953277003383341228629261760031670489993752965314545893824749361383069400978405826987225249636122880093354549211896495719808155096463970377068735517639234632769296259572803743902216014501292892567419852277266938372443913475951829458653613798432065871994755343702628688430908542366032138312920430020418157173521385429432731931907727348386309608451685426359407695239843586005018295665609464509995590711358214142813935169819361734261918935867453733810191974723859058218194960006492507005147920998120384785912147668967499069091892937482005209653994470375768107738878433985942284696075542637685866738445767362046373887760347122470382995953316481886288869410218929913212213412756992236018365689531979115884259527871722319898525350622474315084372495982729787866428418121266915891838501221600053969718711193149116973326892644224189094629017858012132745819238735929484171281311494977567418102412866472437351604490677012342573887655213947418501500106990459806028497553425212650829303002693138687834446972349028032476118654043924781619597075465044744737484233007256672586246605405206456898559284403669929395757120636006435934326129768565055853788523365465664152855306913983006776494596360012744979398226054816157385544680826989915982994193899554592805841888191968350642590632713009526337331114859745390110252955561672486923255249834235874387488457364607866184644186704683393355213474116011551803186958203362213982213876999972210143791470652317283228782697720969219751324961411622319245362719504385956204963045166940731198705583708086828720812063676584267628971435760419344596680872920928915332504373004842623048289063034657496001631705264326779808676578919000023589808556195865174693590672099126881406284066810928859922004564773553665105059774594413843511800248055819705084933169851368651581117339420591122610429112108859429885853605077790309668191817362820893630965121358524992821828055071164613439410519028634361898251822094407013904992827221285227039656420543501237961663008156076925268244280489328043236178151877375564312918378830564560875009720466116341191981927008212106607864069001910765380520856461899290848309862184331530181493238537791296213216345443776681433502148360244319366352108034223964720758039242700802188269084762461937080994269452542394043653123083815218051450391683743987067338452136879704283306092347480564581066470634225842795293110270741664683981945089420842074156305595857026101775582348822295137149983117961782645927668615587917371901577566838499353919836297835431812703004449671887072383305478926947991734126908004423448348604021360903671539991008179281024131242965171377476184308757462720026454988004343389973913672507227750945819952439395844747499768130521486476373731461634673621737770064731006246816657978317108617794870000668413964540840035081250180944533195613382541559190733810562528382863892169708127664198969468193730680982786318502013693785174808458133939199291039052092151047791755002614857563821578123043251692345412449462428633625267103521413086438631754649984312051940380412157509077146176998256081410837690709362118916516558100495003202117565311148847892738472259190324990043863066791679958598185680030075934423423615620507228267403583242927706369414465925608794159688990786188115514010530686302374248898564330641716013701043204477969356241226594611313780964311924986550496688191653910805195795448663037040523898155702253195457058112977805626550805863231008364906516303371611659291388750954624998538845711663599154849190028904960249436738370031109175629388976009618320754677649104565694159425476002363047855005108989733035171702116418507579614927438482650346667379147522659942901739601437651096155494380765443972530904583904451074271952402633603158892420435780207657950728920712804299220968945288797107623063242852558052865188020506048361848971228658069148252679884518203543619298517073452647767704200171638739167007359434684689297255570986391198968371286395247324747033909590457828707992251600129860723915912407452109441203260578907353802109231842385158268735758442221617229881053556872013506915492391622214179596217102745400543905541009816473445077750840388400797266780957850019777058932906226276903314101663209227997314637865095565175326342554815917435324723107604734344321760828920364960437131047719451395336822419282264851286214057048263090733079310037130967518772211393515119969608207252089155956784158165051138706072657047572608847295889310639616710644823959294631488990800646026789181458596959768806234417149702845939451237012165210969926216510976528782484949999290463995949398673475329213737504417342729993612129874251648668084632045360764813892547164488468679959901130476351674591545090403537275705399223613248821829747311574323989535905862216227348977873648272120207832179585485781805341459883425598812931046461742494741595914741857257318056567450990834115397032598778938762078698590753802874050376906945882743244245006380927204746109172402872402029193632669670358602290502261618697242626674307454024026270522268413746326911784409377176173569904758971196534888333140835637257290323129379788759869199853355848213388710541127762613244979992831773532985728501297909595293266187545822768731675339829199898099977299889487637489149430363132693521717001746368964840925241172087133964313424730629932989716299689555517891140199459372156547765223007739245950128512753265108712488814658365356240525341800364830933660400012277390426742277960008275322616681005087959296830762382319210576912953998869917477100527631075765965529180352045030309322520637609932043444692051442184224952581508538990359283703676029750135474257310692861054053141611679692854955536600791416307598575866865801644241219564304788414949466315444186522624736914452615669397376612299403751714244965577544961309438663710733275875662776701293203395520419290255534585917287471796557937409472997792318035231406104713932656121811234306633629203269816089586213136867380712116682411498585769001451931566010705415993729730464337216605146908003337267774454566516366359009903356557954464250540262295635685173629549136280419570434063180151487980301848716123681841752781061154883483001282860919404614807586593119107961289536354630014455218474252125343165425155311941493485936581195099197134700466884180545615731755608687921170643795991591269171604329697533390832334463587470826220906643325497830364389531525219705998793096216697372882438144199251720755358464092733127844749623963351266587748965088688101923632548948613187664845955011141004995911634320601028194464721132749925801858806171337076071027612260519863534186594965452215284573224131033577872489203923102576644614325348992642737709070787959247144855162468607665982700420437052593782641855733103316250395843724448169631359197985662127452872184401284527898521419529839899798748629662897795259311356661327393610342557690782517680116132698602834911561079155435203465287605043068029479440513087906960208978926343225708460834614097832295749179645869854753786973354191702452712807061781277876185735663102480402400193193429065263327163304213314346703828722745745906123177148928650613765839662585243518196634684279617723084451224534099642052698281520465414633918085838902507131155857938820008925990241038243152219357993077392578532872872783226153760491534039842592325583283595519953255227097276088546291756195868818993161928967881962987411170410601155245868781639457703471576115779961218613329655239019281156465221813228829647434984433678246703332129021391215763459894843558438735233668555872986911797903717044588567082825811186276128778869941698948022764244262167209560980950044207880826358384921993794009541691094265368842968937063936418210763223940429097575853056368902990664469743667646067839445060565281909157555180128284466516958331190918852993260991871548489315055509868249277603687267727687594564672342971267438039267404470840841750971278254561049232624082491456017775414536845359121282268632480323977965253549329747234964910825430924288218135897994916172685101986550195068370010912957478405517402819711448248136169074288744246024737632334559631151713655590181018113629071197584294825500755902488629284513631132016559508451552621282541188993913609135025106799326841921378418282190754189869293822341991136355519865633893751304429715411608071286595854234982008475186431742904384549910986988515697729590093516353467631918115170603042131319283639792046724758081939551434270593655520657364240455792418799137926205119842932332646995132091615690214103239429444187452716094866764184836568862128418070654040062693078627132262129552107294494546369803951570687031479161239903104982306656977623335478606064737321232192106764730966510192966413204921835663265564332008610377038145522278055159800997366349861550237361076796596432870789665109034355219688075528346558111503581921011450434051695416581316472062659077225815828607784270658916093637782525781745924365977281054170585278883272590967786071399563914960383603259419641601410401605608655272010520440041521693159657852611641584949819732634237067997252568155655466532376966445111005873020124379187882353186924564553590910335986827656499018657910675475737975470241299894963354851547875169864211459362353689692122662068326641390504790702841716212243225051137776944995434608492534206774114423544658724620240491779187383794408177361501511089235574252993697476374736539274927812312102050067716218766207482860581463440012398420131448024830797323659029963210068846487503555961037428206829267257654727114829058473512526969639708472206995755076269871667718275324822912499824134827173022467312806948518146079464005008155754818638049010214238155376958212564740632631085988812266252539509393313052435540772216426101240276848489078484000508348781835919952413299573897630915849670047078320388088128112486154292970737603608197452705257123509210808727474783482665904099303587146074461963752633971253582199763370872186880045007588712006702298110502807783888754016405678362379042554914032124640668903340147759979589748031749331698539664638917348574643774830586832274313942107692371324315446664981606809091926039694275582294466788729945769926370691295006063440884773486664396536652652975231303952561271942692565343428557083250083886621718828914539825458931061407400573000691608787893492070482622596677829605169833031017559224784042917073776572479638173736655147606879475154466951506787194051428388745645112236129889534037704581927629862002924097128693841513726549869293437291682706672261962129065683100900121611866140972286340001996923659786673363326611135217571190809565739701945960998066829242216759610199049097135915644344522461768470390543595276952856211133865841789234611772651592138690987743258145163849221381670329789167879939906863729475190346767712948055644398861285248271529518862150020466508492174603801648613756807490482399065646424082040515360690266528338055215688856995307411896296033735345814810777092175452593612500216210685831042710448184622580716602365722273905548720504827566839602918005043757458258538387627658665133331833305430951452253750702122217070862183712712547499429412575244403267840516871882802194166181653410806498015004027503895152792430685600876483403423617295918273111375958220402085264169368828541247181433336805294231053722513397113558084227216659169491636687172952634364780554608915918445888600705117490606097695702276441472285095243673264781921462965464132031826404556665274861461814053824487196859500931375707079852254990039928338397664215625202828578464154702920843086937910446975783331646280881968511870935829619211565816803068644435171989187697473915576403859163232613566765495059924960037780544522869104356645444852785135940749617509944801922288931761454034038774456260299725577792743787398165346529712064123830728987100914847144115400047634369285157550024124412363788841486503828602708472523918010162028158566121358420126981325896109304273765627138751360395745255594703447638567722902703231052818384993546323124789364436075953677000773188182509494738301389317823430753565770570090640424299241682052392188566401685758355290869343828665388942024479841792745852675863711702214080599386685277475453462477485885437954110549318652510321506026576153177830518365134128327487240327236373760847494352699933287681145419530814840047990928211016388412774167944398289238031378196877882755300734046462794638348431881144427272717835413477789159579433129824672267177568980685718878219006912165478529102499610314887240293744989082689887197289477522980688735977867584941910551341020250219112060687517318506069124781781074801433756999526624884563255240469766750726287903725195901845656327432516432746318844458772763132415241762578307300783616326579696234255814294844692973153550496911905801090702250125978211490162698581361538788359577997757471811447661519957041434146077073786778940980292271143481122424170991163548727291139524435709227796324201948266347075843724199803286017930502432011417850310544543569503073705645562015325077495593789228596133318164169756156910067328305567888763017727218633799377966442795878098339312567332975919630659772202864288877316297192845884887043860829788912761297827889547747448439343495822107165961123645627231383002304385658564336171500078181254599709708012373656516483974822101613308565304949832440411490305991506302724788077956054082495270820843520654618419103456412790691048634184014469356533172865755411889827500668628826088605577608001629313425173209472699189965733574044072907021791178784475922066564318120916288169099564830721849754393230905697932842270396305340067848661742618973631489765245234592861757987558647461391212668491152688261136493147604947013542077287077901617804443249991491945512427754608424126665045005090267297109829387487203016686047877123775458545989482097656891848878188021320118205519351156464310258120791050281382729554521985865031770032148360407458479263268097147018386918327144166423023574966554477353547357271396862955571166618073129257859711341202069880368820421209952101652050314945883172424695392403591832648620090783119425159436480545756052555362952822143321728819030908528488455314916553303943961954071157633745452794154183346648459615068929467553554677606241326112468346911309305238548412885076046792291480143095511915721275138958652192398884693959220255582654786039510370893372894272989537870010318467661091832372983720299323931912454316335695202979918210678225967097854380148568332914056626490496055070945873127068602337572257170608904400476281882331545402907876002463340810167355104974893039908981072689864705443478311524202385273717752122636987265002719463857765526073368242954017951208901524447904681006974563195794662470267618070238157018032880267612986974199337500574730384378085373530371951468411852562420731355697026768604910912043004667779954633108721175318359334006282976982077658826360518601530868969432428105325469081480234035239115433580147220628860513874886956192453824226803199918629134552044961323053501831353385077390743627332983213709955450186109220588155938379113844820162356317196443131112877639926232254315314182694729416580780417788784583845483338838021743037724210841241093111878638222639232525581473824128203012043952234562317742237107640448471439246277961389806922525532069787116401638837423341047674731613031291146266406068039059957656444069478746011566844492331678003727503524358539191782446829140235376728583503161285061426306781185162481718923317565663071170444804869577246230056759322195988160860582987261773457907384643473578552973272370129136299570532641073574981727492478121873427823805669127525290264613179734719163657789851588685991035390968210573501853506581690703953915892739190168364483302281902496167425194305647986860457326935700550212199237368960727921160997009065058016895369601603700276049451953815515392936268530834971626694811362003080292300426028972173920517267294435324441591922318943895878615046919010630620628481274103479161196833988349115190472442170318451525992147799106346045295598533183292824553740355576191307396231289375456026265957765948229777814507020340153442494591710405644892228105218946105544886140450326734258253485427992711527404277629094911709786581529538645803442371163272176465498678529251956041409823344370213010852214692281993581496656014020745201451831168114535015922132364952996777448278789012073592126001983126804666485244155994788665502621269537256795443801068439694507707385208343314582570078868190449750790175120299414843030404023784869634046251631668789755546443184370903727220138124172299837769909338539497864371176314101413270373309144447240087041200280075049245469678206369576433139111058445609728336429479716198990841561275590556574723179244633477692402291058221037708634730324807973320552583146489789101764043230417649030444361398214531927249739239098292187354387740458904394637228521070446757189970527637523370897846967203650159840044944220996278447600469648917289476821110381803825903413987707506365518767669916883288407191625845926024560840756225382122293155541374698475615807795676679313836195129112228103039793355620043095315731215724084636820556713914882441700111440872728987895837791022662682183977751271228893220415243035494799861217999576889103618500398364112322263224682214620277393524026446132659222077725770685323468846743240987491092152332312046820368601554422242100162746229324350802889094023275719767171211637163757049538102901958662752515799495477814036772848483530241179714481273248040767907660233793411992355313662917864024642587271761830893436729443458980576470302446308663340506206484171520800733930007760605033012047022460406263251932524061115894797132494453461707602734564631556299183224893583525386047110425951180831094409067056847259514115673048535117534087968746777149648275218306836854578053127074216528580534358811261990666194171923337132995556296317745459970089293905694286999770856327180686268937874951658537172657606034513943959360289853234996839773899222501528173842248824078536159624500153210415137717909831993813330580722379128547287960463613744376803057175263367870177707745159281262587407051080049916076844395161111595742009026321996919824114559953616778278985985110974927279913915102961045374536230039492999240589476637841208177559079213266355838076490771747195999058949386531571195129702094161639190109115938392018368976617980332835190730269004363393312749307431713554924660525921915890123138688856568314517134236608949968723302942736938118255386129029215515076057669896367142800167783868749276012440614216286740962977518501389164720516654422791838226599346397480304865060528204738989368763240035556698392791707578606274598188729970703810426244176316656177219736822616388903652752875135185731330386969601070669526287111385845744979207009698483890948144510393229052309765575009526501959578657334979892047927529736619506506710035292867721675535686014655119100959020402667149327261392007593652611091079876040118208996980823865425894604310072647125804463027471054885496522501271836768222115548015560904646965189855612224297643528243263734470988752497022694056113017580504833515055248590013548029538630294182102207227863880862206157746041766326611432960035002212511089742220434715757029873594660691836288490361311084618405816717165647623711019194354561694703331931871426398097034898329851390546712327036932466832080822960841493367430042553713353872802407800975215132847346355077044800855780684135271529483116349652457752984025362923434567150543797230900213052925063401818260390304462401657495716225138982244950803441343193920863451196097511414243502176205688356395162137012278721919079388323041856599358961631286301644095533939902395848142939967619217210933111010393526601984176935172983990415425871328896489631605187070236395643274284629035473670236137169222366898178063103017255571392321029374855934027263799542405871718378632959470243229302933978034822783583278791402438169933758242590091297579920206979068233282774744950268112691715565239288192516144847866538988882216198974739307713851706379436912229446832175555326344264781153283534921919923105908381444539188377676872844779483638575073705961233230967195634546697542570740149720033748728146416796497757857296936922566779644677074801156157302250904486013367481841889807339515336910385908135068477479704431451986383369702196004308917421306553604129043128648756580403591005305316918430981525991524039638726000917145957541285253128074259702812745285265290691965303732155849186017772043934819921208855208297347388081671925868688359509725125512671831579529403443863450206125220628459621060188417952178306650707993492963777989955666863704736789425422726845357188925584107409139371507084178029807403508838459001278836029032364379353086831325774100429481011601485735928807902628191524062021390574621668669569229485515500086099142342309414404323679164843379517442041445985662005395022363049707194867699876036503053653856701925426959311789140933165841314833484335430996943864738264646595392936780462796764016181355242726807836819817859139621700097880394433733055872585204927207956885964628160080389450220840086852636640131780747522059443624796525879968385758898926049053922239188323111668591144033752488212338819850209036194563108280498452449554414879069696286277219166389984581969063570364071431411169037033265502992046218916945522989994950716609095013859983797442835777138760185144014684002460995814947555283779508734600952825763500038732770221342347247825650241189940395915869182373861827442536888883736661595202447528324124167639281501741560059212695343074783824759192573704551168186707274306154283912731979550032776017553508173680675164726027392047977383685008423214623300555448133287653684801021576731939467950152699876578785806433858384930575680693538967733389260827325433869564436730692588717339248707171715539586210429717852566925682080940153374357722787403411559739721993071682595598231141005315964583081747356799413388693169700090056763601815309516271041619960163738327086367797302309542152538986233990383934271329492682172399562767573751651344796158308543713676236497748212726422095473355687735331241158982581608021023545190231976822776157048328552816711713912593389727133722092396057767885788693063648361070975984529616802514320797393402963614005988896456191690939638846377798855104202629722786471979604510326510299327759268091831103837205795489199423663677850620085416153733513920626723987257699363081608170486577106276358399761698624961323092004393527560920721049842744238704092274110125813209380286091514121528281380233501363623256056018192320538095588115824624291429431693453303921422837801481163254920908309382814524919430828028043878465367174252988212431480409981227476201783456256016580756047411999365735158939747766806132366784534348243217690259114236889281101046100056919179578060108066795210124419951648339300357752350158578582861332378764626252992868111647809946823023538619459711426015002520334697484120225735848049547509093022453935516353273761779485054329825046339892696657840720824597272188517095769326336086951184406125664377138191827896748743857112783262516888830369065964448501355798801254129885612747064325567538109667605130614430318910346427873926277685616142625376288250055086092196055704659642534381077981790173142697589460467296589491942963952402817149833996448365428427022033770670006684453265885829508940360925971388143370629744521531857832593239883282084790208466897264265323165064004040514399694717776412165886607086359245192971816369457476389242310647062732750150179190347731337112979304090660261883645936710186993005110627409687136680263723094800410001513683564422091032397947604964098936863305016004559548452146111042922030799696688090242235982059206872845209471913298795436496867986958274856258970639038055762699229635753099074133308164926400890190443249890682656359813960699053365081046083061553411345193397610804300482162758672550336989137888533610962340166806212929060893295936610952202283391625632016981304339919151134252671070756446964876500565430008287159188525182888461651088601952747826438784436821313543740864570559768195281620435087348580399692888894556170684059057751809748540264057175532352786985686282244513543179716893772805254547954198016754213722744920189337397598887776335182434235854041549050439274632880033181448358509665854795391303088020181362062087336137606530423004360204101483748024083991902885053496448263001684148958833889325800559023585878027291029238190368476639384037685878884751610290267780999651803177100877945879481334595613357434137033679039668677652500941866309975766780117014204595711617711648414349874974309539442540562070358910419437358967675044504454930737271477784008722888204092895302271090956138765955390751475326261620414588737933738779620885906191121551163569389210822752264431869857736331181222224782106079046474999960998001548953633717305193579343656146983207858382677702861599922067758033334885020817085725468333673119774389522449712759443364127562559049885213377200220037049112953426178887784239711623337846607866179046554244130736058784171807683127660766071926390058058611106473957937149692892633165674353915162801990661669903306694516515001130799962772133218162152567146325984713291715462402254073391089004195862710352537570447212861102058589887776288763880611765775826186373439996647547548626596133413982814750800598076362569373975955916722311431264338318944188055057720542068501063485151897834695768423798456805169155798850550106696380099217578042954420114196649941844394546289240489545018774855552951395592174088093073004095319933858274758583618599391666310994914844937008437240663032516628909138971335502555696168960854624700474734937319169209878638435124561138487590157249457064853706824408246554209711802535008203259216257693955092014195767174626516037176955814629710482501565388643246225578658461857600200352369197553555019391240973022502406169630211038511650008031083648149079712088868767589843875567129036491895417411740706163437060248276357439190195546196856426296395240130219645584272613563941667113900352354083194247946664420976556108940395054471062948718599173465714032113464256083742798560574031189180967761037476671246179743371786553926206185371615191878170785053833809189259067866023359457094767619656928194852856809787569650074846968468799743962022253055165791052514707936360152959165835690681819926159101230125295487432049629811423204577196742580431390390234573117950496184677693331350864824285200715402955151798080165364346800561798684301107868079822272065643288775559815112929327036084611851466569088736810750230729338001066819891674034174916450796803728720196524377287287821724600771901894600214331935749048144097608972727317957061779768903160788016281945820258631654555596488530323973652444976122308895574432980542946111660385836194276908321581955813947210709892015731659307069705604439842773171787966723409729692957938730181526037612678362983042958819767115614800133683472543022156383984336503614080597768688710004376158691642997649501243028764677720856625642478377141855848690486248648339944446891733781096461012602821929283230285489289047541890142812726751933199938423324736715854381484408947374468547328381538515558142088892375123717178551920407515008759288897380686643761516143022558823020848846093839557703427331485151822894707097529648596893305305716660315719288586272074289207007438712188880618178855777432468221887075520252314460243533598219383725754609707188498180693056634922972681210598640976655520144449093401573772041798141571991008670948193121582948261623980684681130441181633720780780050267603192883037143554640517509481970151394877565081620457552734432043726046538943153009989581805121136839190790000157049145863275247912372598969058671691926247229665324613105580923920095438048835458356042529968824597014977282065383429969762238476604522146937857770280351827043185705606501264233207790410964275216508014834926614018981070849028308390418600851035868529836861524314692407130571831823783869386171186352415750676124713996358630766163704431360169271234172678537267021749765993135197568560689500407399573521321896126580531696571240969375371600067298718406140297673855772588195966202355198010655859985031638696794648664473313656725713678282142437714700745043152576770331352020519377423430126050952805900608381820294484683414056372388490752274126445891296948842726245917751090663340805104124482053114556111671857420491725282493827093098290307848035530431462872673966962098393720040077146675520817140255370699898726733027308349231253287257345823391365909681108136414502802997022337211059445170311915531865823163175936463467799613875690722322349302093951929252582324992696963240461705689058239105840207763726256026032005261853080091402394729294069846026452613703055990688280775424791456708530057659035354227243549574587599766049320568895942159481191633034694648464905083118769422288245543088926531358324696516596189939777146769647085876477870976728435479230969913862972454897919476501411715887393756089803273552871635899316417367315006266182227177675221706151645411808441142904428866996894076134054500724773486927394494158273247103217626923431379206099491034961419762456749635752897422726749442733255151580406922375261502213920700289411345701640533319528465221217370444110416231425801831398312205306699428741897286620147331000260760624116132869402686461242270739582972530135704471236805389805400383861802313924832978544209259449561325200018430070909179282187272567456164472432822240386227518362790184833997231948326040219254667558662368844137295440439272663486805018701518308627059076931520158851191074280306234435833547964816429199380947958689030395336642251781385769913511983496432974686722750940184609838700701655663891146836642356836034696771753860278496476019636063366074962427745509098121874524853109568987213660937592884327553387630406545729833389580343009675110021907349688474838882646663405586804929481484621970214840108641736157832193046550442392188194833471396280809297097279230757984139886679198955592766884439210932882455356874899775198743442138196370496083063312537258600622631892210804151780620710918232798674105631871133579591206505104820535854251979746511745411097968652017351833181195631373908526053908080862850970778230600034279530328631775340109617284048663641788758438586501093699026704302778159799449316068848011114720365454526652350178914799830627654575282506763748023574796652701535331128706964643269272176643822161896449717359572673256633373788874496115957661714551352491139431365845508671602681076615398300707379224768924120092936554726959393617532989751170538729244148920100313421967408848908301188618534922567311230022469025741372887757740888774624326117675933271863485241446139531654898968208149700272194470041415455342085765806394910118365096025465933941956021896979946504315364325639489800959909989623382345145368260179869512057476548419688844714784030592225344325223736946560785594366687100970864882940022899456618389173557573046856130465250128787967662071406462062016790029613214505766682504949719490368774941898077538135727032039428321520977353979483285899901597484631833639729026064433180800325287459239812666770126779422216746241245211389653808050181995733873231617572392966102477521300864482997254985813557771310881781325509465043654179489963340680149303526858470593987477048328926698868921810009628827773057050332830881237985827162416550647398962976070701286146374860311359587389100801350012014469753450352166984677858460405882404450076327920777743573636038042357183215643451350556419315761893442513837407138979633700971790655458183069225414722958265152245819765398134865032445200515062627338117189644983401986364213552334006626228917838163122678970119170471894070920159529646941746717224372005098244803950619410086810403343317364402814273770014732901790852368937532463759017112683777066917033315288074587149393206272309349426162362394348164204619318471272060811584273571759714538192275375874782027570753670795594560262505534822200631279773588983066692064443119102719313932453188960647916401621760565062237813136869039308005571577502116766354379612200350604447244531886405121152068332797237560914261390225697626578562665363165483883912204984048171387212598565754975671221196253037217077537603969590867039112385166959248484011665663723921891737937450259086080502472501508586399713391909628362594529240197544683166205622952930937641805421952594396950039992884792746686001017239985058920453847385126990419614779678654617081073567571161084349719007105609346880633911339461591089904500923645316449105423583791058154251509171341713541642513058738159969914130878084228654660948279721654663478141757574396080007829466539308740874545430865766641996078571191223367140858442157454902495940441625945678948578924863558539828122232164978557883951589107849182619393739063136555756027623298758531328447008696800136314102058924904973509114771398286263660250372460388323619508347915316586388353216293692832264500490520139960387166994487123553705670911638087254232314581785510899641669864763038670546904819224712613167034830989188112570182269360071863558336571816246536954384947693494607941725480018199086435811350473757106168291979082803457389268272158502747786780050853444825737401648949880901174046436240669699827643312581043421410150307938130734902438898078266557842715162526976271180065197529261270057612768871478056158657657162712200887470061672332102918493672305164374070296998795454363877732804712338690419800484728898061604723732083410744548482745922640717156875365354574571186851342561011712986402393020711109551680868069447610433427029927725108949926959874983346384259583969712127785080554694781083580536787544957675717586376540080603535683481615311219955475163637634306115944027783246352542279857422523386630004904767291244063849485806422163878158864511801743193164473094689928798221246264867373694510691664136017330708415540159618347694150441764203340772228654689398474527896325730905092546018376003555319449998126407265202054524361634570630203931432073161327229226196982627958731722463869329450655713830050723875160595440397704635611457635926600291053806340223211285159042500505374872042463076013304261484403961519803908032146376438340998981951029052716957254432148143121005461535957435493802318324566073468313190560098048796695907331231797114065216882019453822798604470812241190691590424416334804103724156839274893703054203322563003334150077369211019922209034240959871766491927718232917134526699092937545318618519132707741444353741377509617355738552783057220399342095387891397345130268648487554457504845545888908279824700847805956185323414320388964829496896156121249837042701437545194477884331827058969111696954327422495615389396055479477074738949603930526386015318452630454404004044841350480039075235311408373424840799113546047174294876861952969573775730334841456278962822755538516323720134448227140740876326308582897760408975010366742921925314341417280179327532331210868024583063644438399308680407491103036405506570928994178157291986805985691870908803012292548359605534901405937377811263067902827539806283360254390848294376290674433031993433032218258564521207915290867920793512627847669378207316820011427103291838183610516967002449842320889768043438183170048569132157457442219710128152531413995504667778166886648191028828500458800299435648939552977979118144132371492335053958577894373232883825640963727875694296725708546808554909809698732940594397177289669537212837042475403018488249804758699300652914212178794445173696376063648466537174668938609968469910731326513532534041167691257058499958151473027985833883191580449849921460589322768027891332514433052107305447310324844515109512358058514083197680791677058609741676986684185056603705817306597117781272013236052263218692110980668785475818054769167758527165749366546471819778068822210053213855427848162689625073984976209797900014651574543713367481483934596687975701306578293606268914571703886955067004731050407171562220739696661418599543301038141769244027207942212812899739918045811435742522540617135391365078172609684630572895669167147795816416339655933537028997666874456616903735973854497018800724443082258437419587896474061755177858199953136639751137339562864523032340709647374454130925322520489039940492220972103548853955645681497683525420485177243687461324330668487015661727137380652406270122752469235385747834632881274806905867760922864497440665281487677028321054934025417485757965616539570945636139806673957081255776229623737930639602528252737591800410755221757010431621663327100063144659852821570747165797321745146373247106221526087224098173417451668026325645231454741847053906074607665910010716459817763389113708358908524799040490262519020404207798861556879936450778991578641555156970265975246625968026179300599384586180133913216232857286696331024374118801391304862348332823585384004961871540465709245234215556062235448447851629607572953098756067446845847501956240125401197981461204988016610410004180922332759808476960957901437636728677111323369508479795264311893264364934622906926105165460448150604688107918962515754807899599045549081279479960355055320275265698765651320017858238945855601329850634753584884687753740943449978973293065286248376847880667100528620548932554140432465981231286270405404408952160934626761495691713746457110644865517986669891144401580784897560363093172702131667252067271987535729426438269930283475102508355388441326858221203445414222921411827687187805495167502919867521202688259344557710333514375657551538293458936012278637122749288602096054110189962372784391465845035706198381728793453380065635837006488614863940563561199615468333971880675936977268034198714072171984438400051442577063144978134820691167247234109711421499839442638808523554617684208624420785495131577165798361963326579319561837152808260181241494435372245578866266770775558103962348026629018932971795562812284970510955818837044099777942761369020773111222578140681903058128718337433220415599357372597831681446937334799464251308233192562689179581570697786059821301991011163655184399609699089209748169371973823010920796144327380177605208505143118885574197037527080151119547335563021374359550831465079397905790840918509539453205791233769331284434295982383247757552247880529920727620499991801291607368959578947650047936711843441128140770840796130427862067100008856114837741334998537070561186032949658202307250290067369469159870354723038873246748205683587381339637920888498638189169587221075703036791570109180982127889865544076542462025460448426681811219239020783158572845743961482822249244967940071838325456569141413869897309217946954739353951858021093531559690102407565986198189370956733038029340215638713088987827398781201532305681554624396859439528543794883491970981794300671212823157481890699536012734783639883156701101782818744390197254071433062605341836100428352756186896116568041878827698309059543800047682876818219558133795947768631680139794689095458564726708613041543980885655558684172902594038622597565403522034411059019241114513256563081767115097171630182377034168977774914139559893077103383677627951366330416141336778348645453904762338836116733967832921715931303242657242600022725525032646891369236256243595421046884272393284835434071781974174293396135337351456276801776691338110218179307055553050329646296754913457898554786264216113951050950204297894406951892425484628708975678043055305817434036976188201542678485959435946020350953336651599646264081410860780402980970830000090165583454100345496778798111044995414210459950483310679405949866771106481465656521177591271736752657846098724298546280600426107390535825919414621306605943254275586583657491336882171086124420943745517508197214998478015464792932119207943309628531272811818784453175953373640260147223083143823327659090622660972076868243314863333972089683457398137818152528078557759083592287805844233923875827022273667450283950753373040133422059678009140756886620981512259890769150525135426761007546405880549319241236402733405184555467111642356609903147886132195928998282744067769649193021493214458500059711217524041433937069772643949426602171448733938433886438329439880368678946870085669059777309670633254417585546763169618109463520848589375321391088074256791813909589366628288284690300267212415651568307340812826683208700282733432542900967846544594157498955598440299470757080231621127542231547849138838820499718576590593054468979533282670876483695789041049421385044676077680720838841510897229491538958107233954433066964417565299492588918511684511238664365814170157367369476383335771735516622902023179809926788482763683819126263949701235085339345373405202917678030569830482508175091869784787264308993555075080865316017904719748755377553869779871716061081816134256738271573665244893381092784082201636792155892973438616189080291187524541029335561525285723207693923237136646730895732521579267443189030642831181563921311513481158293132688923282668564690605160686503525913664619655289537656562882833490030904412941285234588033249921029797360763123362478872035597576549494775072074957477265882023561628647046094202260523683610958106626884275953559284335128162105376698119362895165048233804870841260647861303657526476516551646862318508309698387725503004555087242119984553682280622022230968376736943362911214283595473503732625295272775818548630912184584938670379329795092735521992062828446638744767546072691855451479758496211695196154293942728640836000687302383504344105629134693032053156866764179240155330377943508240489306235548010398124733462273006640576828447513950331343609874245714428605054264195634899739639223287112796035275974217484544663599899107133785435287065690559238503977990107856996720713593911230699771526318132580885330473579422970240588941908199071630900693735011415495598484760297044311194449313969251490150725516920826495947609229552182719149196746712779420423432916884957804607262892546956971443410579364252116525410247387514297915794518636268405945413640934212342367766100325898729117934211550721666099381225162008689565014532741741568437831283260346302013360381471582056916194296297145730138311127385467249815009128745448515131857525241216502049724841284411717399685171860293944965563132593437929017130596536156983368403344182148420248421884614095954695918754061372139813819633430155115175889004393352366452109471836699677589676217446589301332289519110007566593746356256148425300668843630051701485258239628126478707891254882737111930678575019375651435682836517130520260991546466708135003676503560972328388585569787358380279026412946318911224590314945885438677049809511163368580596755363797805265797143297384843331876444391129805046802469828734974748859501414980039184386555853521827613877075212906984338616204056949569323435096175835395944610937055657416147940681049293176864403013028631204695476750510128697991977608913848733495209018013823316285769057628499813520268027419709089618259548189071517180875468136362181513075539902289575062998440535064053933486603655953797672401899827986472518229645214663792085086337276780834783024651599217905118741182546410319840120462558614367661327773148291924805875361795024741310868219167904733347230679768123711902377783795733764209718814866497667184257577004114559665311218079612621897902795620079261198484376669698248079721333875920688578545787867628986860269581606564650446346378346640272265827015526836781989013302146190153751441394417945746689425496269379445158270983602914276008115247283727251582049659799610198166350058874589512836393604475485246707363401868963248575091336094747086265830365863349881588284113881160455412737387486235423142918849476734809205567829905969451385107176745846022612075864965883046616857557201413303151917209665428760091260308603828036302488614750592802562848211310130500436866075218421224626735894276545888047213399250920675512360543187612793324904883894437649967702642825901149896494198151712406013752856641725779195826312470478691110889531229028835732363914636192878654934114991142299118211260080749423189826393724744266793504717165407025156275978971491523976563048892122243453424124477311893994157976401483476294255882383241187890299739576857674289600866017353766041791088917839019092896690922531776505133785539496603333677145085634265166968330667011484291847853524787934294301346583301624434709155788894063059682308977789802835150245037234680778377425767757626042140893402996824307603947956554554843164820920891392431242650039187299027610219269770575409504135327418548924265267692662174796674703641990261261508239904353784190933202338640642469174373427362439235047240131378250484469489725857309298621392333874821747913185875978283504593502555340495241029475502588877156952182930771802670644347790461537136757012196074647378853183366195493665011992991594529279603241631540292847421152458253356230336051471872693086597951920584228227001114946070454025821678457820706110038606303824951765247564026111971321185561146740555545756874276512690034169710263741606585828578857724088586745155197819608607011038692258812328722802245827708056683812232661172771943905100684615060880492280077056907345815610341883489567654464078862353666034665940052764249226795785349141227287899795280655318401669770805690466039405150033927645145359505623068725577099292866965226808016530991240692961302378684490494763720478840049998837670609698688477870029967171773001285955641796921602542816810913551741271043748830934040922616495472046171087768926205998229724978801691961631754941367342496342986108143359688654696885314036113196691481977789468476843758536797467695186259365228011755381493082173150034323342878463873301938466485006944165784668968622611235523027756252610962250737362118815878085333785282582705507442299190037835821650970516358530492839408420806841143833697882766734517663083690323944475542974080668663767287087787085464794194160119908559050814075948064488177879109497743651143641013184860132611054654378307506487088686620443775869526625060375064847545285313413569472825733117861269514011971509147597305409853969093921986479362098315350667906340498310439699660913125811270160736466657244106229356562479225970143332347294977829405207097782240459994919080590746038045112243147560110257256012850093598304068489948862154335744932146250966410100898813366751274023729528082316534167493999552975203036076991713917204814320276763493549108160285781537537757568876183307938265788851080994158739495279880595316792549185828233468626698360748737509446708601945848349459413346222379158264815007754559460876935701769790294931140620116921081602022478393399857305891541339779426444803196640783822279283250109709241303185178433668911405590665180812858289465615792561448759494462019556639433036834697111306262234625489545161013517052199830918412806125026358071181631785924086380830203439374471240750289147205181885207268525927261608275617548552987664820301697264483340581963003877124189197681360270959758734070177276246979858179511716503638998873285390434579425958364120331556861784584497229894040889674388097199630986505608038130378384617575548422939379128225175449027261345821805551116776186296220202520595616832341639852972796644177162269375419788687569910823710480275736247899969785226303663893103440403455843921625612852875912357275025294342227675205511068017142836073227063037140464004142535213064430331126836088045208616847375644258307736677401368199156459039528361452393315916763077226901069175158055940312648754706347995207471743652659749789356621931243635248490177121757184216469408524922442778219270125438609585725426226536309751990097167864552391812215074821887398096805204823726440597690860735124462133740639458642619072508565436078768985421394177431630903810723814855939992983584249245180027207295055209193974241575634003284918254355608193165855484843038474819917812094383906393021804773223692163226240650288317912437647531136904227200149435993714847107960465641751232111441997493144236903356001467793537293125317569985234594758637260067930599063876243234569031535371268471401710222981829129067389827811588601921807880964015601596976444101312599225097543334719250565119885744624828288170356482522347450235882755229277698898247449019246723029467175020560043908622634833010679614331488322750947761844948273077163741446597996244029678573175850454142612290064104088483057181120139116211811878143978209163050830866494813851717254834010908554475981727509378643424855402627616067815551460117138734551645932059685908002658434986275622496363448843755368859409956606617732791938329404606169529753015131669753664667873433756753736747290367005093272301531216798069235611499602844292514291112922759325662856675930308166645875622090683855490138477663342131174347803128430497414678476079121980963752658932268617335312952097731728425924031864388717020579097317766906669866474735049227061491073584274720070283220764008322959947818427087795474498073315697845668252141521452487087671683645884614605653284910743998166481659481403156482551086425146940379530195819129209080323900837607101057424831172962063707367804844525531698746943257526769576805321153512674058810533997758783860908620720675586349874790203102356119384584580087147625319652255656730847256132474007633376962736570755053749965089362497398470217977421397245510017714246518050492543825142825717150745745626847251266547307645525693210689000829393439489875621664910437170372183567982007485330873287837089336586741831893137068843472378934046531131768995346699337599493956129179663814610710298557636363944447763319143913811564485508894137406338520601538224665950112433829913197441498872739459456355281219353860979065532649012601700480756776280201409219125510888115895694329772084126600334752521366750363570606366996148772068923710589205694012080034010557441842596589438129694422476512889376476174732856670528927518916866294599462677741052070426546890973096425294619903435140560832663817107524747201805033578109798126123379003656712502894955134060027603483200138371069646359660669292415576088785216880947483429304161186026176793218681693856369088971457778156455035322504128223826223934125142495043019315315705416864952143144516692977881979704591309612383922202822602709221682243217913768571912343777843570238000749869962283297846441216474832668104379097652261922608004554411083457539513632670282882702111232823612788546500639408484205741676842641051757281009750660777783390320457439141275745118773509980119097708323083244667033953008151588520559217105969435675277884864552602027614092150520344508064511949653817435192836220240203857689660756625998159652244053766532744270331439647396848769128040718045133428643234886272516567840295068246947637690492452445035459382112807712941718905823314517771018431794609190262596870375320056644758347176769111999310750037153452012056057947591791687280378159348251501682030796906778334592038345213101830995106166003915266793989230838185195161612938788980381241425959109369445412711962382253787187072807620295566597904267034264823443419007142302390379094393804842812723911255333373942817085955312130733673993738808782617415183473184683974247636470503517951041873852379901688275202388461762037212817851375710909802395800704012673589290413481237649069380802123579871488943627262679675053115146422555925265790435607147725441158275395403230392991710162424601297706839953062678379535011781676976542266228338487325659970666384477102889405686651304581263071362715484239147161183243294410646206200696032088957008238812447576675125666072390148142901797156827910435982115954898876143579233083833699771092601344417401046163489900939711217252181878456949313517277835457038163697135900831049967343825777228947661334327502281796274591908822302467571341798625730228887656813781145384800539283118292564206958892216778418545268897408956152274579003071341808659378140209146543864605050006430889253890519226704994773908505070684645552535849397722719043704222915117745795199404038227969222134507548559567081174075480633193763091145203608531875653269674934858241762129437119375787813903588958247118461483040133143156817490627346006433182469123936288211369816275944054526253467701504383738477287668605504693834352316070088294982181662680341589622190456350529170087576718607325571431988513054176773864849433583621610027187963664452498257595744337565763333294051323541694506867797049384507555938047687530285101354680321280810885521149350405125554108086339840589562247138449378026722699625488071454894126950463692035541654188970729346107976770895900126475911024622507577040415367482467539094723892005827884480671639433151425317300224661058927538224846620983351813175120542713581523663533290918340328466935126917699948187836727112723597221930916936046248075419100405400990185970571751831464572641322012900185485934799474413845447838727328314658412843577367113367937601005418012703664086568487980977618838556908117041016204180040613240853354456184080528159972293759533186772885715083149700532268860023666331449029661068350246774165435679794160698927666349483471298706521126254774397376376192548981281676481997714000780896384711517700381763540140660058978062334712853016170558548059905705090297706455493612566728788932618182244986621982041504514754667726713973028218390575499434738493217395711287411790436303448085677315602344496185643047353910649154858550975735381630181391150560628401064136662862835184786850011856719603022804796312736496355399235297648189850928541578189136342832185296526929396813447791603381541421215935656353745254301096677198619646490913443100680223014275592505538357326050518884111513089557698467189494902022708299542439336730076807614947110507320398034532525693303853049999787399366683807349073268351560336106385370026322655666277449589587758429625524052652019374392167022121074934131990287175961355594024023792074171895764212032575140374592821344171113566448217438710564409581838160619498611069591565493728827110059902654997674578512235784731584310740143339995818296517993219854101240141479368049600719070085205116241917530061170194900105001048328232061344914423061455731009408543370209113377100763937895986813100073156385884048412596559040072444950228356208227918892460885537292023867226762114771906564937788552156766436495748458615062744335149594159842795566924687461656865079665987625482601149596362323961425913581532181618634497440922593008152683083109948219239970641345973680390126118804321199806821530118472837468621315005783808497594781429155863701257243205785732859859748981618854423902417545321493745696760063816788852446079225892694106215450669704731666413792867192891907156159261470566220078880564618067789884779904224508796223828691329533237044077144168033051895258074260172206240783507733525260077044852018823251056711549722358158126662230977218226160769818073476570907486003027747074897408069842126710120411013461129710925999360552387529214850016610118378845711477906235090594183348194761994752760615354020369234828451810275845085445784731749314862578044430553493971035522414306153904305369472809467671872479019564357307963907189596998941346148227825003140691508879821852048538210477915880080463218990736031924552206030132712313220055911893932673835580616869695060955732524770198966105733848283996795272094215981129110524361296434258627837734343382009515885432369460349934850568499664050329206413921719179442202662775249191159823070043386634651812626729983416305954442319096292173503777265210971341152745627903881134763752297664891094016790695232398851196657875991652106994698599144531223393846677628334263419075500270272285645046483652499828920565108442253461566088637209922745066244425604680938825336794593688084195215631624012303833518430398333100915988674727343875706290828496516418388006602744840513556883099043900388275979278583363782460827917473583523949080717500197836403598260838591505634954218886989336492951445430954767343186069523725541458753062965522898331653786118327999693283765706579710268451239624541836063620982032359206868030892606773065912167944313313681763212599748917617160077951894587369230550908496291324555785363536519740520198647099824821958717397265290661502740758888638172163141074359099945287440818955249596533332728066979654846921237308188219072215000429072619382842315825090806248928012409942467934597080829389584201730814568875324182730025693295870191912456763911393752535012382630730871510950315237865244264662338675125091147218961855395049059095757901039905522348935785659031602063137067604874900478636810406843061204133673889599118485900373975663277261512749698136194962083768997733964388633738006617855724030764691711712860227391910984049238793481041011178857039388231540614584007337487950975994029352532312245642618595624275014817194356333453704022219582151752238014790233860494961159370350621035740100372758904072526795502070996898493945176568460156637058199440455595158492679570763531616614871722738620166773593123077770111329588652543269893521050021263472131184806958532192119920120474169297677868639957415299222483899819235015831062728339873549488845708185539738274597009949732558037614315841867431172987801290704385274384950621306725399858036900007764840101636353335436295605778900622527278883554221285379130961243339198361530537713321089775436176753337846687600686218859672002692128639942656773231496274652577437004879674960696990381127546378765772500306566938930530745433443271988698291493327473738362471643767027138215575313214081251239081665269658349872217166604353588672835906198146696349774892096654783696107504367993056093047699703128270100533080934312705246709645141863377025959133543024435334975402454301711478970193073692044542788814121169955492966784102865738174282447887796279331283568897092034391230003014117686311794922329406775324680001293847091469994651914101323636919539297447154386883462776500997153239931078506424751287488496092420767194734618066149354764893502111190050520557720809497671742908930587499335005163247818742815849713208867133631588140540429137753204470764019798749315997250053149998180297383675206700967708205814433242508277271060784002458564374135628876427824827936903879664692188000418530106298968174236320917052833439965333239819449713280579354308487630764283322590950542542505519988113439211913423944199638871397087128743150723881796754603276593742285219598752403712829558334998003665615439347851609724833256767247367988550406637208294041290000766634445393522185636869809540334271239089569183125596930270009160639543201536972831108974498593258836990717526861257691441171593944340387282321241880870092798018165114768826435792398252331377463772892846780804733115751601231610479776257205569338288349926845002241271038825590311767326302642874264948832453463563555852413765916840277800514325862686038550783436948093637446068666836805261745419562122987593639680025335120249298414692385533761880079497814907750687688727627962195758037146939480283218879185758147124613486389812381198994754879995431494927749477614458796601227002420816562840515959562876196439757665788380867257069837955325136517569833466429861354709493363911062446700481113855383605445122173803665539977919490514203850783228822330376920054099382288786195251424119587193770377972006332654910322161380334456782085313946554135033259819901989362038263271005661527014354278565913899754594770840421374641887604688572488729488671001418744347015863200527548943967993731623804923494260313450890959955734921977179606970384660480203231580722549614330916503818280904735865548032177439212015400270968730340313738565600242401426964059312490985565703245903209605229615587942397436556897216682167011282619699409830951211991543824216736032359631599716279474576407020681214881554829579751963053051901917050958815317036194900416804884880703555296620842341845967131468715623878949695399453393207820376209626351763737809983872959753525068765672818739702575822690688408743367173553483881886192840127642793503818764095513431081541750918269361254807403202564022732778067970120628695815641852126438057972471982907323842663151262584802771664993592831561810642257116686528671689162651291971449614454738591964352422935597827332248703235809362494664757823724849054293376494181930197755669241961563022913813260218846585536626715308159954432760063909144782781461224704169332499076356827766202976866953416057249023572914206652199519275159444251101039390762090743290654242320007611838999573843532613723661304218217151899386223966822877478619697094382301190881002786456926341087554100952860349093623732522411438570853780774604651588723679056535468987978417155536954879850703075649801892210927514034103974972239887494803112129528765646597372485290577743722984354529939252809256330207291949715089352888064991942872597067033711147744657999378882056263691791755403712474509779621378964543003616428838963070783155844558062563507900220648985837117688751200968279732745458604264156638481290085927244042556839450741092020153378851853709140033421850780774384070244424100447389680091832735039055170319285120688333585776982846746080898711773687870927238447852580112531210707851256250892389649671931928681492550835396398575592812807050243809264426783079691051358064397590349909471580991102295631259489407553916445376133281755471234315453742539954130922860763615387016732568580019017833801852502799886299868676957530531979104398009139541150187052383889976661936728837344265119293863109252888342266475883553537438550872597350135129670590602047476454332302041455670653718614077159293377144336740996411124881486919742124798859141831229972683201423426143256499610488160246647120532357236148546519397596090495179409988588904794598059957866784056574295894727117438271376178644366684634436240985454167714374323363459524380172752312313257842348181689268807479533421924030886863639702229590165082673439017016480214143007685435626609996288972817003158326190378436322324236602482167791484669159863268645317681279330993088593328555051834755434080493602741042620129279497999305778980180266323042845872970658193480488741947696548598835418705818076378689745253241560604828118851870105938879440868113291560953383923271140986577146991130250849364444092160874776002709373046906154536600014335039119343530218963061643778594303903796183739860835454910954425246445984094519006114064461225031183693170189818439776114235028737805646431739200309059627688186555358317636681575891733809732126003356279813613891933313542185709326619227982997451158997804745833661197623611026062661673262213198666668654975283546236247336733498119352185118482954576000599903511844804736986559319081539101477228340770221811383411491301720715530100398484437308933619626176321359767973754647249107151944053846466666794391441531779723208336240283240752054749500953954884098782803652071943822435981563266870554783953213491221224468634915471314472090677861187820007124499283771972220940777577712896898045930737957714171592437431260924084316279542318819883919722120683611169653987324317673998975447982281610352122914697011274630397168568300440770721339149364865892001278728584452931835757816102544180929962443565494322775028425017626015421685267587249669245011991647870102626429905369304447415640768908784153288251915681000528889488328239053642752682245574358478195911015974153384491235074908406100090824607229302351126361066930666058757199869396560646029597426532927185054337032006358620973732368572975375524934046882554804269698467399205588488846928307348422814511650069508699309521721044507080328017559543872051928399080572387456141781558263692538453249345165912824298636345252589316436281581588098224407199239207133747057622847031955721765289801450679753214009901908877798447623788924677822352961659617946202318121811446895163858875014590842251194525115194793109058542218528350303376203488813361852426223993329907391083812884014915559682638774850224391416541197470301670976479354852384529723930072475463863667817006968000255290154138583476925356706739466098681371951755530118119065552442940955519039162840186991430402512026792068905584409398833904591993414755173038442603255308232090793054471958907273018503874826788970079834398810586598022979292205887989936539147323716491717130113183977647520677405297293465639192831488336529013140320731413127317082004354388953329176839539016664495803067955133595576837068487359847775357375498880735712004593982842848172579255879666173689760228504865039521969599877046516117595396362726832937371393850804753738420795899811781867576847757926262457073582568738754616548015528703156535457058073640287012696730192088277641953676480988120532384899563472623172901737088456107553328027497854603610557828500021959567270740815447179725505642314378066869096767889475844161841255938069699782089758941030825029679478673760778373098660369520999669415382571943639694470422302887024794129139680206646806133342472711507048007470287129282454743066438480851396773632144278708001377154625054267208297171119732822274570040815004942783928416285112537078688212194112640846808053277060872952287502960832353644676180890021730215163618523273019085873297898667401866813755390703931129772012586891005541685924190770565879919429400896505390714732586965887235194523880632861575714304271961146968330677736597649285380739920584371124588435320359690930819891261793897342714203668231412488831045933414003369062054206704370911416151160743474331817041906236178122215187418463415302412668578537264492311243169555631446552567096404549093993106004695577546406774232189035108647446263892941830907550479564251600459948888418712246462417637977529177473348443694991256338057102243661551994523198630419722527071413413965033934045062246861123003037783196404560045076718246863663087793310590555703133214771484817318993874866193948199471108684442680559751670482447034982405465336651390961104825968058120372857875993436303623258875826984897595430546737011819596690978692365070788389245426903889511398275386943952876672922776364358497548236957715203503231045978429489995674200783408173158834882878503887809610262298424077858950074999157825668852172414814213625823294563930965922478626891325749479167172954792841447297109888881452269018669710645821401068139883271923620807329064723778626338774994379647824352949566437472889696078979110683105680553429701960682060748868069492119628606999130109197880895761288302114759975964581159686203828680627615645982230995293202882192027333975585927103881542652230324363460716611659077495511411578990130130759599286200413070681037206866312359361387410308810498092142587108936849194095599674863205263613133735546020917591046593756454996432908588465181251305564424667781596331452419741027757923843768945862899661590668646507258960994271879417498493708505049896026227061963539859241294918644598551453898120166777862699827355107614363813565779931388422260065973642414125709316314370857826181150570644885126535575467075119551001751633909305295526540144661399095445721338104164683578684291148598077501524125598815213067355995051707467786946142109002620756979386072862275038279742769162333611435126178607871275559868947077723572249980197921941291754085367565948575319330415376475885292367442684621874211090046916119761009820058806625349999169537609048428259174892081768298709877752148575687260801038711888232761839645285843804321481197053660317407046208752300012814132990585642106799739675995811386038118827157562694929315344688247470517111728167006063312576463811617372775683277895826328850201335547261996860373442876931909602691259386730566081498633320694579264984501260835461534965716853300696770312174675988335482513907050718752199364100504777479381519243722793925297101922153297443764675196256971269651275338041410328102731218278895215708054213612310618912087392662792214584057601092977682158976356015044243213222052957657513075109513603820046092676997532711191253349922872208803651095633652064668418757226754316030149305131726135208037473783849804886759833490539978496933156701602387999966258918975071824652772897205897056425146423962078187959049988203024038484757117717896235350671413727264977029095568915020600951930315537181066197459963720817238256077459447943140311447606255652704500831794020928118661887805459376298105816081262496328697756377621119163643018604192962852639304146095441201576863908684172749470338042502735352329943142322945009206412344530994857181476500636037092981428470912658158976090005707863366514314054216138911411738246230199543851024036524389556579333985355307865715293810939971760654647697980829058991344551005161611024383003333917988652526205213757264235789310402177520872710999525150284237771435058332459673698009932344370216644132907236396905610286098384892697391822346523087255540019087528112534238988467062175960113645501806294558771158006633974313224544464834686646996116653156280861953589195566287472761082525917423525595987751013844820218570377511183474704373777615637783611001520891449895193248799485887724066163069438875047068863233137658549358790303113005548831428525070952610248331033962747974190905094418657679834912665351242549901832299853180719201502975421763475538706091281060936015188640612791559594475673042506748516804754778129891807462450296609040269426987473491387956410658329054789716331740563870043428362586995161436682870611411832759815820489308676738100496113939618864156581554976780490765709057780108787749392559412636066945520369297401335518253496823511588065462933162909883583055492327782906561566088959493474340008582691232808143289433903463253576182457263361977458084573231744624048890651546827505172574106567106348390376274061966974608323796488024711168578190808082514494289214923453717367166378290723677922894554092393869284141268525957615297220474026313041022265693301502506615029162803711584668039780128821886471197490242698319067931922000083533649782940653652917466235849063868536328141134340271867035080871564541192187371703864556272620760217788929414003113095829759491172121617945228458730864302232835535143434855143848488722344561463726444645202722483888761337623145381052265077469552463219781008870680206544772183358727991321373989414981857594422017263922274464065109145676930794973466775432608192584009446353332654937436135845674528286630192988081231097333865121425246523038675270773808540864416223294578491281140049893590422825175284563210740395425173721798352336150204890349997731837900633301577208221009702617069772743492222711707905034956594374895782305568609806547406782882654058583161762404905726966318407541705491365968137588850885780926236613369689142787273716379616371570792733706804873791675647620378669109619512693495546649374168450789724031111328442468296252965372212574856622494532675369196056325918682792316229076436656513598917322391518325183013972374364759011697871168226343037200977869603007087909038324630230575889667780578759856781215906951780178093385824270585258300691818291050251205132665517059947485478700063686427807427988343318469348889648510324583748935170726735374012759703644748008569614201205539670343555431543039234203783806371305832080233042578221954133534732426444721966432892799925176770850298755236700502915874481056329585217271233986366712740311868917553344902499641615835863260190511098537082384977394212503817511020481280367787590505826081302777635855522285816996446735842128740415143025187146590829125257020816882347252591207868883358586385578931184567440368361329442542635000953751466426133015680858433311505616040023188971905708887903812807258144122262910148591627370210724646462275515385630596530508014220719659304648583797202215886135772285467712087458101792708925244463726006811957648487932307612187791185014237233888407029570100793622238425411072062608583693526253885669900138803740569357059990190133647844997866085108450924731675722806861652191356199895637456415021095756732717250990786597060116901933782567420790198285047635010384300092183552828493903313944301812302576742700671795805622685168832423251007798720341592588326571980075270183556497391884012326578472468102430543363145427389118787678674288598675373185563695702892141417813806604755060078623025348082516054426506806514891235836799388446948277891093191770394350693948970947840614170883737113504040006897059376282319722593530540483715932998896966318775052584132525072662502063104835961182941687762263874716272628737866476177359345236886486463706992589021184443421507058197642936760101969343654544400124248135434257856084055249055723314046257890037804934169517284150901152725873163937164009490075398418276751418988769452487390389520753592034533751867355615500764240586916163672108304014504725679449558493613838400081895221686411634025813271168627964761975102388679578916328295132670223985258433134882151792518584698359116958676941750027807490631832196594889284093516623676235448683726349767113923786421476062949650420610894791571388459352321726037345401938238043964538991014198668660808757250718545037726875412605136782022954356672019881946417267570008861012670008786587711626851959638595157418318153227778860286287876128979665669508890062265912801504667748784624595478018331305055429682777506284008448603323295372783457925709982065781541238982461020513838402913772178194103304686709602439545409278692748214022404732885169525418791437767097073852254400100208783660585301760200674922101688515667603559210262142048876984785111998491303310694758215725771305357984947718454017066233662028468880448867138185754373933145990134138747203785335115998404035470891760561356081979950126697951634154473938292862480941894700473393301247652529444629496136281903102545550251696548106785975131989961694530370497279079130168727483510557994455683253409840984777232215840949396758500952429480705099282415313878335422452724783931830010185324495644705668117893531227291012057678336649449536737262422405602072253595425714710155315828285268066164340037557403591087504803014459364914123228488211840099210057358795111043025284053403465656701081698210458432750260774263518243171525989434994990009630377569350863517992324367387261599881945126084290682110636630795243348387191782593380254481693943917329016720022040803172080151087396296371304730935589833751912558353197867264510086862068324585218604233575429497829878450888450283315967648132132700631825736170917779972260186860829957516989000366741728420282151583127878820590343122299221213710828540843128664380707685440652627476650935558024944803213301195594807670582875544493610951588487941155303654269920408720159278832804508178049082848866850128948268743344815546519726573237582961979743134061923296897330098712430385006333239257431973217022098139854653045672898146697483540116009543972326357940567358508207990047612783885550049724624967134046946321528454401705455778037053708314005633754160377260914882409376820400947913237813631217108844458207636833112018883818353414447929872832818265934511939545909495022645965410862596948010682950000898206408055922747542664747048121481910635173518336986451589335977691649431908399524831764255455263276220029586680640231443330464710465734676667739423660567751258429608741361897108318812242578937231082579200841244187689156493743107354592515414586718576771508986533147968108920310989131045210182998397600728276879381742779118006120405226044426714270823376539925751894426679062565898409888974031185425826022404876344964915478747234055555870004686144393418341686338475558001468958862370784717754901117568627344096329457850986568539757143430472141818728452128477097590109648281882859729816577941890096901455448454637615714247008230639826978838296889299402894143683629282381954855605470841325324904223613169120969660575065848193760588376370844514471814970197314749535258796217082957190965672451838695252532807089706683960873485835904199302177438911513276200945549622223559231191141177417728438921226358123504716475403200716966284740473527611259981529287623346802786519505930689824593611420728802012953071457783922308826158504308878326154350735623183611117900237103925344996812579504012781046567039788703382685711866350441056560646004441228833120343956565616687123612939267015067899298430235854398365203237967035512219274597120420425174540089048829495545768753295107326136187952602425918670467423509592466382065446588031651111486847121983322831702447283438010008069703401922110229186885501398553215222624897134983210105545590828767757347591766138294638642624010071462580340350556642751128116811721095280408770507119331954974533241137311720176296123800356243852732435896426728008000107599828646694358404654256116675350379896334299044654748125422001721741209762063421393513962396422105923479749308353790265902954350583326839137779591310451698512185277647320145798416810613595654300458096320002797886181764351286715172915410044816745600619939400378668345420264613031982539077208748203770041792642796962188822614928624915702345924385688049772447462388889830583625650387132188718819544967059288222233706408437006187703615933948531186420862114611933736882862909350042248620832457304871644723281618316471805560877672079426901414629365878528031868487700478134829131544216317314922737918725186688281560226858986473570150459194761718001957724335484132224450143415519566859894303554776891979396501865215000287239893320068701380950285610065053692045166814879993904515192041716385117268570673270669463173807300879618968672363535652274831170394297113496946265656940546605772497412638389966879404457020883558088711697722880974156107175227482639945201615566671404282625766347807640897238932040728793797435515256917214398806438773053561293673512251087733581241436549502743573599038619104319821451219508404718645341275969907708364454543795967044108968987676943314149255473660996325359564145673137597887052251341413327675248540334233735984571523010895334668301088403366430691181999400247364574631288318853982217298059330056996309253525641235454788740563399085181162028348608595272941394655810785426120788266512855531319332965078600573647752662163690197524733139481445897609834299489388927229606321395453258725298729673674269331888800776637860503699173958963621451432354860191512869886026560769464140952526296712233913478652796450923548249189222119139462529700173445999564609377952949237860683317036571664803127506603554023989161675707691063915647226228256097948666204596098723341220565338785344956568129844099383743465207851937845170233380742934456712045416836636953098912532231396870516039712970759480376462928964567899578737323997399234737602333998613420566191103717485254591420336789434137888349088351444380773416871628301167079909090496633311085499358450891092706000269521234112839714162864171191914186204653633411271803487686367946207645724960439347422581403364356770468127709081736327508713939094784539958874200791326017880509531876213420463771787629635078945439322858893711766697075008430548577276623524433324749417896729185192086385577492441226919966318231141434608175575704713338031466962540043108374874650416636355086756189600811980558627042085780179748203167663284256036377232921739720277895917873308894607726774380432424613438824709729528600312603174944878056688760164365268166649427654747141346792208863391148696538819850737838239720729009734257179386403599998813994301838583796705364852886359077961422392799251254954905077938682976338125817763186934603114062259079348082282636412706522191779526758173939835026582792645053984117872951270953729417626430817316495848079852998943440558937514153104444771830327434183339493230339371520743591061034309971666531661060725988179970401344811561737194123742057157411212327637808907719881966432538523282341578953706444601850335439827302356648793939925191817004080878068855036358752783962357801449877102748114718565179971226766736305875425072808138047928193728709356918369366110079995270435051243600743358093725771981775540922169619162850597964782146736041240805413639120953216276633074555811146945296924029118977072551134554664046632185330482694438674120808119011200845368948032661543375955486488707415167377691462045206953355698292464050782826346099762400070629967903926992774025816587402538416775779026189334807081060787989232898860858527842754570163595270832367052033718593441188051604662994443634984779779004557549803005496287047636623008275384176845753237957345551689540147565768776503689367128846380158073062415460137199052095824059814784395394474345878472479199756080547390286324199951820852929786168113627945389302553882608135816005605417593950763369418382968542131799632552016730892906650448496481191361699144093748519979381702837218261279223033159173374452748402337723740855182842811608708779658293181823799011590915702015347217924901178527741536406398510309275418017080782553497703657460511061278861079972646693947621762804849366192036554657643584200448733554978872235028352195200892987192780183445604677713558974040952575146518593805368300767372009093917559827089672384697694474298647002289208743397763248652871240564696732301889982528356590729836506221408954875828281509468868438966767498881882770489766101139184015501782975773581387424604783779484913634886217395020270589513326931090444821712975529478504782314367272965425333670364099883592255545006162949790683281753499256505359391672157887643836513855595517076161884025207521472900486483860518792050287628354909202317768995289363669262835041971141097235548760106122262062077125578251289536058173867487863308901615432134727954593950415304412991856266000937193703222845984432085605600315904371982997471063840486054494809743078138008420236404396483852293759647153652573703521107061133522309091862068881645162952242134601442429642540620781135858765309131410336712921026992323087126124003063158474372463339524288842730636970963833585312560938076683089699240733463127224792957725331834108947947325421353485776431220420382861086009988490919339828276249464839672328578519656387116692348898713802164576934505741349554192497453839685744151425871909715095419855471444616858841132512587892473395653835076406117149094144176732441107368854105770772245886456280449110613183477700257461454119481147923093680999725537650543313236271579515250559456318870409309580638976567817064868867880721400424792128458574246813898632891826292272282952819302883403282672589627356473518546654960014792246461115900054674254450343440935313623635570788172822195058369795022420367582405482183686119470844720798297332904761198594654892874307513257357530959967139635814832745223334050217426289528838706897977554666696395082166761571380131461464479872294596746002820369599582103737668440199068030996583946342187787980382087354942625146965141241794925403653224758178254006409689338614055863985751804066201019481355998118204036475001088089641244497140886435388033705189135388022739922620778886287649074773357522868532233459907830363458444308586559453213428518734821095611048205693674225555336131111982088499783112092025169599142305701721037041809068591351756509301033504936019687927992376714582171083304463871461057306245666590148134155080550490082501993141133212601163197750249678696913121609700456862806410311512617904203478943642524328582171974496696347463449278057618061532043431695767935491382672935952290869086370654101522055307921582678553004758819211078478903795574542887205864105075760947051481558202182708359574244854218819459960718408426337812115903668225925392715291209016201698679214617129064304800695758308157342904577110133769666418635493306325863514309404871648215568766504456007791053472497420469960617834615640451511608439026952316717258057343050891078732687773554417842683530738507184495877806924210314630855853616127838731009005353770081514590693426346854578202151067159408205500214142797923749105245932567029116136539143754704615240983941759562082598541536507496182709336820043577814968670160338497291876924061175425139212092111009665842743552374894983533108298572161993615284776837930543099745999132845627310111925295942030161396238147042727593244657396672109162521244927984465334719466499937972051741558241904610818503439677627306878475973942025495680815633193800209318892799142174003535904585195621066192618590872623183691572175215964216308871927923970833113274459907601271590825699049776369993331587281636032390736430829904435573336171886952014295514210788284976402298384944928074597040800818174429266438299437433100085776483975329451241405440197401887530951505515863161027535708407493434328371220595806081684143885263906536982155567931915217609990272898482299547733292541134723181036152016272550497791999040895142331042799564037973552227839577979596127184976837043402341438538136725922053792240520139730452931187745070631899698965277483408859271494802018172839761291813650547441901152809452943041762403585040666617775108345440801378070418641188288697264723386030834387249217483557191138503705751435699722060369372120838802215761580989236795852328674609324556331207669518591405905628953095682743606264736806818292994882110420816845501796573942012864910468505643075113996556509362779248861990070740324163103699763737318667872796836084935590779783415132572511044425605778916082740702373286564989014010718890253815186542091137604442743587066176365200855445460460514110821839396214458525681372135131597068830104955863086313305609782995246464550297249590808400247004837764629232843559341424633068973300431527496701169182450847512139188207479151022057709654674503945558756985701809188585586219509838071021460618670628163214926903691810005701439012668989216777552045142688031606248398400687644569402592637803829286792784996285395290723667995484244904621853167103681289791748452332442700407247277664366102636382322179273629161033461782877782541372805763768882905662489549385922097241691911315090008047307642170242230106671734613086350744488048871006528970854826578723053312565742006118164859531525830888858343204489938573795075258204329646370698414091541574222281311457838931611193702917970046966724461437432185640145818562957723095771332574416791470156621939999189731819118769785427328349142726857438015891634665549267819467945362619926465920900920624502848437496990412379874473451900065098248993798076000503355160533086436630830101422461408103690994299791046663773996474599532336166831777292479669136240590881838418677044577607597795812194702161368722558939595458126650839166386004995425840344385962679863324068568313542060000792833143928346610769531206378486575957718997280837278195737705709475680763680551107001441107115605906686013909338423216402996983127161764614961783261582661283439135920555711529494648440275727317820883613147951083722848581261063020029357765492838865932432827020985147198456476939297549276342912643769489217307865312211951484611432117913496513354490974868187560760622947408600374228922187367101342495097348307912729580753366469259020163710895046397323429700189726755491928179782746773865502213292903830352110878662961513124774981256798273162861396143814337706577698596617452406685181552859382270068205930233204026156056652593820165872893731354953215190283648436733380308216508319981193947022244060890903642812882723720765458417801261449498246076631148433380654377902045274165847560605570903405889811511838907369197132543092129291416021460319803805289060974344737438167625806112412865659069851526343528394780670933470139938419736076512168205571160004817984466131133824533321439810300883411181177543196138418645224764580444463361305309726512525569510880858253354099768020623758737856393641980944590989516137786790975288380785208902306211909724682934538348565278184383205152235625676050709707979936978202296122478839200134463326174872299130546243302442260754571400614911451556739055656048806664340483968980987549794929047553709670610026534413056816915273874211859917430765114735193673002945895217273651791979367718802490278226354288489205626416662694340686579487480487174027553143822863738015779796769741783775694506874782972007054585697960553295347202917442848861770659980535066945065084349609521208066327031955966080839542174571236159825565581625729273815084309121745456985233756452838604591645867776137981607234593761486177377035250954833841909907914967170157345319031324156813044763794111408930957824337871574682776849794739406650763861198696828558937700882315765048419824201763017155135949690266303371157262344860871877920614817594408455947087534827594733239974620376300585398604758349359720098704044101124516401993832273435860117288762351192839609675642566367241957216415097267817741532307869120112949131152417112620496576215574262089329920570177206492103758280802908747677484622275036884863440931201135503452180872127061517169277556666401974112209755744952730483089241083811354258085275069400310026310024902622761744762592223558210063444466671805018121330421887573903632514582118698658951044783417860916316511624109727127213264615075635420567315018253138535809603943924170068082886595841412934975271459845056849836922663370038532441314617431792496072571260794917558643557915972390796481295953976015774745375535071601981818971052739980770393897454557579095232731615247875898499337553455561992731991576189862605343414744916235139340915775145129106487807746839254701136932834208335103222974841236297204406242967309538078861517094739366452122105186567241682165012407446866826558876267889127509071045402143206973984223808092654766600104692780659029116914604893956086851676363723060877590417624568081461742437390128514460811807985039695560170344625845892465606073203977591993068053088808533503540730441141287451217313171974105404110882939508967695584635957028318313148971534687875385927048760376500187911143345959674828966581557071842050493166996012843530159307857453446721087210311306502841291879088970846847680339671879230889383407289160629117685169165210755806285982404530690425785881374268840564808829662183876853042210252032829397714941580246144622107214365755778850397251068828624382406669633300935400616914059858624869443638882392174696126876680996965242730029791228865457610244118648776970838034307299094875223147076017955401205772757478496210997676380478415835744760411573185430769576325266677977926420592373424034588917194015663298550069049284976552941877521159818910835007954776898751703036126765191787717911353618066419650393578215023963612699713127220565885403383879150049996008320062741043785658227749233296162072374034010385122937645683453858358685112338329122171472641853812521770883768868920639190196654091790702375528141177640411616428627865159454165132106926197315852251011293950278859535236709251707543662268299744760643202525813509867860981302980362928206086694303680214133174465008870678116698294949587236155845360229591202917000284492498160826668580357063871104953386662048853003504854491573093051882762983704386235825838770494324926619554335510757153279855551606901892343760626663705364661965330636872328101236933186623919333695576817532625601214411664693260596103850538843385543952311977573071159546397059493539977205445189574712953075151401232994022705756299470749204438233728269356175941043664086288445474683797237269745304299312105981097233523243076614734093176552860111336696329266303930212028297448346046517903775077952587742895396484410785570616207963974475070087053778252979943065454256306068570087547097233159907241793676784054749193932803860700256798688723182875251487056371061289111858138643879385116535332653076613028451531379695612780549525189024383250793717540867616697649113520785808722692101956418259003979195733501376347188708062534789168628228170196688807972360848278915781257310561458663916771572921235117998113687532344508514582232548038723005484544964886551017704417937096893289374118666331904786609108549537664091913558447822999178717658853987230248470620125643154093970376786739382473221154913044459739151971313897381983743148577431640403787917119268633008608349943344339254554570804099196512798148672794647394631007339295859138424911608535714703099552928623968639487572081810282891357518070419808983380017677379583765284464737527496909887707375324904535715493780411485494082929041317617160119149798433727554524801172749569675390783927026301847783886613936870782261736332563210001829031953333337378725025641635189711246500841297791778551401294521778654673999779453064654323685043203553802026080726738793530208566816997237695766082335568142600008147948652168210199859662833402273987634753184606589164522756380803125019178470132383859346587895498025531623904786738928047623989538938023113072512559140305476092001155945228957084771249022840952511001740153853555534246985722520597503549913980631305596395053177621415281725520679803770734047369194991664233735338603509780341476753938261754886638179298532127152211766879007505066063421564594767438175804757776256095701330807305376143198064033507314908132247214012392171312241008435335864731843576287073261012529529750259008827813846298592160005764863688243011630245063502775705809455375651641046121078966853553617465634516657029936919438229306862411240251429741495930490601541877826508098195461397769500995972408266371485614902213379841769179049176189496837435075915218365117740660742682299572679252306529003121770666027182950028105089727309942346799089823519585093134816698061630275159457280969349543315257584581041513122416442901501985487651783371415170650359435883279438478529391177437086309455526710481637329225290991659889525122262537281630642683252041546006842979701655865735970348372893903728956788285964819099344328101513509393084190778755346025578540371122394197164439274767077396261276325403100880701019123575951907516989764225605919435106590843118726511593695426075134329463628965552853813238871744284093385131820289099734763635027737507285275684272537140397635720429146592796405549535198288964077768380478280874230250977900221030546107397950288499825758092345919336801588217630877056341345626667866680590576670837150234872895678586267999991615386703441749454698977514326204629637860188246676382924110490683799461052024741217175789357961771250171880199536690554055455708363999503818053065262551531200059346529667774443140681508594216085393963271734233308701056787181454170894345548575180876370943258106711383629874789344269829512233724688241622134034995521631138734883609518238727758856525885671106449454554973737003657605785168746734278007098301942073532770573063861449066667064822299639930435873031968491978332714236940459575188479668613701258082746090030260873128221376436063471647987190096180704535402197855789590285013686232070647870239162606898163324724561872737285370533085698330174322880775506129839075436573970660178045922425448085609963538918501330040676656922888265589902836301448994595627544317400805351197000236344284502377411522784750066777575707982517712955925493608857187444382432237845154332719433976243427290317250233912046255183896131742958631951117974990976279735705949286752891911126951645778872416412920578294087842563407337305969342948382578607029422245142394479054170192384814051416882515261234208992003069601095647246518732959851845396019550804280984779782803199590141269119467559655758550984312598325670917947028333884604850883426263683067594370016704918546676972488651713080243217062311039666854609032589425372094307738312911535947638007338592300329844608658076768051544227297545062363477916201228038650666475392770467899896482653977827444610789718403741615492597863793783326336804301699832211033213958539989527999257734645732106097792145198252482463733477644048374911351683134182423236529235344022971846342482158164162628531326952378361611554228452578017126208870577994705683425696109463755476443525378117043552253773925424075433616883294589131837571504736952283029256990041088641822365920334879288779459829501594849469756080894017018131185093761552118922795417299917521395649664962647518246050533504675723833021453794629066230004815179782753537554835402050156114440339955306444509887341082201610322938952676107908539035994998035332057887937619087647124438161679089107278975442045345669375458411750510454439934390077101030649997983994214815477239025327645371443403215578217012071926108345227750187989942712766586754818254695949105335426713424486390101758210994309931205949756014825448930195648333756630350314469416543182394386796809846512126541936209307067350895404214368424783732545803057416896337521924531900927171400182105106980156939839594754661466122611771634675976546612068555906074894182358688920103958421525901846379130659884186611177204375692461053305293967468968418373478996309147271625921758847266662293389012234076461650881780692536399122498858040044500653093623732574198103747800471304172639735122946929312189475365760792710760997754953747696635779035580263150422952099130427752636039013820782666918390238559744834815194881391223520529675381607054110861134267274892462757435987019964501103307106213944950084473631643040618748151123204436824726841881951386490590443853338114713134045933029985404499762477873822306150627613270913911639533242876650489662594774836576644830157275162825144035821745645122052639906857089520262838043698159747144788328769669279687734815640326900782218151427245658489077428191458174204207377378504816477257128139589780626716838773536640588583453344803466413925910360352222762092482267492061828860340270400591800117029217317252500534739501218276226024516442251829443099844729033481725417942234794278040911438595352368876169889708764131412775662079419418593809683067023340004034232853672262768928602489727806786416332176105411178002572820458225020005592048906847480017521173846949947571169961199163202140654345410832089842480331839847092801086412311690244664785784342097132776430669341368117780010598536606048259066328202628778855066079978048193626291010981875635523369193257630161521339143750990796960073003996241356975258665331232372436045096579868878847892430474907103132812998036425667430715568332851208678524630955252102050272106187525604393441580746596290770256195738141543969499509834711428081933889398621332646261834540685889134467702985644716927099702416201242204082663263451295766529560483403702520687304818458793920617380742873708135659959442019645067653308709641916396886099697938645279594033896124832482026479601640716626456995133988388145819856965682841627986402543733463218381778613639540723849981015931308311514818089620047398974523343203223806963843653826398897562425469041262860284985736791021630072332558641660006783525464499491786187304752906747287481762507478743334032419640475143001572955994762816499092792567119335514304902818192397077323477663500303612743532347481809304319962394974083268377103470612554008867430323943391137594226852826570541388548715318254543419912924813652827680884365607614682561184555313397331538797556584427925049465350105453812986302973115342701453968818427242390001001466366767730558188237446358541513873687318493208786914537082567590195076065485826997746097567903790844579107757776492744767278603420534868540573619112437179494934478471527431547602013327807301975364983162039432099101534269886899034067766815735380820666196632223581921518188573406122165216131614411409867139365545676821631578872082202428049509941223998245524957248613344084099364271348603040637034391401176459950344814087615187027201010995410181374077605251995980752736896362940337276021435359090253031398425098204457938294862844310833770555265297825122099810245685226388364058948122301281753372535689303293501654515553860827845524598553262838204426119824726476984321456545930546541913422383709449507516693735688368924070599372908124781405011692310426877975030681221485061824287138563050392723212187039414387105506006833765388650980923107080191215639730520089102650430429675860192904280407967818489713813642250114875448896163308769527045803740001837719234637155989938570358849394166061617492259965530262102530988181717206863957890513825395867039423327991333042960287711214001733513953039809796040214393602976354216577591525671807326581091187254017283236877997797766635007425208375013207227984077631211720173014946381608055779406278800076440931620725664299077343088472231279624962135172904267555451971038459585609548797495310649105238473209463276578858802276347607851304350301796833414739219210452937714226078961998178729504283505887155439652421946542214486357263441623518025819007542457297563160220012561249097485056661322773249546719832122760037647397466951651667431958659987284366287143410671701881407340358914457910706255676451192091281659180029322114966871337854838555636714251750621641504992144473990405898854349231893546750861998292838419443509671826173103489736629618474905674307099959859906415791022406519043858333623188945604975438363381147206974086058459285618864115300392960812379575803307005039887799238171519358583406745633351835557087220530389178344597840220455817221537962558874069202602382862618265600289763897659250949396650822207631500654187040514864391073023101309645067711400069246216602277635326799317611700058897463230328397777300205223057023734433591282324841163766869598664926368191005701460040902294443165295644106559866169080247193350410498748755785062109443923695825993783258884290979511940673490622648402321025491163667122149933422199825237870089579119211316863739650592502821807046854650606577731668599153446544199425673457141372830974693924871292593015995926736945049247134935463622707525577535852156982427709320366300879405070798849277188035411436542951991535547782074657012980968329988317219600538266588336484674976156090791814652889203410790262333736153558661130196174878757202684203368172150949461945132144827003290157748363642177051295499568139821214946719963864268871598649897803498677376063769446954457469207683243530576241197954908576400081879619524795336661060782770997134852637118591462349008462133633137597889866582980850416519753064635145043599224517630692582367619955132715296188039268640562470397215193730453957810980307685953398174842579978582478884178919136634417530697646734857666319288596890274464348876221738775269730323136020002778102569512738984075322791819049150059872639783830931763571144577334416125971048979296152655736393243990808817218632739991244660828005156204220002439830764145970558175074418529067557838404146249224806317623362865122788041621909302623543578007876134706555492187460794715214184603940987655547497333027446707695445627417128179378274642322282760388851885656587418313206219893747164444931509701013131986478825021424459487156548866725228495303418989602587608891262622690757774238880211957858177564413633653650879198634972732856249249349865598324212964160227749774940644844210931444507376681277015647164408742819880200079402881409990379861826166997494814914196216368046011480240972898397023456762819964367187049158211783190391863317632629332364876802230636109086651415094125486889063806797447971848250241966302956353657670992826647493518062489020483705577255854675997951918628036817315333049225667893023873237861694411733452864722490415290640659258032830533954988837847976916180068609970015948174629675416028225911361382422590908765991708320186522980692081035186463585248517354187625410921250395292468768316705784493602678225733249779341193238469851615693960893453622716024992738042148540129895823240552946383033344180790153939961396842582859703673391698786611974626198238064411244770234609067769016143121531140152644741809704073097718744743319657072576685954070391831182413200232073062808568858033933122916994859070139342804327878471986029504900046650771178102974690049999678457151568813078723957881757477745370586959711484256476351276547097161996545698577066640252901542427860774035397391173905485785892148010675516695113099866746310464729123572875334391428612422061231570357751947385935839114613996707222759167152236566989071684842178918168764582801604266234698158589115230100053172205848053926716047564931309153704117237489562999298786983426370059511332942781233989267612987527333289617109095816502459610507558313669693491148173543721977027264124730698423230473718719402485537974193800502854998292656730495217478271663253885993673312087875505523517948195003160832376302657930340665617902399354069258900040741182277926819022160578252521116467144908249437043923635857371892043186331517767024789442687678310529597463131905999385969736413759973826729614138215052398978523106887946025087383392725657080518428065976897144058482401422186773386226722606178655920373004237672915913020047087018029209275469493161773749624922671131126922195317281277376989810639106007179394605118574330273119195824980092155748809716449875355638936579952901676484151364900383249439219647326936908487760982739142589406099345652332257695550483992431365172832784088270005009937477049798653824351521037702819501558968491770225404376252750104088023053567105559559975325192133257159453917156468348977082158871068754527772106660647944741001852357568543133130066785305462432364944247510277317837884493855062100718275671036389019320508805153221085487798228597045987209042893637285109930663509752424608597451251219677081683851819531797219774090964506030478033428430849429011315184719746150870844293593073642266756556196451378412052873260383330009118030008499781194859130893491420197168112752086913352756952291410240224359606181305316016427856171375545165806906858993361996470350941858434078811073090828158115193648015241022285359203177881328904539652500408823430231855498249447960056147080022933582987211696726970691556829720066419753592759281972710495842679266385855214237700631651007088451238560377803659874620817819099054694814742876268969061223848972126329954266642624677173730688859929982460923293774530695527819243626371420260068702388048641487773828614318097283230677033997421752148328605909410477610128261803615198022862521803123027718937192122909330545262818216470132432106520449593810625097546268944540040184030613455985657740228208233897337212245120200935408581686605501933343840725894088486293142319512624993174342080257182458003427143474526302462910761585676001738222248813323361556858192010546440925673210084513770589327605126870502388903753289325078184223875950209093446029423397770014966994803461085511246368382375259907018248669138746172415749607188546856080570464924070734882743053457134802274355817267001958362225543260058848722313024340202865194620522094042053137303627677921938695374827948177737317898424464820746691280071187767786847768808840085011368585306062309249541687717660696862731442865496939101248805593876395805681213213889487954253038943676193608185709852461580288599734071972137537378972004992103413950955805688707900761677970863302887201034736916498222147671019289060026484099132828972531675775978287746435338890823763113577763564435795868870183692952457642826160080995731191772726689863308610421802463881593925571086627726301776918505901591009957577190265219873496685298478625555067424119800392942053239453301762557143717213182037764482005131176206939412257782611976430788406500735233885909389628081726624777647955646546446286164311257743531765310865614533176168138416500516662396910605093581489231920614383886408021830236536998787808766887997154348811475195286657855575328678037791195537581519371355446030719983528184840434498572412463242873739775253377021942826911679034864444526129628798394375524792619133099086842680342817279492201055991115332149284642736598999524980205511839417277593055774705214003106120584671719060085000203309151221546480581149250777593904056632139613839316076457693574818151619712003225163797096887669486302590431571264066008272546056127556515271221777551857684447235197989121011945806990449375276061066021167084532532913042524011390777816294461519224685112050222061573880263193392772270789308605898728027622697083933504153501779469960154138642205867875312984721498117830058857111053752037903072148184970024004824871824706860139137290716419389121677032873948310300409021532887540442818527066494415247228892268676046446015146479381097546808900519274080102055959932585759113893071259897289882660054157683849927725510300848317853487007817870020615269928056235621566375956152088983016502379600868883020702398401998966187570945709139034605331322876933232945766035931374181232927814181209664229498210040788276783417915915622543152772917240899838834757223875849118170496992724978113971925110564719563607258053412085339725667665038689581160894124896412492097090437236584491586098380053173305061171777452841715819413358663182558690230301942982874696391114127138447007126468823688877417237578971692297668442713930714658089289864322810797492921713949145938911890046088934176485446624525807833862543759989926930803059899296490653060560266401385771587109673974062184865288121479368809059269426279045324683317642394685610265747049902137325161904047186775238639940833457828654434136340341476883209237477190216663573189057661427849929800327192465986963423111781244626313831132817494535942129349363072795336512540081898263305997285032545938419998532573915089970903275933147227737863398101909342797468309706101599602441227006892304842121997210282692119779537238163200726479021546455485875946523213029360410253026709218897451536744318312752239439198675109016168952071298855146522664981289363363767336919583008678450839123350569102801078909054467212616733512268472489469510347192510669604648917189449458616524431519173906738453666561627809191640357226720126923505275909445712239042391668363399527730760772653220644039176552051444704683866013493679455592457194789146832756456752807449695661375490240076491623762362804481959045611523399671002634684186100383883076998518871385002741137930987780069405889935444397693109944793872913020408772112456586038354950114501189926248431436629444248557307678279927697045760213879973070581557715134623623424436302114172244297709658811160920272639545011794329610715055330230587162584870937923597206677769742701266224781454292833344530433305062997665967237442999560363225927511591573371032769893444083542676309487203163663473344841060184196578953299643418839101259251065699377028412352137081795792983750288432106230729722415699316416813116330691620594884052522164716784472441590169990270663336331457240740479198397585771137079059070162890280750268793085796486212028464919143560313066374996500412301541976758945768554971920241619271258823463682999761817562342540950283166385249158683960054366426846170910877412907434410220445749764710356402328388138151367566727030390536980640503487680544499614156698132995139076165236444390363425307520009699857592539447950813558708567356793333316065606476295186374094989438721349484034755526192397451047139720078596345279899411115882556005667711233518281462336699824015558231177040925833735718214878241211207827163079962882152016458541506046099206006408739678689544947214096238183629623803569427751310553756923003842917040220581374344965054820422067216832668637670039561479345885145972065147246003457334703369403204946972171238266499857483904056125045412182284563631429516875688710962167783528868577818246234289757868558458123570841687433366625876318292160490694265817750867766381673758707537957160874231457449657395448569093301433985226383380057093856905954986707760328939692450060192698023315079102103317708859526248161774952510459633846332436735245036141138423033216701153445027404253263434709417523562557743140530369094521431254227862204237919023366287101238986935013236015413890901082257993061664760067996498075454239119146083996810341687368294138949273113546853209123415897668593223275100282695747334717933175750455342553238076821745040147920790064842196526394182761008691662261926394247471385273233602426543228698600000381587669230298842912570240247675409506691326069652455328073916428950330542641499390567139112070795130813688590549772127759443870187708735565579095134221285144346275861485452224115780931299818895620589739949784735456366558717912004005276444732549050417045097291291466651070951188272686185843846960201245068238830557301725374112877427587124101544981173545748665383283262030025361589605447595104362314879235029741367701765103730663826645473332182886124802107654228395279347414777621382616997466835716881781432127772793118205611016211970324125506007568199960699875934746815196379022278001259794208321989395073452256236193159053215803337949934095333545830511152010936995274128082529779203956915588002545475968740229347558962448131717354547188949306851447182437799923489303638169180186918852044846698373372462679847264965490410330255087843987426660516340132710371534797999140522458757514884248845881520874626718757617679261395330949677954494909032250014167719072734138939168681865472403203038020075646841129315767274400250131447117154997720886502964820898449781281467810092487383906782889422296611059158123589073789314463843059812067271822868365308115796951337484408617092486647742437984869238982988876667155139231932254537832301927214984382906407157087256675717725338067022472093624039981208855356998150148669170714310784849166380528662717816361895039882567548401960106843338713555287439448688324889388267397301547230159207475879813291828871858052902150169663153038801994061149173027828098599741674934318900639324453293093289117883799098486342252072900106875053471146371778643320416572901694357198759379316754902131255549419528646310171099685828481615007345992678508469109663958230506104361645144386992298428400789110319682514986971901244742925748771027027516225258377491328568687835605319650180718298457154105497759149742939640317724304975348280312412630581288759921448072277552848444778534551162678637101811641293350609834465338604533436587762221486417943381802857106436144496051921270934944245498386551453113334474013683913634285035174620808386891173495890317538829554594472045986414088467508173468470191577584300408486938282868532211269052298785864210973385603928482515552835899799454274688342971738347701654483444976285149307661695716143890373287146402780004840698877514991924045547248016939819438496960317298890260580631965305650751837496145483314463807855124649979465676804629581873052501463121488595397556678138739917076464618513885611759921468574218391105087801349749261566068473010497841257193996423385936316902295730696681087367096876102444181838534218098853177911359244291893175044532156168363784442669410408581314890716356521705259462579536568237010437385922018659847458539871556960201229269088850584546689775520145964256199140583194967558397778102745312325912127723051939489519233567259114523280467399635782296929044367301938462025298479295244613404871159396961130968263874518306291651144475750916317617663379699782620371783653405457007725284936604088198446076830002068250813733959719376223568090932324409162681631783991702292084466714467493888674498449106145889298583200375017325364830432243804370359631429772623241941632801776581518938026241874049338856966175386977510947204399503520262588646560225818129149804066522068318402460428956848807295899996061340757098545836385953095284394229301169188313284762334422662822971669141576810738348509514112099367500067454106695259073899521633634311247656630881868143020827880511103362293311024912194472535009675301791179191640003847514767929878628335344285277462333667533849747080531087561504488946719012967756558615538317037964448150667787957796574035783435574285544411533483845546079674439782089943197139585840127452629082434034320408465357862219809935662245438064381354766104544479141439284276877752358111034544700092007565962454381578647298454940336632969315432369821702924354930867645875224503472814461748103754548634460220557555465492761809385406483415725727101390938742603653929825018473673464464912468380228941005466218784123047630677790603573396117953979621903889624261118576971884017671770084382359232995306254894555751132927367216674821061819087846341002573559298591798367770071011603253940133282527399648109819265065640110710361519681791653574205253441270073866785688008531916438953865440669760882185938715178899636101763363985545182809903378744774537687463265878888963162203460186457953206117167092890478762994336936525344284671796954430963870544303021887374086344928499463744936915118780665341221069745762761200021075742033137750265446405873612742161766992970722688905100281887578291911787165001208744172577315155604907312904563192341684779894386012659722716196870209724881565768223422767837404337227224474741449925361579419716192524328529769203214932673537182217288710404698344717694108262599303780110633282365045622143058507958556421618769741709615564047834260932890497849750102098857333903359418035969295947400087808579847829294433677863642176504814717157223529368549425254681744841241218761365618665543563377873909771528073561988557642280375631408748792177305398359840651940350805178744241858824971372983418293422430340711331739258206073746767857161193109534230861313201442589770434818836044198507830654514472380621458978008773243588489800781767532396284523374022998533820881367447813722162213230685935284763526274409724765524899548536538608777432604385624314466273392230935239528562774551456898007636437275208627117094962566892664207440688902071207357179197643168735779900217257953953637082892352221160913047815862731107249332345065420931938241875948194867440064881635718071537714933955180717383426391634662261646439097718660156052407726946904759810078357209300110241280616971445835503977983318863758825572592919422500157901392223831068930908225669275382389245527199052651445148892881556475973664797012312752805067421961069698037034499723110000152997676101836308613421355927659670250570714695789680509117515617022831823742366837928387872958913294246742501405321988270282466043026279095201724387895431524071799222460882513419065037204151169811439710158486731665987157704259958778675543878721124299921436175633715983610506887222350125344603016318659597796439157872808983439957149128749319905966749365162894723441010135145710271408114357329565776815969359070200776860195950720693670885051365771093684860120984530710354708895628350978156334891084619009849268683638616544310081488917921779743590094191932210193236289325855555745544548828847925875195753213572111749923423460215605194456919486758005839261733976220910830570862360534966804916883526347408665121204046455505966288858083082508328160090471804624042052761027517442682563763166278061376235647734142313273654613630301825734616959388896916916956551486560073103682953020705294251396823801398843882867568308708080212087636562849937718343203878262736631583101237529884130520977672420429987534384139696652288437673949222636765404891459372939547585663767826994825170398680635785114559272933330270556817858812226536150910138867496846598716021668434103253791801662247194102515288004982829516484357442367129529758473355273405554821435152919487899930271243938279269985553458115816414235543116671592976459171808828654002602911001952479576234525496899209480490079894649966343898804808144834700001084286398889571769860813887974647681995789157304867355382245334929233018182416833232527654764798786618760402420380639319093487140217711024321055791605333546958149784891018820004714413004172160901696427501913955441840076069384589104451297576275897570331511441838135640031798755638164891754171155826402850479281221140278324282950271148643518113241427274425390084208282336609642660313481519200247215380241049961721307733902308242115947137982925160366710713061663088675197712627913038811384945105231100877558068564705089688428093504941152561781500168883617571041289333644411258036793349807293019354571270776851719133072873143092365167003065878819629778521195392461839673171978661242458755473947210141537498488055939248733798250728541294916097446488093796448193499300587182652787360764899254807324602052244665017850329627351132989318681105451250834660161556714945293919265631325853526464613111149004208085620516339790830781368809371464027075682360006061447259292608420898641585870917765836440382663306683549633891640243460210483814640480489725005485818395120949811761384891635452751714574849865531334240989924980949834248748637652826435628576958504316476175182203892106408641410282405952711309799066782672999409983855216573027789128975584216075466131145704153510365494558323852732689564236218896679977192633182898660669990501430111308131659859450806513363719816862716646212496106629032064812183716672913315124888193160334693799034432117725012155658829791725060705284548183169098569763241888190553492145655216721888859034092550436660315837041243198387779460870464189611016805475790737080730695064568027258719679239934013213940415988929505040470424028537953563743198224727050355101675455554217742189920291641162647483303232104067850978225105270405131890260598625464917857307195866747451322598068247697265580578724075691560985371158560134106546527971336080521530162481272013082785299395886975648601905397008775759674331040158935799339230435180762073889472591433300656272656775442442996348600743916953131254214877106007443556650825818635314635076445347910951830313881204181140809147267745719632216547607206018415284500953671532377715536840845238541627299160497341920316292967845684940421027114010852615593906411919823721575476328707469005281522322400546978690009033698697739739893015814101778323704174225471628137534368547612696795044545895767902451150818764310366477453745341882671324395323104552964556237059449548257154879589491917673268420585460410144326839385427864766451023059693088329254040946939538846857772751762039060686596901443109389025490914263182586000564337741311574645623765731126302376535787271029165968403461952671977871798472345649643548489654868657186502689617157665339873518710847978390450205775662374754383533686272640448192821171652904856164342290210023708164358663535556438707224449613913129243398642451443551055907817460910691400583446061103750627015779721626111441036789934099878944162167212384705341287933514477270976093661113676027580008928324560765172629089886350190091716130097098336172757996614910605207651219775117660465238206523947577272485219769630458445781138791959542647282919430219676312534086858898060223182601774929405470066104145752988168810894129836272746660993368267108231045678327247473830450702573457933005716398230038788960413216460247220121394370733232555846083424431514332912060615438180547837594229739627914104739756497643885897067598744670149493462686781191660651244585194510680307684351515230649965373279576182146013926445095437106412188431913560018201966988463811861493093622691311143652562788915527590241100384058954728380033372235553809045048621792796732185376482349843686933359054984641487720522032413297550646552432124937378056405429141233517461576970768079946826694653467771207463497922108589469941252251076319542128239363709413386101905353843466185201765557958759188640910767978585906151645725074418943787178913447157343408945038391944832696817974321088373185515326474221003379225459213421729280411377019388724774516397682099283683920108175911939106147407088069326878213979166253950625128682957404132494506383690378870086309393860724157835105613276101752165587009627155808023206812245243196896712687316882753460084563223739034471877052642124514237671172934789259377582836413378562437349124498442000516141552381403695478755240979482925311869581106137769625495599845450085665734423958501772532433175524385514633519805027466434343040683177158315942611762752807692920233987441998687130993235852024031283032721216367072395858457707011068312432186211232011287335926257285005328895134358267625923753021072310016626284856057012820238084043028952741169511546559088698867727215354096742348641316672208886236204869540092484963023907232525454390187869024894114557336367466882078830281192623837085626869672357538231572166656918712281631983943054978376017897423429479366904137958620730940251461091178055179949499060839941697664239702602679533046149112946970991301940692226305339946545071522806032555816757970795110463912521088977100449589148124020414095657676198098701124570360210295508092143782342736112470565565487021164167371997235053275990207258920247934374327362036855461817468932443722026440930620711507303710712193641329146054099214961996325369804489471976131878667383958286920938222804775925376273589155444329370105176671445464323502893260392434946172316666407882330068615596381264765868684364123256986821690829009810660968019291025883050902051849743903576087462037620418032752100070002261234600100657101492165885323582318053491978141374452479986565568360810221051689568528627128252134949775875351971049426703894204684617504415880283790576944012072089244202809798849912615166555820255866136192889055962505109654065333484415731527849903194553926319446954544156553094174017095557104925975060998625279250138015833919786187756694207892149952293973467540504549853363370476510582487135048647214689539513977863604712975234231042077261172001417265732603825581475881145791372175270252089971877266552321511600598779983607166170788251279579064382032877994784696888299379280511592309623459115598090873742762437225828853971986286500472588652258646237921675653867542103404384463658847409674097163539831029875477876934111721193651368237906238480491133416137349687526462682201631555431457092798846948758255088241880716163301553116809215318237693053610105897870944641271903537758525470339072168688347237480226956852297018165237147316921061553152376089622426118866021330829745044058690359297959150599839269423030787855711334552982079056780625451720742013298147503347714036151849987536322965384290950841841992446959282236456834329113638207060797709312934778795110386519635541910588739979009666580768025636685667790543519166390937386014768155918444137533472958155110016795662330124132881584108097516184237751043233183047093617872664376715907275900064161264152709946720826002121225516362698245798422161977822502775443662161783320058492307158975231027706689049219375228420920372936154230627794914353400291984616359558321829426688960974584925796652583403818239597069078201982445181059900725524423969872231345133046048096068182149884338098986495724102452175156158937836519456675972057038465204551913158056094253719449534997598036983784177808312958666628684304071759523221080653230396158854698768516555680842716681147133622909153649861823082185637547789351778596341903395363126544195263824468889041703527062028808270064202045250535426135540583625796441672698079895951757351859753007822255644074356043283015581463483207034198951370814076275869872771570865201616223073842310887988976173842648722965570280007768567050104575273274559676571336022347640542124192772492196154034867764783279610077162177880457290388579859824391511753341741691652401576181620006704862530229218938641307152827067202456966108609482932789258983942901164921991517555900190580375613435244879175228428149885551819376792855213905741166825721828546211101700135248940947402185296362798899493481423345252440240733032347210166174158727516448200008506134493167826425250211906081976310811791923073475900436632808993882776819599949489819984085002094123064096845149039673702951743040854909156413671488354013105996344442031831538762961931431487489907543839710419095573679597450914929711805338893652081837556853247742644651872711588932974810185049020533690960065233429268945937066602372743286382565885031846233803877210587988222852832941196195986193868222971212394230805312957197541947443839868294954131205194146120384591232558985960151427993954944155158056530069263951148701308390785845694149624304371227708326730829921630393619446075539422534324931820420508199753106247277647768683806737805631826857632633083334396984816415809334431042183537800008097520895034253755881199849988739264876608217329885645182387986495248865716241494973664347385702441709922002073019924991934897574157111870330784140399219492542322760570793643242635082236855388120130824928906197019891010978308174087655844358350625560574233993348860116446627781932351466517166836242991545149943910550985595009771160745413600092265617211758254990747124731980547195359493057618632447045956959609617661961598996807635225788889562454391156568166262573111056341522189092559960827613595263737918389476919514701657154309468914623211975846433871333760619976199491492848260168170896659589889759731543151585016803488440227935726356461516459000531679442670038127341123239328998261310962062343315203086934198704611568805142188987513939290402973582522760221547934117200369518717024140031391046137820252928670521273647465814688162980742779420212755092202875478002237655895477605689880848255694276769095778040607078398775387299272625515128732075959593374985159744659843808856830287036120389015810617221933464628735904829582310560638824325219552759669573592200409658000868194967848851128326940702290135712367204364348150961166146988943116597430912365752797214667518255058200794882025311070523760105011585770611538381329547428138542585936949395698185788537052814275476248736677529096965278510855446605805737539063070606821980952351188801137874275460828571648601305973202431756463948652651975275019575543946853569088774152877127209671603545455247977655338483561033687968757607454712430579153413619693630640918738065754401896052346129306306986720037655940600598698039121199918467494638168478783405685129700650107631879607452204512473643458564348323744021041980646204462662249830720119263331267839729860824850858160053037475251567036102371420958978607899332207437652325497326501752710479000595472878227281391662376278694780081119732209792419019881619591704498475217143603999011569248571795049309475847126639634830433625048756486790567080630354544459309000418222714492424226727237177204351568070970363105218744828345627012028833081401756232950267505931911170026304153407884553066633073662626635690980835400854984328226863950711634886066871511330687216600582082954084910799215217754636299521666386321003424660032896379161407339444844846916057976229660423560968049958054279696619662526207530027088217651318717036418010971862048959783564960222234589617021235256451552853731385688727574280635625859996011626766355954832275890438612214254773503897162715005561297931204239240288820798652618006700311481526719319727068005044408572330301147842542774182700164944681493983239052371547310598233197295838938026787285957330020635647803388464354817566025019585315586101588041675463821907459021307650255423298592173023578856230177216030279071271091352850598214470555011827177630328732239763272071016515962045309427648355744224771271424984819704254705599421233712093468562705658829809276756187919609530241131576697349368561091313753973950190455278800194038927913797507887730193170705471166679046095638340636558156792327955611945244298618346603275049524225459938528272134072673697494615083972927907868481634566874209835989277361549997593553320023440397008996405888219351308318762666325463955145515772119287182745071735773951569390404086773213503894792015215725671475354159617253674268012666711801554833924694961283136796319810294739943376921055397995010431764395440217806569343127143049467084605926691649561049047723969217414501815441798912221576962004063448384013495623829451379964944585753155121784287390833340705633109926858787041527427702083345504190192173643892755022020402123928191533328989466988140046318032599260533542016837827863179046572113005816012563623508535319092019710679701020150498694456419355700605063237103662766537120750053446548285643606645485984344942873401608902869363521715874438484724743519495966690907899512189853172718710592008753598484537271961511978654417835432542573850003812907937904550910584487181220782248954220156997445074516151138510323837995792324438621288219452649867538877231762681356567215731687723273213272327904637124075090326039964967593599838135758725231855320928620496008861751318646278408310746900931533648887894226928981742253157101926783302475387096545397126318078730435237020948345507940266887580543032445011743916207599287390691539257158962758715694986353893976765445846593174522869138296198982920862020927427184430840859701417337107173096940859057324062047995888348420847465314310100606869375500447536078645519553912707362285781849773373328615018134121775329332932916214537353989827136574390771289181273111607389945806806563255945597199948951476965070344935083544444735106646966943790071780206575627293021413523838196331759491990583087176824149715720722917065912791513944914238151605534850386859850746809939524104097715306168297043585055857126502076194937460153734668511255832081912754773071893068876155152588785948050878993609108303418945545368817998622426008074697416163526907050891664428565643414162741429797832846871137701728777134853919554182720641207800873580815609364096745916901694268000427651451354235497494639856167319305122486884164995316536177305239864414324578086772872440157015765954390108915560268060150930373586777663625736356056938690116577544466235399958916859007316633836101514435638110086516778793035347936551890905292672219095796375325158483559483588843311598447308565694946933423843313355888014906255460365697141608597521318277883931556184955328410677500392790156168928077446528835221307688533475036544342675478527178776624912748159662374001545242261036411968347926601392069222795416577572570920044145335377188285537051620008581470898963645990525830323128659482663931691209280418348155375513785676868079981087157449251803789188304423917379827362138108172658599146308469145101856067062564165754138137576217856702582887054778651703953871441026555639347943403805764543663821498272063196975095423005547235531108070484842023620569228625402278503648987159137411616223470688419711901683345940879574285360543713024928268234795820782002765076010871466249976570199792656976479688320997296140992836095753287732028030752386854011760028503582174705494935153423532535612241217279493145102882389058702977745762293506318603842297763151485811088980291960517129831039369878352342219787666394659734920402449745213439180766012359474080473965950817996117638718584572880466469214791864777484639632808440249222255630409057874043327447234031545307419104873442916364501965223628489325172030860929019883128305804082346877754463995202369581430117452529421793202952336468045337347273234796509332425034505804445564893168632154195434239710510112591776348749254229002076493603770299941181072404351580031397159843835579271927837917260999229433200206727478222243739478190344502308130406627956054311628128281014699330063089048186737428589516010987855883481457802607601646557085065860530802378943855966159234267585554277977621005653622449417445747898502498017440618537972874138710008280441484325936192755707275870019527974240348412913427272363265261344241331567082397843007252738303971601184575551522521623511020670206724010173168386841620149207819101233094528915231819529589271200047184943726779242943733670987630462779286568600971647467016830875089610625884139961261725930030575606278314016379049874750257317633286241562648186705532575860933258526708610333905502144886817579079221115321519066746428987478218973326672588601454202379733745717867493810537830303569948686006967503237579790603327161323005608085286764494388703898816829072226509545508607694637345513492730908783368830530875408684688959573024302046786348730481781428522433874544112205084719676718427615823752448861542428228613702710121754291926971220963206587446870359351257091360704670523541558404485276669724691548937886281013624774271184652813052689330208579617616184731216699566082687443824107313451380237421686003085360916813380832713064657117283271914913228390216020045105967244770473859946950898428724045320914360390427953651686494854969032434333246788300104641094173232736493413002671886678702817890041626772005026948989588101638841195860068536073815158694704450400393035725957881672849931386735004590704183777400532253268603559480553962016465393432619016780165230346732527230221717736791334426505490145609083951985517744214304027257750454026446949451136612746034868388963031072777204276093253060570270256771593284244620025063678009166144701000993051915462470943515284592771420809573794112284167140554850290692724213352868650784980413020424787145802189086480652980601658008274370301173297951036579778776294115526490280127241152400068115691400884172364092158328593321766951550365174509863284020960469981944031248645561725870541353943997136897601289685996468722823018867273995851957938582312441224972222383960273452080046270083881879093979496910596488673901489649939222800443800167590499486295441626969522679586958372413431717436719734293952422557126260890079513037742497753138221125512128273874551383854275847584428826468535789801835868363639042578850035522370214888435228383590015678193627049401103929154428951787723802562604610189141251131436505538671145315274907652770085205477147397371151756032764539095617699471856953604015325381738885911884982084194796052041870603625619331776363815735140203860721446738107384590513808083666384929562057627875969849711353969047103246935660202704666036494641777613923138541472232569597269811832577585587668514368151250711639807067816585508884612982317913584205367422553273746462210352682371035899852605050901375040775915452435342686301000013003183706272881722110639530878757473193078100323552738534997554476430478198764393615747913086592406217904304634711430090742032518172075096713664614705445780754747841565877627529196561793280688887368442922160795071179381956697262500360569860165672626451452209426042839840199887406259944599000539040684282068000578229657448993058287594906116042686628537366852110798701882237770514831778322957403727062892089705860457705602591928703148063540399597527115976172994636666412127357904490496598635654873840078379832473161184549148862420480743515389030958699517172364443092601759519008223984576207684637463476419363435280117092067534577474248199712625637010458832207411335303355587532583258095434802183777545074445313358668303468042516253404829797228012624194576625258069415483353925527517877565192735824976171971998191532634555851678160332524864434995151321603399702247391073348621440797833119920491141103501008993918081007047611078286028996690189401829336393981964297353983376534137035816944533170890360306171104273475144560279334733414815704351681031492325297797475106157286050955837289247391358398527983453780853647727987478357501428397354935795396099274446257043441856201183923245086749453283588503078213246027395142662948428317966840185387810803526984154139851518356419117950346337273278332725730185655407673180972072235509349568519442595759344333280381294657106373318325171755042077477544664254497144552521779984222555887174331303338383109944735862260100788168659051918318234678871824345585488904264606593867120054278755914523440806924783492023413838322202021048057876699410733303079561187180695727168447858364017681071914781839557935707398640360556557657587007827342748542936737480770141319806590125494035080673454051886680572341624976365628028109289721523775199635767929653210451019610696709022240580283769095417535489440414434930068981371540716544421335689173938697811615840823879926018402685872680996728141031184396157343015290689659380606371414608759222442724351407216799574750332354540087414672130651960094967306697299683927351643832501956306206972907006473157504553916854790273714449059510312383292443036777519770771279032678320219747312202949652467892690092003029044615569502308962180259264051264667394684876733997814815050175497227763930783799892700496036711312769711702081712187938708182110153564486322798475467937917080475582287887475372193303485345713459131294238662452217422521214363155066699423991983128224626924311957773395010009682766273591748673529757504033489340415246849979127432995029567505093553122062476286171200167775706493382056805326096137900702651007285616104368745798732699271617844511376838322263116237590602647531810564561446690268778985337204344496613163921958108188706171659270116302765180487129251350887192673205920870513219195053864161182886781628679653978768615892841437168408026113602285601349102370369800005425551693713951529625093503402275628212811889749652496144901904040869304674666193319291946956306247144891273300951616148083444184089257367114328676860982443413054150976723031103095921029879592295470384534319344684756668208054620053143760238687222311962273735472119872632307261990723989998241560924795987819012440542876995614868022169200864628284735726761664083357063996174498617670447413368906931071845601067713342428376429878515512805586237225583640340197296786257924469633151568450829086530092381007552754439144997943290020318624980121704211279651942883662422588355750133195612646773175359286306700211370835507906351776929241489230298931097417454393841664934577014320740572470683565046742433475248472930309258532866782685701479435089871108575175829068877929733306435666566780926891027037906660977296536564995878044086945704856972504429616958999177185167305230924012259659750505340490930530828696123489456323489583886634131633195426804917117018376539915775005044664063561606355760857783233826094881148802749184285645189950275743991514323181801315661557935087464968431653967451141967223639608020623131702406800963588761303128846655217073556255152756270904725311659491168401936074264228877940349975474002305898638668251915862624613970002239964825338511154179122929283109473230255440583793162719042945196947265200379981016603705829157706666722899928333349539167081561979278006193440643438335868556939075686828070317879378875527410718176768275284051558432599523770295039093452839838818104089818875318622634429307269333167624670403319770301712364717823886626403906479118644654062735976466723654567430439527996182001722048883470018247308360877212580695869535081477392970346021436626313454532207026946420111440661422374370769979778707212185099942234180411995618562209689704397896051419879651853907274330938133149831126135250409835182485599192986512389590692451088750332633206377087983039019011548998039948457513281401341093309449121223406129170987553519132567515857708991361203343985331608553260178517075188884439036742741664458695240133047476461431349220687280971619982185723750869748913524299941324254106959730994246280578516354455698666716760980287376927298856940986927403751703213839054130266520677753349114092090473009001900282712305590484301323519930300598504703772695176251140194242980681961465732659759565348354779141590438205208873755652332224080335607668515537536945536097384326915242129879871036964704031272579125533158453123918339109404207249656108495198855299840345141734437407116505363415238104606250702929785931905537192347642047134421036644781282623940204365672334412435807892691340488019719049155323338043800641286076304839767436764411380118026150694157756603910451966524456152277963073174043009450909546230172270762760490170070653807888435109094307604770357494692704288798506877705424848623255278677905314448028164336462176587899537262165040541752061615854267507705909989905317663019052890627270881060063786129763415348464342170094156903096636422025534136922134841454713265076385219074084009578683173026581654404374895790500267417517164338882012778918069105001655991368828768091416921541696434367948216816453328851684111921816243502107244469969307886721992247721741016584642201950624548950151252572382002777187221476252719143173329024113629185034035125830975422574758117584162747363071800585308360690288548753448787440370306855331824032807829452597953605714905108825115070456124373500147524481500403244598580882088719066290162772592869591147545479791625023291448827617519351571635578134598412059307271204304255861940807425884243125832045796310257085607716738141685966610929234026321790504108743591838271999191123723470150282084801113465905220154494104955745521187957882580956877894131309455166242096438813002707599498866040994279361542711944812967282092874815852602920082770940591138037294031981330079100056495166371634908069256065007566729936706748350892115387911796149132858673444709349718685318292232825207336413988241357074843150414762860549218159474330157284625497649050996977855808421188844081257675184620035589554373859846763385170267935294697073514749582257772564374569198774918303426151006167636288453415487537058754351241417293636103799197246447568665385279734514966284860041978732511669439113299225928764861241453102250759434923927814689117561527546457925082212530562439640580872861638230956338985369383647263668120660406656085511314965470541244081638144628743856660853129303656276008180516373237197464461105359012271565351462876852540982326853965923892789859001339169497757489614281343504915401396596106540301996026908108291580997188265496594204870019986693345511684452563121113050693739828987435693567762820670784293236511559000177329615039637991314785123245949300047126971369824414462488932676678680994611699140164343839548318734710181485011468252739757745383458632034594744533646965711747557761360419135082296332180692420967864837610377781789637295552781066436888277015718669403340087439621814043389496729362137246628886005729281075827928201581279414622074108415419228036109521937200474593647631117642557811468417068787850257798515414094414597270369238670668484628890755978146968231896778762052793378289910600920364618474577850589936425641690728462280473361175027453518332153099656107384339337793716344031887592165510839517624234547738017428704214766915091601266856835342800593964629164785727611772692315022423737771675792054694304505206740894439098892932952716891593851488938120509427578613133476918809522683573409707564318475334026240620959238743821756369635804177208061538414398139333781228495858102847057730439061336367059352154699128416623329024462078560752491921291699253207655805267937009493698003286698498612651245808836363218235765323162815780084528269693428958426305812319808827530353912089085452904094551775270892746598596719847843390596670614921731607820850569745410100662919445696753490853444636958221227890067755843869976067220678181774396101147106629127795981000663432809285583605930639331012986800300370184342184509519705186803129680169016702328733662425382546544965590073089981448084612435736927897939667176648661592717670572091460048415006347621566077946894678458214794464725333835204446051406582586264172244013809777118784399891589798153849772747554322534536824154822399786723807333795616015723610046366261797083674177289819668972334151348443647393855619440940175915240897790890233988809649430027187635690647180947599076126442092928818245945555772424814155096932129707214658564583549918136748398620744516266862925725742318811501465602690903916246550724168139765094042694573003946080083743768287646446635675597696952949525087210562610881561691883331104949790358127513350354190654526907961785584609139474849367162203886913812113268309825919710163693342622105713626276442882550253267064334904799981216095113472641680258521866710162759528939414144164242337007357691035358815194816580985467636587101592066453935430797360776986156108242728505555227935759910706312958996639517336093629650954197701403865241908346581659551276258504798171713275513246621404587119689356829808302421154522978273433205697711049839187936781909129477364456153831608550683319703943236008173801753346518203468835119943774719609378286240626121869203087293254440043044641765090299831896118809236098621703298527890627158922349647989328259737613005354802857309016750076884710872513108439820247058240389585507987241709307451624873527839328488912960090604442427665634969905806902743745896048785538472669932647866888515494438471510036993023472860202880500830416125160750573350484304291630273291783817691127792826980901450298678135760001741002486634713333769517096072189175415845208436273709994182288382513495140055598887134282608995331247085777289113999746195716356880329489235205191024282367302860474670858048688864442812538432339366037198656637313153322696582771991802522454898108695018102995364495610755530285966726364107975574016596854729284409215469807695135919682687894333805939635106188700895228307494052177834824896076934322859374154218915886964781695479612725384089664919326505326268934000616980038969235464603801413883969843586879912532973300908195905579115063075305478793089532885328249875578948300392515708191038198482374835121329788712779636785263636418103101751242608409647775839044508942925290735454952409328454075856751248565109635939698963886687406028534595611295652726061884097199350977338752418279153433869315014097047487047879754104119434417642225608319842904516082944946071183589616535379464265215389333941150066668265004761512561480745222406330652369842587508013929118126558348786175897547760376968241299685856963813396879864827543461651820924416416147271886271929572385108647052602899063105957318108784079440908711999979804643315530863115196662573003747111571733967732210664609773988382434244451940841097078055928736438137486641864925596701514894198927819961210743704428696576700821818979464946327241148220685985146209615574263506473905629169295762584248062134068894406437739135559490148176221058869284550519284168201989433091250673330863166140202349246859231410548960483087050629326351927997914802683038256825437004986287053860793598201295217980425381417439401019746888585745345344112491217247167523833800414541765611908493904407740458226036701260095728002168496405378023050927520732550358252947933355297612051673558405918596299767922934936001495278174442550493384793575060243559493273793464922798376450083090731909997076082819059930225866060923154340787915216768694157786312514446633416975327564050002490181246138884275846016508261395014197180094701304369056451675513308124838213202975493439226266143519913915282861953594836221966029869296847731370284844527165368562659762300788270328876280814767496226354496128040885648883309698125964218016868353589119117564173871244582426937909159965547568738902816602538055504009109316983271077789857602796103110542036827420400305878811237754198197588158871343126872579638604089521528925236036773533016790809498675052135962946585715802923686637968431114000651346105788960801512721809313624037422779658911941551863091310383628698165507582252211937412445720133844494231910743409720053689182595516430953078133280281110803359236411169852936777821831511285063121618995373662749887922866169696811305652477569735683694139431987530649133290276492385573946186452800075831418738395593750183524664983473017334046668501743583805784957140365785873444653342290740527611687248604542457338046206573537804413210853743870618338306062924403458736321304093535516132384549032496128497656323584984723188344868622221205378286748169014803321996791769580508788086915437375502310352846784235921764525437923228057437075871263898640474789032732892429179852013327325901475125223617619666988454155677411837978318600097049798776722527486268789353006277051955973860355009152874400594139752078090605018353616680502403020518825061947881958161584865575325016755320397545494761531351245088609009318651341870848992881321429960812571797234048502540488550700338290385342328080144671210399491087482597185946661058902331588188002659702315541367162293063165097895407035526341095847159180912008531784406679285316526367300381381992844960840883615135437490157283963236905642700803747799681003462166560806825883748657155930368447626371955214090695763533594262144025367358247875340647551426556789409025636402526956973883366022263602875618627373384033003741319049735837776342012066014025012422517631664569608297227868203221934099724488606696959059410772278360180591082158472410401640021504937684310095385851475340846555469278345131636151663773565471203272319034413470878225207437250384854831219647836518888048583344492233280219051481162100236346819682025538814001165343359618209061330279415384564864558065057913132313123222113252574429107439403418174264452932013997937853386565472615609008368485786640689545285305206599096277112945142485880552649328472142071248239376164514434446711623023652183804738832359435939287022862536112815483094720724140762603351261921723166085898354067903975932074320435112812324437886731609480978625776232778876486495908276259468402923060132475938465355067612977146958239229446115894989735641085022279378945418349389936867931276287466772019589602938363218813513582310808900285694735629959375367605078392714937245551352967322522200232831279432094367739291320102364184816277778673107755621650602464923205656012578193039603367516196655972395488629539525146292788911744574651444358742131405048722501768574732516322138088500998541783824704308363812849402781822316780409328694567031235381099204092756432387353891497538785455662385002783596490113672632234803421114189576214243032097073026431797372591101357158782529374354612764229644725529513803541949967859253981130822539127609359015209073319711367136043871729516916540842143423953843496730532988882925142212196330639537150772805906702936110114013544541189593650045707048374451128308946019963988856783879174962082252050009824958645538907343909564057810064663241162003028111306352646371316336898089621689561482962659158499086865629102138607799704418200971651931079168532766725812673436105070040427823375955115641334261864876195660937292691194033802807429213510645883854289779051986682051472667749830824172279336794830804774446310466159809001495105574957950531489591183561652376049304561047060964214993612651397045006191864889821564600614937148894042829055395825339079714643971363933891568666025705650563369201127771240601627126574776599000632397944080532196260708469014348881045405450446858225607581380392892996165799588872578811464456869097823735707533349329875758129705999664413962774608832959360123758309861896705921132850998935754953250075603074638818815698977832230359686171522644732999151132034100501860568843556189252218116572498612526013133115721581021862341866290300785151853517236453579211036548374653207331018764327217828506735478637009186006409835312299833278914493082015627186363486435898551599668685099478307137658296435078160018530495274117442509097813577647489249665990990562979734092472874475249077766232943825569158913416179110742645572096787909873067629047471705839507416957316452709279002330437730226247775232059871687674154951751862739901665550039028928418158244659880474067136611894672831482253102679640146059245534674539682765478738698656193692222304178278519094606784303713661897288547229113323298556597790380803623859841971431577606215700346065872228321431893366768137386330841516165185544052518153477187376313974848349891390405557009108088952268307658797472645782143220395066522856409447988869742956870219235415459081402162040845639809865190739536176596236862132750542469522590899284173119646329585581664905892322930705401706433727783473699176012852912871861042560056960746682874037109675566331532117455646835021339635247793567704768923385522808567011752140732774660145260491393844434546649089966386192063095100746407921881893584622914370516045063726616831334492820100779606433659709926307229917136875956754671976111924290445501635335375665330406714496625743353749950721122324741253285522883823724902066770211676358442305664470240650228012290491403501722368198468816863056745745417405794257862417541816738826725886368420483366622899583825640770351193398895317357114266359537211438100694863786776778900662518664804960199144361935148021406391888825578686714526941941462036194060793159311021026248165649920716682201365687479751788851065904163457279912295572925572863247996372143013828858430914628707424054688209435594373044891156150418942374866801872689492385805297591976309273266896317557992823305665023254939262689403110324099390224278860532276779209943232959978677237316118331180074828450616526964821266677548880275170071381298703891846658600255050212634997596001937858635704185272062869400892282441465491885053923036821200029300104163235180239460268418450017869212895045789068207205055930436322856735661461207567030753261355675356063248053872414377751045774785987621867028612858513256542532044796287709332616200600912602446434036346085382975471600364468574784840468524621779234305586485029897344703719829910891212691361259886410432652767998500743785515750151285420285924208874647686799607549225794688658511841662321731804042066760018393671127688546223306725274712260782265816098033393609378950361452382536355376436383577110593926593130234019079124725727646553204365777450106222723559989498031208243250031426042866248542578350112733437027245997206728607769174735149561951521055729412344994576277162956367462374527355191113207885552442832089288395773727830174058330784125284606749056878748030146602164008565043486387881931184032691813274625716728629237697907777880561870764593606738864348036805564286643033921538584951133562378316230131818803330772193647131665096283031907512182113669983026870963911504825723121644596420338807751276883298053275682356140212297703578337163796682638575499942298191514513235501836751724565019176567849694426752631960652455282392264347741963437999902509227551525648698744071440246129566315949998774234657139539169927224193761466320560944117947209500620189555003239158672374733164074870854549471557752687761956549595871926710715226429275898160484275374414606174498267562055276029428906715056188077034472204511702312353591050631640092584812419352271282354551883085862871074442594064206963519902746053319561280796857389001539444935061147247893658641597727637391125955691608437845543360392401365402917980055325523862244870645560095684052856953322867837697250976032893410298618736817464772823887060580521731794754405548600557671622511318589632893208817324418396633253558271018899519589679211783998274063613522846079052100852225926917012340577131169641840360506684048515354446678221283948693309298726938967513273075452553988368448768557850051313521988130246747906373660468953952881484642268802186973109003505491944161023991869853744066671532539401554240679545571278518742705222525702203680608812219361081368713010593405156141452131291224243182297364541578920013474555935517526472187034234673438094244652131455446249658217329557512893263314689005542210306107588428154968484064162380178827693621385740158094497173163937858058361794878537979336491506918404739513636541998461173674669904105034208931863997390041191182748891927494037796062700785485516745691981069400422980148987733471915419949545899640862206093887618989222236140187336063280254652692104221742231350633413308820266639194441504996965587952555760652196745375962698357434564103047225577720410254589726213358633783035058093775069963817822442960339667542241313079777679669152751815809774996906863006547741458665998026026251011784576572518652420918837801512999709224994904387934224283592490366533529916200839848228765134908540435100347494709816725103239861573979634345407210819969268997788121654352537605170581492115157923131289708629757291023013324139860058748086548619388898723795369558266787892876815014762107438575031555502234270051745411507960304878393372282899746965715520186496116590701811526515469167457069786766576813280595431297445773704136035989104199371831803618002877060728498796001390934282735051097275615682601387048531084612485700555771820108189761851615091793856628023534825754338160195042670582658489891095322255184077820940617746866650103548648426730390887963829471019413915334198071545931492170204961045973357147244259783853810868999003098604846743108263465945404376830024489573661410751789398630711052777614980079908720895230493284605923548266215846768720596853987765190550092979159687753499622826047340994814926031206828837811120531058831200052203124631341322486563016846579387564699088754659782843003029629138372236611542204457589627063380421387511671020703640391363086723901349564804562066224425111964626861096140491029945888072444198847249195294157616412137563064557536996191557846588050051846099638446129385959018549084303663837926090291446124291736881142683771967139579221799949157665451625773755760462939688733765039540721211003025806637700226997827269435792624874491892790704707380223016280657547279639564656727650921042542397245580386292237834998546708149722489079224688001789644637949861860044650394845194074747038805244569944955129510376765912276257530625094855962192846540074355859283923424602754994561428841288044232277195488285815293629228453993338452566906249370228081568830878817633761019700872618369719216448000021676938249023944389724883118680039431346409876121324838564087637988459154716954505793795570677333072452112884816273253429799344645354150153572178284056283858622589482274293194764815062046923669700224004027402744593457524924106570162740583894101472506910055809924811281072116076491211701497823808786925943790167011337808539232506304303888768708363094260356487563582998506898799914284865153466501337961061600643081579043822599529793190168416689717854484973119376333704707494801776496950917313761429134977116839702669571617936043301583216257377235502865905313610168335766889133715433257796392212816323791401795442703155784829848613351531410956432188076011626006132447320277432298501830137998505217551388760681097034613849918394305257060225901464086485012831402064464267979060976239773586735760935178954569526756240768335750085286517881548649751074907088818900900216769092957409253090806069569311802758207583811547264075244793891283296623907102723984958493824966903026671171436030663674527221906837626538856826666915280096456813018160064832250511448184583123802501738883366604573417632949628599581204743197492614478016144551587344096742629999370341913479431836779186202477998877520109121187608307110962296618384610833910495231204059444828560249628785053942600134786146762371251321900807171630435888644055942577449789598568051071964346185252170325576929163411419987661528693729744039452679175144045865257900776923120656667765029923310924252428506112356189852628964521663965086196337055059450117448321670227150767672546537233539690416352218290709112207565500036025573208889471322746067911869127175279845660625984240958109028607954176542663568352011984689764149483703242764070412163609442348997083111974582101639134667153279522126891932745855104636562966845913115351963573661750404925490611079767040232247068906351750785466633573200686439278485235380652500227810174788172172236433612960030676933766502480699813991357157780248850817316573175984427984963716378174958735775015916565563475205464741528621097686672560324361166389766052075153600495152739426999721670437515769263677659865600552801249418486053469836991622279484214157697454896938433505499364438676943526268009422162909359421974875210103252815762227283572366890672932179072118314051657586044329048230702691943531213914072894817122672631203565163459712069804585207846014496066877853351480261249001980426530673783232164018325137714530278008028990690856852482770772033338005298968360073590224195165837206801697968541328349520401364107388502117811121504944415569992618726137489733944592305606960023313150198956477261555521689690220666853674885092876912117730134367490369673404811964165295752695867844448150106846431426442316218554100255507906112653704770019778636804395427157771370316762599886974921909818166608030129291130443031311530697380920349510551827153619093402599934424154689329422750408533698709378809351847558723423856569589003903592040015498001095949136314698159863046380227062509618816481907238325480495249002273096312214016598257504215915655853067430883115090232796152784826122683474006806059543424880725094749612364615000715500231932387325133385205342189257889797997898734577204380723800068861554646548628636110342787532847524437769348259775005005978590287175625110863634206765037282275828273114771548463415258078492726969527021416812996850123172646573712476355913477056924311472667233636291133163248098892632743349820023708893527589632854086563283838535332926211354470687566898818240805692932178203711265518916768366893114295978931249448399421320867762203191600628574405136027472072771651454125043137714771461865972891407996213625001692143308889157023482221074978488530699546887739852245074655384186774540700458987472977722941451091702684340444001809792797436489819568777615023860011488450766684183943086033655474067305908193385147693198951517835746627732425589429633308335041561159231542408172724256393491262164014615948185463138119599108975551223016169795230290207457834713846228799657622899303886016689454539903168643389851406218233567050971115449791372906006205649231782598873938399640903503146216129789085604793157756318392536391334753640609417633211219266375878521561398432872900000088588898757444724721938000601789971518481268270114478757100586021007376449318950181592499776605301063173311757893109609806579811240991098557378872684342010226226507634005295780102117509525411959506794799242044341800819350172030340963747811633848249778992529592280118269160330975944912191909432097077837835330111744069836148354868995023835432957520803491054603329194267755074626861465663569600905612869741833479410154945499737525807014435455962759758731777007034758676611425470557237686740722659709286552862808546105992344002584317385903082670187805759344695763942424508439011040160655467775524231944764855088146506222841017815663056152195007981286925828918828351696703121688725245271854495677508740813910262917731648560186816915138521087256044237045039895923058654052917004764005822275907490819073120310699648709467930017636575114948805348994805971588492306893402767005140037691805809518759845874354698601072434357995305046341193641717778130644435624081494310293313414111853900451393462991083154094639398683975901511152618873565353723907569730764766439932187538561483571210857722360505562138935562254666714388283408604126723903911517960825379376461263917337909571134567863134487086266678250798408201788516750669729905693707701324515290338792121356365588399469550881125810185817723609690623554487606850503964806587500843740033026903369975500787291210104243127905397650013144761281600546028260646933637152138405118559841297623964682011230642086072471134603804268829413281510635717299686987565318961795246650167870247487786900115467772692355611927444481788688419984247897373751097009349055428970037542272866721724785817310034253829699120666069050634963093515503220496128282948451035384790858570646878183513061825575626378521100360572000644662475832329802270359181103084111966945462474284589497391357943570150483468578017999681675113566922745460925741231420441055636610537831299183651882641230096927427086546339632872504987284760750938719221817368180484443550580684142025899268552159190204515165860308527664748574248600295123022470509081359166444725172906430809687599149597516506118992558877669961715167718456200738892497704775249564029900910242387079052345935744526121788051509665974861814518882649472158067903149169589282212438387985245556929597526480211888158269777465209048717378601023025542167045905147225577577068058930256922191888687149102570297963228763414719124832159084488679805576411930445505053714943064852448960805965278272744890862256701177027422960581668775713165703478556716237350821089186970685568094960433546931001106195165353814451933087618130187591933934418529095511129360763044367557700434758593503788294813644495956366771398141683259460303360311645002510287443775170261108748263671004613409722542191766075634613218783796833310256972561770057022425818727970101693143685622410291821117701240045635565204413195971915882689540988133240177990771030463923900180122571877345702725135356345186243490258192300554449392378410307215721398552078905239644243502996005234739403712083869502606551857472782080202980631773464566544251250663719183744230416973092839150467490338561869947102027864976209198135126882629197671281763857556661922919405143036919371229962752443553460472189300178500663685336418044211312417461384191783509693909478911116082054842508696164482069856808969945813467786348277846805836906669613388233609315159173270343658865691873100598696540161397466463536326717090519208373473061705187118011760881787489435063833533054351485072452667149055505820162661455719392992179509909874476894335223237143144609523699974572696711382032943923209682149592294102710958730222751057116468912255393827277218903503692108774578670731121751086753150695179563274683256921054818595494114210265020015600711017805069268903261874253169817135063246336700620404153161668336848009572164690252996237732184487955874100376005492263354550410408195436294365802014940618623192619102690497240188929581854272449026172678159038894337819915485587906195479375841827302904639765624480863633198786471071699042229055341744495922455457042606478528571308506173737952176601229011806354937781000861241907726064865618443350275242543917525049789363359865343991590094410905203233194247338908156981591574563176828741492844894815613668330052789196496567887412693830444978176315221879589334668511197299825900705820261821081953745672841052993458309248336572815223000220608709633583153458518065461387500503591017418779102137770316000762654575341978931778381013958222798088554476219978099508470264748546892439420769968551477645186003703198813804099152552799562220354793263191903185638677861966308311005819263928032910179998376831336599014847344324326090920502696558825677387303967609926319258291919611726445135795825123627654788517319139578163414936229119050550681279806589633497622527908990069920805890794677906331327656288406968539638273803736989286040810387409242274699682371193800423391893746255395372057438271193187957758860925299031973761701528909128364565086897702290982112695939381681225441251809326642286409798617964700994605356053994426959231548360926891366797525054640328205541162088083863987237237150000442253045058572796868179026035065647451519999092078787849484810020587201686146421384302059327376577976326670757306537891740738705607641976701455964071366615925151410294586479614377329852448109758255431030541261293304902012872587222316412750992271371607752649915074412635808990345447086713241034450596019595519334266773313641186673716543395822031294595996318870102802564207674393082940384052354633108819134754109509414729836057747587197995321005957190686875496114257004036975796865706454724626283180186632015970946211442327931877537900581435413057755748283193987262679640307074281663499705393625776656106817828903235454906654610173643686943826038897062769255629748050726366577525684981969628413161484735214035294325590588627468031010716755497236871931446449044257089826773929381376089421524795207440659032902759136626210249427906727782617569445566739741144239186496600062982893507806242228444361739560537526503697631147782526393552698647557970507150085246146793737670855710601924279143461537328441581969785334020518093694507767469858022315039095645754110003829160502942704996975503915486045986096555099112981486556918493442994035895984562363811092251198502682285309686953444756586383783867897227812969177342330985817242958645410692940727083711149351641604996718911660025196950640136566904274111760182080784253977925708852234717985714500956353797678955037560174724910762291443448525951199017186667125996242070285812863728025752174944892302687594630139481783640405238291595491686315576845012173379428162667296330109754165068419514912947522074296147269787027251642791776385864640191383715472594909936378667625513460212824759994662519016382719791484314236034016130368434662862215242017878536528022659272256589587061838542580225365479063892814273831469664807890127953473249481835217167837842538846457832106913344999282663568282450859795810014328890849974352634924189910502773316405073143916740289663552703103342227246827754144087219832706972763396282528282327849374644721403569077382369209111061824601010626366731570010495678364231700232108388357051848357167370842080269651579883252601697469636599551004864928757936531400408703211998932096162873154207509736257539375728713824109170398663716713369253219519799633753824601351418245027768863923612447578273564548532662371343151418805375354961935616370245838638957857118020337454508031522994201308563981466632298933368303105326900686434923266780755134174100276641890185184289738707621602326423618321573341943741813763525491138654864167327036783893080959417907804339517181062609671409217548450991676540250232209560345818488793777706734204911072317222735451421366355516551384349339907084726996873595041507128326546335065504658007801946850734319530752389800254370385223876710973871608964079769992924799721009689351303417442175785527722889861000051571461110722447671759069944801357494931475013511886191902381842493083550635016948512752032470184492019334486858997717675508779635714758685866507341972264312964585798516330618286760280786210467381145074999565432636132523512759003710117591970197926891796218452258536970680054672146899606070852443944022201426960043410017356648025113092577803033934295228450082023486483173210592385247612400058638115664425096758632110810994358177223394732604667733451952114435801006886089366587046858702556233150961014078514743314877814875893502765243113504355573559406779468253055238884685406872076793614494609087502124369619573348596058666792105673286441031312447524776153763001368259223424351638706966629728879502138954052547572014630773270189367750048820198418860415566465066936748448863012006349181960379474833028536779776595623548841020875837494931113079266209824530497446098423846271982071293446495275236651943525540400510987215119477334136321715397013845075827352524503089532832166215617886416689870938284407790294170920142128169870033394645487810572283612805410171159067074830292045660786832560961913401942438997122452772933239956681654556485079352771485296696681441213224146914382825684263563775307882988481039371263775909566820446163111894116140529464291510083307489677008523897461050390542765907179260467083647264031072564441068840905579949581318782866563772355677331006889507046552996834623627691320212659376999624145753299472923738503105499005421106159209315961309982611401437830079720254451558766954635733811778677591912901864234737586430112227154171128774058510747811880359395202433581768196531931735299789259126551384488978998914536679469428219621792392035416871670339871050495299390014744529730966225032607155162916011752820317553724395631717336155348274762829137302608195210395182521450332303984123553111683557806971666856839248307796873612630694436900327361457177793795718358378511845514923892364242988735405620836167780896334929635196236325298060205781357444807750761035314133441104958378003054131162354196358982211962688349016037066783097098532974082699377034021608356780296897262384533948165648775573384284504837609950563323961121705500649320923247979721030629473177176552769037678732176113680779335851264978585684011049338266396576593382908680584684320120307708750226392062137633916898600915930343150922935877067221368613282772757301238620571544175074769526999908491301512029802142205541396276282166327026357908719922399085065915313881252863735977016087994269839825480260016376081200250820045429300067539819358386300199613079725857714533296143673349681546241751668941926209947258667352622821358710570155904689034225619484896465924576702867603026819899170976406958334780641357905729232666253415702637013291792930854883136518130362147185560314659886782036959370548633423915312520490487657900669997092285524645810640789555195443384614562695121845530776780202098378976626854584597297406537149271927068434766439458978575661983432846145911503671845996009590996988098241900166576100368949315007815406820541342428268444115220294300165935562337916539339786972655539378788160642450710341181696192389259780183002945510597338034292482914772329456123484475938839176414961584582217710178309746757233360265687081489016167353465661076675035353095766297168370755895308123115347266704837011692572779208064792688288104668669535085173208864355434837468416978493881013775714188801692206415418615741570700487925176377194055744743808711230667354687458886292632471896852157624632379352929670626501650215676061274529880266871612379383614378196571653282612863121150593531147958083095754565817728104000426176815231386759413427874876147282916592643613577761972979067377832732104491985839095018756619293913233543601678771803367675532068788965079232920590742782130109873500888498962090716556094992166079780406648078930130834672604554978507727835052392151492196435412554065769284979413807225343160404476837841366770552322059081459318135096492827677063429114229339071416312375983301092190216300563054638520830816235211857303505010725033809765514579433917378769492729781923360685077785567959025697550023167965532435457399741522764865117475383596627115372056021787321933368207797184035700044116452499268888366795190899098658603648453761447452494515205932200799130560355889325130945907068874864413775688389775728434243848092572183331061324855150278491180403228602541452107872545419608896126407966014002566470458948802589773191702634241271772684163808267576387117109232312741236468399860825870717381191990649707970671835519964348284622336051369015948564861173144816855918546025345615096494968242453385922732034517715288781215708627265870584798312237941161295956802891305399406631671670671292482872770723997847395140895175840846846282779625960379781270863498848957441972707482665976646976909097343846532767596496467747371565579145646632229306416325185994490425589523303381777183765644038282127169209957880239496846572908475277796935829422367343834125416116162493137277603431709098476629344087909791555941075142808731659305659773441125269509834340245181507748549804434009715707269664760491417157964996320571148037351642838197818630450649501346882206890960330904612063280115142333090081034852033124069791497482049124718018039268658168763993947851661603524321683414950391960963982596281558014666706138176698749129192981430670317836472298945373552042413290026635433910235012447593175208558812325195379696378671174218195065545192329726369478644146603682688586676541209162829064494943795887835821407078428597317395517409409374146520934111561508088476082642256529516400209414714171999197541822540325595514970269334644925338985441316983011698960796097710372216690492831949534753843945009506640891520969937065343093241178537396803926279478753525059797334050559878422760526366964046031852025313445107077368897555568342741594699536048530047093866502223537080857726073687436399231498208916582078516791630478924408440355161718878582756442601681835438835699273226882195215594385509335535392991044989814991461236441688504257120570668005896686486951211332928799361259708216861657590127629375433985761048405764799622324145724855493936309302559376118404973189637705664714822390526841125029777667665094943851948289258073090196634946606155730718826342190751966088645843222658948188812124490511807753781177078807387802013740355442674088812624804787348266844321994823175780879798755788441667871113605114215822284978392740225300435257640032555658389048717081558969551848787996660356932727580627389218570480499784807736478670053417397139812351645663285721411730519732534513538441237602030482154929885347119751769081491784120503065072431042920761772927118885201613042228948356134045151812587000216473238783271166204092010634896830917842922693571905168712867757979613708896985194291453420787001519570991940622403600195346382498095268378479104505451276755171343536285340719738082385672447371821512915478103021081450074161780507250842728898863380772697820506695468780885658137352678825770398941857792471538491055598666804842693293350859517385338065582933720331109965356262824214335151977682736856350195891580660120634653341000177794707935241260420214895336567333361233811920504688602781791580173555916218458848933373398024612537250751032704335059379895410133721049163894627887585747957405987461790453228006595659962642320662937705810931638061288781278463869149806806306335129230115828356492182044391638538672222839996047452469668328960961455236037409880688495294232011840844358042013333800064248411470229271941433787834231562199318497318295751946836348185644476164293347377748820255491827977021962145834095778783447362619446688489165970238821273123153744905723335775818928426116306658180838070914827153165296134913223525363312569657481364762096148312246012611678970528272257888029606338139659779245821572212354507155251717175284002126284739512007762883307197895187943434340923915370443070901230133629109945504912805445532723053527519367309783422365181515298331549412197163504500971711887711449054897632839827166827207349401941160320582431190503275623993097286258524896295623393450374910522702259668715105888312843294296110440500023078606721065592797661006618302599495775208158028229840451703904104498503396229657297386534800779651514807367488617262471091409983339183310250825543784563801658504646761677353058844061649987728327375018283167723786359892839688727561161796382944974565840682430523478969392934305953847788637395710599092468839839657477989820885268473120671679843578081351524318664197096984056534526765426270673691550045969309020978989311230890630819019889581771576852811379070938689816820881743898317400546340218071070372967503969666308160585613589954600116415668713226691584477337340944067854910217133822262407590974268839069318089250561042873879583215411976020980075763370543356823059931098081052588237307761321600850792790000996293292641290952757241773626118057242444589920877191247362891348135457589425390469727089458309998013440509563588038343563530366894723400365835235185131798660160312067463764189241118388708777337708986416006662768728374287863051446520038340370441901450486079842763844534994757646976539462322336553139921794670058954401550649523318854299330565052785095410896639576101645250889282086789669753025369843692274768902451639174404167516279369672441525892407467364548607506888605004629075119648826160293658619948321049943377349441395268930228380047398504594021296699017710281482267134836141106396842930219689567630290072667795015810238897905657642365138451286311646699285482331845481213632328864718493601812987315402724286078155244073671249472180400822432928560617977132817841092015778069194074755394103333054097368801309375781541609550332310074419281017060097038913014436205833463520512750858823962727331150637448340899762102160626922506968769609169004991768714547027843367168835382983623434321012828086906748936673332678552131094556774832083350546627802093232339571210012654350508504386554817581627456600529399614755271079235481331771078175330169070220300551870785525979977071664395192621543353299384658426506140503735042559485446595249527309059164003079166057614492548158532863874337995115515335687161465963234180131926218819925042343443094467508460017365320085776361126328443594840599058993641589904553406938930020299185971469101149563337774077208752144270909934069042663878778807317422242287564563386788145422441275809428211654718548816440841678027051018472356875304614182603552669351599610375710962424600578236157349872817491731117154378737720428839495278751778442488125965080038181665762016782601183373922098868171241124801332181605876490176978544073562127141335212533565708785670811371818551535361552979721258180401637063221844194073208388271212407808311609260186082365078009348843343294822114509839981102417077151210719502644274314526935096157710126187907837659087276086347923800685964407065334844888966567505343668020500824536590584232662479374586746543919105570011434187500541150626856228856833603723735657657889902275942427374013191669452097538518800188767700891421294575260758189498075717290671319871100166589562489783393914494785028544733409451427644445031702198429130744429930604550959892791628000994987423271666416547943916125141525460875194722302662031162942745240418376131496256611528425335541481927893728962790712735566335433520686064095058773376459677096517166322330939655868371038759689739838275715213464926628183798338286498438791838983980052712854254821809172629311006108346899021842140430409170596123371564648562939912032949266248016932020232552738256736380607205079402656905892104057282894545171575366558680900541193307231329707488465083087955193616962685962739467194545325410905766245683549354109704896577094784952479327402499104051836058836012922875724465122575369077750248257626175165798171823101230519684319864934858176309106907469614150750589848649694471200846514351547469686034659355833431667516874955305577831072598005602469167818894146013360561981067737847712715452592314585530719157677517770587252400184032631496675978967975113746071301630556363046985610125097925045489877036121424982640855369326405448722410017623297154877242890737415031116859351980999142466940492671735605974516816254066260966224928182827576937313776430571168025730464897635870873331761230567048491002820573365244797040766526738029097228708195401721340176677493911726296764118587127801260886742637538691391175520065800289390283651633216817698774771208818242635467247850917932635685831525931458581620064525488388894809589652393508902388875412204373800330986525152687183226428705120015426659172201906922539779185949850091888679580929258332919738863822377387022652826022373461134036045762439637441109941987126830372804129747181809986526671664826202873712484859328448643299752196099891608538950839434166453792551363244862648544006798626996583513681397016288153638634635191006290675434874148197967385991893911053011628057994754984314149927416732413364170723371413956575451582064865163144362490312401337826894086344317584834882794880452221658993363532816528854889469258910918824839832428462594722469869501740962842926939817805756554147825073043751406111239518489977819176788275101698798474977159340812431655979320437251656024856012488172510207971070365803145389922534173459209708908246051663741685491425354142851691816941729121255523025606491083744171137643531535360961727160203450719404433089868181144534508372978731636556525709343084017196593007189229427254695380385201917573769966487074493720743603522416009632329197164795105176017606471597197658999319445373264916410058208395069184775773070886891979208366460166048164710462105475565810238805523511027479968556478412028956910235920986984584667668397740465090970141796320571980307757327188122573847549245633005764498953592989209156414689754393965014792226114131827971696200592398538819124777864466658764298272654657622892920850888430413499340688176870282410711648503429910670011689027837445403808817348977700599068956125687748711326467703013313057626155946560032504459951310959174508821130225618994729663630665548221892459041161798261428867029528747697193757138411009222314242191254062428468704219995445692080480358510415327769621495848147472155140750352484499289717772384821522552117175931923872831975310794130648771026093675031335329460819555392225846787160606549303171434386357814565522128623834938086911299260693935925791319408821424836812841122390402880649562993914970250374764912288903871895048526464608397544503207149847139281596227908616346233303536759272984584261715978033181436833752020168755559543927985710392079071897374039460430581117408249357409927763386629435340050566184588216761499718666506290495783146922572347829217014295472016753381294233487768092338305990842483406041293541614017698574589203982311993372376245347215375213970372055336718855064714103740392727346731147856405080747051258788448838539562012472212603757855237473325167453064034312079062749427637609096891346895248942875218073973708780167367580712650092234709667724045917242310318054716838970670049887873151136454712806251010416948628598802129629304510461498653303828577633542391205482524310327771227718981914049078999887311198093284403568902861439932959427211289467596645920988357085024927456996044257694608374345688514867383745652709963521135058041624376611603577072101119647209559762233283296077041865989495206917597670794456226209001275502679857252819674397108708947535063623113259641141797536374258207361437389622550352992553023444204754861667700356372141307656772118206925195083110374563929178734540493676886452347090728529099459569954484679632666077923460183920613143547743920945194019764339591902335930572090764859172243860177449773068512531001035593840892118519262070733699233760284074422746033856127147763027881978244157499816520796861382995027159342121191032744723789788762308211218260248250391677060744661618368603063467708461307603439404048296500900650313535538119588798465328311807227247963108530261050840322433268141258793525170969026183305508160106099060580321086184687598164745557685575787408204709674423477029148912242006875591034422472730953546027650717462860818278016816831833374247236307462205671583401167788236760332612350720884410171905018325872674769228144609008139278133558369843810251955523105697106859100942673732033610207295395186884602856816690727110306204616463965202731308115399968183489400209739744074924942768808246479044588257131558432609125001816903945367880130340488753226493810083444219649287381156801559914515822595995511955736368402142197919223343987423528318142603775005186530762936410351083025258286153112930886898720271118951123665501727262094768604705499652956994168105097281641055582396309275095099406900221639226816521881589860395161181680267835911223278471075377139293457179712708037445969024450850308944010096426393413362905314444250409249417551383630816301611601135738532489542350061750046051988596929273687794040191903562151380969140478640109999861094689367094832950651551593255426216240285740814318658846406422206043916462831116273608699866729510717593744332584468732289400197021174539451957355090284616594940852033943261609686019733503954304156385744022633580784269635599342551715626606513887450357356432607110365888535743778707624595827606130149707739676879308398488488132868342353119857621224612403538409188917431758910523158157400225831216225097401510007666564332115421990290628929203183410229819534275207431848665567632751284579062646363303389090826523151720375745472647332679060442449146450514654668268100703861484227107091527358184194089891524977016951520867286268956441659907280402672653895732871512673757007787878900301735706375707539331420810118527144351763467856354599092383782032465650213295097106643935459872782175238293213841359819022346201398791335901948095360491750035673809994478586856699066594437647105097926934982567155002761531072395783369896874664535703396184508623284450694664383869423988594500736482113170341946768370041487057005818892307537221425660303316009542688276854792315057010219953463925554109719400978014613780479757826001540275908861389147081112514577474766065396344814234295357570966711768286487956682222688026905069037634946632691231921289412786656334148246539632539192053011548024537630954519953180312768066651628383590928179215309876214259107401704854366001778183687257801240687412570288810803020744111839774356643751819354101226974546215080105762932049182133068879906125001646592332822215644343284423571028107515537292370493979542063935775251935693941525980135518054800803671179308254407733805896259753393214796914487210744716566062057533676855926016857851895509956353735285836498289732506697062421018557449162001533278389626199478032131957116655692957314836991764636840835147298185450300285384049085956766091079863244890402062682316208860222334425022689619958845383605413177536680900707282036546492357352364794623097122472210950138423935059674819732381772779090092359116174761054055954333740607969399332979397719174920445564945361127654065753927927779481212540164979012701518705588423128345405547203279050749754436014833141463594531142590773343677533649827398575553065588189801259133073337320222451965841031983796093184782258719913670278527960336764767069235615500104645945886979534076875528576255261708888698899675509184502788089611153598879031859353089845365506975088328294702110306803959127974326055366289994801488527879089775329300077374022925865932784450093932917993395192828249068838384115440489505029772013228737963274143606374751107094138486646001596222832911428515116302163250034490092878977520492827859412570049491718576043541478453725278381415168972717108942512542933437449073086359626548187620674547865127018613426441199451280873359691580423526694958761536844485483272317423581232006731958208921374728645659192672972373308557166748115258182790278954514177472502458561517926106299143839835659891391954602175865519035733292351975011801891191808829985076685527632469594057479059924619999216190023859047541263567210513820546561995958712137538152897261095320036040914678999382899649960399244497892201102185545593330081147719432368811502057580868425900537548041044447761161812014015806394964411678364132559132033008262735474787885309839843546406064000965819310035814474394911643225107298286974747090144997036921537276255327593985912024756243655217659063139343585586713501603972050001619012633013066934391671583032404867084139686111582716722866905475020082934762696654798331053166564773745034985898803508933058351613265613886776512673910149265075154246535626687720583655721559307334858739689514931470335404025119391896314655326100187575052435521416833532935637074147453740803402781816002490230504398122907640280590085223324793197649851734677672817122763987780272421798747601037225272804642911015025912177567533741484385146141714175086181031537909644616055568957644018583144767374706523236466774515478723951073364270515515512151742551875816030308702838350583455460772967649614273794433950001250217964243761138165786919206270406878491105630405935429820267258769610882282558548304374447647697413568978672725385531396624280865168384009830559977786583728900301013083463070750715017481717069164102186901452132848042570515881495915397658808241975580076482289900937688871716756039981950118680416848734011557940186110447205575484663845322987746087849062522392620426211254268558920882502900340152210520812996723327924087499788773500818228574962701662537794829860232326960991137732577104764592832393371060739276543958561361787541450674222502378122313003601068351510586059506146517321762312942330801942391418322736016205553957942702240277726338442764590447797922184530297614702993892762240824923486111406009397131156021261293474592509272107522210925512712548018076118500035986149713414186157427189081007424494467887854698656981608444395714130053639258444302743673593991338036091824121175786350773779438222671415975841933752938236205645481527223001370144864778793355541480252373342206523276743565574139445551835000531080287183616616466463719449243025170225230182900103246024616823869706164007185949745672475373061275099738836728451261596963074165492137508487413217624953191733219018860721190272693758338903167397758568679791107891473021097504611810821597851955361322332587047263047138777209335594891264998745717569779066635417621414433779450288305824513438246447519039905595239005629777131200373537196281056249140384851193134577581823683453826549555840508860733755287554531191892129569086406196369755759042411131192699047760370666307655797408897170825861186827466108514878550137624729386491938156903951933571782517624110198318403539164479409142868706017089017173040420646783642455263356477672797443646875648931048169253477765196857810095162028633144354451096570555876161625789975916073115500492739065763234581589878220070437173022315402479455562847625036451578543110966037608014077234040902965976715425488696951660161250936435007137244639778702452576541795864496299969649432802367581216095813363272284170563475333283817625193911057656906593986827200523546116236412988504196751653145195164780558067820464030484217561624870593592703170773885169304786334936869464089324249575412057546581618272280177462168881002970221453242386793435877639008321837649947373312362874715842302631223580368137961232711527740827173048700467097810879172015334492237165364647306613965661985819079942675760084223581425418272396093235320410247968398921052725791165936240721555151902938897382315473596790168017046981126991487348438682928397468401491043292862828307614515401891746726953455840188710070706769373509600158240411966306214543235970681973112972389947028469429585554230665856827561210097509109536579114007659020971039169549891209665757015005078541215137352116552512801989675225405953282341735091963192267993608867181814513530018746778047147063863358522705399043171576781987213926239063219514398760211369172689041214670861396367768960299007772306141322681894271155554758918950779677934489073357924937194529653673519883149379275783176391840122037425087107605889652536801479256284976776129163424220923315420242253962369579252925264684262381867321977748835408583961729790965573709327129086433665137037538716707235279016851122533283030457042250695524126039691162649755070259908838463722414127529836441148788892316535035096632978027102158055544439975506374109884061044346470034941540765522608428962676144772456584117702848570889321007705018862658410493607014951841342105134164493085262613954822867240985029586097777846791399859027125267588884847425748485517987498767145532384890783750497006695119884755814753308695517589109957352043797966676910708873025065600306188998081840798344707190971552980001490501640275111678160347584421417054325933898960205158318214707458340867085677740898089776032695473963234010960283679144498838793795610778331645692129028456075728287014901845917525158312981639718426985299781054025007144542122743268123964740731481861174654822514663151707705183682452279146983023921953286986287085340675963220539025025277473737377167206508096504412123630686577258107948928356644557158805283882717375083701001264662122230749404679216375348732356235944782020824278859796502184262089953800734304659291212063386126042114941522555094405209449179267260066100109745087770461083655205929729563292421385488206082975871315981188493572288579741156186509780222057564584567457802314672959122668403681046448163687998632436892936322928775407278201670243615369231711071743355743257977947956621355261300550562139091831723328792272509353684684517268636478327290919964822633932579704177552682800823807964666481484823149756339214652279012476669583187084055200356500685480344475989287918929844114194934581910764813020858337461371284442104264799758998753602555869011368865766139316664093381527823864045943425587656175325983610095372198011417175389475716948099161060133068583217034727990623075548562099405179937018869703288694493884664137910321714825417026918340106474964423451392099886907397920566738837162010856806410522029002382691136735912926778891954489860789625354916364343915623946051230919091616362923430766914941595873470433929922337313046866367940750561892092587081196128215512072905969008635295477494553360961604171856963483052424369444385651424358063279663174290144458903560168044096196065029252761319574815345301649745471679031963814967636438680270929506606610551359399331535159504239880147154343301791864246526745683885188594438488992138826609445180535799541464719937020641796999380499465287150602494442961871446414179155226455357028842180645994745742082467683292838305937312561412089888093131096299853783211079080529354386783500783161289530123688614384601003406108311111364876995258552772771692605428629290655668908918187261308917337668330572722754767788056811501555497281003665366486137229225486304280937972648050431540193619546284656899251841636450236973397490264524973706839240574483076321715368956052076885800011463404165067065539365132941047893228459319748120975186021717985735169432494188735907286678954004998412428460695854860913770432953587079845475868453728065109753217027719182532579035530789951060014224797243246880778073429600850352096465584041443157945538748919447735715783200378214907905848318437262251701108451128170455427495167186708716255445882429040803067813524743934763948227506356565006191602377932626429519835793480758169060141644518613072696058305054642154912814705603850810013581994542736682927411500087799304985947494993586923728190811336256743507958824948455230572805804929411854609590595519712684020330354943498200385120610875041235157231740185719153545534215719175128796064164239627608222224133676041262130904692824679730563500575214761248795594327734364879820726577614086579240782196606416412457922560010291809113307783944486256525999746712983981461680460081862352446486471739974513249867524553236029162994803279026652940934476902946688803930285658350960146140084812665492215105644902222995596779294805048886104089085267929214248957254410044049752837900479009604465909283407268230263174133725280538666447960427360440764591119951624771679474152311495391923601150854816283518900920853148636031492618864331103378615783116340112922702091662916411614499740959329929369493465092639622971652242941796314781110835629266632927198269686572261408602996812966233655857274047446565391965821754128043792131608747207513450511769042588385640338168741336318546117434544743491577008603708914724700971412916385613795667492338490553237369932103853540658445236062654882465902422577426170620036061866737038755363550011201753459090067746432048746435491604041065388678187249932969220711510035293743240409070825218460933378954979086263580562610846540199881775497581836809851181632746259105463710744476771087258471279894346599895523124001590494726912293826374433009459312835437985441323898177308866179136753937262778030261130606976379449841252703776144212053924548391793337398725380321736198493853151269199751160703764495624659686461402866593208222866037392568227722096884842070318593073066501715056421735836835300301487124040258152120534805823742645253688822393790950437545870766347072780642544004492424698953723224424115087562147332191434030977239718795646623646692095637048709258079930390961597521643280791666589724477626068537465059121689147114249625419387722558309717288073090121302571616700639912966006028336458780273739819333062799572519983443030728336576986425795329322144451825620985436184232484788755734425114844064765690672875466050051159941508399313760421127059009356050902798440927607998104357084467072926388879357602967799230730835419239703757886065180431938483736741323126980756939013917161037642376077783813322951305847584131081666720146150038725694809608658934311110417371708137298950528145207799882876899880972395601115770643814919093410981836360655336999876462462748246514139171737871949352393153526919531052233645156752261791235719024441989030315332798038663617868156960268512112195637898811702636157384295214338192280557032109114946490081512659349795019299226973862062463963088781685174324691622666128149911110523459984194755874615522770556244727160796840294050852771793523791132823934707808232556697721243175213286994924448095873511696448708156767714259687004881277213538360721973165824204667216987413520245427809296968200837805693943141555432985501243235281715524046868244993377190667299699317079359132715737450682954881011861018574718659341411484929336713708842890333478994674782819723550149817298947511537255162263407469261705610035221284659886695248208621869825566705922528866640721536271147759420964573844038275771202817297368847468576589743953586808873902716742628270625183940615878624931492742550597498092904937159617267945512791391176314068422069439856671526993088975192252529838002406606698951038146614529933979556792829814899464410389662682095930593328511136934210574731281415869275550907385393010906590937478219061559565992323060666079752892224351674050154977823146545273993241265682547755303446800011546031355680829906018293908686530626614747690283514301254277748583931303430347075425814716324933522082306450284280565632086450104876315466353151158954201236332332914784935127708852315618168895969906241475858052375255489795176505629125992593415984911749076318148877456631983335158671882144743699709183234063038532709961009639411906013983678087654035676539783222670229621252970735522879269244725174644112847015974934772906849713918734422744743018283832150190631757229542363915861308212880953310450377356175738380693997354164830394574522879109030609242880560066143374094693687420866693073376924441751231125027393415572889113424277534840894200350948901543486107593042382020771467569396475416665636488323811534785444623870518331594663530654174046191742653669215244056494884587563554317525220689117653152234595191603729042416605501380566290200724611549270100042714204733262599784575382659184132661064947933298327076954232972787366507281042398424177663263843543201951355908180968380173595903996461213414157133624224439077965069163872520060236209665943420631084916189494294789709821964268129809309865511819933760076077496688104035321255024570132839493737751052242109789077553652405510479320046918463477560837373954174758174692197224229912261552462877398805870835124048126343509360914522094907840881892683392229631174841587205888653756449123167318892804748865517681467686884973987769378486044220898158373384916688119320875922504163864735379674947473397997803294134237358294884976341930025406683321265929707228434094586116391124789314747964601122345604649577496293967459150427026820066227715463258420477330734534786558816337340167125384838981318508100003220790014654832909107024700348328365264207481312022351073473505416217786993490330399771830531699796881139214413523277949804563978627649329423588751276391667247567013861563047968803011786202771261788784967363963066261048860482659167804892736099278077000359522063944645578609874583959454308003908486483771037973318677304718611014282277975600457401603911127154574685774498597097004692981525129559837999992319487568961693734792471345503853235123651540420120021381865437188701722742466013049718969034152932489201432703074377711523991976181453080938970396835784764643628777329076086322368017352072312758459570278348532322012961647327215409590483556505493274102944117247813141277111744121687236806499441773642811390163966447246933737254669267967602079459031221553800746834758972826908253438715851383556606302558448428434617087770935733098301565295747852876778851730288117663903350492532377509355250607407191044902507939753155126338565413751546937455087830710425461064401880916763944557938794657263481677633774644792757846563896562057957221577094491291454723974375748563660313412610903697546341152128145356778848062999397361648498690487943247928097255419620034699989827958194590188756503242250619676249573104376962768597662149158011530701165533926756354451745223418305456729446783957217317001303949860437378407383685999822473928163983823127286699779784491871781363925107469484771656014870444797340722046398664070652772460820808289855645745334801219757256833769705963084407426716644366141854990145657892724066162611744944041834302746771741354483893392076987252168199832445202314093914617119391955838491001403910381607248858451329475816148196473004525108778431388682463887409717660962189936066537437883258808579680044740178008949377527269849039776948005299932636327155359314617837594664908414951297188781806634411144315150853085668278429812966531746314005575444631767288209713315294456137094721327593645128610665158624115227575021728874416315591265696352321103057123776607226656138146917358790002167051467281262764669598887089339810682960948736126852852201859571518735098194049085680375573854754914617231698133889639242553004018841234375313873840773905878304346478132852804788754948047723269162335406622234233937839031584596194563473183450936176524236822213604720847165377246717421212704865575763869755202160921377458179950987630820831904630540892266878859268962140014995457935361073602565296630037922417073648488875790740931483308862085137251048397293994551788069723168876175102880009138899211965242688238595930025627237520609248207613496234538773006560764696722820643450632291854458980346925894727792666488071880692486255698665278843272951817519735183543848030089349529231918571559083626690212341297311175196236692732311604153409514122250152406046582520400144373615100234615161085853673691053765288866327591698338311592772769179326944966134322706078089766446686793182405592520118749098830460149317004780485128006018939421462613262470457619537189609970523229848697704956639105923063599989915138383412752276007888286112149103369313250637765171459858143444681512672928530174219565261584845508895586172228572903137221932270919502569995308805955730163029061389836128159601641923604295540011029755349636252061041958446673169102762022185278306076567275115921926915597013888941444729531922070834277912254478301172568903383448671638191216664260527232135316673678677380782716645479758741169844818831599115058252901549136431695102801176199181409666082432928969962889019015865182523974151294051367229087076872432847631544190060494726811661540756373712529504570625082043536753430606757843156819077002316721475080731330493191921395524239826967570952017715858415365652618403410598342878691139043190897573641053760424976678746192861669900206935795614837878446829032571223970321012151996331282199993218464370055766878216371766544031626163973883767032822325548089784979270776339885324968719884247751724324113281208325870978201904300967220006245410956352675866631245569828641188966084814997439935700039304313472467085896428098972639081095621915673099499236436818245366112157516910140850153152576772404629281495545956984207157308923925304430976514389237165346777261758130421214221827382006573397789971198609255440227523395765806608750629784468631889407205420093383080237237171276855231507889116666338039744182519849723471316081558991278599929284453509015191313788871377397225933513015090585724121880580683061860136642932155897652815363233845925742446475599188232762659033538678717994701372886336194462251413651783956424626833666099048932143627999286961946336405707000111962652645431188247943463506263661356873109266836536427490520308413661674007462832432976552092300975452684654902763891548078818048627393556452762761455252777092486385591712569903806119787850293642402135249433607838374581415275704628998236523846267194425445941116845878379449177866771604400658688853701951113526617799130558196843868039339108872275636259735512607495498051778183043180066412374414284283440293867695379513117472124886399584970585723806052751848897579841225537216471923624206112615396262731582668822390537485556085543291387452812426012039837242334791856100902882886797459908903507263063573542517739802060788956317130535411983379660900771094118302416988403227316312179010794229197063496276730012201750227086323507201849894608246665956709620322059305594229765555199481080416760756334863937206526149525260790471942990956208593613005092073189883800653257662799714311728734926667262186538055280775770289830210931677230236406856255060733027877712508963085059548100904833181678763759478348272499973157544960480432169628669508813946715370627871994855812073270425957428674381642485506138667984080484935326944785391942458580641099861583716828252484853968180181732381195866809739994810713982953296411913105534808663553271446664324837260832858113475626891583369528108736425358414946038486915622761014981576140874046974626778058879012115638152069375650993071472871482409943514352551634275738533193280732488268655039586465281547866759040525949397982123577019243928710148045404299957082456736766266188367316149197375192829924160913402512331759325697244363441468903945744392401918570757635526962243112520124337868348505119897506315101967362848665571227139560154640049627616196828351570909406096966518028252855620781995205143571013794106474231910122853840113129810678400586750109406546071819275968742734626982224737825523512908957144561366602717713517411052061293122886316725612945343838768937526525878877984292488886557646864716788910383853285486268572359920616038245799610831585948268700439397887317986262947567097582376697147848784137532385667815222787778461352239737941028321683270991050909347006241683280930940814014113908730286680497028767178574485125367179981366536127452607204253283698599571524050418535225947373654902682005208216630774146472381412826091683579873644803715718020015787822547617253072467472355226284626695249797783794745421086872001071466491409968194372637324889225201768281351522404226810066255327331552906536094148028622183676321462020160466306274893595404960235081206224142913788969215117909488127933685545131034629433524123540421002744105447134322034786343855524125046299741640691174583374290955289142023261238605028471372754344542200918092044927145510421317130975861757855942400688322962814261812572211540830434185348948917876483746495817660480647767147820435314766716202538487646436691640574517557815771813034102828470291579925757984639975889990438161007617840225422187920334664328784354119075650611023577753006519115497382400651548656407442822969075821621733839859783307540814784918968721073389876620639559034092509764660332366338133597426735196183794735518510707761355497520728815981519868718154499055505117587216563510315370370132300163719594761503295040946975944198083298838272610102654426566228788160003525725677184814219693463825455847555034217958562721085185930832104477854190900862676471749481483490968062132913460908065306526401595041238102778397130487877296045691227955414611215395384134869430863911739114036584423159258081878622026257677747635355001432320358630946377860781332014837371180300053412428562435875703292113194253996807700705012046666279977494493769365477743605779020156749065773605890635266833878281671665360827870705425902045511699308703911419518449668564690570127059864158908284226718517684641302054680521429696901867492964823209018269965568931440656590549879475305069323553919704935879337656395341491805548379007943465758282018964506976456712048981328631707412478299530942739027419719509177513011214493831251324093532122193283260978574078445248271174227624734183459627426329973863890720816301050942142337339644612745807293067656779499270948389045390640732592657541813423563004707790209384131479299663254616546536026125848476780929927326452210905046806750700391902642591364069511780964933552645371975711190237570650858069441279550443602575276661588966814659429309114597520240785378706596253155818654829466104716552242877783728854282933397385981399540048395951730460621126632545004496132985499030733386170813454888155867256376152530688693370697435793940647453355334950710594752169839604311591043395114203354492727270163588437579731652611609047061476814592569791666898568238241332982131157628884343473302479946059300890036057237293418532501521001582538784661115052011592325711902375668850217162714107650316761009174023793438110961102102696928568490926638881292771227290569313729996641407342454341526817327855197409059977335310721542798340699145380450629903519353945180013246807394843041131549031296704555458156040597408463849473725297828420682673196095619299030989390544073745148999331223050443893009221842200216556330174558022056680460234656378044798535595662988726659173090629089534066101334086241663249918774041802729236554374076459142479974906758071182387303578777022465906646658442675028125217526010933741085533260408991231165286556478793040317008319154909899669179212670515369833042560420138426758232558094430043211476829339568276330106175723805571447877991418854604570531664113917721363098647126044704421853595130686138271180266268350491108975209716263421202216104583233146787310247545762425517894898427873271652643904553049425925054495672540705124227611098650875424312879158334469633501505429807040726139254108318345334020629329719431600311121057302791372306772392000334231403971530574388558750006500388465586048718963242237887984636168557554156457047246710338035084135916210464827326320129560112873066464649680288102764326470607960521547819458234359013769908338161377947470415531552639475284075325325387627631773223009631078592324875627232191899765784778626058753383723056461875351157982677633479036245476661478366553857429781183230964011064997748065120826469099112265357250318507911437350260013103719594375232166605099430027188934433719713412471893320520343496191790403411269689060171265445082483911390780771269876864518592432438323251046871617242943624460677191586327019356440657693182641197468957339398977580017373588810979644279704235193662117864403387760432267581274846113680938101878355020407527908091273047994457689495606489506885355839971360396093433299359333109212969936195338588955943263335542353261341583351391750640412737531669215962056836316211928041835530304287578418758133701740198900125084141857430216315590893769058072383228546121618441479231893543211989708705940855329584298930785038457032291222643505229127262679015493536193682853854050585017582643455793613200626592023617957216027046364568988805785369973797386576033624492324275682877788540954218862542894785636195835017400421994915164332521409837152225135592035113969718029198720385170039101062552152699960453836854679441521415118076122230102307450535402771431356502908063021461863579976645883766577686999820943392508440718783506757970483243096561515572741865110357457075919860196868517016045608455680749780709383337282424697380674587786800882925557936730469720161222690827560103413800019558043870316327133867464818153637360996323924812000098470575011269073527720151287894345551694029729162840763083149009684689331741163345688137326137977518004639934082916509294545829843112118395715732759677987388981090713001955335587551963865099629642861454681434720007195850464061096192782951352700143697203973751536756323723142673506800565846285197955170094006280201179612203841926801021002927909504325908583769220491692892665754998900002819790752913946384358284391281329084155815942463434456991913817089471229320622246004224647158224197100951781183833935912283272304603657368548464659809312021457907567509352290669054563645635646532926915030411282096822893666027038842231568369364482450410058074329471763963206384071092737107617238172366361090193914688046520422035202988105358376361241219777394511340931612959390511539594750549832599083248319750904239938369878478770946895884512414846986386460296502299298285084708569444211077452557101904743800180436537083019287615506857882149583211301817192911182375856160874530814548430989600769733836342556878004734926869993601666477817071724642968501799386603310159542998933135767634195977200678762009248083765552206228788286301401614785525385621715405647931201371556145332887235888546644946292120565276860824406382695342254807014828681263515427643919709505702211200127527993997095748550844602237767278628026760183165127875580084894852610015630843872848583313656336694401426693395047311000977932478183111565368794751144817963038143905662951320285349140099200177667308765562454871269639409617477654799067868693991815864208738426975015224210467710386214598228339355714683715594123971142401243096121619172851983288698175740904057664545821022662097298490260038024974175156915869694999190726788521096485770748924847214882140028600322851814936489442439509955458047526067012283139780937549032161857386066958127672073953569600487780904909542953951258278962467357795030913990667547087754483554355975282107268864009560486423762303567431465728320699001216752655925651059740931534431355793245163766092092314646519425665330697723501021922557216403509128842831307005725893784605680463035550860684459147602827276230723586980644852404698984770113134865275724905892005074050856398974061492491761067927224227423410583510742218167695488739742571593629659550199014059042201321244584035317408023154094888747783779993780446979387539692621701876413859010871380625755101532507370334341528440330183347244335740994447448085990557707769685132375447172773893056126402899564081677580048890437198655805628932303573711551121292652328063961340266461745414407020307586869900127625491675049810145907750883568106283345474262710106372430903359150696623825512981527015198535225348493248377396277790126026729485197846350631279860862137238107174813326482031649912599582770192224115286884355953195031594455857702322538755794423426621782660885761123323237742593675064720625102614372531330318662783973678025826452785092344386989725307021978619675591128618881308702114736942847778369660954806027517039622913097885200476151115833447460849774787614322501131455020219299215370883548510364675280954457862364124767290848700863493158313722383037112074506556890775030478905480875355234118039638409860021546803422826717880123722423936311762483866613063113589790331056603285543190754799115762999048265232288218509221320437724942035045269385288209630050717815743258458152654864125999254357492573170105511139080335689120618322225828238692796236996461832788236305506341375167377288585556894783960172950359098774831831716336981736257767320083273286167028307439124857018623005435179294506654745325966660819475614412900872654503768723269183772678181709867494101122030606306130039782808021450746882157349430123640872461619893704741420446930485974230834721117879129869864682690513747721698265898895239413573713064762474635255751526205253927080158370304927482989697492651541155140945855011210011491150761945271289657706894121466668252099937160835729930556545113636511064199055991776393402712168413831245201499830423951650237014024338487043871298012461836585327365401926687757335514533172534891255849474330828100255766247296710952115409657260555525583055392274337210812443032278917115339232589974092650571048369845588455401431640071384250359127532248616948920095539569475653338301214967249012055801087089205146675212044982403970036396542207547037533819469591502770196834810398356168133761797331401748643376047312920281702310633117070239957153868498332473855302247997330174544633097724922370522925509197321290219075013038544338037901903697156215675579577829583592919140679832102733475165475724965927539633523858982728035778620078932463382312329263659288117800973319968641789500926457814592437994876395023478044791817233642512567796279365588817220362856155281529231839624196607991161724615831614860282138157958390930544661623080667344054832619935660513345770409154568404351569399728017548488063132719845897908149558328994290144302037044403027695661219516950531750794252304302288037500589627365181596186509665022749607358955526997476385742301921081839595177242723449656202832133275775445914654383403496131503897077150497597786973972247344260710372765907640425550015116041540609212684581206252940310272352627105406126034217643066282324613244202585649216609295802438666226504867471141547772164647242112224136894156408841300309645493409550814673436087598358603981564102813270390042634511303743429957366015606559987234405520716144945767706407666789335539044886633230314476508597637638184938666798267356098897350409927756297478133783464841424522359862079591909809072803881672825858926803695951691400854976302909524678214646924689837084601140481522863693890531622575585270211038043845692171835622164641692022118278572373186269735848440856239884975069340012849762661151166796496307129944380477993208636689915048622151801643736897333838679775397380499839871562203292916467301678213735430383376897593303851294718094621124947081314256857865954992711409080415314509450183980339923531090463142866668847907345721668142198827914838905386455823921034743872072766243138742622060356521728744288150866527926015062941142964858577458388135856845289392161126477379195208619537949608865665564314699464763163675922906878044959505788616370388289823581885416181334572970141687721270582894029720246483402087750103527615597837742173307290509177893949069042115002931439935043387211186233599438431855447899967660752846311102256328388762347104867825512939638451124920167564641386429014134583494346069863094215890488028098612488860526574336339103341060343520239658131514513855658910549177947686848897394658486886610710969821102148808672125235800003291042950386381163297303052685813198858601316251055782959627335584615948371078589579231624396647032499959871930989606696349700966653636075069877649984960920222501404730186781268809122906303184616232621802611354750800858338597983298624083873890385729239531709576089644088512975962834315667110053873877112821833277536641422375619623334870350480578915749417680562634057124087074967754897535309874267355928128249145706937980956729202545239502753380513719720099919001701229383622817111414791617041324463762626366153053079352538952367958880518187856168940919300872273066920110999389810191844803222023696681270348803963471969000397936148323520183545431509819757594832850136953380371266501824461086197279336900831609161872677205064687041808051861215821533804147950669998942955795731155085155378655621635493143388263513064798332699314063318126326959839021380952780638401128108697404908799157135737046962498672440381417004998091573886269311466723507690285456212286368966577232604546401234684348626014639538622133575621310685908110243272921738141576321049434637956331070605458472186165097541895739324938801877467536059795936643764910289817699790912095781129293213781427744225197889166642254650956888287355472963628536549892116244467502021194951637740704144317973097842610633471793950601686291097283983553460216799096376656711028551068906750357626949171478810558330730009951880288644032378926888489717375736396084996879880835324134581149558875030408337246860111300864900718914807956831486894921699346959587321917067206856767917979357486007519895994490728555145332735690041043242571886668282045224226602359414980825191861616959611439472831561974896932972757442610657796791158619004569709853260714679890048631132289040793125540327063242587294817146038473213265512387876748890151125528385222324281349487785186692438521308347865149540611071428764903905514864831866923498113612489638770162700197521492136744207283512669901084499704055018351160134298436366858315399998389590551367926182471675666503533006712675102543960061165154180553784186019241398007289667222189918518221941312851625437458898962456212278896124091867036149821625315282671249116998464545971235353358352861331992237110803872554592149185688191232120447993124196045965987496281650017856244140920130095812637745867739660587858687253048326654232375570206639299531839090149453617392989874669771021369287234632860071036342441595749160344681802478598874265783871331921764108499967233088878723773517635066686593083265124087246144550797770354036729521804944326478766602474899287074021243783358440705502923217031372266702403331900675673107108044454803826395436379937759879100796205310843691819469653638814984361821887242217419503491746073564058501927965004672916294777751103952173389481404513404781642489906982270266762913036226988725844609404240930834753123494801035594574899390578856849390703314900913703073986892743676170618419366557338328966508729364356928723872669754159317345504639730658081293337603147300949336213276212586344967799686338652383400549292143797399411914787022219258379033407322360378996196085697551633051422754064537637629677996603958604086640449640449001877634634248444437428597056056467406060203769741961508290983450042227698366144664395443259083307782333261931310466574571340374528046417333115269887361818666060538768842975776127666868882660982337226077903029749207682902465960906408152266443642113801278908760289273611230448401010960874788405493796722453265246315584200460393943246148426195799410013308909416603331578019985675297252756846154949246070194622235173376879203517536633675568667463697691608286830249644852618185475916929074150719754480268266051555180487252839163212808644054700369233729837727153055463518622435137774709776639541051343717489492745604124903721804693252457916940783644018769065095669900894772880906025320628446775183272184793085464590315934323265999067601094905343529959412658458171769972188131104102048938757887671788501301505895436287436880952029508726867864410160601244235438477656004940470190421552696579837646007546478161323886967558574759603631585464308878797636461096421935023967149780162776660822594413847456603645806261493724847939874096187288587871352809144810208601824565268236944330348952139673432210070132141541008468623491631961131786921935675992979051408691414340820984453665362692728033312730498868364151085571322246739579802117573895037441293824218519048469236633551520644470192251675885894488997067471136301467828287699006796879111999937478527885724656778599601460320286896816023424337734650418363708378083304047574293980501407097077953058139417245649214085904186269220116351409722174997504322039493726496619645899908192577067042553228885477396545953109690402467122620518118346191759493408816142448493296740665461983622588011391087383372074719642791411624655906369978150323161696077113962563329696463891949824546598017856970447961666932373319455853259206203508834966498615230322285182701768851818780814394266815685615971896309376489652127463160733735352880285523214761653648852090498922249853415654206352787021250283177805760845860069561198422943095600806911580479576438269763934057452272931024117563577523166597951126916313783636634359943652650319246717079656794957408516370023900972581540439404096355753858085775757500468392268908848782158389905030628216987378336788902160895083918809857423407440949157370280700485624042275405162948462483779563996162376973353673333198482468169231927338935470290168088766517173729548176654985905063477152396141701546663191375800817746609791786263256669062304583927153721825345916959701943131888705513592845382172772465213267147135321841763798109932743797902224167112395297933552909564025824974483566022480817917437542127447469374733321150712189866556223104385820186906421784323530008323140178219789978332739209907529138347844188534242718207884784109169465106905133296194394453123256542222181321755035286573533843531195611718442671648482932927615833787256913438611271612427340456127572422569288214603179867073156278732479113496836329428029368065545444776547549856418438419591369333053774331872085789667610389815309306048594028150349629372948111257524647664850031472400707158333138539117177166831550587586901163647435513643786750628574662353656290768812191375451447011205855636541914101877196023254854218810602983499472386829083258930781986819694780584518807042929936995270474389895371069745409847461956858592916734054968747678150522602704536066841678309390122176929767117175857527994678188195151886320296070548830505627349505160254489516325565316038497501890154606679963231117765210066764844691096039118341008078093932573381889405374083772013378400869417115197430674223812254529993451912745015400981825558680125709275962353050556352659151872939328695831408612267356497373839128917471533182743057458777459141585819153893014094245479824250634773324120619597234023723445252574969252974445970957125470250107235754087804178594501066692762242794458110494390573170115502467422316679657203710184351659127589863653282172003576116390803381735463513849478939662458237664336072676151553282355409872463451853111432579510911089683408048411543068872534379984749329366653508405567958916678128302295391101450399774973153167508557764504635693072174796951305430667962617251502619302661567102940752590374870335893718436980619910353455679411788961654599446305460211762460377305675027743750282300026049781036192587180790210765559301903820463035357090618331994291465870285062877593778488032068652164805340601524215497212782300781893521318262640905542585523750664089781251844755039774352052475852442521256069973842092620735910636920108444960619452206889028846160320174195376873861910068470105378933318036904431687449840033953147293988939245648078280004175810842413232440288775248481392867726257755718165544888357259441003451508431523701439427636494721687539884007987126500398321544140743576893639294749505011948556488988230492382818621376104434024961653521713362266301560271344944758994245819656470282642581869277347930268984746690638918650922349620675567321524375307294498549377305929848211839876602308438047620325551166272968029597428798144970282147783976697868568706244325943845037111749013216183938547867586342588081940784815688504924284435890687067897918734985962328957455391305274440233127858714570020645932407861654288722033062908409806470067812378193674464310509720319535016766950447486792605774496636648537091759594921925740033884921135036304119192606244282281969540171672955722273512865336908397069514168931948698838734957333228438002623889409987639845038738047277814046949426837727325933721580533739256574995176156537596758763727118807208643256663306810782234135254100988333018167591916770091371727611413538618824236343348506248613135128689206133568315359707527007889005762494619725850970655684427997328980079436042257276760283448863727498936215696681875550957769459109341270161101834061147019252443150692459530429966490040998057899889325544845462768217605801467258613233245544597390981783236134948326455250725182357457737034822715631226659274122615379437135844635322893598427745971632264841263976316204708434176193395627283178759096889310075028271420268434029445608457404243103742898769759544877523301386404027677193158909853602697946826066509397858022370696765788045938247736374889605893188656351857614432930128019753829787488829299677476494697388410840403219827127541271643036587540382623416172935640870689234926246255536475211557201238074460051450351410029582009919552744402446145258066912374111725811239784182539029294422429950503892475846056890057980951102540205625475650989576930087207201845397180669060648066247449798892456467548982783006977205583174085297837886314024008664886490476672533988313829121555159935535500995904048798258386684753238454902330150881030183625124918725308844665923178746504569677701064497248603887287752719133317614779723444664152841850073010420113096766875680828250047389899544776263398472462944097122898252654992524196756419373153489681347589821309644908171055424256711567274414224529969617159457354801944309866156475613859235426835221338852214290646784487816351476437082747817573246746817944203964066410713572693366872757079867289855549182499979989992344233142561365858934763310180732354675812010615795824075203919815617064190683875421419312123807694338726345734187779800631727508023051915643845037987113073109475749410940835616638447888436940884386243638710028756023181617472639360647966911955191793928499202933928156455416212367309273268004286313247720068456725814427486625640976721693663175384146403177244910421771693254981993107516943941347049998164499747846729380527159853864313986290196982965893150213713614232238818808711322115963584973868338614450191304758695956446086811327908541542655148047148736324867924286770775621609497056477583999841924572087165152349313450377419719564315340294091028946490073352697530978733191425119120047114107126316657610523866094513109162696399968926188605121844540423041388629232003446536557591060563264805212954457763272200721183677682016976462662995450869767644251921942341180590135539685124813039790816501873111750388154706321250694811413856618112514036660560636697594755016303412718999058014357205102016993244060473052524380906159894490904725577279061088132748414603770726496362682029066069347113576000779279805243859842884099597787211393936574646431409164803619137285517806773827596441950561194754363878305832268521376857955958306123656311660401855071299943012003485819651236144063551987694097516915341955866135790333722418897735931195011646685684691572988996745307150168967542780534758608899849673912794473955155648577761745387419666582499155239973799298580125075831016935773598227378181798941121085380688748492527626587939035383971114240186438599721305259332296009146039504298551966987134321420655729807063576460343602075592606859903936218436628030613990427871321975847308007326355298097260882092552942718434048397067764670011037334426192056816916950482970456047645822748083661087768285484655181585625507235082441339444743828534208055719714456434226434843588632925279578479337993287733892728771982846947461750432136688079895232051573856226263899294533364620190162778142954820706199689761112742445792737450669950107194622405338301655102344920216226244027973180713383331914043635074165901979986965894910979080126558450827840184087164430332438888344676985299914935849511757154603138051559055701669707497616376090505027801343428897755210472252725556890231763184604314766062751940251988289665539153769274452174175785398179523707554275593112760671477945026549989329449871460436013180846915141951503635900940941727878923196997230829783933085807243835579316653367040854436997257452601623426653338312543403989230241260815725948729456465264949160578959885243313609245887293930091985857663697122692831029991157348584624113604277994130567299383234017196712511479179070754694765409747754290673764229521869686636200234735851516721772790877580011886648907695367204961092375702735078621209122265244402764268972701036098425426121781241452632474839862673645292648350687373004122027439103766623648633396234138318610408643271045381934457510767055992971669067862550284540318858776825539068577526211471789209096746198438780747810645853126379364784381666124105692034538823803861083251038172397217822530037426222936137254305482959574821552889270110528356597589011086343736833957268527824272103476895530357451133599728717336893890995109625576756156832205482741601512615405533230938982645513174447005114449068461676191618185738283990773992560203540368844099764973113811084701025672606544465004199483701621786984458551462286345747859057096465913577434759721631382498138776901777341932280009196119870380651974505020449601142549763651238010132632675903997940722334512855515720959858776822674969777161010101215724225236129681389062379382991187587254359681844767308437000762253485983982712340970388978244907977289835030460077122190781009666879580727163587953176790451419158604805215640080699742172006354559261323549926413589758782135916830080337473628132025431302447120156317837688209281817361366902175847212599368344243258552812502772379723331766180744123285569455600637746397849497927965984876080884030429594837356143187491569517611316720438982003444678194719046264855912818070996488063141894150843576999958186959548149463286701964531440804154152513233534891099463219775655489207378760334180045094553932163484107539998275906359955914409301011922972901335401460737398848704910652821623027443428792049539497561730300904162707861936659438947212079197307007127026411672889779656406675950583235607063742381193103333325456882383195712078209159511696933116685612272173611357430367565403691611260769137743157244572289632632627061496545705172832826431750757036204311906241338733989388898697596144274350279070007581791512099496322374997896191886668296378591486716884804951563959426058423827180394222677262063256973705973234350911529814239526052043739252458900998015799229667263918198310897746104008969531685848115335389134378191720032465727472224122701396954492415294027002512029790925198819564331416571012170200447788419587935566255203511357116468094601736610214562471493648285097876321156662312780333455193458806118666199162269243573224677198349128640822218507366247942749333641885775223914323618814237371142782994600143487029153333757975669612685049662626696821538983433378887909621209402929893644976195626566662585700889099068970287653516127062397340547970055237360624719248385638774920082188484624256019371206421616872089661856231088056552579840858919056520329534354995622753424706711344801593289145421886506333531818030768870395070048222405037318032518812102490597784658276833907479852915599274146096636680582059168536946027956221530437745867764623148529365663410676038323683315801527876911243071713130955941333067372920343306468932548712047690671141482867951755973781818908349175128523175232082565508499096088209408241641029532232766100404755823336562698757184598487017105237418310061370502411473727185423525641248020539651839425712550269510611857535170522080773004940276783883775879841228601580328240605068255541976704805139699713372169554775536397761504208379910321414468972709473783600824756590847416696156312052871439554555217586266318624531859738895720675422767812450029204352562950653257853144829111384296621636145852900781984119728826705918741083993376425360215321248912560892516669718271410433495192936301704618270414848151064433268433616466849836054678783835279041463727761484829217410480840444612508618163659921601031993300451342816245212181406930123835481460144710313670929518702527408618962380317450421903298748991026838029923378640092986011659091066819590333934988505947346031646522324311195056093661295052359801660561343789831057428699786555057001685842625714232073365293102554090107825805646818428946579077111854915233780088008607474480941104694832624553465112770107847768087896962558796682859047867895511798557370784566636105172520655968203689252715294976517296113461889448956657658765499849111325442371097406857736172680550553233519648201033410351228147695264972595387600951774215223397539698576087495660757450226247056822287705850005313989007280546377825844257363989173361335301693571928482426626240779897415665892222190279514728083320105871884057868670021940882289443226929404016256989253319096269218463768844249525171820103923503506531610349166720826170863464064643410250703129013768309678659624559656963187876312584439786202830775774856879022786566336717894642921406944620570905610659486964693571721415148910093164601780082313316198596456016251234402487101241767683122384189774810108184132150755739645162426188483815209271173651721665506197270282663815477117413822506809069053135052308338004718950581632830289881630024692690199677789893953750930786527408452888733253327384840449570992247066896696027495643999495448685421338236267733725510059278223574866587715813657359910452136770372471795520185772566059869365959119676386815971108326619044165027562452970486659627680398591474701855941233247546866846269122516071695861303479815718274301710622498037994139860454674210786392819115961214830260042762509739068129191501978966864268796027667948147559804611247786554037492715157091305999905638202009503240152652463690874064778559645635891099118764024123228328920619644791893535564483888739273641768773369780099470566814484170965441766757491523378304147262061740570066286842218120581739704921225505230013656241239470269418763498189409730181274684203922264300141662916759481078677883441859908405434482644360551856210643998447130876291415640676022850813453623680748544671114375519429806915750882819983619638995577990045487334027542203946071828471117711455493040378818924720486702236818951908730303662259638434360803427977245754323846213591470876901078351478137606775795715125780981969042391890934462984256559009490524607612881759299168769541686591418283696779508996103598024295855276958381700379198883836765663668668528981567125883630870971795667141202283369665520677955292602257352012201008656979809820825248561181415218785110609942466076483535742174449299557236690809850620956887105855809404371412534618999653823841043663194059503900853875671071046258401791012700131890787097150217657637004234589943378735301516375509442407208250630897810659958513196329960074203387899271725360070830948868892673136981008410953478973044387099626115897412714768948237124614383976860777373335407235263129709468346151346661745394185850688845458771344405545506729023549576881470582164804120622943340128720260975057104227636064488627298414326633421024313885512467087905277009109486266497941084267284681199678413254694566044249618570998726200127663826190369147517070150371115698501548048687691567278897320122039641612606977343906077584299042435192288042128220562628189500853959268106153125867935541710364287559943442405509250247439876264375451361450058745427790410132856002592570523475728640468796883046998737627673122654083111294324106083654672210458836820440333530036036012906078925319162126855182408228779021970033711169649447818187478791512352352051515059595416842237273869027981584531564267074299778321253841699681465880652998411332725909524877191596267109153678013259729786067115126776295120672467709865992017415548562214864701766960560147922515618346113274169061020853083310219925793499707508449278597590318961514541284843751199867892177314077397183072439699583993519632144613317380333463796388539447353844641295806418808736091866945706212570810135253850048003451067802173858954857407324033567113936028065055080836890545298296432384947033632149292024256314007673558070286918614795206180834840927244233027665033568091015560474886386588064510703420415788803131740661917738924361692507503339786501940751493161223429875332407815918935397609395597908420786369324105693684250309236115264845118988567588550505718175673736646878903107999601331357272652048975942809916448518439998033217861906307515468585350285203474806069328904043053843905685629871693675656363114000297770260587041740367331954099926159612952209114608496418119771508478050721362224039842296283349095454342111765039365943259001313967102441647594377310326102559267788740929585148822035901853945343946838886340142085056391727823140503090393908400537140809790659655834151598267149333445819755016208283754275538673604281007628691519123103333882619696134517198224385456780839837832468129002077373906713411314195785736326155999196225676968051203542786845034031312428782750607052457241519010665699166864751548479456150549377520630394427874303933200127598011978591147791090414236038714931826743183063897439136698691771906898137241271107960128341782330453738723876289889751958602515650240053926129135356615083978069112107575980495750286327901385637864266009728515570002968252724435465072471003732747852813241753595357647140654016506776945554739614854516904269286897475272105892221867618265469685714791542282353683454277247922369777516616638387503088013675090355294013859500918791402403930453478026852759632072437748761303262357163694297663539138442332044245717283356896599369698378196143389720974554490732658626723767765737993345307446616979843441312529523843928472558384759041029326824764261925559743697707747505811634873789774905720888821070236049268245928602083008453929939521540999610961279935025241316574857749147595007071490747526833252241797884325200328682926027131752176313088518006281422887408208822272676129038631863964251792621490090743797198236150392928726744335113306453112510208989742926500967213342637875705477771555656937551093355334419842408732556876920262366884783164325510190030229643915996617486119120771381755006587000663462678999000679666786209671778372155145191501667525255036654833679213149591735723028459539921136955494776069827367240786104462945411461853784335004126013479160589421654512054730915431574183142375287479527772043464892344659187091850817041641603115054472435294978608439984588111364697487427442310410261570162783773563507736389758703541743291167078563707923790257772685348710805744397092738294282673054482675777208488203160589670839118066376508198448352397963960204409679512345720147256922795174982757178880085605569036368347534261746622466200500003647178661592176439656918213294745795289547865458047412990151028827059071633743033329450946163273748354440067557881668750563594807080333623071564490860096646516776747285856046675798862589933003639825728093243522481529951496198634238718402864573282546398444945314650809976600173997493186312314492176370939599825806044510465884353451936455120001059091531878596215034460126795446236178583830516081422679408078878353818254511233131492208105239347438458103931177454339740143768662932908366242524110858544220323618462877298078605845480518159690372055403387945330880464190582796542160238617557459430121894543943745637441721783198609631284127498200822427229133871752801964575351531066614087876940119723545491472710677915432371362916872467724903947751003658726605702457777226886604900085902534983926278264718504523877648248480111657233848006345338359948580214635477070288724840218623810150091204484552065430019836859003998192197786093127622392468577388550102676732674440358963416832504093247267009832607370622287333284914163986151718566265284303772367853806434861613265494209360662269342170185593561741951145140523013688059992669150248173315578276521722744041425084250771423558262689921261471755246217467027068993795682185911033541705437163004780048337479578287246102775733631586192803507403346197047746772565957075890656753094733938236703680682009814514232887997891735991287554081512203309983748260411035870843965837130988179122101623950603933972416500812375336659601801268029632184470430244659980431479185371651622676221766456692753216177262540864644362223343375197303412109173719390506297385254770093509298028449926285884186027421474901825819328143328313795582167707376934240354181924265494541596486059865265569213855620383384365220699196108135306072564973964918819636489994120374042925798999470472293979737212384640039469100576564505261514048208337528982396767316979548989806931516463189421654792335065384898084074260226969699397685623268800628946097554333676137032303323813993709138535207427686927554365378664828804849316651342751705573610038177667092962851067446982389402690358572949695333480435142839486729638239258870460220255244012594509451597157276970854813092514293387136649135611545270313717755224500175499505214233708324322345490106725641221087176350159451188571089090172179840911128571937270361418492916851057769926090418849442982067636427937769845357819640033961728987103430689292593595955819858385580434423449187668860718722431865509519983741184802821109206501780016807419918308753269053902983369326047525213292592976310563799770167714085536625089891077367787401995147737366071191231511422978999453127746628255560264097647202604104969636430083126877493033378176164031357172587618987212218966945510639484103363846078076163877799191668634446729881000021864978481034512427610682760497577108552638291109536397557513420899826623413304035005591926972941178533109396046728256126335577631130562581020500308890981497260711978352209884896552985167592805736581474650700514135599984679468668506012072101555677662412555935777123737529033903522200070777359124853942240007944915629413090429360200709665458805260278007231826284406800393029459013053610373586823355652511853411192159818825733170507581175605023917543250191358311844870433287983347604458670371274877213730569580633684424292772324107489455438266271586849241009528180813232279205103925463405465153038786824700447962394779974196984731034709054691211394035583397014666008374413102899055071110711249285695046913815245632654315091991911474129103138435201071100487109918480126143797636449570188310575701933748135945553578233237071909081826634770307075612885251825726693730087237156629250938374144247788182082332333971800131417809787068470350465345505797058852695211405898800698443373650791551162753536782358664772676378841367490364977004394672987401333504579714855914859345029190126321503367288723270772827871874135601596683194549690658086795898176973022710470245844727671956028346105639445468220139038617155121592964831733005043328512742744530445054691114524692343458774553428463798345264849235551850787636722258762549802779557961944478246375152979894514037720354347025568447411835573964364867163920635440659687020287302329638293518645796143974454953942880330994617550669011112121442919482107963790162233144209312458608803735420082703284085538529745005796278178818475051142844574409184529326991643799277711873295591756399537486838208557824938515255220981776918562383846795703573595731184691330159375063365571177793704689510439753740269647565380374491143679027391120669491488018699938879685191523538524890856181645764959861118849778331759748263012938130588099993717241915069270438479602480917192508866835795913489931303967438013952531568565353602050803263778064055730891714163997994287813712939043787845169040717696342088656605368639262340937656325620213905256243680852513135289254669574111630629817249416871374777277256452924681018777999183385833631694005888079890144396578453558409744564976238026820877560452991733523922472364168413450247491049065480392086272812215281362307520754328982788828912299187089863641222276129246714195745365252046647935447086257137629084467745761787443072262315567999289428616367415717061240705297055257789990963315601043199341198263395309630254750700387953666560823892679687848323362701672484829435148332525273952913378247388567245671049839662068050701749485635012251616980592812924326250892378165655742677478336185248341194433969571784598102500998747366294583956344482833330173949953736188990215803748491640776478233681625635079259604771225230565820835367634075307639197001153927643807402354802028389104895721818181220395688646826429533236416885411499714212371915739420046308237530260512817956492572062768534042145305266861012405359990293544547789828777354234818716456485245988062609950136876935872382598918385627509679039595558131886548305150431336112022680214611515270061046519110163072108127856362021866623466947930793480704199860642890066312220131271004676838135220294149598880791398368200106364734511208088265065380158210402317705015797679381392603223429980969340590638711864262520042824891198031621578875792677378048335136123273309834558172517780271478036655305535966558880423887917411985526648686422308052065165031625191225889088939359092690433621645095413849038846788985401931246582001834087882420128867315473257895172466340560868720471251935064736563287885803171623129816480596441831191729744475080006811566839620711756557526214705124836432992127203501833910461898575806341658208176372192654040649042150870123008404926709757040825303789698934179239697696235445078701116839232710748090908956390280077926437854452034793845646896908318401553186191985822141834206364433506719153823980919820670682505598737679664289912110620727415011815325770835361897573819834980706725503060344219677833522454716152636491723609533137891371297957427181393339143228756249912592505003798979656636412287774634738037443765639409253963587598599638410325362559739623177599890525182044300326069878669543185065557736269003720960603385197979009067941662185206935994080016539908256514411700126415784340975067888156786791823839061170956529699946719307184032756565213349706337277320617208663168636670311110456815515095335246190947334607494988356666857496954554198966390555974998993497619466712092571771352852321080407900429799175964216149925747913689744000470085342961206862449466751049739385040834428580675561221216531872176198465420344562979890236497107221382182700429039051423163954506389734055469912350858673125648471853137487863138052330571116038302011266121756365658291358507546767497473849003109440169561602737405734060174777878504115252221452661051194306259856144683744919938618619113839008175593151144770784461409739049166224712499366812366074996040561394989482607018435778017283274743835164577557223544892538295643591850153618791298465372537359534098014368191827346120972939950920203992006846663592420239629031618247467967701636222905345102047190404874402994736179443140819210470454854019818989307024640482903572757684707782376791029229964602425115454436569359541921064682472990402750281377529208392224951527873460095039461223790050424905513409841221179055392717617998995742484008660836905832664525671798258328489788864265899958159582339127496946147047946813797148888891096706686424802740479105652631547916825993692378669563837345819014892417008728150038785993514949172064018147449151909009593411163994441163964266048532103794519146925967381279498254864861107936630121685646122104479279438273319397034964239847454983212228530917489205083080449860160607379550217124916980202402909326983008527906000998252048076714718047982940171756404359908084120174897522895434819643580193246787070587888350375351792327008718615662600816151211015548523960446884945703581543094361927950630711450253051389472245303861254499524647428373372183225108483783373103912436495801976102018825175265034175743893979451319587873710246686712240653975272810451276846094543127223497460631083449290767974631481647530345535624819756292866083755610902621008226009282395222066596903289290408217163202509177667387705847161791629727879629857121222300111768599919979860390059556279131822396912247297985913486487897750077598653775290004157378687773492548923139021308758131474363784750609667271086843348597907342338705679136251507368832616707202453357562509287908086873024772725759206404997823578291419342030068541664199462656239411766202818166289588746394048710144671019250719512753669581984964682841057338659042167247100619673653897525336360670905930633649948003790265698520611351270613383858465032172786389967091496713380644548930395706178919248329201348495290838016526695719605507032987738067236818649909599956681913771033013129752321098516116201526176145029511737159155900617435733152573599645958963297402024235623573419743963807593980062596422442460671391612473190009034100249223597064729694928203405485309713701662037696398800319718051218823848609659920172364190742590413428541585827808307938540829382987395885409608038502534596950651007419025635502651431795489869485192635932358425691917508819949221909725065771065802154266123338890784445255233538346621215504645462106826723206588662521688151049922577882413377745664620810044646566685768761697747619519993405349129659551401559724853765120884326069790039842516491295689313999306865495289551287866627246922021064922636629645996143819269551405828938701626698913614080250127791424009573301588493010771725632622996652673039946028379590309068048094888932549090883030284781755632661972611158560692632710093384702944415649095572761500425298671087441978467046075420390972528489121351432113619216110883870692886822131002545200570515355735024614689845412565924262947540271679916689302030947387485513055940402754315594965737774120866177072990094519527970781357097307082627656553038184286155742825442979075490565133978209160515751539862661264628952771819028089823368060464350133413646369828806363346261795275963117187485965147422527130425019484007622510554787300088644734280779807611907167181536446470319705838682698196995416735194021057822925200575483361567678790203924897975192785109840299885040771804486946255061527974743827893032883307842469318371603064193540241968924381833319743491425261502802094832912865135525288283106844755959595876414744460719383165318174196886640197639789104748202599832129345846089422569814876393161386241748056604379095989881875793526196360489387365449026588456248124305768407833944390620399753230885810715176884479687120615076710160896862703158699842816999770926133888871397411068992020398931459650395010720780895769370703121243696069995061870011031997485367886278803451255902697162819282625787579801324422804340601591718255219041448013140395318154939757948212555149824587805725290702479346687353250031220549001934137212965761689977505941149348793911943139675488291871244426544628254299326560970070716290079549320708498292548037850305137505874138671174904432847066326076391078804548278378521548737734638013532841034538280005951697830616878548116198530948863204238685506944249074514277734805106393774302148115157848868796447924531663854805203630145242158114922728095491623840491883692879597620841786580905801117478362564528028561940381965947430429511367911968745207335352026786210057845008857516683180773252323550163131538819584970759532472288086812642122321229014467679871111153022998575992878825575167077607122045714686564149690441331323933334343745785831530755962944092069646657824439138071845700571759368273142412847038935115655941728007215787315420991055245395636587042365235897210916490183269623061754448851688667435945262227868735266040233983150481128266609671978371740002094443224900948096457820430561663845136012735594422534190001103923834827154188749577481454287565797173633222378791051409502018583100341537191070384419910857711802133309765014360837841581821869094679513487352525103300255688892894402114719428426330544906676681933680201366422547269710337730748013920791019247263644942316250293773186224705234835418197291682275336099632858924871386031559845008727867018710387230978432673191475742257623190116737270260508116323566160556086301868994452805727115666626668208627269925141746091304817417279821616204399059278805969403039799928996272964331634958076576177407478346115263953465419980294080612432699202683697746056708450769674733338276577562491245081876624239947256680068817290374283402268833586169710197669619247146259540235889168709386046804267299210264094231960951771839013383321354697362356799871747275940551946357625306404229011700047688987821577334270086372962369415589229407124996794808747992353777717299123128724059054630948575053911690652751197781848089361557572393959979214919108804556882104914443690269623970891396603792363413232901339979442325336902090962680211456512148724608215452212836044449508706166303629325824799729826865691521941314987166989387557585816951837469979452710077319550752494624041543336991832047607657596702900147373454191792843163722881632713214178993139406786250762266479199829004620021758569953697239806763916495924143052086866225342616001403447539605682507550097983298819435101800914040830261035620519088250097767670592273385438873425995188455725530616611592889062048097227441708178809613684857344104304124545331962052876058067497420840862819934630433899103903161622608448311658558573064422748747600537041103143703846399425855880668946111433313988339860567026980382682413498492450320031057645877072816766619962919434967698856720992831734508983062298007247394559133580295674261083895300293392651805432922317677390512402385872319655660448668299777022542868646407364518050264184861527905059332807618349111401466487981935161908932175236715917270848997296987129537152002351129712067714282137804771414212239361837900991321627499492322077667102330517044719469403165367647069790803888475402660107527960710669241650143656427611004323532094286192158724368543836844431935812525390485367885652858065973610293105351327478261952175918471256431387861270391042846613580890540342243058214781175224321772471494277437353950218393044020328931076061133526283365494701544858430332984543565939162016567523190906652314227565131922018043497851492834973314353748553411958703299213352302910746998679838361715898064265366549720188186849088827242288454972188966068796908625890991054415767742921901717580577777404625619090616743115780553948755942028398643235893487370513072515791041796068353310781056391867798189756670732146337097215697025609818035148211654406317997857493206013400258212869818447869085148956308987349226721549257548700221519280618396061852688091139889680147266951521552364099690717790754015895763272126481564841344661989621724357482325729263549690625467735421454710929183027892589020036984026048723789209350891556850205572334916417417521166453312109951457110177253873739586093545309846136696357287831337214694483627091869562853092904587939696003622114457470261899830663372002110794627166055382118380923204277302434570534674609415758358140581442246200861014550919721224831412556510529637055732274733678728622588173648894014047307500128316333126817802766947416983316707609117935554599401767639605159866491947263436586368120241133014805077252444372619724603451656216395385952948073104307634383308717371615215374649076568445162300400975786422913732327703474018893488374094694271041133841256189912065750260307276110668053719546584673744565763670573167812325356764646441871024046841874610068980880936806412747610172500559324000046046607640935417601816350706760194385800168852143711869635565032312942849273242578492909980001514131401102884439964004137149710714424317484543205268841875123770598865568875442386151647261193344769842104185917236313502321563636348121470206569589491655311726136208570363450945506201438050825744579501330499253430951181774829932320433649356093871119153385028225508004134574772648880827189303039473476407119172292472223335838318109853739243163990373644620511469295313094367627857187816805511899026931120716044274958210712403250738593637578700501069862217102797128241050408586991010368079460358033188566812492378890948058495843671307746414261959886058816350272441541385150010788996758589558193037238419563667082221267689208880304890400701664066705531942677202043183371620215607040272208386669713945999454466829556188402212950088938935964323463601821383442275746098990758149446422537544168868779148859558984868921621400632974647333471322635742424176235409896317761602152735594871372263880605346668127497184723264260380996157289549261592484736508241193931680357126151017318472556822650943236452530920930055278640755772738818217193083985164292126602511150326167007974813578295577628212115294106282770538411110743071429386524175869673289669708873712340770065567108910512266990777956227426628137529179751572499951530511020918669279424512006845225588391358672328017162733825097207532968633114657239360610836609977417042592450268561892814853667612791167446680897008829054654632458458442445788009427835948405335001333952349827870641557275540162315500643619307341435419789593938418543038990744277596931038305276957702515286108210688759873436656114512780548703934009674627684579545877162095001153279936071329489983929634371917323351840998496428765432747824435013911015445503313943421359410550380165087082410797294264667025376163373022560433513244572268641024352869739938607013311086886707140705529385364115241484106099058235209718295959159865424589610529034589242554396601020379184374401487269465455399132494439676294469038527347896822135105505479019666325947198008054504603971068607604542596046793465523470071596610962880343222395345484622011481550487948757304313945207625435800334260804399509670508051447770214213244372188886539967941384175721506517832299210769630614052946866386867383261764539715160743531783490755154966493125546221371418516940212889920805651249746585518011003041193019395165819626702209442335416991535995038082419499538235622009041612396742432608178325129000149461646626216528581617153743963482240236124534054483536994539008097925736544543729397507370255700279060866470930590080149959528605182489675672335669319875917307990104861147573516990273394194696966727476946474406454616328274671044448328494211052701085420937973886521076185152216810776009596736357304030177544229710960815652829722471699965829277110408010240999175116005679551595257274582134287513498379676505335499844971320880228004274549549102644841390997492884026288515632284100875861872087982928165543232554281273668561577009338181875547807634160644774319384350840582514709528814213680698073621431445760758967569969905774548858352615583361316349646564342338626844286354358954247258124627681971785679610650474965231980201367371868973522626218166493710402750036558990464042620758853999968618082636777108745760813057842217315304099213888551421889280922736228764668228125965802723786605370882021993450449800352151119310917984906897964593112438552346569979349740796834519949408966097547946833499922899023004106274326204888858131601154066681058503164068788223148129147499151857339497374865569989036903428181497141556657353458479042083792292306040958379736661771565360563155974913408987498453707973565918158042310520941089719901325868499482691690441436547361152391924755435285001230211288645762031742449843223361450634058921152215495469655487556098347593309217400599881854823328326739609775689830776665175182061004841753747945383284772390921234904291074245975758167392661741717199147351003340115950544645781755594674122827398749486485260279798666413718820620873519026779660791085980981912609989279476654368736554680090587090234822840841986178824223322873466904235263559278270660148951453380770544761386270210966832372765646640320145202106478612845783265815096008875896383573353720324738415669096110482138223187310631285076206239905146740329930025483555261377741447309353259401565057202687586657920929179529183497935698588771154148033429354281016597289551411903277668942769559882982875063980614556885356222564138473090485089343220034957653387465332672280439929834139382119132435362363377939185958606340300634132753257163963343876756372900854602805301639911567967620156813424223308088719346565022467742005462703765192719057937272089461183385856977713548497209312358005412470556556934237716076637623325006930033033784818699152158783083452916235668041597143411823696077181460367619267398769789313622489993782091135606732748345394460313966682126418089638044664321283680791743092269366599324894283509039374068768796170842556274089850212053510426572076990829844093120896003256109903404978876029798909837103281933753376585525112239262970089362566072807379617053881306163628480590362905737325003655098362626682698677541790834160672789318787768804646463287835073213655016380611010012147265450150971562651475583690574798378162237929441966231788648717642183464190727037662365487832337566558721044626416367753384658138447244519210872964523277454576452476622982645083748454986741610263497731626028159530031973287971710188948757148967418387189837306157063905526202998895456418203329106533729340402575576309055165237205851795134632216943325275617553049177452693279709591671939074895641176227076651943181388658649447985837591735133979221018857987910218361262273080704974563925767554485500196755294137174274944360436635819405823143949224348144937499987322286625721062651090960821079176148409115396636036870823856711914195896579529955414058840045663459751472217741824819858693994952610780370016204837300048039364481596773890265734817083623280089129931930786300051458140250377816291317897086695430461419759750838192580998941602827182688727756427577361026377166153777645061728722978205406809370914337639095071569671218041760333698470470316947887751576330780565454349733858952484998589558728549458914202725469188108693960199025603971716439132318995695065906395451645569697361849490550475644739026855294667995648134831591494697547463411740815155625807165431317579738477319161768329212459231074208174357316564990993521227419490137142789232814584140925731138304415205526066594041408953658141130659086147897308988192466021125366181769366636635094890351452222142240327028805921299827985547390160244396801577639812362496557417875164265837761254161102700980873500978696742643544621018255102717223995676160172945942027951019267779871767416724801175369564386764077854746308285894419952827282781675286151873610123500749050876297128552796367399783350228118405497691139070028833651940748910331333678911602493417330970330849350476381927927180856207596662358601252486003534458083002222814329369923404616447923830068298406028747116001263952330497053467461598242462094565841516240137310655813022326623843517943977191521384758305205254406280079569990368149497238931990287894937455470385057294823822952623354457325598711661119755680559741554699274508992757390233905622426915640507523185807977926472153704562209430474869464747215708496470984754155605863601675451704146169404768753448936876606690914601277969991588516178569490045760154837353831533906427431286367302140949047006651865010237182678900689349949250862074070035432323852134951212970231584325348418726097384830754001451022240405666306506905598890454930482888993039326184706607628971171015751219805516051740009057730546931072509481623141979563910011253881484775816829928219952538300810147304999192467053916864792321560079056061859528428596511115688124798566115158759122609804411380109737402303930616985529837950161000424677922726090003772714228186816488822388881213478806701651916276452078913683526432658612869726016481868352851759045462631286665191780253573908914956384490119324004280819700456857866457981249298192404467857054046534187959951962762056647415194800459099292182851575334518166444450376767641106609850564815655469497411223230662846621396734815841894044056961642150479036389657126122113930543384920966679667749643966871630940208797500204897420609151066625785104434605776853496941517333215851194468730206511817761193725021762650630053311120906072148067073001753518492935838511058733672367306916930490977731593443668027539623919580018272975940406197702410733387310688521166114277258365010895406183669174814940086630741186370988069113578716466146875376039932277691455697747817025822219043234568790761070816010184255021320680840128565871298255109501610453047301337988050073061617924443948087957895558170527729438276755104832190327265551377125172736150451725502460518350639401238282251491736024951575846001686254407727663620975375012979042240523007611132128008347789757638527215812998931802825329054442081652942094219152403918315687797512212023331372195141641179017259365473342224367378192051451781247228286238531306947010936380278526704338671808404467441001874006666496888995603565493812645679986386016743182629452316581286700598610220079867551675243967540993843325218709851632092463976884069650817736616404050262350337333380869390747725251691738398344417785236254962563198860865643819362103032720462049848357472785057525620255511289963903726764616442788324878971179952353699397327292248973963232643031564646478804965191107817232620777424765685070688955140025546156795096486542682478295822419355319252889578444926492401383599079205273503668091095445605705051784584976001320836500337215646372605106423297922055263389968477213936555131983586971460368696928952073743938458579762177193909730596095840153337113531201379895513187335626623757791686828552656521422203268740502721988777260307804325258313905320469811746365092609341043309967350395414230531085006018242034763179288798939893912266929335130777380638381582681612075782975457957312840456028536080489478790384113333668167161614385051170215899095827012087918800758587349384402709752904613257997839842247190711768858035823019944584225440904063129154604967978097246903786996985465543887999675552533789247431213700171534272987005200645209675534110548342776242636086354508185388505449120564679985385949131314946927312131594864000301753800581946150630837156104459025074442423584405316079878408136099437711772554861815684039994702862655456717923243424297932206865865984239562184373088234371903562172581539644690211639686899094474516225960875493569908038772698050508686158175190277892723113542087884016828309415607491261062088569025889309586142244322753511957256475584904275053153125340278716041451419327616304658693503026680984530899737166778672064169022253910575298001369315505583779562875300900919529412173140902798389467233776645847453022592107247392951362004754811060127329647916534900292751374137496857747977168751760294829417666362498030743083318403752180783372709653680019073471163806604231974772971518471968122745143681052542545747907387541136944925732704420628434224954968233115964105228685212993068826172320809319556538997605640367783233701903443154025876173550862049681544117791789174463548550515455169185560018483804409495568287516594948210611768312685142178657135063798377301148515897493196409129788108543072398422582984846372365481106317347578147530445739601332230131539461316263954615379633533306308854428786427033568045498324205324047413072804932145110988850337639328877182151295473401129291824428878011153312631594752670574899727533863094313384649834171843315480469648599260602291634368674534211460053802762168259497664191624262713520782350020146315490789886817122024583673274002316815527054621204819078707504502745337684992715667484584367258715801497856049176539353067008140675303704907771222362714945370228099605839823083159233946196306132199100975101539002656784256978865160495259565906484120306011566089164411808024912042422101737814162936732577603678622250828749245029021971612297204238317031950581069084599240483836150898710689935608135043576822249437505244073161651868015742827673683425651352726465111257776897064726679910435436998581255942908295433048131949454408748537344808458661338213788829582986997028244204137127208727289203789375836910882549311212347334865747469683794501396664904176447040198275500018998767287526932291550913026764560050147585123857431087928766254289487034621079374952195578434813416234630161633388828999527294323596067286504936839306811288892101259263375515593581045838929221252861042751641026142463638888906202238686529460493591648938343828635602525239785655326785998786682447730734665019025891748457665378397990056623373903153692136934369118576636635722940359400674441585551945156948589792464188486015975585025462088867402793181453447125174202252948490515402603846663520757258661886996797371368232599518211932382750191759327454884134233722673303036437886001126086046948519336742680340205957710495980659411450647389667837176294383387185870041285733502630149694432280454592897500466088821379502695403601733275257700594192432722125056026082683242852500469615152485468108043120474139818504965875501022151859597380562883411998559154840510766284107720875870677917122323136783657756646548113417318105845049054301606062884287441883861556899431720739988903423855090132737674069672499795158144762328709203289001777240609794727989523738416708095022153744449061281019158791849747672265056806048381928946886164429773642416703749421330054512777149769866036967863460059674196620802828495717401527394122506313692999528833558399170843581880355780344767510684558497552777452850063560916367055019917449755447296844333282258149370532499132506199055652992743733608231865572097496150302919790245071741624818425586192375158271572922719208482391133201253228789248591877094229527357582379993412757813753448699085123014499508426178340945735318351873778681168157697181153093869802645932681428021496594151750445821026087168277707197239858342103211449796424165129291503248282045314972555429978429116302636001969187175459106009520405824167516067072487066763981639494148156598507289253280379383095353974434067853894682392979932470923240470453308835644448162130893905682794018255372372896782633829396542192614014007840448648847845765222172719176348773511231989931632744700862107236222486303085382191324690625243085647192377227384159616060657440580327684849725686134265789744767350906637561273674785757428823808802199836604929319163234537287287231640268855173070399194240122428471680873015533549695615888172697365173810938897198724191794808495679335479527255790131206591661090704232688901424014942390193100615202265024208476488779643737293261599895699575602367731985888725651437925116586053001513419672451255986088099932621691026255589905441507214683673646515560539694983687901390314584243937124508317479964961243964812815943486850719092295089772794592772343886309756852521829786533707696416624295442145690241929629193549012519686111670334186592149234445008010891648103164110316197012997471259228370538016657440860576629882793319025119014293052575571806469961413600981013846635039846826520901724280138643105794293203722773179485910391820238948521305787717384109660058566913960520204146885743160216903495923339846679665021143648355792705566199793718486511710002718740679934798848160219717539043754205810928454283965561141646140085754468772690828550450830903645077909402467338109811684125719288567118689814528035056849311559937254167000144027564402111511308959827465021986592543040767141887658606013439431760699630903605271056297032802581860047246097328368110404919056832349140392234135780593444317557424083725093839587188538457621152570021182693541716660822740479415917165680578479611814825029919339936726326663834663467483982419898952953900796019661080556139078117035119047470212965124333051655369774477826513386917200352486401888177675112351824584450882078583532579858667063444740064089885278804575015892021356569654181204612622828868910125047157645614999809511548934299920897608918970473455230557565007422774946762059388746799163279568332728907038146091705927203805228860460928107890805500931576980505162547130657732414941590680844367692622210084760667710329901929651978427476808479370940362469024330322781606616333367103667949566062294126687339570963562389767886822623349348740492968934995063804074421696203559270796219616994345539285096451540357468833632710723506230006592090764289452492213829848223236293733725386200916895781487249952904122732508868918247755888991431584823059257327603410324043228186297016617138997431556403205905311085057076852713132637987199557004561048912533249807595679652620360210322596903051788974879472620149209159793199825366358135436405415994778727060295199157466461470319312907177273138588704460719200635942184147344962262244174202652183292275590416660602817238341256612790421029638455219228787941809508276294186537151601467918325432502889855708826135484182053326792941132378979585932443228327981317463834366855025756282707629637857562259120360425839895087680709770931323306945936725999340184164784244783998956175970067295069722179786688539974644684949473968864905512749794052515038077962459927701172622452065099697478824634726740942312722541291565855915044931019943506073691779163795037541816878509849830929058974798678771064404275952269493687343346047074026044730637819371920593031068206150343261207870801841128288263482340158439117080092558831856226580246594450548757316686967620229662835315891657585472297048148358000737361759785529332678194789896638294192413872317011372988673054157147507911174023778499409636341331382535446307650496657283504028451953313489846322698485389583890154827769773062527044476085845049182811818057822621010880543343620984211007736307803093449561707461106758685630235271191076083516796994955873763764527557243223353456662840965444289948986542059405891451228283115737833769833640630576394006499835474334194705917933793722734100562681020145920875893847041829549291931689576620893714970868710819637932737511070771744000346445268409159771466238891901178869677394994506993620021807945610021193154083346926903993920744294843007901712311536675707933051531156152215766585712549511760117780149857523262538002395097026934854435425230029203913383905206919291013965263755676333091647321410779497196233801813337042099023131249336241143764280493868875776775744654311533464452050436450500884187567090137485018221445547460833710062138007605721754335334580865445358717926272511316012163204457874060293810586701273656189007864499720403155175445133910914353019219838024050849705767171296321159460967498433410178659504335884262543513842713428895497017394331664570382282905518520584772904964711484034326578259990935535262301340063876758015642520764496631078458115660850242003599790096783907062054105777835618291658865493952982025393878891570447047103407265565827340974895479692129612177785716878719123606147543943076104368809302593047057469899700971696138306540724891463590117499479148621784755149311878651275253205944205380281451833135488494231692169367472328869220794155649176359716141146513152156196220411512489360615663888100266898732998113348010000918833345652406394803300139162675798045721712195661982717556687539361619057741926075786408477876017632694318683658304027218509345448739197242915377815614162588443307478106849990213379173587897084893380988353849117452383172685912153347196944288610777369964588670805189398003309397303574136134781715580269758929241680565290335014600039089061734556690066704276085137340041127778082812278435969864368932395406070646566208039259924434126958396185518287209020569253270141125312575569667039656542560705758665105909745913651328078488145037243269331836699893575725572811063776981287201343570883780907313745097094584873151171345153366777466228835212732059411310372471199138235817436931794198216421764953401806647823053060284348295900736580231471769338439812273500760425974424473255351981080358444639171960410434286035219669834052889019540817708770098998930768438827152571374237873655340915671234533553083084395884429462197994253843537036125293698175056010789077578700398195087338141950294951221058677638412351124110730590068982511259362566350052955171638786303249503629854687879695335454508263241911627559861732844812810322943030915146597089405392322538675085186766460002900702270234606547308552805167850225162810388253216195224613897645449286921908659165574846955188343982557007923190129807346331471228490114510715240948160080960072459565049568511667777331151372445234485540296717060599796450586640441073597803663553175961401447896520213717505205655854176563866657810220783237958574382626124928724573353522828340116259989749344938140232397202279282989048559410948021379494577541432841380620321849046437970436842736452538408877663782692493980847916006422893163962801506937753153297634956764865809776748138679143506392717732417687867939747924926909125439463108613293988060084785880926002891350613281169098437167394374470811243315549770428280869115383315194256082809122787335134077445307644488832331083997318780630971937540422912108284667790196400568625725245125487732813738884830572461043578539749740739909502013245202768102974356023264478147096667436420153052803181179795558849713054858508748651204865035758884505549217414963815290129920252887313039485985055208911246399981147094406236039262306710086874858215460526209615268755766391080257891612874360273319919781910440749790033344600307260051537785532972749764973653123341683504737397332353429942517968430842804666279947429943585470728645440617024519965030222002014664367407241230646904054961521806563036730971023518874802668505899091811676183960780480764514075468871995760589506708932051032351184521713424961922526843962409718107782893501215072407165480985228463570007124704706702809120750706984484268897395936705862017767436026465588031463382965926481356405314595155646758369601630893752878573877077893560687866927426640777483888498488991575432431696788312452378427583019913669476385086276047623834852088191529565842444841832037981244647211567013284112764244080763678538129966096657907622708225174969883164707937627236743136547829108225223943185563569990113427532597835420991031389561662183956651493063010263477979957296980551030107389247113813497347566799043404515124407268158872612674683929848252410724907547786862767942291288301374118367736455479171100376926814655399689068426338714352141556491886049217347069699000047676454849934885431850942855401948332975017117200019155884285108319462235052407479518008874767997141411229332342120103437034262434310484501018647645509590496178344249426976693887804568430956332008937497549305784247053032955829998107274577529747832348467271666304772388786628261297259625224703275253381558703375812574171869737085466377736988558064315455397276473894632166962327830941002681059168606148854965892993259896912552856050186231716406255747514074334794795456789219564752405231857411827703699926243552116039717682952527366276717974152338926550971295554043366702179608529241173617165538917615129037096820628042889377720223890218693865074326798112988056183601675633095175431052446165323955049730824218253537496435507961392277893023954500000301201498347830737777644755482832782458596956209031591310205813654756128939178218592400756641665113275766628151940961140406553106029134359253907172996508014827342259906342267928766180226150145343459737261624506258048253191633300333568007732330654155007988768671595600295283996028108068306513225682421470930946822592346603929048423986889096794889141288678731649280439927693635210597622968228609060212510690632297259968023386236587147666110092967895573094102620730819858607717565881609053123519701163389852536196256823428333625014071080049759543312217691980583762400493900589761783211049878373516532527723127801761941085996820571312195963204311156723250751133770873603148344294242153083810283421663024489012886390308985307195344004999670255976322933455898779678815963912446915426844819220239719249673261479168720358611942098100798195989807058117108476439950233822987650470429682193170962081926178471309972088398132052704436032207578797379202176784824765757095460643375579056270375921191892616643660606781688387639868713677049813762659555489121775679755799906054152517023853275769422144534044377858869974027513655185012152475314371278664966636957561796114218456104124382444696553805328322735126325569411137313295492815454874149160465324003774102567337328808514720632571525534686392571936893475482643372423527670690077809072546876945193399160478455979424891320526584061024465705634545284400793570766248101469201248627386019718023511219779880886560701680572181100129605909818817081517421749055864523162614395770628034206721591756505533457884851535613983978674812658160477363594877890588743920932479374845481687209851322869012117353203138142165388554881778527053929282124411576455455788775563780571842832730752045717219955060875810020462183333468600072885439351530116768895941594674669123058608326658912549214545183249903226115821059511236207207989076896326341289467465346465794150535227445516916533500226396035484126018169829078943720035875549905991207231015737661865523074017311846874169083015360364605307442722821624412514718968704216192744026368286889205773460183992389959164657554347532344169945568297130595153976462910676723969840278086758826489935516343349774708154952071715065679953799854804275159127060261583852474417054871481151635014602446911729982237432688542088257786364824863066193642470997619630100754626120668308735823897995013710526682180911495724350539376227239571078081704607521185810732292954468583531617099124359900143199753745549503894765142621871956999813318183738884469944539518915069134093893390286359050685141322024617145749739986961915168523007317487320145587317443784138488311043235117970409230102823323503121853118958975189998654697042478222465701674195094071884559108370461358460571315033810756688885552580747293124521280853149859527703871689380122031402787733618104621510380825135973234084165098469195594353902327371974123364912710792090901196030757873726879720604892748276064787610664438841663822043071897806063408028632165284767109123160557202871796934827287953324020266154287013521685056060689755349015625369713914142748669423803073489871257147776106523322448503576720904255708661957073520740354314118371289889362476762757209103133308021138213924630990983021143331120656626629858393114595158542566178911679198441653832969006056167094419917125069909990626790184358553346070144408295212373476988875644850467335616793636237522164614818981778060247601107302216425239250878211913763049852182778540290561049042822863140210246599321656078010127687184869943424914246565087123572690563884421710437499362855065842702008629997314709455850719467733903863470380733845621066651347681097505315698685961666335788621161465400173759644893906455758350140169450622856119740282524104753102895191392827919552469771965694516524733879334103506344558249684380400271504614169548773413696912245746784802489975397857341428648318829268922610235465191458666919383331702846211122503782263220072902918498564835607388269238231920930550813646133798781876640623301808437504834729943872189549339938613688698594517463878404244564647017180592876127801799479359824621266493817563905105385262252623175152934593646971711835119807686544037901347360130491009062139410795909485194615139963364779440726057724546112233780137647832309030594409694014426680941373766426692049109849479721973976201848209894753479957939584312823544067907164920119560563217979617718261332777040143722958184898846906764196521767277928620156134558013928595423393647710505926468627266101415378212398844229812344041670883294133112285630742348805963261557305362657719370893655371960983406510072453067550997965230418496325855767153694072718703506941259125876029036232646584152305299577013649364439766216852724603425912622418525821355167849163858581292114160532856917099584228977914077202042933867186023023967420063142309231556782752063723776707007574106079177483175807992563659369517556704576759795881363083740262028772372955634367659621190965690953017772234939362445842605586706285355069907516116850588528897259087857727992742237684800301237573851646455924258523922774364869063714125800222513383010269396745314178318033606601062903415678306027229260471291746874805526083202787588802601566187068443735224380348931842310108089591847152359352373142353116999838372846819865870779274215109206196793968369631554427204369270737616729377349986007021316873561594889826331750856883608088357135187507443694037822494164571430282747139466957820026755426711139878811922053173131401448582711185409053889746701167347084900019520372664379015724688294813177432916506867585174173263170135303261641425020745278795490653282943943690358511511033379260523091044594781685259143798529688635592226612157140537104086278912317786705131969522006756507738175061748421759743145315738389040851218533856112948870474436229493506160404190286333544782325952313969171119176737190201122713630548184103611861036214613682087928218594432524672216163904904793320827467246081062903165520428824896291609102924913741339527425213621294833522948764250059401946156743357846971195490214043675796277090891746377909445882257420963874419148434183456593222311581501369394813494800822019052889653179167415239509330251496965441932795942339217227168171122359149019711322989707498391252473610801326134217355751640798069801605872329867212475063807978168304815221158706900794611420300128366080168400513222270933274682307899589894234190688042249528001528666606815837540277315962015104240589007093927920055664795642218512076660402898016794715666704412514421075441378303337865343594583204530624950666977673969328544110199922127042140756049979371738383972457800544445493995203361791888247045243727482479547443103877556481239948752231208093706452902649867423593383188231296517381155196795013971992274602648556137507699528156342181374954318061778921675112955661225372870161106046870007963555685149273140478212572009530604691175109100371903343999597767791601891225584749640003756331162800221737985327802319001558332674291527174027520353717110279875524104795260163708949677093316945631860111436064778511306429405358016506044946845676962120526228699094725259464563960670208130295361017173060002433132308965468512805814007294689765013332176312879076283197196262167350914924199331616783354181870736704158503290037670694538464025981386720061093235201818239708994235297293089622374385029518914522956644190390301311111567296279226405943399998917733009343031916124845554160317658140433401690986300579715029777804476039775544860776039208951842812721799929204721584740387130925035472795990289934693223885095156529399204741015724558041371353089842902564174195249096857005992390296940125802100251151938058992315349163929093748077608385114044771912626835653694316382770623653262999145267351632214083724355670832511932680484256329007332381376142515741805146808613519630172018085231805566368069797059243839756388273683952994398472930480415124709011415300447749144931868086894973360915027110506535161315886544678358755047169412638193114237655139359632888215900424269889311198478649378941740626999620520657757117897192688249580641076147838927547245159488108684855155000291296135349619548167741604017538433357042341576616688455113824561739825985024429710016457970050684451580166574474661691088474320368216545080690847305116756569684900356794636999097022351427963862614142200266469758253522889589930883770446290832789541354881949885443413710766395756608016042229523448650246933610593543788682247361836380762163575363981043930093928638905493537325810984228384622782136326698788694015984018209766780559739412259576793582182171861757692454318518819362490698731733906439242713347916114192143956775332351947330761087115932591388515505508053155619834867915057866093521610258399557869045818605177877789504588360668577520886382808510192465739744760345708434908379647349949845554745806249653163570365234954763609860784197619286622127694581424906955553064434023775477221621173122939255425415249736589633079049367315616515464601275949368021282060023699880072012591168999776464926315171101290865276821030297346995486195504146591151725473805878134953199475044848987756035803879923758900372662300612179257230795323580150797506849188813843129363345344519627705887230858039754557325050201415276564761419757000227616969036425187812370859413340285503127937125178330732380262218705182557181680205018468271518665650745346700139374089198112075491737685021050993728516574828533044902889046116988665575753010093012553041467892427929002592559737448986729464822135546063750173221734008586241819455391530560082984483075453457152950663923118217171878940712052199824879479859628974552738537729016851105617993107199893583454740584725398535784436201706178081430302524183392356085530294476018392216530393883630521025413742040903982503526049630018245791084967388124428363616556901560823974566988363248097103218015490634686165017772253196911744209559781957916370563962373035557102334341350960283289774341904917826844596939093699559859579440376564993333970745968814956900608354001384721945145589448616333392574107410595188272884905359118113723176955431520805424790149067420439423519369811610634439853710851120438647724402649693892872413493613544242990432048183135852395682329774388861068122784508681338045805821108384932056718284908113272800609326092261997664230687257213273862165564664701440405408178335651386064681661047410389177396866246769757013609536181463842248682328275429509615149292777931897296340820997811953859018159590314430241681641366248680265345139341849784413366979480267936489622882473576410531170624210186427942255468791839239579219710924889648733236044000085384312631151928414698806884536289598357665559842540216039781987153689019223219604602946425116309349320941961787582385445631775220867587523705937583312247273182250567153244199520933617128585081827923410295828655079648629173739620863381157482748902186484854321391104064552229465056426160255874290282025695123537857216502049433714826479423589286583404815656777006929603471155959696387039184477117529204666254200862100714200434429067294392842720362595299855404736046117780237784586681763632084805993206600969153005257308628590415205693822055082670793536260582483497627993212329967628477250288106847254336267640643386237827066295431247013532440565250263380608199930038609177310064253755201341467423767620550133329411347183962770794124048307023969044641380426145469733828789983708788378552115129847473840134936907512995522732013506086769526867735969096804858115745473791471277349023609775492598174530710094214730953055577875541327637844757568974614082916388448023857931490266359086837981111021007920882948489587790429272304065861278333697645189101072873266945965172932762424706597248824127863736985841780854757499635613710496974389887239310005587906619875700654691251447017039045463228368024945473085673500722777509785584505300555368370140047449907882610651783071784850703974732983341320780042728125171698756936967711784619530351524767310149812168717715371144349080049249131177241901541799404688382551197085901016450166292447573276835008395313032888377728192487952428315741421642057874878181315857944903147451905443462209622440828052607640344221533138789124324340543379030265622547295921172370974810878217618044796119723952231932394535409759226495431227798540263914211489318533072464967482610390185123069513731088483133114295708272112641493108124740004130024924053694389013235597972930606833234832881878275870166325557295233614667897212964218499215749550344319584856433119268835748893769244690143201668925489197968550755496375196749733839332884395302869476749368306927460812087690020505930674921294955897619073706139374472455184051156049893801636641172578867248368067856473034048773910760123837021706408662487457507672035181169876096565906043674998768549022063929474625913206021039633508754964596425019934047643698377249921448273855545435371339951101121273524024664943732522840480468995221673212983011018621491829088970678955350927364981673331183793811648053998178366675491652269705482375588158606053672312560615458451800630052558591829603101883567075145014832658162654971922079464826604170820196983570453763650095641865683345405797595346318102447889766620682022652649954015371739827438266533543957239529583119291688752776888626780298474978023087471409092334340278598743402136013791425922982571579259349638388442107593854965032815799945775345041705911954320795386660494168751827459752098831530422588769428679556101008426346779028690694072117449387903164715278819371879710882372311130773241824795326999184387270718964833924258712670401495868374393953610357413768554103487756526802593090559490694160250542760770254336550989247004232193829475255883654172491326106542734504469664799335079608357837453561252173749146038330785639149473250400704456889297189877609224558491536722418863596200097718556411148507127845549926495279247079888045380000794347813973150298536167265245263369540996558541979318269765889916375116060998477059439376499143120353054880725112869344436110178367104127535741347254391793725129222406093895334246379767648189628392505733055841529521598404135947739772342010958765138774072571388576559757788403947899514084543052328282377599395566999815127031081404364180749657171390962484221012956142521099995474938986469691001862625456534137717014349030989916709178467290612245029391398093660383080179883498669023590187711383714079482828972331531894272647289613999934650491971195001126644002668907430494207499584379635630326756367633617755818491386127787115280353098516293728948376979087041983942080746871742279408793591961729272773934004081431597221942125671014446486914643497498031852455347920844340505658211663956950183920726406127942762371205086480130052336975470586856832213708654851822710237658910315716470766258716276284132832500556753434222478191882831325996084145512606609481071580547466122882390450971517447949050859248484386323830167445548120845808911838795685523174646574918222844335675801236662751612504016133713450453395788721276337291759651411091231804914699985795297420599837012713937665173458040004297048181889292051711184724851877839897581055761576247875593928383662962105783569727000831391375492852356918677897739619899403817220032990396822287256724265448720953669753750682679607529955135837872677306101658429737272016435185616866315218087686472457232524447144295536128061379290408877216068341304138805118149372529702429870686365893368681069020649372814187931085622315394595760336143715609406441601536426179285622015475466808799446459036032851204570210330677023426026332249646029129589926845353813919060303544452528926613287988692326461714710972252694011360119184097005738369204806054968932362675937494177570993072834753263493091255787219887892841810183003378761369492099120037210417389755307113047450136322782216548188737203973742757261308379165815772934273125412424580987595550832945795213231349080656733504559799560507625020219562689205589301736141036127084300082090246733664334346894693589443482404086898112199013747749351282861796116818045405584164706751627735966529473611789209184768339198179513514379719591006410590432800092407425178483497811351307692571486749093584824315432393695979022309865974973995332462336069457822763336210964166985891481148610407455496979512626545317426159748733389348750319411858678345691486141199449038786764238067770691849008688084009986401812960733872083683129120904966717699638305965527608494387982580376300036420888530539627207382891250364976760735622302787408482703678999000850136941224783773780193894200912029296984532526566664402559760910834211993661933737740231392989346681110653834117361308027540705720677358620963957766669168123213794171207672207434853302917450957472405042298026486038782132951958609212983393557894164493877337846784583211331684391573433276211334253651599910460855960820274546440109279923070321539569862126857042035806280127938607454882029551992204306350532887770046513738471178631117758023545961314168676514213163060143386864439147943991711394445321035321116318506960643772846247030132753689056624570073099490439119627381740224362401439820924093590479269444447810526778816474287813117072274801790697842178916712764421953056995740729019638435300099000528290293477027748567796650910100271030083520524790119361264910563699918735499701711865296333930039239276333440962012420742470344196755766198902299558812162994452002147214142742592243403774968827220618267467763553815650486958827954075067202391497327327615457430435350852388489236137936231662183652035617398431060254831994437284230219279063202251929885551308543762847300030345586584821372110989131163500432597203564800012035818531399340173904961568701796983866343527978793930816931944517563736504876347441723338643392601916841607592620679591273530486508540981885793680549209271766555976281808849490551381480793733807291339913806411710050390215807123971717288959286228416897360257069358699515789006375166428443712081800584518262922889953764054460718141840342301084456814476969445678188386990953810944945799858844990856289811197942213292154035539522034797561408481064263361283425748270968869324989636456060716989439059845958864094654470484368543521556221244882290714314596959752263505688933880689304210152958069715928718788478780869288190532520394853627378927613544616291396292456484783236087900642169877815346280154255588255683132731299662498355812569006619340898318887267437858684405779627771677205476847343930121328794206453740601410772889234133628477892296283621459117901244072888618893606969827821819711803246376755264357041028798732819035248738470574110012629525947053592539272940802541991869479605654746692140706024841325048906719709946658946464652710667883261706829906398360471530311095336611305067609910270642124535611642993383280457080747264595870354020730676540012687221108098319698477569038393122937150050351371792020357900736715839293723908461603410979990066170561566040838784699420858387583662856814631146870541143341064023751945030412718116982123474563024811951999400887349895433978390331582277200889047809968202282043289924619157625518315465880353724384171705050341196385638459906715986558150764330090619367242480205887423381017040245837101029210613876512622493479944653971220043223638738806305178966199240815792229529848560471155914011569994379574057358196194494331146672931025121069569084029828998170860369949131073163288306434186265394650882538599982597079260716051402982099090426697283766892549729403933725833312479951537440824414797233123051081224907411637215549808263799944748309978631776505863093214016023332168889965357423367107296763369809482543827211976653221182929047635209723381397436901432570401116153456605879777916038136217945203196823805418300156563312192560114914583689006033748270746133506870271007136955836036499546065978604522291140480998715078812130761954068185516816606514914319981803527517527312572672183870643916369412940380420929074255887603642063687472918457014671823770483486084127841908473483508529363355429029964093230976345110225766822202570317146365913098968166752122011920189593481149374632708343776389315467426855211438228195279498013359605635304239030827477105631958729377955212036457742526667975981150455748724739828287335557666364525375979293217749226091082823517673419880068571930138156470360994772210174531443430962336688132426791919151130443494839719981703443843342376594518905451584948524176096675404592664382882544356147452983802727613235509372062988787724574990334128495939222276596806800706712987553887005202824020230509128781482916542869493508465479722540670436524149367598379785311434753765485300808084606851401354744761523391409566465319248351506777093022759123777857660219884644625566262767015711792716569025032758498924464264202283080204327607888118579680572655879846962191865624219835721150206715945391853616914946194862362268177081575703015666433144617305965590442500831481421763705090701749653191257932989140267372923106811195883409169507144465054892828665984886012744617075057192570667044896369833954006163351658785982223460076904787716702155464137935327062681053176043047241570183950990638696085446613964122581937546736238763807248339772841360498016205176957812015300900766098416651430795860142991104980204594974551076940767393529067367034510450704982299075471849731525344881877639701061499858453700642157560945388692350617810059342858680556508033907824821690748529843307822317444304900353448763002864006133189132525525485208390136209771622777205818956036682302809817709744744364477436259256145222943423909332822264735938023547745782701045062130626874841937617711799075586978649613722910223332268670654029903092323408678686381568436804142855286516466950939954376975752714413747387105128719744045979978777908665292527737579843876739792536436916612912765947460019819350990267306811961943164422406757076684487585571356310175359268997930295076559994188632009543275550774653990222369216370061404909875171242659673360731868804533899452135559085033536166043748769076045467720895517761773438970973890613194176324759985546487388759940866381111151308476838282192393431573226857268131567734989722252230843626169581437553931697219890549751437765195413961601781092113217258616469951621741046381756572773385887889458693234428486224739215979255235952366978887494481942328823186524844951551539572741180280854550599430412568012527690723655938600621061692623596534962042583218046906853706143644096648033358236010248078765211288300557106649813090528127492256721134316159481452193971460719805113148475413468638799632861395698771378800566872993031162515390389216861684344465176888554848393559618870440012749182195815200305837864711063451486631494483230448858504235561552243968646413996046486312925331655123879938693981613337429258794563213798520513317265072522943296132050184799622385130028013736506286556041941271286692366648023095333388939684282308662082621014931580800538440903093655564183635990887903049519880067174667088843127302037935349439470284570925877553139332461064175558506005335526106404219570223098657518097070734394198639532819202670666856573592723940545762209707762563595322611475138984927838439635210516292984710498537748629593666408893853580995744145402920883351057256865288723283063805416734173054037672742151184757639463793020404397764731702423899374372299561484026018361310553553753118183920890976723030822237983226858303306372697366719764504470808449766689288917693919259061618341380549685241955309438251688777623033803790162833590514230160931569248825243742781933939287763252859401838542210046572495675404769229875357638342430528207715318885150746504961015495549292804747373879688440382222957245352402545978285650225487680552561180810368507537128842424871436795054136895427637239674489808815391018387012602963645817878240137210737796306142903730917391774628082269914391890762067794233851338500208891338881843973466658416308470775650844000293247161808808868205886332235895974109993970320071268106989412612972585456052826095321479927057805125383979333651046046628815549770028728798633388395231335880435129451153879495329828479538078793791323464357645871111549663639374993314610124255392171763342858638089842810794431656977318695506837162495621097965549329438663442025115732234036617657727579226414579870034959317366332745970197448672687848144933558597966796055983054643956774266198089153741211829568817329844237969030453649895113110195123376076009161175651782733650287975145487688411201732266198975585340032095128911601176648325355696966902432915532082767509821322219909011766720812046880307782616965770883971537654068893007251549837701114344441831603318964618126015240246605072999030144963921549271344043854550973139388172854340573648206723128797320254967727227194124447284167868122841128790885147247772432160876947816483840367427677325583371122020295947071557648716440605491329217207159572717007520868158408198144789220161331822806874608498535503161221769556330867913480091286312814730429646919677062712650203472814608244306579522662027082334977200826438076155580975043864082945262460056943904557528199798198072966832635275208592843096855134903960215942705020826670596460059112822695499740599612928578220709946531057835860455521178063329393098104348633280688692549044834748437149962303001319485491039732934521560873443864933537089995712037902831295167783084808760155879219440519850224280618785587739760615868979480570552907383472452569704579948021418591729840379116333180439429369236615616071292905013904210095099461443446555340978251353532048932444298767164113474196019580416889692896767244954726110137438086382654662085311628529765691541331874211505493472192119815901126654317516775839908945901352992151603157681715075512466581473909281339747990841420565221928051253699216553635315391630092525631646942495256804755255863496862747421838783805888763521011806862417261783051354865459871786178254672229652891078408360933021188843766063571266520544881073656754867094917883157030115926616130325559218492620743029853509496619952341778553272437281092635427853397840667082414590384467709854368526210186017053924957717738799102782209538535494033688247059623375443852660631542510777858395826001949120271970265632949821236412596302668023124801586078955387344967666213085890878477411939243138921301880092145361517581811621034046081365237931040760740148882919718119250962382631159827519978611517553386304002694781695326341812578657277256949649962724521335282584542058558846195559310421956395535430620999343670021266128010865664908427714800665551773265276306665971320631229994774373771961765965893064947694571380353475951439549182208322997816112178171879289558228784617085689746666770753319262433779509740505201908124900740381666513018215252952654318275544338345510313803004793375537077216246131410806701418250063377230036755717041014243446213662417259391403047910841775720058473075764870989388482686289895468259583107430969361786913498504724521284586333390353245950233319926756286495889980525696063204941361461382762437192704231820795793656602081717150683850752771863466888855480412194507125262742588524632906239338987271367205605174108082800561745122345859857058865648839232756725172845029526784275338929326847440264026438071262094414870349480609605085632389347082991967082732557302883918557321552301710540773314447434196876258633727377048091932331545486592762127518051497834531776942341098717031825557220136622830260694833159515862332672193388633190397730857333533398596942172345767514792448450977880983324021671363663177764449260702703957542089572514718597079015640992217295813180000981099211503846436517395466128456172482613962205099091724445794545667942737553554616718112252184022058719539669734823806863723639068910566037371431595450937747464631883961674987864008141530250526437771150159107578127141578531393732460374336148871942763603086558040870287078838662988307133855119124390951988274986140948283294977237066625838808757556424840425680629076504189086381564567413902496145919821400259693857946628446122889217863208334101120632148234879161653024537481291445151143409158570299425040188965158452791753694926752419828220863514611915490142650918980017437776439657775903416973260887163618379538420273172877012575040832419479706146460814962223562073471314241507201953940387254194316939197207556102324072898319542537285930994972617911598538192247389330637196895110490847779942901667392857130524733597216175233456774069179337115129596584669607490629011155521982775786052589352730745879957459240443054836958041549511383995073954136979653158906494399222636572474254715520496071286892299955039677995564405528113698119571813647023879767165160394836377469087008562783288720439879918723896087531371020842441103427860694793124193252982462998280080521635391258337198067003202043723813339691559667756306271348906445765360652058021950941610237225575868236098129681306451316440330441622285317563138812606377899765349458454318725792833990200281739124374062989353906811396756266306125048274198935683511986436112528327825476269651868793062037986703273227719053055134816143484772869792726220309118878107938343050683259219242267854612003774520609107959362281050330483328737356909662224415956475443313873899613971691420671868480441988541442092811953410391598349392359977541007673549586289655605743525061469612543982139188858124946139396948033020342257544543779395129989282593490931159889837788088030518926876088324775783606890975117462604893435200600013506083574140702689443137843924062704424467302288394884660803084341549971837951618307135630083225036807201855843411398402813414805876235191812021451525901277300060130869756731400985956361430242436603683894759531863319454855206265218210720055087307628665524142238841935449834192880308167847694802504114328130857716887584704930722636983829393801563417162852585862447180834467959696809150997237147972468438130276354773951261281391505216314518492161284545212922703853468349741323252445765666539570414856557759579245786814948012182384262959361219379916041467145770645149846015137769000445132088316791687055388296171214074085019961750086418946780176834434524996047200883879841779880091513714129735762339918195699694512530660216204653932155855792823661116973658385808503310942070484707262407951539858057549550791956541330721305663165384425289391819687566833503467033570338709649728544952078210015087311473875733361537488881315044151949088161849635417851245689264630227078907881253050698106534844778756298575327096121899257658279550393731547174327333404007612444243823695245336881583939977463905993333147665581512477627917725248824708929728534503350523782860156308738130158909193420353410349344074580320246046172800409885085370078834883785140347899860105339556897754854310690010352032049263265034552431298013806671635855117042610980846388682191105600132492754285031420257065242902209964152532582068828403939868797519843583151516956975900774663904930278064299739241911707120547263512935226702727269029336715166889080208567288826799063727076229322502822643204190235275104744267118373575743007523230796750132030373698342913539287728585599271883793970860546794221315876017938462102519337998375684028992700886004419278706441362040604315963542276910741424157903533101412075236658809106097044591215576343764603107288338263071571892608980726585463430996784614221679181593220833965212679846770554751114967211523423026159175846472260043282796748788481880713392083598474524436801091171207463345394300956143413163512232007761364837311528885431820801957047505830777336927973602103217858739973417295638976842173476022432596579328594310704545160638269527508209840443214886522209257480732760623575624942210817688399230125015423337558205008132346949955740427140173308630379977951967169147128638616813266762528822157280100828513253338619587152971870823520444601018591255224566863288759874249044404126647150260259788473273314415718219689600434621097443386924633203811100875028555012816343679854097232424917008178458592825355615281835280555705400746082996197381836049785294770349071135616216061744490680083077551715580364025363107534087467004878266583103077286041366973460975257552651290207711724251626269351790409633711203439482647010109522481551590100210021942865548709720544916257259677697001059719551340154602965037759737443695444419375881044111995162747807889825690446067878296323648784035988359544555962862902880654993582348397890274921415386000495645621500048437598446194159795126102890945010622396963562681254954354376879471029147247779572054386637677233407780761382241355798133246228528021501551024248100745684518553518107180996424820981148162147036473326136647027792414652955097517445796284045037398513577685919402145302994656606065950587738374619891861738160294959516711184051355305942029565494649225325245919439016735801232258191094837980037785813172866123457311495863706754639390336452697079981305630561451856466395315214399796235519863436087120037686854134811391955496572889644185931475548864954569940159663464956458216514242729278515186404096333169218201763019698818124139991260368401141081235736574455200252948754375711182105489090566955179846092231094232672348640380354062983963622550335719744552201417211901820311572059271599028862099106441199088914605611907898427060390706313643169854665095973869582147420402799843099870559028361867255693793851998385367720759388813180478257171529284366984383518390626588141536338360924951071680586225152206298124493184682464617604938868228070619840080549866025634390613500608976896649507487201523015113884123644255410466290797860244091075562963013202972196134142723287380003940569939305441198389441360089878572637988255116096561544822827562822060312366048799979335172387526883804887059209453770437744623398758730574023832975023692825931526470501159892393992970858223697175940282535685544231804108820311148294455166862201271257158237869633171877380600023557610612755648113284294877508726959403495184806373017270312055260497550343724860509345596496600470508518597301002246101219972052187815470432424543518865944517320755662691963380674546928219318773564092809429488070583688978194923601568457507474989030592240399029781881756123666790471191289330303232456259204063498001730833837920287923098374134147019415845731051206927071618197402313792602992598213920392460095937158447669760119295345716991519765758495873062170049219488913303361433370771868605664004063658441358566844201112180839080501777198027369763270158848642648531283830494900933645859226575431199247138993518948092129678452812404896220869184744057542980200813140627929992576149255527715737295780695491608772189775581049182143158621488739316382441912846233896900305828512295577965284085602343027408177096684468788334921088636189299338989307387913343169655441845405635753484441587249471877259729443469440385660532139298728602090955772536108113926342340058919490686291853143861376345789043240652790887840042957443540335429416108218574254590712121934674020254768292796338103462128581535957491909157584488547478142411282104881379851300955982130424500801052367262133911803843219655444918051796534919600163887232071590118408379652204680234625170439580560086114204524247180662378260073633241056392851547904551501681134056532034004909738889369708545963179892363377393924743283084328879041762773254323516050441117863758806821571782861060086782721095120610210626153998143869613717276481975999894647877733427374501653156411957835058622238324749947015869427681388640990860420283896523175508642574870678196602384953750526223222184350026457558989284074060889187047295802324631460734100789877946557919047545064719933740939699726553394099571936873778591912431929918261251848502151495910371665730372673515242376959547195224996731333051687979951163355928430311343104234052703615852861910679001069398970255487342870849641013822601887068064356073242837253905479830348473691084721882048150357205003839171847542199136690197884712524650703620862083427810331976061064348094772668080399021433102905966193057053889909267527318761383139287898892209748554402514756064104274967767913571199684410939619534564731344139806515302193192557507002955895629524595956418470289036549168768275318588750244664249074285534981278982785287084021671274241522529601721498415710279717560870316863466412936679254828450495595987036243111354706875383340352741274199658454596236366049731259668003095303374820429179429922267842353073333592468953400389693807838831022959515638236851369064487181131290368782252722746966408197368047263296276329167937814308999817096027751717513761786484724107376362936245236724170440803941721374423866880599074628821281976755483821519855279677195041682260470246736813774619899383630484910103890135445557740999016103858242117083236728010923416748559395456818382576461021425563961326507800267625603468054872736247735969920702156052434575350528378354749663750715323629520132097430999711832588761746170704289043126864094751016910811282304991490395440021207257291028148824103652820411165481534352030005406255432876118142830841585714571380644557578449788758004235553666840387975979577881056047674569609715424758345547629076970748774985171149395480720715255725169844709913106027542970111459780120747737939755663420834430237109222455928287253889168415225990307760509300784751992536361618643133018547003326602599545540832109462405204905119188513288221435363221458223555337962658440635797256912957475419228554032991269236805779192976772398785934541534480572955290500428861749754707872637618105690109992276028102122779630628455597705341199731819949792682535048420964454342081997824770813332083127036423508835298084036894533084405380750130162867173144697006882591110061337326307926679870658289789417867704631977170677786675749105523458775416065123604417328122542162393960014536758456643723286552620846096081866177057692601120485625548269367916533815192536391431714517890399831393472831309675288455920515548300317535643234682423466655946407126311679309574729784573359389076954577625840053763744209101003541810437027088923755480944025998939592148482367272488373394990708203594311277241136282382399538223443344006210492076352988428329360306851096896574838287075259786888455163784647168234286393682646376597237129371465622650031488247504911245036480852977379575249688168590390347458638259095105605262125121568516215790942980153150307719673788217048054995694845943819213632633490858883025991912848612982438151156440483844462380712775033589673256394621212551551356416016379847611318079007202696180711183061005316764531696407223628516361545196870285722497262227180802102248472015759722315669284374537523785772894172830877193130711736987218607936421119603004846798254609022279744112221646006518642715437194549991264235462833668893780674610278855069617520471884883822911123819109606862987737190326040511409429827762498958592559123688672588265170553524062586546757423974143446845748042334199898547020048531017338114548181858150333372942437617598345679058950555429541861374440018897365612567214911848130343094913545574210438961563353348469453348250415345032763346235715737423416468482196786464192865236874791438877570377198444950512555959263864720103543981841260359818209637200713281347803788918346467115186461105171499680011871899386867466395194354598422148785980893714210376209087922598108903159177618237244663316912398300894207053441657667924772531126343577878676822300718224036314194441136055159226657680472043842742020858456478034531625652331918564789113289002197259108840105483336729174066440466841139626874375483954668408597055531349655690678784602934109535318723536678963949390459713851846278153750429007558263606422451743531597986730234708983947432042281034209530631279585173512100563319995465127406702196103236444762389866086087145145960689759842866833251710572359575277514884028679568509775391143355111847093262497965299240144477880939307311687490580899738130295945669044667912859650077240286469138603482516591206482891338339843243718415599821633456512273413096573191693318342337031487634239990060004917371675965161439422333300848515060108399249675409196623339474770652608469761333245355114009766756341320815877522206250756161193691916047314181276587977607106176396340010102853336776036235894536159113943886070527901322426928084538520655687465712662107412021233885984971957779685795688419316856318374694536412104672631192989637359086759212768919626054512744862186740334908912632278832979655869987291418851726747256231341955186762334597888663221692497136639209401926480010002289018919585677782631994209509406002548927315386589676943926877143330135322308078748220839908602638103768783876758550607145483015433266745696053724568132809468251235794348287934467359547846820007003563793272907840126918069618146810005967919586388849975912814052526203224640738127794381218373155839257896702202177350418973992626775099376986096642737311015253869822016388725077026947767223418266349868595908016501050288006815958773760561175288447546871377230958156850836156702186751578963805012544401007353658926060252072392625602118119986580282864177146754295722811041293974652288593370553392942570562963379785312795660476421994998551556922587459981875717284320569985917828093272827521223534736334767796264923806545995317544600493528945610634813263195702276702251634347004807269102336811774634582811150572826890452857785513653258009808997753189766824973653341465657798729361763016331340743553278006084691530036438297211543649310544979221631778496235992088288993506552006423036063430063959566134238886510487916294322594123088056890566495509918946008594698382613670256243451960420527296472748529757966067467747246989620746585076533058062393653373624907062559322526365481586429782165063476823861356797158695961099483337484777608006233123272241409042086326081470382929746505667772099423326277458334691015757293008189898325163935426042235503136891127739557517521129916426710235233607671962679908126547083445833226182153064886717428084026248646660943211648901728105759178490733968842452985448619094780754218917648226966081210039259720075326885152245111465979159768394758883357372230046278966552868141927998769919851707842820920073907686951136993585278788926716887251031077285024411657954571698592061762780056495186181842154333728956903617503174954815492024911435870874071055247890912187138838315108777687250320576627868973862348332234473081093825922041688865540262784514514385013248073754764160360455934060906178470624310824446792106872068531967873451105453365658397664256748289347907336871742845760132758917624285196828003385478230785680054006860945627766181991923459783527258306369982151774430593949763892399125147335119131095242847377561972202398830662597435279251995207661385275784217318016090073453422609841821811857411661072104633830492053506795211410907695069019792423745021162344359166211681335257891578323655034269147430859100529501820276819942957250920097427639386080426509471813455272873064151460172122961572460823625057630085112308111598640441080333579072393067567478274422402614148729577384121511288031231931736070577997306091345087958163547954021828592939009456454491000673912628528540006566418605186921635511152566249725973152083072524766721789359178462864169360312967865296596889534937949316143623879229235212562879637979527043779392781149342091627352436088848204076869615903602972065805197882264929063190748218598601931104333342288562805152130824894142249145595105932975990762012125461154594845709655476173433383149182416873198055438704333350623935761651400166302675140681304478486716612275413252608457333217714449548322634378952360928500714156522097168850728910111563054961075720233086165175763649313796973912338032371158738536731396108341474190352112817802161297063011171563149613445390091753268222073552754771238947874085904111471541588642557155040029942825960291314197349286378003722716659303957337812271764971607848301552167138442116238457544050518855202914218948294311268967800193613862571820068145887676145298740037380976832501692487575197625431420433256667457429715127863061235808607331627497267678351049786101607350537533725680383767580852560093960311341121611063433602422699433001746586053426068719712429995251822132365161396412519093445776994657578721141443187844114150545779260389232629515511423755282755946834801947747528532218484745959069060617936732025700599949386913484863160866228512792534263360619878717407083352194484753904039643033665035994936258666491924838932299468684504470115130648242698877365505290657080765523011741771040420160353746286954233634378599605318892033230612700700319384463313922111772811585329791964960175970003835682201451153936915537757252988865286834985496454710901517876832176820753887027576455131490241798002673067045088118944194887819150620460487912419448661445016384778161037709474025557511997820081433278452442446336418793122394210108026568770441246138081620136059872875145524593429912552954510513856772190230782842113076928440970340036619729459486401436672886657047103706720106913708393675548173252025666886021148801943980429945599621925557498923812211645903101656779996553103657105144674958541713692886279015577391935227238090644857186854194311290193585599962977606366661233797633060387561747133554235693810687216846182109889207521598061753211556044125305521575011734259678218715424099341631006696942901548080659019626326203524878489027576935075821785367892800618784474585801502632638718005178463531707287989541152075611640642992563905362031890198184242875264346387655289402308818105277164083560838682088077306845324377631864110619580958449948160739066320149782166539378213662741440749728892293155060846628144139317923654727476471005944907666121567305814018614071883625306341910925806717896719479325484952727181614522045268060966359479406689536656680678894334829831132870478924440981682294073749635969233191997765396915900420986423493204590717934893636679018014756259172233197273403106478978145410147653478580674127466347086311194574511500243854394047749071698151553311812222546575823175022600899347457098697726077036512665054560413433443123781993039326234661995956942745298129314715108909828519901565696778584755462451209923096800287725879689575047152542379101425412671955387799590347396755087987721073445167548456771631059485634641538888784286296881301242857116644183592321047316323308998633183759525710001302403167371116011884983475099523701770449905466608060412311161762218182190107459230918113073971678620831835959988222189298968311692794939917226935989099554407694783146763596089643553280128967220958381493353640667359016633497510706763436246619420114881317422337296451473641922056421448642697177227838023831664704575573256021825129911591167733883414680123257110069951434339040179053585103410623337542488275282771161686981118995216278697061127475014123318816936520155553828890007572494461569441277723439145706548001645615174076332888515506594167868624925450683125185050624026444520063046185430922375847687042744269317770211432498043179666870548539733060220418153582708415597481630228305751734324911923554155135878741602840540270064233161111900979151691415380043021515792273172018612191047520731953761436552585240777557484377866509070205995194997579756087701129484869620965390485503280535282276475249773502651836497804815270487127429997116787706697410308172732007456171511646695973823333503767578362252030105065253196961725722787319624284921439555903821651701283780268676645979986602321194920360361533387816924226561818169760057519011187030331265923106489843885796251060560198078455378558942012017745366490940135323568129781277595832158782549960485744416967354286603754111650752829924734472176812193982521091245324021085505643845419803235404393185444340733902141565965379033491342949100861508686614097784854424931021447343420899761488782769470533102162087446647383025792729420395949110124210921927596206200445570165387929793282875037502381951240328529033762760153552954400140396170072474554346891981924087267624296242374314582473005323115720198440154642219645299418968543109015159801130105738044023079356936827285992115598438523326294160617700000940324406045320880455512310999985230941265661290531870492843761470769539629220867330626542182191141760565871069296328081368969702303749947129519148384703660039477109829064599930779647837762331914186256115802437676319737197752421916862663549778225826935840535899683077103476065522719107143466558507853165602996162638480555192858870626445559643395392956796849511611583029447350329972156978907139331714754661217406968068131502011026111426323919999073294687571705632313850278070270936432956890988625331701076229613575082903609608853305958032659570791796143650555827814886260140396992599816100079711392366108840855052573474840434278802718888033083669208588075943861145358314977211927207324471019233431829708694818236974137135714320954007365791925771363151572197521972320633548756519900923841353065825941982137903111910472189372183232650407080404940772408863111458415030157271058348795739683626393685782329196896061220939079238342978176126995467007514757719853953572438405892988708528534182639979512887127865790448886734911443133689718781750054938271162234947070689215926506142389170603147858594863473977474888305954676249991671188120887783614210531625247340904194063323355894253540701388899090905620151759094429735778299085706685310295861656878044295712235836439850494184889983757189248017608173621338856243995518119547146916345441943932841651385680718011664455984768968027672393323200113661352615883295988246407154602755678506871147866972858168664001732650641826847129953616155018232272434657902967704119079194312378022285423664362287786092311022161691458942151144039611209922529512318689918037778668398860010783105942000073387016562141240100438981984558918260509134646513115716253508471442192943423807340831002454686705544086427390458187553700748086537232970281523517827829713175845944779926404556822182885446439577385521842525323437929167994944073359456366412394695015464654516019087817652863370977807883920449767249281990712946680732550727315014981120517512108594495479582862621903863496148213120734294153391097302031792645332565157671385749540639233115454910996351757464669818254296634817435276482374951344795100761594735885077044087492435965006817073124385780821284469511547420563489407229354635092235268163445733332637496354068666946644084886616205627954024283588794859813978831752370412192478338561736353318773411314988077219880831116060584033338088555008537521634517363780285853138767896052070727120177010152966606120938594129233720302515331749793756801840739540836020712451898467889503839012962519119312814048138430196617593654583021424603079177923727686556868520170295621901843496582984859292423240761781244423267139404278133328352751330493174690340136151295529654147015748794415824873906259850148290632386384503298140180773708100062196273627951189788617701574235099012808188820885670234114575247996763656224011816869380040060302403084613985780860890568307510925527100376268512481529353073038354493426548944781323000688865713324048652677552289324650722935174622607569417450019262627278637643733804500399962987702800683535105494236271102167207285872476724079099296626675979531765326326347145571430412883599125490859742032932198667943302496058896343191622095393955438832030964637078623295807852791522337313998107275169691245390304249229957945136590141111289226664032710638771720843064783492620431766792708081158528226444517718975663621535671505000812746358639455554432525889359584041785865248413314656912328219862433750013846783718351925642208288869864913800551918817911473650124618249505782771476891694615226581135307880628124585611744514904055926843180716927427347380070463430905076674946992760327152249208249412605986201434282863556317514554117453427070782360377857589775839677848260317033749636414016910787730973416731173381244518840066232394659928852345032890117959438365637950462430320616618443226069440019159909683977128381084877108591925288291901494504665250921417776037914926826573395699126497976535508201878288280114847338406478238218912555123200687445286079923460237140189968574882198492958477161782747112611150888172592567868914756529094344161941112755923363024040037211675392252901381451526667818213682860303594173759223550063926621367526354214346350076752094465331967096841986961064421567839938068798315276902633875801139681760675782069061064405123102695286754427528354174855447280632960732526593005763706190484327504647215644439780389353000185313492819382246211214835187427151614726803981310667455852175465239774152551346859137365615092034435204463661623540118787431642059835637341836675797310238673350621240520252335020238685514055320743030617629559501227494194947283786300576403885133519244343685935080574155652938973160148683503975578329215558065829855776593738691960308085693082830629611174560172956543243042118036874231988002435947983067702255775528100647901727532919106570130047416777158090854355458635361412354953447249196130092488457818912588331181627070105518081786249701505862330683440910405453395400991592074740474195431045496117976965109356062528677206154539495005347267195239917831980925571814312713747523281419253825413423909287085817531751521149216050327317058334460465724055723955855404963656901836733104652457821495981457639470540390851509335321178884610984473914683951525615593239898978405888898457301989676872971216958650707439419980092177284227482939019978967355720315539580137452593668007391931080601782589251267719229503433761308028484040375831674890134035930911253107842056243835141953188573351187152978997172020141252595424538870445042819294405211883520944498516259428953634077625380134850561469999179554324677748204244592190980600034043954676533697354851995856889257378360555082127179568134144579431113012548313987830746730905259506126946923495258680324621866156881309354996162999321941388174539759157541735391413371424391484349317380972089963740493627586801108349387693574274517536205701541015319163081727434083890571549433178859884026498455714934633030145963024219688635530737886385609122927507718910514613927951572722556831421911017841202009911736687440506544561825345561605241072329906828646184400539668786685372465047288560936443301371151228867986714372244173745344713295529050406772003440812255898372677223222810291940703937021064744371838652412572806223791158339860088350123805363438162763006521108434295342714899836919945227787970646073211606340577283301905406901758253520706117620567380668616337461665907833064493085951785606878047396414675481088775899384922425906900136017443056159937798636536925567552000351899188777860171869755497468843617539963891666206564952552212058005141384387893693256069782097930882571797123633014145913698346695022921023697490040428487961774088573056817856976977659975080382579537204596027636882051522446589506195304186300991005229472817773701906592642867246850006746271268019885159980637531691147934117902214550375543979048362566631838619568033739356755037930390464234540731807146178168715305880261424039262068262938276929659488389882772252443119165109131844575717406509414826180567722936292336482030770150859879490762683266587660446410098381960029484921313186672810204559347248486595920081349546912350366185633065710413972533578856737331002818274571124635577060593889553397512712046434210291297091322650902877095426204993618742804237134260333302826726857589344948407549823705362508536622360630207465024766131677139752568185883176373075118416429870457402831027855633765786451215175886383326247331009867324867885536457961793491465860122286673034800055938668224129308500829118852076680683676931039447087124542494518410462091737162053258198250134993517084478145291730141574115432926960549394889931206498779774531720628320625237636037411196430546288438914210214039083156414048550869626641654053196773145800170117407983434870785119551092044687349834503106622655832077075096983351190662533931729247769996984480057257802952757258829938903894136054349247628748570285039643862954514628364300451951592357886241930541031587986554557970098522469173934290904106153004565332916084833488248817076715115120772377264171157370788019578517148852082223272922291986206859368633082766184274216498265495708746339189952687446611212675885089330704738769480285866444666536656923673968668967476340945695907583822794429513886064217235220466189933727465680190604478201100055259469612978344768594384917010018360862312226915271809073598895806699191913686072016459006760453250499592796825123633651034156732304360456864647740282778953513250617979400259846410510057656730062064662990660142870032543110595352276857256786018661215288744947930727719168115784345115124943065929923206539567360955415050579030632292861182101642603988656725157846198504951448540836215444468173459667657684736151730919205503161619341455336137966319816167629914959541909837543262545212352116648747738338092629766849939123995807131276306529581396486940618536074348495767342143919469306740218302518845045187183794393226460437970172107851845232203794565202368712613377951300560684261868747184317759602292916843991118078153274818293416733780774474099222977431493790142337605654763123852809484265839082493897811279195560578270200000105585683927957338809410479852294973346224944988947833156699634748643706053188284503060982053125168046059262137290865723355005615399745605959774392164931938441428887115521318931775808340030642473215681822633664439188738997979149723840906157779765273563087580403277529572514936283666498121247713879721315214654498944752334621812446060431792629554436451089360767390854894942070248854000007273928724327642422566477717628134137648816200808712861611124788899956367667072677446549010413023389680337038922194725640065013459505262610352951653140008404816691497639692087191879810130321329425717390045451514976300527384188937526018370951626662466588437420529163113775635090024091340960679434981776350550950383143371236970945475795810593225399241403467030263722004197520936822213974530687151112491613194215241333325163360787937680329031549887981792883107220037022897498665042682178258213323791634277371031637482313627692373676710979231596219084364475046787635476348587921524079275383011205781511827729163991228704370607867685447541829426924679044404995295672652540866244195528469264478901286219687224207195426968742840665570621878036153274149563552215251754661700599318612922072805274707622905400691621746737752065256180285793673970345592906179855313883236577855161891095790282370847546088127970409930255630025987878889099909431692527660514905037970915216589224564347585374994796488861266325077516936464553391172239354232843043557349184326900709218284402485190266766923562487385829841348692856534208039714794931667901575190288527306023672379337537353826697254482636295405947953767416533159675259553122311320240726573667990710568180470892679016858277953905463195259452649386642686288856344740495224186480677404923134549000778176534549795823952554724877614746199008706974554810384625388701640716053565272947652673348307929689549646028518624172144045560531123181431668698099397806898514803901544404202880292733463969918562091778179590490540831989970380214532527099476651901000501177640243929045916746607096064992332635180291386823230664876159770891384882210274550837418151535694445115913949543829178753024157173966804430321857066629583034916736448112986618479992519185581517641437107428151354567422284304713923854536873257685420200184156673440714131788281392803900632432912190839969717230513533566302805974982354136162063567700379878423068460351909924093876988359949326797932924333723565478768533557674144639672903766980560471119437823147807036842399790081292734753147518122950400243655636543717674127649400741615700631269310218568454704578901003039771030314346485752460534272863419009341866526992994049694462949080065847322709362704400852897568929747635355509281274536358162948411185714293307640762609621060467785312937434101626214030431759587824689009212334054144884597685240792228820572240831000036460279331062421157104336773491453658328146799567328308584155725137186090881584861234627958839656514297106100701669858475986507180759850912268155372740255106513257077877262473805868747482011512802065825231704740208165411885894487233869698227016115545140599112492857951071701750693873499690000464358113901838959826084548766739784306274252599916891582730120938940584084258081182669848184249760331943919353219721326879041276018051729111128342962258651636177017908214106650743126003438206181084194394339356150211874510498144308170634594310889833796407760375036857166883114142684270304494174663765095525700975916808538821950991491688983723991379674893145395707090015691446148573596810111951190362382205060444141375284889991189869385627597699340853549849666644838098793506081217822510558644289817064722287560545369941437050547397014627595391354542847322800304885454512274842317540233734495123367236604911570963025246392820479985684397192821280895166135342129358203670294911308680937500359023704496135196445423868877989774768258226224566884221620404210186230091223268537709524692307249944531677687007019002517260496065495183080843448804890008225977078692951824445078564578155358528098415021853496828342693260159042197730905466753931298242479473649092097700320505452905495357888567102955730482371564657981303706708405525034273519980346178021126584864641967128834433306202620778794107207544685610344237205102988534738269779377644254667272507516978771477906227492076216221213503264819121674352970647040101431768173333203225531318552241140870897389818693972193010493078448512354556375805066764017065673976181262393334134349183465401405284476530960952569431232438081618356609414472644263916976985143571079877326795767143230025115737753241547981958152367890632400394984211346762314904697788925600139581979053909122766610914091648310834366377732969896322428837913328421224169326852490038740008087886272883685529792802559898949052182655687666806686117679796052556304425983937734397590356591906157604060096635062881115355715663250085383476294777662130768560457370540522538970968154291578458554568786750413120314099805859509667699635000249660411203675731712749811567836311376160795033589483201686973361355527893739731803938673989520740469250979721394135710742408256938085805565503470889067089178796563014382579862909527705426858676020285196761588274725085549479095831007709212411078913638007479125490932360057475444013368343946273620800569404689208424265266271696965053506937909318093924552985714642285324547253830383394633262666571137781863787179127941471810741881121166367580424306128555268454054429566366802031878130625748326246041778392683940183664184798077647751264862276153078955640251645149615771083347908251540966605150542312442246769994296185568271898154773616892567528301540642590619775834357947586323348647603594529766338284338152629162593223997372651715314573709848494063462658406125180667337158135905811672999973914430496468047266353922956043965999346503875892575968343148198340816225446611394531080849341063511438223452497872301086348824982007636817634784145281967626625222389837309656775243472251577683474447915503940264295627463547051308715186240972836119203735952785192303754316075352415194156655957385253768039365555722035134364883178317311625308944844102003496964905617213459850807187204117367798703898519149045659557791325636238089043369108777375587900529102734100209424497496537212476731083791867335829702857967550766216876409035212245734270637694153724182797339850130567941719329325742456575976442833660624794097878905353486663808191289185320705459868380211253822934028385913894827538066287714595616528477379458920449251057664227504172268924554365139168146113336286432842316256135865623762353109696759962399042619078006303897587350873035956022040946929461200428887442438380519908270313121439456343197787855500424946958416844846148565886429567364426121257003007054376444207021514656973354028615547587560694784804199319910605839170178457837121672952884654804564327339886371966490304346667890083747445425260801666870152342126871774566290483044809953557134753842402331563509859820028462183291092827771951290035019195880453909984796293753737751201324931427222330273859767108129256181778354918014499545694976349694563655882254317912597003428807672823120839434979645610170444354265034737492313435368846626585156921651714661381152208595928795110672106179111874725034365468184717757259787536218214973276891418815859588477992212236933412808271124389616274747976731108115714415935687930627762333272277037667913994482121949803363883086447692195695113735041023652804599636005065482942304093951661967574492265628465802087352395541890281058686090760282020555678240255218849369870382960512880789207604659612436201446755946219516379428891097223303428723595058637638412054379716846542812653093670927240282352680213322583923942052772471890660208191259558150336254171557016948373721397326276288839423136005151286207788137428622183455961348003423526773951250104068746913700114324822172829276979731701454600522032759684901242035481331676463747337270113101202067083206211048072556419444400404544689250412492999710308902292461294022617765826754993526180316968283514305157171417341118715492716014941551374831866502284525799194735107948193974335100792447317565271392722334903130970131442263391470592227657483724863192748033163820853783153589270945978085512604934070128625681371735545554022086304362110116466706820853275329935277085226785294339790650338819211962025090601462182058043764830687523935277346252008132671418610891944965102568029592240708428247281973392713266024316496198534505548390752856927121521473173078347655192168574326980328225538449249076173988784628966073271173935974696873166655186605089340971254524544527223955145455886720391941681407605645036564090364849639503040411962718737659605249961658015418726569602200510607415838384850820340974094039995154426791524649491235937498663424910234294693636666515987926280207955726942657689472625569292807790139111345839996818540931779400493998731155891088560050476887034316916694312310536586035843354871175127773785706134718264439951810861714502104925348720962878200378320859625017186704106322242760091057562475193205724085426997982724063314817247198519785791000170353162059591718146867508642178119889545396774338830084166196750817156229536038381018712442560545267947403752919637721052769926909331901580780688572637385112848638020629505112514904378496633851064876236326662032952819490933674994441631338725599387582163186965154185830980832018875331058521692393299012488492021386860993194272439857506694003753248804790230947808851978751057842954479854290797691611626346307350709401295876412142873821426307741363567571762865040791696790287690276786262668049175031879230356211139270340312561504354414944453524594105950849856800490122434831563505481086781298671174369024158164693539889007653702945085003832787436311477181897012609004233234862571685907682932660472325551182395527839850437615422244177975876105461078122343630954724541427805062277536673765963180774214164869373490470655340535642720260838381875575958492762937561759300958335927227751065452438672045378692269556846411830747666030759209422026656764611689041326708607851764890563241625030454402239792862136236057987936315100556224776309841974521370955994931961900406036176363428696247389616659469270252894808821934737861114510831377816736235407132531533784952626034134087554428571813202603112031766239164958150107076743334211926134379921447593800264125297005104075521085856487704406940251790765124811722984752474517972857992097489774219275049816726330837374936320938975748080594121882557401594854592979143917955424793799887457481003975265034214365760429363805629820124368329363408534654798189739018074682307595612762008301187727110060423395369764283511527702548407317414346770200215705345049391056529858025584460671452657270349885552493715938479503461216634019701748824635336995274083703325101213247664720989133308813883151160377240067351963329786840082653970662802122151899887345232764358983852767090087554712111242487324159672671624266458964145894672887778259768542676016873877280392424264545289332142744229966616695894877472719382238132313893009742469414430508261217589485868384824475086377066639599275890518446101930496170723457285694163699266891220814669869454632556479366982028193399623081628026310611023435826426406390095382442050722437135795222492679457620026308715522539092598483426857997703383404612566473548048644252863311004295099736417277215437687436041819571474167016790358020848589308175539212728646395952312038923785288256036626267242520404061405336332037580877984240539060836834428021776852682995363569231562975608293886307705274094686162395745800973366690342084332371053961988537325185603214042304757048541904171670837352637669123197440245209610043526602990425205652097762192299133201832931370279880364672473719470244097942341194981311568439066081348074940113084305715071400132455337683818600366955707109819516204435082247838361508588968310466462938695256108741892241334715185496380078638560766669930883795389018529221133340609066563639215463878676610322118566741324445923268814750469326678732714525323698492720781955686673840207951117071790109404970308890126481820009260344786573671596993564945233686608549023585080176099285446629031523692013318653357291622708550699410658906507395177264445481155727166709576189817875488880012660137573935414363420401909666849786986257359591324089531134572943221394820213597077302178937127672744429806089947708588774548450734397427485433146142585348338556299631299145429694304713139096444857453104691920250038090236907722093748154818283709591731879046057403406368292527921393812842765319185434574345414433669413287035128429609236741937398708797173061215298881253575793705216844753788227549248626865518515947004579175719590532383305614057814682960422368835323407133060890770268986818749745797199517914818852752763058235670337575123457863876836220909797089554921367903196226325184191613434511445903945943211968199467762780016869578380360152951335889310803681587832734610311224110968904197901952620455035336958612365260540867422202355044245813609727534651112322742912999271075687378030913712398474162802168499557169780427970427258201777474172559631157151754414065228875785033900853188025463696740633993591142683354509157641598112155221613728211776507480851653516063705261517438850630829858235881916113479115990324766694530075658067475653409187188756372280466315897286639687776835513495072265915880600805571050414723850195054450486742099921821064026853445724956447018019760781809964751378868384608340409650508450441332439080902860814314453017174531923997079601747961722346094418411614609191902629938645964019051850788155963845444264543410806769674444020099299176001811854646427279885334163173411438828203935123645056918945560793604095744707924493144443540564214755203477845704647928949540234085370037636249001498141671818111748380293855006702508635537744743228778116890509186960764337630589961699768682718587202254690627775160123694099343703960892026620380086750307790634634822274467795419646492147020485430510877904087112261461764301795084409398187226908834412058634199994154326334232699590922959738962034114247020203954463020705365723932897701083774724158204199737005021799447288880758929359196715988270890122877071390938512481198614200117408617473411402851192575521187096681658743171227433929470336144761384366419357190165431487637671449213691344259629991464341478053210916185226024533409670411487082326744370137377354051669145476962760639581575081903987150555127245293371535795601761428118217179302804252476639113140996503815563467323434269419995311426390462943327598726235301935322654145690327891610319017164047961792960031567010032601037597918829496378647753143769342513495656706332467344548329264882880237417439478837481250027808826207680216258265514343076348345638551213421246075230185611856311623856994775920205759754284804907586157381690689684569838743713049141851159446301247450388548331204136069913384437040504194962978339395127181359499547543587101417801797506918609090624325830130606215541045496153983494754195355900256385809264036970628729822949226253658047554693215235153292431098585758192184670681699583488459424778159927812209651217021572617622366585294517568651410313327560750987356768074748258146275961765427745360511489107410770008585770251895923761763715804042403461829663195007335482869259645828963587870459582900677155087440681632176545579401309699201354050887030079067932675734586388457008222955565427717381950612615732850356166437383942843407468295035617284750754150776172813376442663795068640767848117674956421945155388696032501837141458965122199913179200463478457207157023148530117902561279064902356620664408673273968816385434362836562700932634196046739681615020636194647195620734771678627329560833285873684463532373366314360562977971186021891084359643005176712606601308854388092133631892721317109913942498584362905391726460056307284588650214138597103413524636860700765329505400077159462143544136573621644370876179946861191571285898830561632379196647170650785457578459249138069312824211670877581013483390666321199235342961391555366763856605728043285164811172882096488939248168811615065852978282649656202161464793239222050488185788837860417073799381468131749335029914092596990453634089029964725605903786522911616012861372546432744606193737927518637413893681888141449121208806748673610549908510876577566895705012181391175856247790303769856306213971236616561160294883673480732424695730891118327695898632381197922567936404741448649438374533940154918134345507257706984249094842123446253810022053688381725787455318782310730309999308029895897709736371103503684081594182616042626904061243408620287295819421127410380735046043101802750379847341014720897095417600947156920417579695504173270724848750935424556414580618404686817792263588852590617377686345076338123917133108035718330571969950315405873215031475867389444287385030020065682292244614940687906163807991183760809313831706170682571777060988118233882107276494516967141550806695219040305487219759543258469279206910312324726882375732184428882070218503386711222545375760932596348077566131932361219251170055012700434833300523073758448496562687219743936155742049784462048284574376303936676673428567490023800989130061579078824920350186181128821701713937184743904960122558553791965717553372945142899658001484314572240960231923355126703102220175337568329278873461276854513656192204936394288644725990118007440728872165546809114574699912169470190883986237998869186350255810518541080718419040571997507510172632648225813747858935819664671287821163505184327706505237170215003382273045578815091916724644893901955802564040251500987000126488939448394316148583175367090547078573643078479097966297253199440607920591372527645474282563484332958725887056688325758521066976853384817636448667420686169676348034782662668864758194180236554516213615353000172734556251470450860564913048951585629619956748681337904222028380628460154267372337539625332277451525692561799427671221427287706170904005939740588211367456002781560026637106260928502310900960459018890032124274979051502475954716878145758050764945847240693702994606267580720165314201002558609812770090015514840814397074351615186014915804463145136864149137268035246387031888573930362972002837311235042211819761123032185323870923448066902325090368431193421783721595493290388613311246965014070998137863580491726521250574358010075205472009168530583442057184012592236318398588112608820887257412007317488272995590162818777710340242074462403014639112418701220318495384838858079802312723915236779172536388842919856793955931956507697608677701979786153592674122247687599355358620683278422439723065056052412781570356040744631810647022798608102491176003277339506387137282311075213988868213318356891701626809836159417773840355773403562619564928793747857660885453406230192771270258635348955052313286046843965639466384880304477783868495612895199034938212348696369768221966317176476911424529593269055049704508559155959949109605558044853107989361946404494637580985142370627905439894892062778359289394590659208703883413088587975334138722459061237218678689888153393875023899879196756927017036360796586686939842415577358164969838241053000959247247449214892454009586087569581998757508058041860824258414448138760803653223555073142323748072746548358758570412813519959294714437937120463003917266618952211470460280336302234601594437305839642467227078088895864298191309672681093775563364356031540697375193019069015568318236516618621894377034284823195891248877431054683399171940654716848205990053572521704820265653518775492716177472984558730361154454857774428557242123947685495783677608405373017076326303575477756375203639490869074344123509759468020584649873789270988675191728193333037867476067922507964907397081100897056926555978527747035827568676897116208975796997680689854831683606845503663077023525746576990454642772238712912255787622178702853262822873674076844132535987758267398367981904816319305074896446020549264451457862344199734508565288086129870301263957901286531404951288043165872460112324646618019466390224011359772794533548456604693457213674213172586592718741190548133490303237016777168636663739159703312464524009022956317300268463570868419361028569722375742662629461977646667263982555408474736667147245074322557072626991342866508602541261197335420389541849430011958060404621252590998176217599805529255548976104691752819737089988921425554882330638651141956320513152136449370182504669238928162132993178571156090990923661188562545656721842580771060009079963370363124719177767430053228409726758055431426520610296155953664557169891134893538925509854836938257912343041704775819808805245949283442875960561225667773293666129709394842209369817507882468982690947129396631403529339834947147010307097354856730667818264758015072848820846195548055792500951757287955527465265623109028565499427438799738418992144083939746097789336181404093592884452847910064214734998265941317951933316830400521743288935722472540729223099347140533634177365844530679248917790407197879979329854108235009482853461790963275077903546211101930661886398323398777417989524102335208144881518281635525256711025904011840609689295649409951741621798256486401662788002813688182362138964615668692275801307417628354597753275759039037416121034905571031451085557232938384181774863960389373221798019629792213527775174611592226825010603596700826868642028551758553109634036958058331652834389675795775419801241542044880817398371831379126293431481383969999211242983799855731066619474042788257610453287956310224361054074667826527976741469404908325791311926594017675250786568295056418341363979783342647118589176709579320161709773934926130637730159507460088339622919753335224712099790761304540822323204960276903747957402594259357862037220938917302577101685290695205226162975590072982653750700569725932147723986646000324748831875494295885070750634400630869349812741905758294350012149395277501539538883707318510736229005827636576136004915671040938936781835789042817921293420286605544178776292518122328932933526781859283234735715727948813320983922574952737519743373535957548284916090497583878734635299577644163226998648558736311756749561473877352598936221326870730138596601680058402473012556115466876055666764313973854951528753119417283499357640045912610462174316456520625633961583974294069296721668891061514149003630589248097544329935700631126891038770209617833864187333767728233000956622892481140230336548742589918713888812644746248195940143652492353040083773920660835743462304039391100099869014561578792349960928456967108627155459592878244680661215440969878651852366165353228694620315009647662329915613672312032186216920078432527203930216656310882088873262869677620394833043528662921807333633845365194781718235546921010081207004537798840992633163232176091721015926117067394500041525550100063032608671370023431926814701672646451260667308100064239783638411576649463250922618648645096394949832381304759814980965770350237021507707263364261647404212276095276650074200263184887948846810147590989285916028157588829578046340290862928842464972832466402111682786813818006923946800102347335501645090912318020754611292864212749043640677286442362865757488328738093475507811294406849193925092827176838576109065043734822351311230686687228503349367076044583545572875428584909034925808468651473734530130921414233499312064792807881399462776072965786260100312392067976863431933740306511295814651701394497094713557961017682185471547053348985227514330824970541690354159769500047738766151894023263903460161647268354456928434844915825885634764138647750855980606728661894673457771065839677397165876664073451664918371733518097138374921209630507260915351407527956463739020787244047674816469591890282455976512885798173502979259252985085568730580089299607814328503783857823092043781081598415703313153247323944734375937116850710193811839205871296137194696410466802046548553114781828804253094085776160297920396586509015051569429155678328137785611238246232874807581621120994253127734430483801253083727813693797865334455629566842736690217518064138372494879308715690750353608311103789582637182880146509751458519259837744560521261987350508202266308248880727044672383945713017514641594860645253206947270299002699177058152572220832179023827145258198930764140321159762225492567244508834204469685202584765507343208851872433964913551565180991771344733292586781786703974961782714429629896641696786498875923938102877437998892635681435355603358151340596025193965884561167441542196186275248975906629947999195519207277559287865024581363329004112301138877540607279336020890192502618284653560130677789912253280203179339312566047208223725367882560010606437872596834872034798110001174265795560377073292465522019375918841029395918125483121390437414558848672352854344973157874082701361634681839208154020418368203047042038434017757664980363695049449794682681357719712000610351055216447874683433139859067871756684849465820811687089276292264508362128549944293300079585160122983897102793013730765494974417078925439223347224861140843346946340252478044600301536614413996697440175101762030492635974356799492393764900250310450699483367772748800377947702295429493971444230408758769746107337353659343289079318451871421469954716173293768594609473303040538323241902083775230516982680945002171774767747985077323217984893737534542149894732750730380615932644306578631199567904145748162855081729035985365484017682345691854909719261233974664502197547573126145928240604809010453240409650734884859774971462586379365022831168539133016454885332302692803320795145911812068828969344722014076957722968578147467427642426130237053097835815449157033253561120421141910575998637703270117301369883291916058678770264800362230190189937596089165071801199143196490705560442643321310156970089802740337793904905979905153707254859548892576659598309569998568879664641157559757562860247754425800795073081833725386989118197651378639273036995520146534495048199376413674036799338772511339819175479333957917106384556294220731857334974688869564432107084363263702815531749062405270639385818591302390660452854379941778164458491886280014055501105017418444699629517019414040438430900063428129626311188383409167889053524004695820501585087718747885662536167698563922705046361195863278013161178859827704380391405569769569523749848472760257228146532283619743455505604403516327329208037880314540414016209094548975930402678930178428958143406425653888156989711480331138217579941216302592057616471842276632122574467411461740614668419257751890356840020114964882858982231242696262767403109350876528606669962044791588862491815531271653232354789982627316079662785741626848461182973518436023952453364448248911827740903462430635761120368624236882424942069287469865233649471537264399171253898152413643413474940379796340201677108748989818783073056372725628888280342217364583549843483684689510699023514795386015333357517526824080042084725919595314300599670207254709584935326609821977755890225922092392366672040222000140005643285302652352323880193839458206755224389127614574025603758200656047912739080068335997162489301587765594830767253035761478292461088570924544651986759263810805580380597879355527727052815172817097678738581093596031482013577146375939901495801780249168709941284582151692289028553304451209990583108158417106907667304483660295648270136653712061032087401040650203564354402688931481837799128665617206807409379966886186408087221613300436303618080955350146524886507145030535032527568474849636537920784102028418860878995208874831484834796356292415474611086054134589900689515907432451928147048988590109491589264095814288440111781318622449225640546595620351516243199502654008812325706545619704118709605498534188584957215929333749729826949627246940127500213868561128414647557912209956380139581457247242750404710427216867707803861024774440839518488026532044805252646857583425809250433736509934061943459869068684151975074312337303490701391400355724923611213265569246313611680660911698463545578446973480408766153368254489537964707465777711916486605616602407894539562183220991650928090591097987455984345457833127220049260476934384459670497834782198007248190436311244537306625101476558398207272766453887793233841263903065175547298012051429360700347202719832287789901417226127224493312817692347068268805073329084610816353947809598969170328245176075593579349877976636310230263418990997090844129413402414381914965089722104314299423397191525933525266507725999612198812920926535064026151220091255999828978553817713826680746854959503355271014602041112837867502708878861531361502457696336510111558522391786250191821602265730127319656730919664403856511976762298066306856054022460238985905286461072015020414945969527480962396698017464819713376638630706631830780701219311977698575294452665814337718709336473998325575019847171496349834930789469410558227062716725019617132245866034921980344679182080417378941187821520756354045560633512864194066877005422394036753198194081817073234753733292369738954470314679604107148586423262486362788184980873990046553700252617282607727325566336807908947319566272447338727826740091944145403060466311228166310979560429706565257507020069172522955792306757209699379798598409127275131433739176074370757912879102680474206744565899776173769721509123297921656042513240412985298148555166857934988793762944331520881635282195145811134593195726802939397661837892456672301350876895028932642475837262512839380077883012104020474862966373387460383675580347419567998836006529950709282472964747410061633136247958885418108659084752301811855153585505391301187460586310179558157798385175904738350446398044536594856953177501386744851884977735487872205318557353631449281615045352637319017035180943105227553587396423717998175234074478783624310855198940717354937988034883123617259615053747646403934939522408720560565067978382037894750615946904384199440698531983070966437552539600716345022701862437263492475646961439765129871802952316361174715412102674099510888666769167994051421104472067090390047387967643934025433561494105404298084556430541789025398652018840126693198091218168892833768121145976664642993000598083783727048528657851534833910533655470350666074152997520934596521643165800637818259078651131171413097724161751609309244626333232889052709603282425775391633915666891687160511792259682466520470411108935452735354396046371212744499519753503208802855759901400199308685725916922717027030564372674473041713449360242442968360879537440174247182782246108302059610750201822221484624008232681356920991641898817843956958660930681260137463712706958490223315555017458746227158658540686742627932811846118190610450897384188354224879484431579643431494000174130740302119584707868959835829047245902281650966163344735429951717495431809902434877609352145395593015311581872861290858510188587503385362358223435432575796874696602490915865869557834939247454179460498387675524627417204599957380778819700363302567871327923852257413952813765873849150596921133916793255840647601007128179790651718036706268881414210965050361466690957441297954592485213741739411500464034902978687109977058079277978990267230200827545950361309291117901792007543691416097238240284956492520912672347605402289530576223461904411128159999300900705923338538010069036424254165447002665568837396923099337710369990984687244536313344091893974839748239597560526368926282227175684577928250185253414244187961655728874301145550869108072110296108061525037227886362385817239076999132949712378625060688730083102639625328356826463726388617983108003420603073439951926220770760248085523469049765004004689979507432108912240068501646495658773740245608348612080834109760563018920289890205259077529283506021205641096232264654163285308688959769328340580706410474680774514688214837628141061370404647076513035227104064215656458908116903302287272860053542008875357192679436235525120910534263331254871478218452595489282705765191056031308681730174223210852527411130728216076352917652648834700147339199804862890621180879288999815221450556900176022881163337623387176713563378143989757959069074800796755246629828658127170356243863067267897915396852481290311397112752719474247925933511714402608737792289586914155595236596454437653049160911968278890154575009700943508990573259718409207775015373187771257333805561625643011307692234986379150346350797570289862811184300254011115629051168796624289456805594986769195057187054019616974750242458897724992903598732728553701525319302499234753172396507560741930286780173955861817228371813780426516163931333324855356153053203853188743240487381978429376619596177209734994734167220535126884385002341899114915883304980889663275812354388487415678055287356231088168299643208074835949311149149065025061476476691202290922219881289587826422074440030551287873955779273433418468229175842961012627514040884789089497207372397149308083153707683601248261941911683223003008927087147397931779000693371285998267605217560016755881518853658574536057307607673824971435225976776130800969816893307118923803955475010147602996612173605056891415909628671582395396446456176457703070723988692468479424892697308421799523850953213461046639836342301173880074382124336966643869884045595998009486075828787542000911360879455680812329448787139282097322465490744937453566725182386936579554988681945772852232787109856633125231000216286469569518779538999636617999398574643442374524903789599698099930309365328310014266060910623761241473114824900525136596470873755360231155980695478717456653467181963723733105604183020443504111505236883074019014919837393439071121341445525296245389794435249689562000530491703871332722061684053883249557016493517132283772391651209334482695883675780083534909201016166529227517207310836025519774883656469134896655804219360777163782419240382715361088974583151203061910283850714248804884109722309792418277022050012269039545470304419896530918757071970123389115176706503593146188717019882866980778143694394769732706310969365875380271155140889669481933860911489547396734272556765681039307936379864541797753588961443059463794651369406058536172394641966004454190668367758508404406929281349736620410267319863285912767541566748688037320180979728271139129357683441363558062415703072387640969285136436610586314634672628805518164739267223671908235137421269368812353981743913909762286042395339758039151357153709878275046200776813495671155063774641550591084864601597951346113129638676603386159610997330583755349851254933126202561469916856722689085058523472108839898112057781644187187260645673097299215004013981102835699644504961470047576395960638130537892310555954722338833044573119689487458668494457587582758581720312890053451630444334091102723846825611264248519548464186891389032755390895281258518730726573330477594596159855800045417962927299869706716471116115780407304344923121582667140292077931906493204748375725880451764996786480572672798421246637048693519996172265540336654320418018392796626814172145792035561756518411625115930917422833221609281408496911542377016054292800132204091703326436186130156290548658143838495138794710478163006619994825501631516270056213752625354611118525727585632239921432037689676841054272770295200950007642567660078172978696248946452199082443533617601040907080849869084957070578815490117895118099798311801116129936287737246999636043198442446062710540234466264906726437648715163500111607949735174016999169673916895120088894032028004568110373980374282319845305326255918889793627613784169235925427217122257634049351464074963490621908842408385908511541626134471862043449868509634050616013873735929694105052878546170921529623437844431435936165403469244034875889177225885307995482627468271427983837826651177642389147647062082406783343603026648961390114698080952709038057706393577315966611184948519864128379602315176636449567567021096739933629974782026856026409341439337860832595611980069974848026590503503173831727370644933932175958884740935992626176179179068590765672611504392746877482677598184284829999393482683824865839022575070947288389441150242241113734028549271554043121936071040576951092621982136333058995355858722706155464576324925151722408136434496328875351175953171351870961365586295782397729858535010434916327697686737329939412822719890555246181345447519731685615924229978479455709275761857915602193302538812199966828344824952170431132622057837210388700739784410790347113490314946640411109743819189339592211615628963956303721135797284876718495325360387883394385946518073258345161410983467086837643565612894656856684567000181182896940917101844030493522238032528437691186462909710410795740842984275022450847542069072598216449736593290953184632590652188197275913943350022988278357574693512381061511247254589553844051482512178584559433461649287324713034334114843524924134356966271609655202279166471736866094308588609488583639687103665068407870513460522780482860199767455984685872664479116743874694691834548377088947244966163989690184198683186172963741906208797559203071219663218120391453924806553039177494874138194007993540509760363060281231923353833047215312043083687144214708864602624905373415269324010494111909265156202719755899348082855415517617534895219437294839102758746004143219507435028438149177543096160746907805185823760870159164659027026221690055063531194805194708574542104800552720244504287239272072705078604644832975430294481642910017552057777494166208926547957649740070306156423470491736893509262198735634435078984354460679510279834888457204566006096585009722711450898683180333001559231408429580493436896873820002134027178212925634732584489861903896507371749815290084352366029719256272732637997420422504309718138419188253359827383752920621551099357643664839709524726777805816848304509172126301385434706415237939555254991832565548636352472020710109405591490858272848412636123883503805788586186013560069262933670667570253896420340808254558068358449943386678268794283256359495596171285160815993703958204925058463114729572084701569033158213013727864935278829527503483891314604925621018184510377355893884053178359109400586618348538867723204751910399524936703475955645267435980630271309303397812320725916072318502210733129319758310954608959202322026235160236617363524944997592938130307804605044755977566594176118200686891317109613285062284118345742895605184129723684900625075840959341311159474835920052198320819950224757196645238233078686853719124783134781314583800854849390125329282413659409525945779873111044243329809683925424455679651470765818763606185742875220109258216480504851606262443852167027472066392666980797971297099415258738598398188032194253657759046679341486927769672901139179512411670859968774163879914164399384343987225443198161671641931671621208214069536917884171151201219778887387884703378531987621795455453930187154324766607689821870001703243284495101831079258234964159632500609590423951477119921359590579208713137596245922938063501857047632427140613973895957418124406219488372366317473688642833756395936743051515116837371288340325195977293806330168367496364670574976158623920585916316952142648274914760356739873082907346095049302736876713374704882959192581081001902113592453430120693085884935782712736489102659702839319932357473307611715372524454996515933714693218182285188744705275345849732125278527049615377629061855926342478607816147635729849867982028749906291325377734966806502181758847499978366006665758964633078051019531192476363292755926694555252064844490000000067381207215737836817555915537797789805485734537019229775205757430921821690273946036370525008651939078823754232194169907767075143365931633652754728743515046722546372271192722545299961635973484971032807067721619601463993475528245576095703268306446071170315767689586858927164902746856941708579166146923046825197991992392786251318396749774681918937242365465436534857246216740817504797138489409509954169114336869131777768914059764051468645239297206979513681868073572493107132671204755531095973673606112781528622564702851737284298496501028746019057103557882240056169978334970103193044183640538100238247550834095825541172330569204816542399961227534977669440719475404680875291018483251782246174709973529746721484435643187165467181203952663738607407648685094260215084442804794362680914500948349920585667852501578242669758305345139726685314370071561353484408924310728485209713583218370969199933786201858376980249712191186791914567301778908179443521378372422153530830820676292630509421217813825316153125250919909037394962272257728540700007990572265950748539372574824248955895233387448477440390413165358895121419008548468427951221678433003663576570903690923570866777678426092125328004807685804940346149861643658023738022910223053806384109678604509023912096474630193302928118254676408844471290053085045785220519772087214643899709263580130331981934446340549427472174232057338993648306259750429806558733169470107622842991648605948861310811198802410963234054079576537644156949943112198839248701185749185796890687923901762983799414389712884519263995993239271859865487562056040486116226445372380939701642747969203130649475992439252641093012115848731429423672865454632600950605881808045937028593899450313788782351025877415482466231691564221203697594117689444510927145775129992115620533660637829162879673874589624885915131011168166313252115408311725487390276506180838670128857776204319211038086187204928081449567082729438350888670485359863224521475252587181938154828976067664203848371016253349170070277350206665223023657597362907365701513463443599250946224328759028884204225287061080357154004990601518669755052884055120259602954200406504032283291609410635765392792767155983889628181844036980296926593135296504154756906998498400482983655574948360281818197129962999795101592548204964769327667167262387532330185639153322694775544029028979476950175023291572784321234364788222092505774698098925043237134170221052785739310442446846638580654857785608636504830343171742349327697731725824481134548971675158895901184559445358436930327980991693376864686325559634065395334348458920844414421636327826418621039670831248226065631395147359254559346797890583097106608810141298439042860986788600719487589653745320742485268823732670520934478294853261354705780189473492367650743211909138632638701229393937974633854974574022384720972318228145640235961954104031010627125204215904098544825330267130012320543568261322024633309494226948823322121181852486408306782593598535538387447833010164161160303389696692687679244469260810773216744543034666944150052203805530864897318414788122780407709973181398955770864109641981236072621279010833605218997219560000976263950315476557829843596791463905640636329137045196165878822476069096357378208263145644964525059999978223721588812360547584213679423220379295127913887913323886664355304571936073125335848881730352728037573378315280529494363666709901487665267674976235892145786414682870976141082185887546980739682707968884291718403256337919220388925066291816817886158386538368400804211176084863176066110094685752394255057768027408612267604214851641040890086897361123772591909421492178729986141756139311078458593076347403173953852576018343670434333709937385427440968560327562001761759056383332651761244821867401563026140800385276694185276105991217716443240480083701114173214219663708970446346079658389404371296006770865884326060963431465788573435317274111683414137520509284616154702044041101900450060686932492931757539161203901144283251195849266788931406081503451698792173044625550430485838933766743045812932071718063331489421869222465928278784132963318923137276159094322390090587596262084464593089885452753545274579163746052661122835177100830356596658323014905585372535303484780144267423884585201228710471714402511434945358399896587745819294169225243705020089884116604948694064810000811742324853814999146985840762439181324655310194773147551006859505123067547443335060266280028284012477975501295815631636067918524087904897320197766300603669399770867833550454213660773142750258569418164087027372920486517966450897534454102036236568492034787966170532608442552659643258404371271063631187650486934404392759046892548753325536310782802134947871524836697043165761165124725248106063915305411368982126256160875802610958901341717062431222005500649337067759134327932944110043554435927090018035843254799159827477786533853801182009166871046673084560424924644961286320023896925367804278378625783047936858829745427069979557356792928009482987279551789217009895984295290708379682615681356082078701473286920178187607216715620468536627347047391215869957793684819524377314229652314753823097045251995589353523213374005199915320966730012716830261853234406214169525398935190185924001149595369563232678412476290678655169103749914656859756007564356006711825541075940889013749169726457438288626080851450168705607015854051328195629953677201459112859171109396286200181840890795818340625662460182106856016271766205580853119415253573165442037356694746988773255818868238658048903336158120854709926027311672442204045695388514255202046042781474870628179612120136029315063830594646993251439665675616444101203203879890604348738453514401062866593850070508294684435042998403077872565412282799839629680986228341327178799180818996077830422612809391357742968336073272940244917257053117319114295889053130720662528488128418096552675326901426919782576846749472328376030798163255137645509674942209709053419095395845350802666276787906431830705773025615457074411570492319775351530203690157302363120620261722352460289828661842613543661093327110337692630648520935562847152817618647642613492410473013382416934608169072167987246343805940423586685590877261747222533176338612223525453722819713769784473042631596183010176054566578221167488190415299197398433108799163540941731051829806024620043187573766346074720973045680403493452608931128271622658231918830733314547090567829264929367082307417244017222907770823727994162795250721321386943876565458855314763479870145493248901703655312607795778369218972040259791460864449815287255936685254527443225689782049548561816353028185486266808623784878637834960684770205799836110879754418022515356644029902438950333479412314396935421839102344455257187105442747795581275696370877136581964341243746734462133900847125641189424540462737784472183461553585913916129785398514467341488647576743070932643090634863581435159202466850243942067323296231155122201965350498933627123922712967541374450672796626253979476725989581738795731464132493185638411414394104797538630009628278678703452398784902886087040586479907891723199119037577247474424585125752795735924237384449138382042130711775923820013478927293924515660126843619759867344266111546764234466509129933803139710101833845018235140202971124975768952631319044481546417739225267040363865589708047326975737407893407130438155740527169549296340940321617264609901619711664482518003111508958851756163582859833375090652667378025070250872476456492550649689823726260080283181248356008776839010748541905046904395361568367943213411652536083646298199390146299007546569049436514404310770895790776237486787778592619217451256790695544294377827323593535699507684156786238065128183297084582704019852994003361797217408685029548932372393180201721528012963748634757257357146624147122206795383670954657010439320909280401468835432751771612978522644355334820712494587624080939127037373291002609695791849084737606415937589071122795646359294299045931526624640903754657190972290391033656854634983817015834090759678602837925084984963997767409965024706853999197036578690391869738483068798307019337220496262506477763704662258536635114265890923648926017868634182281812378451519508882425429855976575190045759859740981017688254343587527361786545063991249947174587573724236822450582311783644553119978762426421884595309552450495500754707569781167887711206137376699299559590342869415755184703642831835388369446769274819254200401284282190401226908915913240866616137056065071947023011276237723279214138116941774399148724973961982233989923057849001418431756934665832912222990005386923042892559213382293092048017320607898733477904396055993419624151980206800740402349050064946013037160276726674305009725622704571349263873255474075385972258951711747964716408533628831278648073793973597779184674860939303986300502602727242419602828606171869977779449911698289521250544041306436876948595894673521012233102174144249435078335495454549229227780621913193782303163863486358567079401909307001100882366560002948189404369674323682810755082478119730398499566149732715839138714562946935215103214720205168421965249916432476516030912537667446506939330921951009781266698315178537427859720675746143402473287434341155294786590218099510621849354708092797915032587120012827748522364886242220748014902516107650453450800932460030475593753957206062097540024585490893902358788534595352319576792193440965998001385180219885250690724964431036135040516258830656657015303925358180491787957644186932830137928795462000948438913141833965178440731039015729877358064935190247921205233100999521384116640240668086154714723498260906132790622933717291058737497046981456525009412589019627320904530950224197027188992087041328344137795033561719582821585639992876153446684156958118828905152856645656543690972802523740725606174817547398632643683497813455677537282027347795444759414149698622138968413884157432486602808840321051568739168855877466189695489414647724433901443871251138031197797581496506383242740984347398589636056374128927790127446053220973469038684225130897807323117564705656401382945003116852816298090658283372810496402629303996014593990256682108588297080471728871683243798176205450964210930172377748853106585622072747118202208260874116901880707527452714987762015065675309677455687012114297332693995625489782323998084498569366541122403676290172395198970205907144843389906519151859079558785561031591618867114993712346774653241241044221419850587902801915697239411709149061488866641884001840807407569097469072479600483351967430613986009196007346587476697310600819136665883834976836806444059808637863330263677795154728445668489786716094751282257415892853833002597925826433813303871194147067399460023085721554180885286404741286622503691405746053511555567306619486791333912911814724671828437997197434364425410167273700292494146565421977029792817173717988443015475254000959554378700283037562911389975555349876066465959003679815077427212942965387024131928879188110867399245068214573139117376295080118477124317709419452699095377607685149919418667309628626150339882613159440133924816183769192790570121715579142378994642545087484964788972237129171135404313292864644322073626779228422686550148320530531564146879398178384853105926003896258768117994964254464663270124018796208291092541785174850383868792062033434852036791689375433277225121033032018173401009161732279563331143529113766995813531077179639888947011168381566477043388995042748371642138837752743830692761591016970597434461141802964209894317201817404409424935320360953894949515843241452322557670229167267421582673559533535936660150390761963755811591530335259962245036125480635293284403823023793281688560353402094182244925306741284239529889971710844861351661935225158742173398766764580434430973199521442951439563839148196158964593187430919362711012136291247670603790041740614276431580728797520970144721535087946314063319182680312764495486833512015049858013680008926653865409096631581146629526104156139090245146261835700333627397848979563626338561363616059946845606798602502968491116845506328782130852360769446656712467492251263514331680606608842538245254686440428231072425547355515026573082846329761447828337602947078883727885471021183883119283551242291184241649861333663895765559926754801200259033273641886186793247348681641817515597262258892559703943114718805827793426120748587777501493623324725458294309350099353525406779906876072825969687981329778818084653422868095257422239270485191552136312376809128845453633252364884379261765866768879739301476843521925626842286649789859221981714371517497721741044732388155057342891528058200417833993123014368313219927429472873816657045958732812202569775697627696411635927087467540930156241298016030182640299370653764608572040415453071641674507314298738724565475913099176612925400826917939228425206269256514466549115636186870120037980912239185696115556526042418871022956424999459531431492787459393197469985949388445971429212607192485310726910842316262672142508835493394333407237647717405417412189806388122695369639164805119432299341923881663023965739667993170456617040007714429790949527640786081660202162025782164853290099511294365058419187872737663285600525857757004244555032786576141565927119034932212336257868932749608177964183234214675763667638719288544718505151662569755287759512214796797179663450857316080246137457793332492201501474517067430445599361336865839475431734012025351497097353408601424451957627951550212076274996321714613663777625772075140687004687282904029247589776930694493522416066789118752357664317066239563269635530943328355539309156575595257205371007623149682764931414801213662271609045351546432981924683176013620120877336586986645512721027582755191342119941042046223028722866076467556645096665973856351966124196684617840461091220945950533514914321843270572234087824141247241028321705870897420351411017801661139880694437474733275019281822394176575204207855652956527678765279412420866577379974946038109297956173305204139401701682816389191502029810073374992982803951816558521431065242684966577284964019421547323735212472274995351985944506127335551278403282587389189256976281596807117892315231716665032245263191488909521095756707354860742330242851971303866422648664590104589473387632534400103211340070419505703493067411083344905472361743254768748021798799440748021729268940007789045643299679956627261024393210134835523362451937617375948379540079981507880912426538232243145397956605550086998306839137245091972878305305385695255092959381081687121555785192800104208708580618136823300743957979598959387684649598572744315524068927879908134359123310280113798254647501703323317363416653228436078873389346668786564094644855783359807768487105192589198276737144978035704937910266581780524384197479998853271135842082990626320529002408817953084324014334540948290831517041692043090821921904716003062652503494631097182701340709719348879769022345032944095257495888869625182646268505543758190852006954245951462735893647963488731155307155755680469814785325944121770569462507040071574118152910969530528593271706616208691816435962184459650854914220147935664654978881832436069824172253395535734819837417562500081734540928028854043702586665631524820408278487500424129874889627853058705507479665352207950723043334855337991785626380448236742833675898119236989789423224071126984521766153821273347651747600350404929537111568598293911749229504985660965342408780873724139963005138519798512357219402600009567618330007155957405405636383089663335273142919140382819495172910763154887419642098977696346422567778251734257735183654623538655109257943138755807376137453612755216234629357040566509398010135587068825261224779181918720076234759072538044379791685136829426250885888240263979529903527672187946418745361337236202334284753719879786459458178297145819835005658051571463995467019748980241893656049392281667600935261030199989484098732973876317003948999616106330191500622681500245408953475794458540255755154795230006740642920062475897191203123492585299721855614207520468603394410662850773304781509176769426695275965723694832143914969092785392103970384320414771944601049523653169894611286919676551689338078575734259170439159948274237390998027334338143976897045506284581542928654554021157959036229620158961191017010327197638439383013254597916147574368375810047629562164796388605730227641687378427898786676764726592150659884459196543268843772800630081674949565045200584596865497848214574387840116353175707507234949881087512296169790329092135216335583760978645625305138954785798812132914280029652151885734021807509732499997375019984221775083445498206032058592796353577067027296366135777500852633284750976912135124292832611783558588209402005499389244329122788421292147280551119619481538495931139341933246262971414982304405338242897413087580229815494323583628182340992532190371983073880789388017522027578345928038269529044507080059579925113706217067822535233668879963718790039603992459626454853476451705496268698858249846538909238246237199508317715217806982679735410164694711673109244602964769109342368289535665585628363824529535093356121463889473048891404956207501855647866934207182187694424607847695232698129148584912969148659841076304836485985023515622543368670712167014627498648458763306342577901875305740319684968388661569976523168755998154957586262352398029549564289136032520283403660480982395298996935977822514587974069916071461114370568181038863626626539239255942490425859844214328559150631252843734981567854714244511189195558019886938001822273793912113907645881913012325461374850404231437964987219128367706139307677965686412170918448522468168835478464633819694064166448889144248505771549388293579264117233427245188926165634223355943178771203934485346793931025387114557468915862446953208032129436714763899376979190299869709201115017351168240087556763994370917087771177794088711780032168867495627623603457125174644534906005093272874420181373474575988823384058438425609025596263277262524249888512175132237436449293328590729351273795345228290184684015818403895557144650766228138120264115212441875364693178993701564971634740958615911382358979126408946205174507403498259540872933955287940137971009655635011954884561863537013083263549373864632883699640893134549748950104597107389017426994064519656078474448915119427032743848429257126781345751538193398879673590993322182010682324384867555672797905260468272993481502698019733975212020306576350858976547723034862075054960908067697151257294409094860754955675961770744208399577878511801321028124083888952903514892709637609365420302674351454122501062977584657327018109996648518010841018007688707799360213559217375572175496732235521010809053691806572775127672771762268013625526138604814891899510971106446487046763587712036696748330243887037930128290368567834400291801838833151808425838129708341291171436869079853197617328660904343530199379917285335253761933812934147793333740267473272149923897034065119616924257217037777295078737055008147284858868597136885490253292219464965500742383523131618104686518004792270144903305832667196976173057338846741177825352449546060401635566652949196074153445982681228514636245978200441939018476765823074204824978840420496486496898679597585123171869628769241708712514287995132142153826845860821034654118149900373129584114495562917504321512909731061319227255309299645931730263142089052791941744932719092879085015847285038010975790512822118725397623719322345963193299139387665813198751411881086538869079480139727546330764826501054379428001261721101625568278300027362866452336946402519251878737048977949823645784575578652912623289632019508949097285681529661425946925928220947958350869525252269056429298410444408445841829829203299801248544607304933560431562196151918010201519170947153098071027553031249519816405924520339929592561905989406859589984522513453183855829411089833651134982003752882531414147719819231158910824790230766592975008314414524588825473723820151878556707461211799954694990779322188976312114956446742793048064598891690885080795057460865755682563676074412595655169710919023942852646842344171561022834258359869294955416893190436671947450201486849823509208622259526421060740488985101859932107288571080921460582309047127762623568745232924808500722151036174846683247853314888008422246783158122625840792236494941404217834323006811721887932660044413907239290550619499827251543847246981565382690766923516768025284891015307344862431599476886549650465628544994478357138840203615014436086899131363931966756438786064712596083714975273668364152073173223414155111758397671516351060148583902236950334150409119307756172730923522424037276744179644385567358295494932022137319194431777736899848519739866194673085838741147345472646781068174795333136799673610134738841675694007229820639944564577667173702206122533764713541799770375319407917983147851320688818945933894279620141523060215775684507797441076758185861804410448511389230695539964560474335916724949054126979666185200656600037416601325701157693139828380634358157301073956330820338576158159933150469862274161274720004596274878495503184832550814234326016261313453145754424461800929140121595063149657424646408430078121107116322671494758582004927153646393911915759490705756553794404933276085080313266404498941352621282698715115932004384823303206838440832871106694866709024640755929479524612379111590468966607211776067771149050807845124576303657443300951422845864974683519292847108955373634148280005925684883276713422316747492958737508982271652957848482924024246730987683223776830893532921298502076419249534547940017475416574194763750503798570910050234451073071703965085486094189557740309101064114437143278574758132621877062837071349310115746863748293425720429270746549945566542232077550188667912579959737493420533828170045172858470468502062807299786063964603386746724864507884584035078981021970712194961621071434321244065893685576725470421230689433522763405244457255807518353548768374761436964104579583518664155142577539174594828286494506568212141201691772584465297778830025424981114439801562454937700511516809629686307879229350225096171160790588514490873636511823495712346144937187882110912668034808199020832570083304633523558541629216776984710686303588664828429004709179525837696149071538597797096237243072048182725430636399448549189319141033705687406365025057669578190824244159154453683460396442289298288000961324827878568746907572508247451928423475445777173906775053605030102552852192726027747995820512454831290001895093726337663504142510411550684909032358203431006789315111746583687616031570857375362616402042404651699974413762399040625211148270508093482089231731801097760747723365967998280291158264187865548257594582659217195980395341068401533054483219105093856662189496480540503424396491463661934304043103038702275573593254590625850963762356253923079933378231795109243583075219770828235921317216403337075012094869315381201841887476688699082891717433531260423504957911921999082292194939874067134094788875879370255073665591250096204267757103123840645202654934628444874599454031782664216835333541827900701680074986189107961748972021177276177212244956821376214615134058473569390765423146473556046113014271507738255753041949525533523514053400078673831918188136840328030573805810479143567517123586956207610744201436526891561501713760509890147211690313220600751556454404791101586274807765766284554658872563601894458200941108913527471097099197939872974387032692820020939859945592291157779854795043166346428990593628165831168528871066182469468058463189506890697439373176877818548944394067566430803250667984346138085051159975426797440879035213968566857095434694188599648887612867075245376669249850124868615949275510592029810267330157215935626139500575078752450267146531988722816337178374741729200392170817253095047982122405775018318522399351680663530004831565817275885728722835197958504494417080870641328000022695714338453326399280833537173826644068744905087462572095758995038217258543816245976340148613519373485946104790385375176121742606059595936474946963590712052354733192065196347133227783978408543469574544662135891312477852508080878019240830308344393620308418213250002922556765329498198631141091937558859790939785992614076051751279712061907595235391257971203856442837630226650877291354112972762869949348402218700099154109619353590372501855453963790962761565725735300795952799003477198128871255010097969791975019491521093479216569518632676091247295751111788324691184149172693735704298634171168746537434104489352943786148223496840535251848146657757074119470892209743412887017177003756763869035103442365214347276733963436345274981984849748218161244761523346251895945387155773547271636373370613651744534426066988168829313422914274013460680200612098957856584745404169898256041866790993919659335894526519554300758002799303030609727475668449769177458044795920729628566003577175304830615731535029901200002162748304496549112544005219452226564980724549693555100147367900049031003656614734879356661234062175573984685605262712223728540883713623776360364414680579461040969962694516288327138026004831032178704627081452505029005139840108134239529186721458221486522346120774867096049433529360397489971204420146875122037712625046742538097267825226365886529380094974566145981675291447577657301584741442947993238619418966722849980098387000911581007511451709493872730762765834452494690648594306655654145140824913897704235381560148743395336180545081674778460442343834351360842622561764627254407380742926369647739309052557968074081756724075318962325868200302996259393528807327491596243479727563541412549518977442899728136595648175763260516478529991219816870616551366788271644975493988760101919065182262551305623264976485062888205169249061793172012980131238135119839772384071073439616837131412899549621600584531281757228471069781863269312357709759103233628035997822953111709594929959483169106024672610034926850016583444581479538653159333566389989592838904885190121075844971068623619079337615883338607458082683757425321938148222281024383014028142446991707618437226798070019689781618173404739489107646439764161906992771194441049346577616425056439317669835046028019466359076178572829151862269496240104523106165720302703894514737939639447939636854444688050818208442720490637988245131612029444161623405782887445729485264713564942880072716016808064693883505706497121261789192133817429105242326481718091260442923676773153335189347008185351023641774957809719744999657449275992618981582982096940085784002796064825737409013145168836991497193328012155555986297407848602390749859571883342815991030192687879216462341580036884778756243823802621371822324035153733346387718832582081290972033340152405259515090377785179405199385632496136946652957363532746642694784650272343665918694190523085662293240233442592873799087065205266395718421271197218227785580710505028751762429754813516350738224674422492283973926590270970848291090114383340396678258103885733696921379415844930638499409856089078802949780541510545312591920508336169221090910016324182865356951384057287328234119334553419519311962419117773771892662729071988798976286050747137397997729855833681148125270982733968713820380160768946562068941650065357288812418162472128468742386041531468212596266340352898842236355859429091416557429789910166496641801927475078320899327931850129651529978590074001268030939284796169329391101910968893655006330901489749266581649148119912411802968729036412222587212427241851412944227384120629916671018553494450789406316834242620853563825326368684422814305823020208900395421860242962979702661470423265725189292107238862732471495724235615709202222951058777845474080140848520374607730960312897355754275153710845449840344093548306606405795496831822124984937456396707127890409607337221382348274766221471381660550573227134876592955524709010977236206715850872295705188179905190272874057778450792436536428694815954665224586072144800730682153787818552246926830583215860770036213898540876300103639410946782779989994618837904191862313009098787351187463930735955124983244870863430347448919134576625847614963717618402730094165532566613105189910461310550232443343647592535479682544596153036149621578898512424051079970915000106496653720041636182096985400669417031953676147481723813408264210157675497358527527240205206928259614865474283273315028598163536855460871955007858919584071447412266842007327217605635769321489470896382950318141003100241494781011233036345223301814926876895608595680515598534910269347160017454883047199574731968631815381323334142611369866313259005698633877753170093764457997627572018679488100728161767831262650811295875015049198371408378944326259282702894527329657277208847805270479500445040322752477600345729725808585038931610596550692597831024668011416187848374295272857490068494570905746124060757646585196200466607441052402961933813001513271781271109906860736410822936519283203384713191753741057729412283031613226840112907202368387604970818852821175744684576749648641535904559763614370660421581655970523652551750547487515799086822949823521436584582232492417008962899567202150127250509267006610509913996261272640072870393727155967521171063980191958044942418577733772875595524420102323774660448086943464149485380050473663733121189755841661964587768307585320546249907507700494520145267235469100007722323865204143574863269234759337997609172110803268033053052077520179870353594641714366619696582788353816761872336795580870924698787115763261814832254825011796929169691884372456086292811697028368018685798372748643185274350916684846912137722009867069581230144906732129945843821644480965869132318715755391199035800942518175223310047105146745262930857841243771366039270444047539118937662258604127542464495910960145056082410422879165700517699108942139261642140101657890983548452672353093113912927365138905380762640182345643165944462195485773837600981355901073265125186837956781057743235359232391781783051003285313880233694716069583041744446870192785201643864354926088687592117641636363563798002450491638982983218509428283002093495236567464270848741022167472882224280721962166937119177354506547742661363966155408618570380958653942444901160833717838424473416389312118139863581572966026962938882548818684108872139079193699075024239165410029574239108636624229309107133598356309551820201953744216055867503336722247370445166868188319434190345395735221712094177525506280554184957722683205666975797725758014109082368666824577069718428160785544283691344541904931800837958123523031074772846626303104338107556822846006405481899424934265407409042774188580819029334450733990006460827500390563248151972024488990523254788453561059168502061726131418354683402290040509821808958704843972016038624564658578510535503606243537625120778062088553671231064996551834446527383885692933281320232371114493628513032818841224392108424531951661590980411534764114904492505138401695533448981902297725776337213858065901403822604822647872702979624965285107110902887334097634234187254681045575490604194177734973140599487325395627312839443883647188386515753100376049587212168054249617675924099199101576289074226529177845952920533234959922204410946635761426486303668092228332784796971408090426447885137430920281131925607612797224817758650479818927324425582264103071526467614587207346767190825215325420565257735030685388349911366219880115565687689469457351230410049339278258664220138271653479691028787752721051361684608596880930046261167364406022732836018100867373343894509858444904809346969276182903996698793202710647337103060252680042894325508668386498666331952449106683510099485759242273410614779479335872833457759614863219108761278206046559796043033579392296070623841971626332949592222036217271253002701203175918286365055662660492952413121665654867168027680884897676048150460167834565680531160770797338404110107061060299502742044356016206119509457764604374935208936226662562033458180509712534882848379970974708435063667199400067052091288678823073750100561912078763103730138140038120201698016089054209005572103300769333619528751713404541766137334690950189045736601179270473679196743110038913240574473933011331099160942436068592637633664712888131838388380462123371167226919345735090618314812214004683415533129822613703369576772785219379730993083202768113411130508254660835957964059887525183162436846340234739618492404919218852573885360677407328980905517798648770639123761310929080222195978800422620252718877769993271578596499113203204909755760327162057464160179865597949555716295360274960056156806079153787537288898714073188880300080194694639655775027761711527392356281462576951150820010984084229727544747038860513284876057072475555289379381522091713927138443036778334589945779870742374240774880932100405350575565377961274322843377997120242539725524866972405153797824597038594112912586163079518508847558177263418870770012515558572049735422675854035561905907602893631817429929573515873715309087675758407079981167414695204481593517820336431016780153594661156407074253645572268585860646230262643198264901590297567521171913821997145776308529476178773558773497619637273781827631748335159855028864675039871973088343141281554928672302952132730035851895284715372035685766620332145660747837576408837806685487044009368834598437345042233066562577324703264476327220023098925019439343079334783319700407410344449463359913218641730446017940354969449926478628501839716451595149828879359960413376275818828437927597078257729995984198984832169616013520253936751629319410246444716725919994094289240303972405163783572510002270445179136286414662100094868246215670202216248148249114110110302163794142328852125062253232483900678947382767780859788049074598973260874215080865015846720541125161011110437431479443901318165707538427976709050208755282905946342031853882888848449920977510291691304964147241636332482527445442023816074866098878262768733452480620840640424207456967178302498132521359553126898581822151282532839006779078708998870656676230975466395249736499208840780391937295214970232914895720080502193615909820358979511998039327769332544392884551895399273997004529353319334583123651088438879448443933744291440035970973248945761499318089323796826338158627611785110909722922605721813313643028654582331246446384053083432163322245342836906632793946447404481847920934427354050891338834563292765124219230736115509337392919161001281856556595023080891529093320414494406322111205316699736326620565039841135516288502939505206429252793416471712555466483714250389843861170749320337638763124247465890202373472199235231858301489014009261279012536839982415775248027284342521651751668877985194759856581474947005871988002173917013329448539839220223382151832528704208036130996772594116958464419534217162737076607027537865223418565172217094384101626856184785233987447206965260738880893355345194683419048400525246344830803883033538437602713041906652614535119585619127448611767877548926391861840394118265573230782940844672057466697721125185751200194905535632104056242526895208917099774909885984321699201033748884962839515368654151030416783336059857894820181575628729492199795572452789102105937620803478770446499106944911008857131886638980388761242971131227520489200218105715621823348765791852414353350495511090086024504436376177697487057117029457870703620360407325804026135224447716086972130747206307875683659986352871692089862591408541700919687803594527891746743420389033473541324906910593367206454439635525188127252797026369874801203198767976166548528913730538731651802064822975162514884815612720743860128010649437301707657842461807282068537361376333318635058676077341239972160404739562419285249158248557631604345950163935803325227721791904324003981907942717303177947835248434434537077195262314681591102983876894044076189263514901329301332994767630866528624594329204463662333165267892928866631207469452248097025050770642450105162522825241241350387498599780221065139379013258074337081387995541485039912770949191086304657459770919606994313341571728698893349000538218261469334653621825936849324149027879317613359115405112633626359652688382786139108279841805673745737076971896308632889687082012102551852558518009551994778138801547150205663219231110006820510982849321298358592459019268213908225991357804366832121537067184776566330186435480124424202244783154979050710114669225518384100299851843757576273814344265323401968734573293872630010785157395237754830671116741394882308736663493010499408609793615813321769698181482734749918184161412131957454881005723910873144801718836210530990085421797286634071858037292879753223148893901395243143368375145031821007619670473848852663953580976954744434597295913251324172624599582576842587726381546961469494706911647237990587671262977807039449325608481154999306414229652233919927694489159654052613076074666863018374572228831029330060946803911396603982657336142602219651411484511349025310083654454887478550064770980443922869253930748254090366202624406139181730752180665232819474760647424423425882418829858927880386016280553413563998702108404848558446171914326733285693152905183219036393296144000534466600143292694537869282024441474798900335827817188859786977016556268823404537209208966642009170696668101865762416146416727905111533282398042790782180245233196229524603788299807063157003820227829140780098487448098165605477409237896545604973282256174018296456491582768026865412609545680319918133733397684128501250917019814980059691290356936897566891218199809362848048516863791864711024357169793354119624572743787948495267725701637005445017984646300284981801917571431394232874769001287927460269801554727487535286276821437616117070750478756193485361398948630702370129093070124075866231891888339032912745853345643711377142040866698467463055418600965828948654908786738391705942003126700554387331121742805721730342039383289883998903813923466796217160272796240540920743083170860658683696162689213091366336291519848935558211079872709340815999572237584819136468505842979101939427080425321995043751807970158931793842137896693570083039975876293802648137221307065858581066569888905655884918885458666630352064013054918800711716985247735622506849278083216892551394902698644285946164437997887764345298936760824773502253462590744160529756088668869461529812584838528506680370363235563113336635927441587859031855757669137012798063728353438398027237931625946714638967207787830858980109339473348326795548495109386581852469170456529424895332648365451734480027634609226557954627089640798533335280035259206780226159418284103402739185958671994808814476389266298418085626501540081461934446975728940417209216250958595280944723270631450647460311238959665991042366525132448171209194771149672141342636034280867376802461490865732288277250958402737827323405165082284657792461398470667975493942655995267141095378921678596112812725787297546955595399458376101048778389441746398740994277486355061444489634605239201478113717954624077822292803026769611642637192133097283303118075847561818279244929636224905617105854102381552658287029311593797042849572246997712452221388224613201506589327061202778309566483275331698458568807383874053671872980026694012240417828256079586856312589491427149393825630376656113762197885118051147007855227832930763706716088308274064957854534753935764184545948395427635165200938701239187935869321442368850541577157091446550346367309802671946533130528984770802064047725164043842581901416788885466445492674370796319676071056116498249888584311582435648928594141997673089933941505594596031424505757518097206117299224758959186121326724685991772653032585040745918605865902017449841537182658814745414307209473597068110232448347903168998100829765378252266022162746811095900695696678824504354840441840541901573198502001256355699156606395476157834728346717088739099948870302931386819239271457918236860558295652837161977221114998048693936095992793839653397186330826968887602361748973359690804636181136202779276734446404768984994368847219434796219612531810115013897836772202577815451280000353053859455149538296689529076759034192637468254263309586451564442289743140178318519276390055875422952825015573323737091529170659744053842445058497413617199358090434895840185112384622024957328255267943583455239582100267358120545454045132679720188017342745026016678659800878950929238855204512571401126670483445951457479623469377822750714097087280067681392227289213755511273439511751526800578398354616445298977260050978696611565126587636021399511134330284880228282966914613192334117962442256830539866575469333618266905437247415359877581891305635522273595201289706844028724864889643771140996028584136276222104253196922950377139251820102969480864659346463934698055754334872023066062605779367814625333018177026107870292655845832410102347108393207529173462941953974730277233814551399827364045599886097992760976718310021284850305508288567858010634888277395509245392714414790292154102708664332362113169855228241559900743982857577500797340102001820513143013177757809805655706690331977960967996865283026695911954710477983848765125631269181526168623374131062833701201020526980307230010757623614221977883068451871472841282332051584506131616947536054063323590944052836798357700116126865563688704840971663403373718596216883987164152466982307148104385596694687538083151175811805516812504997698908310855854604967476480213068802518282876178254732086091295239499783227074609526253489363620151973252100777370582451937994379263430022748970450740580125623244563993574780590679515627613846365255287708221052075790969147475981306844456770443949575139658812683950235323702762475941396970285104416219721264615106317313876466813841921369598138432480995302427966664751840064213333863167049006073995363682162306800777459233683493814743350773907566980315222198968133563638973113650981395118706997479293655414851481231928694339903323015784587344102250948400158404181005851699809750200947370812170815139416896769658779460520960220992907790536990147899238802663997475126560698310585602950438392085670675557785314952753453268354355969252154244124839008723355585179406124203399852068886520907458356016105635791441865287784988287175634887028675797999078521429287377137223546794227873962117559141529569104159493696113843830873967184554653707263529031241903973242727822786990090766371028951892989349432842055797142477898124945445793469936510486115890711358782271743998208434293586221059199690302636247890794628704492019453106931849946771433435722731266799946049703968576876564111632335337139727152009433439271354758341079588189073597897053328921335448481736691432296508486457919368220017858136634136499475774199471043465580552204356765067458009463367090294088544402537649396705944414051459033200538131800369602108302053246840344469240722274475836436024244262060103826556574490925610941621624974373589919102867694413546668805002891439847979252996758978372888365956913713404838147418385492782497701808898935430742880722197396241448446099424037629594656219679965490869661543361386096426633704037407829763830053588107186821367331191522219716756024015606777306213146424429718224441715756952625766706106314900728064741357506819771348055542299506350366277058141060570796583352303013944639078554957236616349262311847186248106431843130847171321249214816074666034955859957320313394662324615324686707650100935831073348867149460827195497390803388779310793668841202550908993219970178487410904218173446486356670966276709979200516606733481231935952923483795876873233315134785887148296012777041221862355475227632048491373150218784117185318836490941291892302195366320346638192761301483175295309339340689221898765581746756249507730319590313126779272355337114794360376256341988098745438503953386301653648841159892234466146267764316664282492728287376211106154311293711383688691988117269357597563085496191226291279001074875154358348916686894697011740772288107623380976807289372201514853171497910802295882730977963273574149166003184567919347122393280367312492948054504412645755274561536661666889618563577688643119800925734176141570082476349048570740802240246352365385272370526449933684955505664481304665156701056802146094523546651489637391782510794572050767555665474591291538889380743925354708211282667884721763150561607770136109338365264606513160884495420351945262623252515323065001617983072899004499032356926526209859410784438466982647684373706758810786454217852238681118711312630896132858754262137389219125537454020612646924483994567633599503069278749463833379739146912655827274899093353352136324832405194926919011245201931951442431159080920481632015305178055051108451383645388325666245977962552795335845394097265613713232635353441748739279362622044665336313874907300586418243744740003094845371772991354566883528999447089371891191735051059221680744310208471464973740220792472874297790431081938954016018711118664319551885730778607297698258981392047463545169561541638524488926961888147046097250586534136117203279998753839495177739795112077840322881337534535574242576543642501710032332372250906061849510695634510503943081268091769118699566880403749529238694809248892434645722377277674391423970251035120692674569722997828780365552557344687577320498957959984235154597941112300863004436443393934509778615837946686999113690243667270292213479091137986305146320622180142060961139454243055820780906538954478930399483314426331928542622246724278915345417220236871748724318112664442766079929373692401584435358710165206422998650624442836051046925797589798143955908641845785814544778512020249679050464087069020007940666783916557312488706671477987819061147519646564446458614262346676306725159563911349101893958297521515978184821302969333593484192428860520889327969401793497954852335218082481556536540833740379688416080661240617562429211857899082213120101022819028127592178771314436143833713836958366393751662766317835918562160857482461531803530086713276030839765707857283729980906958470968601256460993918734793195442236368132063396390801755831710616203994494179932429540959891931838984695678049397913780506663035587456160304467526998361175828374847839798459005491457870157843234355059694797605247688952231214273055674879328909488544054413826395396554071938134090300446817141193105917585978703788082651782942100032423655832268407523475119008619438304420309104756978335387274476036499001112797163717039688415754814446971513155989422875091768401207869568111939404153823751878443996827432545644526943857114550194815799497319347188415448353231505505445033874281099195785014187734003413568820362733148737216190282722145983734085038032642058342660762618673455166082597267026431869481939842720631945030026406630352389054666345062598542870153948012696588198996983521322644505817437770123496020575009921357699211450038534635944081859127298617918341399382447210232612860906025792124057522694042890579427937606151204838630883073452896968000848484980801756365825363120704136789834136861551608682432242159546614270404920238606264194309553695255427068868499309383987021037718205341394097238588943993606776287364968635391696942534369237252140727867347429526211734315737976792992552050436451963544752106251056499917015421512538589835059085907206946988344801308456243158523652063516721762994214441347139913400548008898495833731781725331092380331018310383349566107234403437881567727049984590689337035291391457989139435912457525657232618197416742055755367281291774023470961193998253486300403119542945172216054529564210216061602745937778423624354726765994737763775998301036819253227228452503982701228596896906409390611524498384053419573673299454983269288914259610633997650418820217673722021274723508065118270826028960048149535858017423057519265229341527562536676345516666985863230487489836737251157575235658718973485709465267554693005966211079360773939606243346702292785840779649301295832067612009647549072493983682362337485782891874013868740053713182812726321698403602221582471006368325122982136837697063007986568091069116983322732674946990110453667845109509632921071314039938499340931185700335731572869570360990505185707665513337087687201632171816790700746117878958850356362839714600020635268705763285843631022222067135161813379867384747284573093858825865756221935719713600516540505033014516932849709880107068155462436426988037809154906464105157986201740658447918163404572710132103985583773755423924834347380182232335372461068469879481151077156660893653248683436422575106342902848913044679462833510339827435463645264037953811931916355074831125606877225660805440074429867659073723159102887690712904674349283224522329135505057845741420078508654008476333670598566614432783265926306332493772820539531174244549139613873986245995457521876940087626386014946739412791314502863592498659682807522583514073907283191285239559425371668673482182002557203859606078458647084805028841921719528101938692489288849151993677537318974122542663517058582264287351908563736075478538388651559444764742515323299258280968504846779863815754579092729838731833698812777750157714519741244424389017552172443679265245410189279828667972944353902669059927565366157023322937270191386370731527339108445966021223130973061685053054818751121084016458675961345652746002967789428145367652058995062517898540510953414284668264499188576985001165310284337718716204001516018441494355068275186765513678539936691592323429015633015439683355575776811813439910548031504798636665693696790387145117237095094258975519864776555242486848095530271319973888072843760516278840677761830445704224376427603407793350265263146870474262834714916045513840261743036281113583771814059105279748322684720245969447144186513756341408130798408114069024932911561827700305933197284335275544401161656828102824545058841763119466562235884187539462674582029529166622109961634371360088971472643077196508567138935331502927025326483879213711056475811000062789411534501774813417848422938131774178585081741850251005756045390994721421997458908015027254175841654920416182305598607036807625521884376021225246087006104337713896259104679053235545548927891423326771557003067859201437556934503330949744436289403621377054792968377809446774705688712134473118979008933637589879002805226198252644194149689425934922804828597902883288314570407973795651308113543322907524339004938361494676466500781447396388110204647967745991798035619804093207193321804675520635491778171747972535561364105901844627872728091930169447620265630516976251278563824941013903234010571510745819888930207461686044771192506117137378042195425013932891898479877720835786501961758701622943058790800265710671131007835440020607990690854275817774971640704543549385718727752215582931566776284095006185628866579636295395473641032148569132938092101354386044155314501868761701002205950126282889150678247924933828621189508977854683149990841468335735315041419667496932956496640856149743782397662492137765858431267898716238723462699432853125594321112253998071407585533393114118582316359778304455587975128068465815627187655781845564009465221477520300306143781074041661514748493693073226668450005573136999253772461650345021361018307878043584806282708436146573932899568997306211632957177657881719304264112024044034817902318919449535714368676040462271995691183556665251394508950959749710136131038713454062106925450144125328267414224663010924257509900684598847488386692332338189167211837942009257620504105459471667404167213905087155003281403797511333977616774318055012181245585674903966782974929982731946295296697807551076915980781092756229526589067096023674087647234469764010900295125483783567953457652206015891124032222928737507603908216011608454521177560207589320267729295399900663051879790566611689445228552161777486029672224001041404092339252323996307011621639686551268009228827203761216330383592343352376548400995561307620847661311053504362468013302586741915604178706473705308272277781046794877797953249141453474496959276768638172938378518479068837238971170401983840580481726468756642666220359271110993014355343495921633515797239020064344953605784704061206417250735118185165590120177598850779296374248372387566856245516987212127787410885510786534130659863815730663497951953022344092262257410065846121274418743475894334170667945048116887332999101987697061837462889080177420663583269492961450514343036650382126719184399813344305195968698460759435946494237570143597021066598954556505753602278300208963002772900261259263378430437762965952748760290535183588846041950947329101652275949798479302818579491879538455813176169978587333365682987370544874207593112068544902017644766310396125460673830993179987453054138072704496349832934859814666489500465159669993892526363169110737536714930053289783684913106635394821960763442377123427136815021763713455899523636528606855543223803771536318042071461449970182647164683358890566688433650286082756918980974697623758580603353421974524802282759361729269316465067692147684427341194319659543430449034987885745061813805843063426529344976087242609524122124838960060817123797887509262746259449156518365184824603591271352326269594676665503234798262351997301154297576883600093815147746580638508158467534654916018356062379922299585060939569473618130513951221525530432090099550054845197493775794882501535755797703951178902748249810331655938675322981883957832650889377723982069742580525307497479500611773134744759979959797640022508658561140288896939084987157397265511191870886764100822804829507866046150704487958388742388871647571913992132813986315592488803564898495580458731589936292967074142520976583889047363489889805151909767248308227725408355335642936395383414421111531984761276359501086881834479291489383143243807304713081150603448112273422294412830619989219233382886697149634322855220058961935364683995684254908793576383373340452405277497459168035578703469417318042038731378950559924183638785082321169968938915078830168715693301720607600092220353866312395784822944964784898742014979480586741859379362338795435140489876100813660431049183021685155283584304019446885158384982254086327356290790032764660081520806191535053272704770223571921581696745338998938507177910866317466348901364641990703768272838559737997198993475847398605301526089403107598342645045132444099723340279183496667584912145410519778793236734808154730749209446587490974233673201050619923729033279704009231286474031527785938232686084197739588127088882758807206503459718044797227287099535017421866920732317093253184355282808358242430290195957146557264543915578395842038451872516559497613323830349965062164905823819890850955466091157678984819337552449900340762565279878185964157757488242367881467342899600594538731247724334745611756657722939878228140641008170449465385310821062151892590795124800089044331093108889016837229357175296925154209423292992369863479725670179959974733387142574070332098508917043455823324774141471138161785741374483963397604604947405509747611130937945634377949807034817524163988040653838685016166592675280186794509628993557124610118606005139595996936718259600122891417301041610884157721423217170704190612887076242808046785812410513696256799757321778281911559616091895021524969885022460461385025341533130504281308060973502779504893326947241957421650358778000384800175914821672700759616188945463010766088783372591132655581134785453334878484109132112706914709794502502344219547361042576953281559411921089063760404806095772054516023179847077899557878217581625736360261841663097538225312390552028851597035452206118599171994193548602382711758430133992304357923867590377604139877059835917942559761331552442260107661216641577244053626958897312481005766072731920097161294244188253202323366827513120990974158189108488136247474764276028190641002917852570099655194297131003312534480823940797899786785004496943861214352885792504261719603728640718646893422678753978138514361595980133023630285934191911871156723606950817046052264571927750512166348131481977882328188220882018216731327888127392825803071444971712365394632783933489975204178349848635532601242184762557401246652885420687679535271469766098709471472392674390884984793228328156094389450813957871149520272544569605766410763037844544142423810952432364436492858538882896814286294735730070826321215747556739986186931169590902001426343362205844037493030473386570207311710120138625820541385118738902317777608859565120682355976517997891647485590214249352575275777243130171469144778738224191277611913382675557305268695415364165626146260978832217075641126640743412179616867443812970548068330246954910867846706290314172082285151300055161637005361451375748666020974518611247414463380289787604175921234262743240924296993114149508762335524548059024115801665311208759589364401787847515316139418039587293169972098658382912447108582188390619939842484634459789093726032856032200309740682866336344448474415242741207510440116250048204949958260858710750635797292819603897611249455914558230909933282599767128513665286040116327448686248772609573879701292022721488742891319680610415177536030191933469653452021720564188889723788010493232884095924859227197886116552846104831012363263466112284735394090072923078185430841471045580062777530883133111911520941739657535422553564122297281404671458151967811432560372098163213382724372351189479186467946418421755543473358691553442623453688366908942043904569785820693257028672641906532079066768283500486823858206282566117976191403281642740161529772920513022691022243632425665433186863267816991665492405093640192331564993869076006108662253707866330268160446532085589499484897122156402569328660193384252752215958076670929148722196705277446027537721882262459429067257954982111999044145095429967045016509118728116925277927958477437438927711924892254814796247542252246628178714686941112370982956312136582552409410293641460616298850118995335910909617415830987824126951476056476854924598887733965369177620923778468375731968619897008807351850844769424723610034601657831392979377843043558988944360771041273975057440800601753162717804828758992804589612023128471422954963301870673316909079649750953056655524345199820951345536848356934435283161447450987838985578143371120512947712002659202674122966570087282530071839268228768892460931635069866501088325684330888520355758591446179211234251045850695596285147004401234093844289360806139577326883850762770429865577085777095500249641139887272922097611987091368469130811475038202223178072942110742003455254707092543706500355946725051222439446258279848013374127018047836570740576492871479999912100090070067298206226273746742471734593219574905375594099670408958465560949252920847316844451022161858591650198039188835342682840321018750858502618455193554457296639471372564764119762246241808491027146620087578954470766328068542002206462750755871160950329666245370467069747423165912557440018653527428335109222989780881937212630812134587457267352538461605735005223065652989978886277014015160359042023573303141270675553308328094966657884052638863479229975698695309468784143316051474189040360672228173640739518874744038169433955558886397238313918560993472055533756855788076714981730578729484283270975466122528496703318269453425087626767542919477602612731428846989791254480722702187651949282170661280821072578693565603560325886345390723427005604864703800807910587738851984219590922314975664215869570147473281628642306186719849433712076074881607062961382259977565426635609614296813777160615121490641463357926395306623412630996024284843876624804637749115805940640956242856446813629538355282900328090757666444583623874596860990822128170400640609310675025828859235561050861349359791729911718921977338555705664246414971506578044406874997125400941065877954405770413709059778562789517295487502738649996275159060904189130858289930351175225013198061330931812004854974454649228126527220899927943686765193053273312178806741013562628254693892882567343794964677548401071976908007789907112911936149874253378066440408792569909174172532870562220165962997952025922483598311310876768316616109865221365198896743423301866227749731026046265538947301165184213339820783466852257953686878462210778794825794738063599207125775512464117166098144181904783946173543330886035262062577965405201385858122242591512510291481672267687606088891918718480550096660535023975950702838276953963164369215799602210936112314285214626849184089526917613311238518463815444700118362645785241017913460695450461899353071579766503867150687922401449921632348049799576940869635361677186478017101912050078005741252669447367421285381438333048455028761307627156776005110943197077376683551221293285251503146201211763609623523924924137954189883185788131733651228932271377774204644516660666478268801286726339331930191921655643128296462865372932763226883104299255411021477331631804268880408711113172761992877331445823352491870638053737586487305498352437357264697800648211126726483636470699366146299325798596654102422174657763779236909007354039985554980589581730811035971713015437423054241852685317575064064023657125741188413787902296847525002819861874764649722731552655232532639060442921670649248809925700288014346268204762761827272430627183348332394971101941559452626228517304198435929694045765800759344528600921285488555354808543733047335554621977805437849891910813896397591113118217772983604050608175004399905340599073468881585759253516899000159482718662781233607545396345412640676510684884982596638021500154012879795378791009048520079812490258604581058124791516031148646050023925466271116326529430011173231835586748719615218575601334714304448599785374319048518686578517825398282604338827958434887064237128116621397947744433883570631179997210232932553477976269306168018117847894998457232343569676463411262868548791172310165553834203143032986844922429871911996539800039961297236367907609230225270747979244086093057568900257453311038707300218420498736344557953848555310938669298015848633451849984059994737801611066648970130134387606595643202218823523415529098231302864431178265741849796591587637380797161839094008908689549645013405896712888230110942923975074490727064478837052551616559032819060565556177289775084986819476161078268197233838406262795118882191258212811740511976322878687994823805479806144090933848566766648790387029620485873999098960326509738463660974480869945600739477218091467870639222058663940339382792027818805844421076596939968554412848739843991948529853576863957581261962496737659248425723700864620485947049746978671640903547346888373237158992918184381785216603522451930159491751886884492696186838794608813273552551381025379231650327542856853114204139697017418276477517274328927243927903330456554161810551794778146365529587103632360201009641367291179864711956287290915136812719432936769861102169549888549741905599341796463402477024239238421788573122049251614569270163093323470894779981708573258686884009260532794255276684994282883703205886907972530228843740546861102742055309900469429945339723396667136023832407726854427538830614326334727489069384711656023327823172756679730226471003431396745725358754266316404027207284465587542322979726947356434862328386445776307985092688259548155112860444750008977572243188537064029972823236911513790964029921757874389582905164469403427830129770175087629821581259321186560625479371312138545604304700396136336069954631331613752348632281891030394437893793923858802397337720793762130186764150614663632935575630130953107475694041924042863168526524168786203096153382216401621531661644406225534958510270721960589110690048895536441187925026463399231448426564985325311678723914044977809174408169016123446155492805218883130872352876903044366748226512855009510758762668850813483261992638650842841638208343417183538848738884819019923948013288800262621598699901712702715358108615815720027474738147428846873918112993153954406930896774298181916668258441133541110840561765260499634472145626270750061932970502609053611936074244362403098229026050197009180086656684345457969864050795439406295596076324087388431405460919942525923404155760732223672753745258162092588839891511002708838735828719205254824945643773901054362723939827824349854067617299007635088202926220845872220498576326573458029809794153747186957082164633020721746109098778687338496481332756424058338606692694627575973158509208508274126990564297535908106550495036484442476332511242396544409840109499797860257505788042496118072992300100465447213015397239749945379519684226287188584915215676405946724182695187862472757316906211679045650161924474181024744296700561789369431853407835735430876394504555707930176458251839506672407830350765775002327355160894824641322865639077865679784808436658021024488169787303442754474601884417455687332944716717300767051165269082835727230313924729020402102950012799918120762022891082325707040091923530904326979779623540048127334573395272384656340711301372624608339462293611280427487643582941507269349600923041603254335875805999254669381716196075927179215678171590068859275206640424675420779362339285696049933997958514005441225173629187218488786414590599855482197136243348135941180114572177390013550106826788726984703884623884711927241381925604084833239054615675845120168037225003598726109244018727860958098782719422810089896648831581941839779621313361797280532201188298118944530779862236179603678194191506500056611042439888582414351294681437762440565270763466802743393957072353462051983295466093870233808541556777155420970019594088876272120452737921942905513042784561870658090755753842035842779172505313257393905158517721196822801809245528473240859957526095348285117035994932223778971236801122461623201993832546159724540681638201909026830492938680765387951917141861840598934933904731564081344230559013956017947639689801373065636615107444753929560883046812037870698414065170636910625893051227160102893709499882219209071472201837968648574038039232646012153513978792352331618029333499774893410086983165557238109195315013719227484270943376634278596239333712230554377869014930797391454059301498775301269700840373848158256138413486162814482708482235143015943606400061418622888094037599835876268920110222676581045292750901018554270518624913578351844073095036116473629970108130921633021658339228343833240989519383931580205261494287230317891174756312114615157701769578539888515224237389390706492146842080584319393887140354664334803428589032311850873913525198225394760166455055096264247763967705279893158733537082972358627774055482350603071574915839145028962230359465188014376426035860397765980112247473834841123680867890506571155567523949717502692702639668044650166086892430100290689465938184905875184313375190904263617500074974036152849704193071184931408973250043600314020822638815766592722494206324367999231677357199858597960289306222861975808283179681692313485136484719447547441748806661113994400916422425393525435672015268249528832221739778924667510329284873852704390879957760020555473632927675586994568777566740542683898726514581906102196658445788471525413353934350760211838328086107130636754852863144018855477099553037580635458658404181722441041191969074980698497734866338600816413356296364205719283062258485238177226437610187627869793268898077470224907479797450786309001773248167191371834075824826965108359168997812618899537952621646379025935683896710191965306402207390689370446890194671527049983448872610231206895851838724138663464501197082844972383036046394652832977294555468856803976426585384107988060056861291859775046160166875660046076178980387327837998073700507181599177902292249607317630351344316275804529863886110847709571708653392210906976571339598050203343135376117609344801083007996673641248970709609151025425828643334235226290792252647361475706083156008441363795532497206442875711091783747551079800487811980934929244287290386960676571789149941936889496099369210371281515847743986765004029902453048083795173487395240610549740693064678332700036999421259974598704712360727633934780089451159352108755998505652468595450242972106843306156608653178940102670202112056668968855107988652513609055133036218933061730463621715315977110033105261354733094843046848502989024509300941128790535850836816288644163067961182284310823765058811144304036874652098574162837671235202812140065758486744401000911767278251636383915364013015930387594867710681575226473873543542905343891034873210088544859962535730829431126863632771596724207893089784367656909029763097833662923623489059092073223431357213679435385526146620347372893618301515455612047597628509974890812026656434594708329157281429754037718934472808828202839448028355572079260218229769396361478200975347285250671443420630866568914504912638383399877849231771391452955565854191422606499807355570928747347852512256593101187790078740810598874050102470564131353933825353858295345547050202600492774163224755494746792426392748694789331924108743188813018077632706477728346833728905650431054892866487274016775880847342137065834491375921434437687429251163654899093917763154671004312991918844271661579794160022974413527552956777437896022625205339203677911206654201738758234431425085590314603317473221605032749767261040491274563429509646310250571758599090585316550842937703459285344343268261684290559451706541246191644759291539346423355334982179050481455773052545141982192337457941875249894555402392965027517635759126832399285771520084177938308941415901507088069158439955839140311592401031829818633255885110449799444372161719992929644716362630792648730123073639260434097621319887257489033625255927761752457933867880372859066691524105704338303601895735512518097805955642753595317666298995741765568547588955159176464192674639540082244646486262892968037092979566451749807782841844838319969111592339356402830713092614902528146678551879929315228500133709908238040473735473903524190953858854949820976965490015602711148094091769390572953156938735176064886286366407332564492843475293801192529697479555944319671162664320986642325618209170832131010367304435866203105781279709922986011294956146671559203421208491404816864435397783661520927444428355958472138723505298234041014610222624267392124449066672217202858811956139408002797502924098883981522488233349056262669071861166375193862449358888048097785642204249962436547051979985566196996216952607104752963801136655131831715310458971895993864990934121236191618791696422503608581827370882115010569019204966094548722397204230858622547466796387477778682355057220874301782050882569878009949375919970735287231424776380690230388340402504825248522069624246871425138950638533502240883877221739970335354980423885208141593750079537280415487886602951362685086262722117564462628447973602883070356185512486494699241952935841183913319072870260966966407652458497290244563240960325867622796268110809284557194041923077129639181123529069673033604635062566843356680561559141385393176843617251426728191915183599043577880947435273185747729487415811687482239069928281422669771681117413424055966618207197904726055760304746914667556872456631221025465765127476951895511157598713140781053105496867971072777960898580196365017080355301296531318713675613133386790958363573458045035345792911635410570241941748941026394823669504243158991355326771659870911922255485484427766725098618235829385819266840778384204449233649171667022413887380743968806875717444509378665538579330254942548079430607892627749536813360055260957557375368414099109191139844391906135710817179931093220435190064122298051907109352614731326488151944602097608392590076037206416987779481572602131945243662348783139071401460793796807037642877799729316884625741765580183833105411063790613466250228332086889563438900440480658014811950259611298970836290527806136776636249447687875599370644813055312723501607453715573911909822323785253042269415894341943573923541922818696462288107016312172651079359997389576202929775002235737078118659526411062935560996517620640664614476884809976506527731519362490001759304031634318327576486613984300235709090306322716717341930681383734022586394514839326996782144559362672356086737268290924679247768270051647131673210176140237651670505310529142253190092921385776048631111231316859499518464936113410969359582696999595211957631736593638650404142570366639461460356832369479301540033549516964160411243142349020826126757762259469383769032692002441879327677051219926691635576848572343191350864862077693269101143809500797168021670294326979238017223441606375083417182561973130119689041299570451460151071978056169847718398487488513827528956799122542350707067196225568582761432842947484922917383184169838991359761531451921360635347673531717902559849180176641585591423297758081038004835239107263867937562301894747859724146140417467867406671629437646296469711695856105591706951194642694824693077029349684368324606032440937400747225658029033449594973887268994845237796423042590306894237579317963926663360835283240871364315703596852227009220525120177801841225362995831394489321923602624044373668370663749507864304912175455700763979856488621651697887794743963901815898285144334909723083924084827092155363832536983811846307982076472911933874307115923706980650370447417038812726827095533320675265881287506902437952458245580205740103835870120708342861839983717358058218840786576031115187076133251591146226783487203086505324904574246278342742039878815350068222239103894881354510075687131704010188043957349546863266751187046479003054855347278420229403455219484307252462533943363831071545475639587477864503906276795535798209228561221466553428391483386586688982034975288692618970253400838088806741229170719559195107728076263935415181552083426754396879723139942772651960299272865856360694527530297375425624967193610601611343583290470112840126236754504428750546462294539579059891114646536672747442644609210235719281423002377216463008875132496646521375947538798617850615142461678498325428161617745824917909629960790610517991011183443731817336533260455676929199878497799923284788629485503332938282191323682102330538150923626958784377280091057831204038499624682402161660903171311332967736015516745434148429175006955804418855268760119470997835626438037338003440339833851985954380489033865567970918772774069194628756265086445799383725030346499975268407277054433500220353173575654032166689185613361883556145891404030552265279830229265868611228083229343353736451013909547700724598750299985644754221625030391098757188882271416263116324018161122660367577663398009556385892297418849450005721888240415738796963513699257252990093970264394243922944576388545225701655182320955554697601209394227333700218951962304882800958374114446252140030725372029564489861539309069350654864024882975868537470855232314806161307039563012832080314899435388725273466739501106084860493622154902916616786122073368021652800618944331930181301115539103310908000494948639571584706680624227752340269667770761357771657861331770205564553087132423579672309684687540696841841749115601315458757880074815402174411393459042619368639092315068845984732785815200274162258078009834895902029336583386221915562679980333498073867877415860788177608381248278183225942557145499759044236595606244927227853039266978850632143896125112070542319714501829204923323984663838824730161487810233563895738814531747303087030399465553125186495416512308701545034822120293226236210912864945737049273428264487129188755254460666915339130964082780528501556900523022795395111935156121503723101462468324380133604939387777426793571546584928202687318647619208368376410084762314466754953019368081524896944891557126752702572796103508802007869711165456227743830972134998942898823591971259159377467042328965923189835470693949683604120297475174738819177273912036282309818584771816287891337064627414151015919762441270480546073205081441118050922192914181945534568591780244034748802848377422251521892376505387973920143420361363583373199934314456798720770991418234136356530022896644124842790501859152720820039137748700050364500967721141623867220351358871437645004859233168588811686894265162817759001854160057719247063296218831428479849613209234838723022137354080132748493089279712260621714357047366380308146515776481103363286527712400983603692893658524291402534794989247006932145511863468895316432292273824440646015434639073109995232187657036845960967489955519839298905772029511561557798755990043935858300945456162021766704525339870308804172438041304195852982584904785769773444806117180413584345299094208237596691899742723406267370442758854203544864858683830502492822050471580172508107943471629682365304093900590499943034802921171234680448118476657033635653126622524323921748278524616603048836435990468713295405335900418053809528072402018621665285753991825905829911156376856485218157419436634554070491440424097249353796365345889887748283465275400081614012491483000687407859305735570074194117161490876854132533155492568467754050939076283695423177172316581212745776227619695750128685221744918056973393721471384738603207778273878880022435482529723227283755878018976338631348578258981420780475277890847968680001186340560168385822457230688525502119821250104492213580408881531311638006939656988559964582594889053942881073624680278060648275451907826100054159445009056090115898869056658902882384041072023380448779365072153967304928574219393702530665092504649073023902904591984537659644256695418811158067584873709109970476772174566000589953330684720733767737877838661415828683211058668170522871562929863617622473810104217591873130510805483846348622211122111314219161989215852743521287715217898343332898294715475851049361927312907790790495598318325502291821204797910865157841683607433950166748451225100620749891157359478143133963660570602474886261094999322685295107339814021646300216280825218525802452206238913607251219130650053401336586963261028645000916658876925509684233913308285937007604547021117627517235801834477837634839887095471502355930337585314323220534694199491684705480190903166923793901117995102976486060062222958173247287643714149533497468793905317710489944255444750998483117384349520912364892717607312642555367964332319073014237193796367926450216447472045159057615421434332795352514992020828636934364971000606550108225949314323983093263586167512243040899944621065689424099068919187074118729340793886782843565436916685120183207101460208080961181523853766658886267404396416828053258699132709515547716928066256641472447590981170944481860544795506717482847324011448842873625771628673400471025880092943138563501452865718403874232653011398284505921447393681687778888873046173685020567457769302074582666037095866571529478580871394876279669570191966628349206248751433817579160606385255493040283804315527195419840057598213041623775911239502723837981249984655721789556340346836361093097047011985615601637973993241640339202647741336939103247847175124069028097506366852941941515103996103532735592273866281507691407562515347851121502660992107915780936768377270973745160649773465030872170110913046089276733105568228169894556049896596803198501080917943711309089846220815230429493431536542299086158830298544067175754802306331936385096134000858194330729745630163457443309898083130132727212055650336604807055234147878125572871722337080181224594855385359685277171455384727208345286446248247218170330324653086130923931910400599414807541606352761174765885270219663902626504720663499291500957240373327094652410532033912268519352740200754395762919766734634470616568522528778393903460567410978715768783470554586061735826518624388448105113848652535912946977545495875271875205117925496067448518581494815397091487393995663268501937516030550854073578953087032410500239003279954076043775621130870449052387859735538259891306081942742304469808064422282065290708974387874309802745458347260264199729033734278056142738035684926281298587568327869286003964891681366280371402103482844779442803367945016279893073360106282277708688261079826861440575768673457237238585950999319825323284133024791616533145516203368207582527165500172372686138071493694602499681534362996631822593734987126971833200194607428502976815427657448001951088127023607432071596596233805910929261990975206940254568023717651028900390393405419696088086516683198307298375846617619513065147866940514661116584227221060296091035737425637973017368787479785052801781831170453814749399985423896529658701139032348167314809564706065343012438583331664264764868920754140382373580089248668149593619614508355256078872894482425246936454981808212003425626462396357609777411845965727948849798987962375734109027042481244679270103293563691869601361598258244888787405468621872308912835503340310208989188245769629035914820920715249212409741486994740884650549956233683939106501655537295027236342407200510082007870327390857950825991732226675827222919311001868285770639322223822053175175138412064283502406549474127062746692064873349301859915910264027485523327349572283997021341824729587952035164271997602808953724209650768100119658209340651519076650020471888111313997649324509851779327911933476749764662891075444153738789972088659986981310202671731100559610090145281220625462238666080150140615175524742596567331672930495502704418689872584597521181035171488870240778451612631701727187401597821972102853809835814445659939807523996238794134922549425171934010705009814605967972745091623197314075852773795767110369711600245253217819787332163204517699328273812988578208244586693515588164756354209295425270048953088411298722324223736594477812327538838324773995349962023352592643561072387566438784595404040573459940309166654902662130443122150984893828591353307047615395800956926800290462939019630558793207974286809833217353346066187220536658426043354374638177422634280020737670786638086654597142941683269154767338642481647665872708036374229204738908563164994482319251827415647899408111919612418048813749902826565900679872536421871419537958376866088879529026956824482265730047208798959655337590975275954622861578958503459801297734112313250538222012151285806219384643134680366534909677763879733265575747430668032299471599471701569493966552392152372309981051477794406648116085494424774883901481314661412227508694761578826028234756584691042489979990852088075137627985298644530006505969139293300676490737247527977768702058100178607801891046391963737733577492360316779271804049425689911147049952507716445903586907159392981963441672313355275415832214571554048620526741040238802000293473312951630855256910645740373229467697874565800610738806783322058904227974686403680052594867077811709351196292474627907447044691296777134845053030393703137974441963298568020914818643884612392415336097629734622327445769656860222222865547521729648576524140201202772244355706594028814337659076893149109550185061940531072913504488335387790489329501459430625240395521723266333530572941321636209740571158079150765344666888994954647944837953853008749511242330985074790503771805281828194572412707435434514398445850835219973524563633293846105324317006226794265469636482529099263677633603612087113785576369877706131952176041895228006165999370623158874035212402612441498041246162897394251179251439752693701235535612583112017924364065858837972516117955568244687799242095287878709263816815380651382365061131562622485033235906936597145200127480397128416127358670099742126737496444343875008332163969819429151508788540584252745973240281890303561425299389737810871079733541265143719608009966962571697470334413747131965607832979794311792365127556069747069099288360231754285824987672498508849748741764755088203147104663726580311473411555820740378624307299815480075866243871395522309037507844111028487800358478174233213219022817329718322705812484981231197274210163541902838333526347531916933100623403180083938218984539703739230234837069371540525554091966133661785659288210999221067591452082812117682502794968828343960311403249741363356528256543505378717341623821865787289132857627641659613840742953910218260819026367286683870517300586653246968280358471858853933075315356700555702149903806226545270495143394656609146188828275147435555811483657911503608555132063106714136147452071489283247565324642269270393409005229470093107397408124968007801766536224766556909874991695331121116783884598613751075534555855818466873291224725693430996166126583025097837566770390005477233014336124458998902204093751112798362661588935702422448175821681073024639410499421661173525172135353888387402228204424677896141215689125286138942611855512343255251587718410304864594931084540001541977907702065474917971195730025337815436110693547168760137888209553111087978235618677242746297898332746566671218960373628266628704656294100118263271032971313598000057986362667403005706120553145531487946017853608357315487948787937455476006183042021847574871077751362097220053243585551259061260510499071549195551123687857879354155398116081501079453006178950066867161955400082739251372730418336747378369834108003125108152769407948229510764226678052992111139445186040785122567840030064277930306679449697725594974563450820978630084112890633941265360583253521199441174120579836628331345789956643967636259968992819782923147119429184195584644118371452398910562308040702290573205536585913575581039902317321108699196585773857861935967390239046424574261262473573132171292549323193457015135522426701734501571358058047612093844837940685884283755913395856526339114490986479560271515984775511814372716412555968879404845571518527706048281291344989658480827524534448630700256352375713147586814706566561594562489338627577639212431893903674542875883383165905002946597305373539550838633123195050013853022800602133742491442163572298137370573781127557920174533654233589872335379140805788773949855120595975568815908100372520254599612393745321335241127622271879794041075554673842097240871038229133183795080672877141672825537213336688548965289422379429636139950820767809639499950542833923561811116212860654174975878522665998463701897119206854862365818152635454243703485183964223269939264979675304584431637043831412147416901185045925797827282705602141697755383081009183670787793402368810231951896056308251340701195614632563924212838217720065485921054520632306214946184882136334297685417749944997553604703497636102612127522561180803395582892045363376325835701332816962385880051189110441263064260168477548375671486414661136650974345617622605014341789241534978758785509662501867303530415162403199450557864236462179330732307400882875637224185009094631950093786777033707095684876718505393917556628558546064384131232508800122834690591635760762660540007472259055648160320862785891356785395994335737566488685737556108263380959957931626910840224297393980147486269062624706024969149725853833457146061441435821792422987609266416154645135100529905596815762985060817359492789522232767379944800557747834638343997788263097735077393514552442436415015966651860489149664839737215425398584479437705167181009754954218350529441963234852541675253956086501970866365807087678689909885579590223968393733990791688777057341287767641944105386429124938879075564357448953249947331560733737274524758938407559834397678919139177354533989154822449778266233917282753883610170559374300115591028864076243124093968991521781912506123527939804464478203245315828306123581658606514571593427524739114777455191430046696444726671748384816202815266277622530774993579119040056722703123618747480300135676890242021648409518775848055590079410055520165154101230620866577794846278054143421556862618340780647494162709822342169131814203273375529086400787710813508438904223030988277688113805716341282947162726913510792306816613044623058812497603860425716751316162060962494842797504362872806787243624008105583785496153312674565307607016428383003740602347038296591244973425231764126652037898945334636460816083555044218594967332550429471927502614778946934583212707244814622837910965141487706060401175772399663633828760170005076681059429201182432624457551151055046831767755613808469766887847654908145211665099626281532625649836769995258190538230095463594421155557869956681873227115478823216336808352257585315017945116325156676925018973015642954189809962400884961345891482511938133199843405312095069406570689007958006351139459139641085743215099886059345234824754276178217737546031163246381731414035618611571689253761325729823344117781124871242119070723172134434325302800782035099726731379661863171504763982363320764167694120818976825260165514295472281390631420203447213341595736274285153114634619458176605990542418312225076710419976599233002956871726818875283363581111462385773945882958564876595130791840797618893461888743334535897136247497735988423522845294211211861761235018222576474843694463449360900682670556735596677110763102674300844794429454459208543924132635996489634670055256971165908562592734800830806189080865586762325850594600423030892170659011109059542536511450893875332123925122317067505090897751781476102014906164706449677884351379449228381258931881439786988370265404086038441751115372960194003579188756792869807654037149489499774837142790724174101967407719330732642433781697690387676197009726601893931263032004539586964629275512188971238355466021565978691934138214330618991969679067124760615884851010477477767071542076088557519154646396953219126514528643871932814526796971233015220402371228064291710854383762158398330108069899901225748054792421858225082889435343000161197070905604783086096220206408221945639955072133032541009096076549901697937423998543494807397651854835890248636752488745711358060416732881148061420343761714932358721700839257577699574001536811197600845876075741427314882360677427614517483299743799951045115784427360582293699799823600656211166168442997467716397832578183474569374651238415894593799571329664093909209025879189905245833550419397401392037919552908198165704797012545068038637251398509585986346624737002946776013058114905426731807143025375639529283834580016337758477988291177815941041142574010385141163447795076018054572659326253372837315933988134813338188456490621592558764309208720160059466265297359291970377036159060585867912918041381450664874627187538278512534841329603371383123125204169103423637754078023569727607261774523279699925089378378795533496825426997736531546585561175983217241679727062253625726933730649470948934764343658884555609469942977203844450233990319480483193212260235683844656352186142180853687787914782029457511904590304826733491868869470933636518840822528906423760409658006508890956284302949842731047650302697379795350435873402481735585594804492987017404157094151574715024590161141872919131137941201473389011597937757239745602958044543235529019417044362649646314884633508968727392980871617381646128518805360675512792881598717440423556855238604969530019139429207586806045266160324360331099878919194799182658622961656797994301431713938953467537055964352136394358858181698230148971948004371159421903786922803354049764527356321591946794995434799782853167833685919535299250400791837358574555466597057277570984906001367800925244838127690288648289130836921950395314989685642731089294915592975681029144055901777831284271902214635751936353921710575973002685739367849004597624521911477779547772473651362028359348701860618618016123106348360234792661606487121628700502018389510752551870146618895061956579617632178369416376975109767642941869627626460524289679323387702488651591059930251811714064077821307274046966764669159959723344022510271210546879347378857406106974590508056232992766483895747045490776476158636084519646922395701946024884360312357641921586610233994717631956492451816039727045826170979157145481482927362162414249180994443089194449707316040404179306307451994140234810471531545922563055110301371629881705346149367393553525726537297235916164468220256118678165966165545552772400787646755407378834667010278651262283526385756385259707209975033238454012750881357199039244721217717760177274161577634736946783657600339999327668593794536686463188041243429898670025304843490342815123592688198605972010057893497525444364292207723673169024454526419041621702285733400608432526030053897469042479355036750330719400550125755423596376599744030702572198804816105587673377743374038256209653210288249384316568537737483090149543422687407128186002322641584884212415812748086556015810260199104249099285735862962979282162996496229004735962569580730700444518933037801591705887616161932171253040014837178957410060056062415545235124683401669853543827900666690431141002415363256492133605453628516279835548579585013171567941760520274238934275811410572170134189852278029877168179394504185050313150155741789051705807797008803119964038630484605043804367236102292360974181850490772120368219104592630795308985130677494805981381169771951541709503928928277140995130463112558074525450792848310789832355671652078362152020859308542283671951696343785902188986702783261431449221940588550800520908175994875898907783441201615422627773677182304993894264712921125966903858824135076223038949881648746585003638055158583392166617426544662275491521928955250789058264532303553162353051702942661512180638131971519313089295635922783538372672039861511725765442842487744736091096665787586002640096629472687872705738493428698237343839044818044308504053475503631966257880824200363037025822269186092196751502860058215112992443729632390968938624429244404544957191427242500099067732520000405364493590249193528650673159308339215437639136224593333848339753381910092541082278509601027372038573309963133379536131713832294233196551126580651788214133151912284330444549001312982207165513151399365134004074039006571848093865269652579333691065723134490544240609786925799840337028455386222211132998900046565894669834026729910290991533517576341566267344691039887654886461390482841907681684439934925686748151966972446420868333306213279912825560786076616893240264732904675285219318329532165673823774722608471119347298338155769773438597212386658279080228697759745215610400218837652860936382883973013494904018302001363125730041961025412852607319687225752260882642103805648470972489521429794471850496144728398073018042005630285714926707916801267482373871422659120936528088691050718568944965980527866826472691210719308494286166622810916233900491268945078704775081167080476876381605503972486917261332354567393330333657282011576885885863587178017618512844158924294670309910114476589259444710449512818554025715454307712826829214328078368561693935278775338319742627062801260398362896864947695139083031658359905090765779853934215818651522241696708882852904972342356792711520801522024398822685037727611501374627039583967186073938585941121343014097844474449257422406923377794202673588633502743973434570046041249628409570475985378854299619998726355450347138672630859672682202691462499481751719275763044755371843871294035332220419321186815304332374277729372161074374765805668689057457764460522469256646588311257209340167683981064187893690675048595800102854760142486527558438439059925258983916577702542914103309370184566252898850394672307148323755914068568765912725907211464657377404645132510358856345196227195744673350004371231883080897048390863705712202164841394179376827071001540750883416910361511298851822659971004225114945173370004861390490821693992601241477071164999067414373755562993597389388388939140463870618212094542450474740976635083581023956118770804289297336655182241787370070836544749244297184145489137287676712901859762101437877992577819132628270385592621150225563075313411007346999670362493369200108083722654412633358918298496314349868158901117230554700402227030954396410568626366210356237207371738748400114481735961035804180428119147612135671747915277821328918460850225884551077017836142064292708874286259299409866459521829876608658050513199641162544958586164777952565689767470507111645345127564687298509299583835438927825750944142599255364509243586706663767777901292599024346952179402166282211447409683586198752002727678574954895149783362360444287750428165797811749128226244688704024623079161916224123105872132991822843098743015529311845317549998616819493426819548783181989305959550720074446179019934529138087974260976967580567053792750309831544474366049881275332432336840684481111646990589603268469239789651360875222639774291660300096676806035089132897912220997663747167212155756434021730133757498417825209976046147590693533285812738240354062480473110231994095473411499839262329241340502704105646765715839471870813409527788696025395680686130181189662701545716952503131171898301036633669182562950751282277436842632164473215109179166808522238986113968641079012434723368059789713520967353178715189575574841179457310288186362693774174018198182390723962698387857833489127600845512705059844066051685479963918747319842018479474206918751848236091202371581565815447734828040307946334103379378555313811773934802626239300193428511673433107202534674987259375400261753672322281289949807914031155550380509413583311171278797716195786073290368763299371430917017707555479262664736711056231603498450708458540849307178240660217061974543560432200212342337805068547481464201365041817335835310582955376963266367724341269333818339745258173304813003788800779095327402420645824391062789552123993817808907974826580021952066171484529785437448051951212146576763150259611900612898516936936484312438429624018643170123661805437239699172501078684879162223821297789548681278575288244045943322703106177264542149590224210012042557989073050058022895499520709482363865091708173913320499557553228392607528290019424794636647668796561155873681589972886184676392168186918017348781485393365666280727108981430715646255742151426280432837617048991420512624107849549617266514303362890998107033794190212891719315383835289624252347450553498987938939229314790220924079744932671105702358287144190055436952103224373526097980684882491092567897514166277719901649422853669211593373759456379510123920293022734237687889768473533507825541063244801387790322769659975951181020475135339909378710470762419799478468959240303016577216257220902388100788276444615303807060756717756462771576919558913493284293433361900331740656473711450020249884022346083550059015034518400149963329066579668003453734166213904894358770146577494086036826519677686879923431303028717766174377399336332309617484679991943317881383204065977661316403824665421597113905184541046147497558869347201310421814848760306724601364971391983893961197038632828041114334446969975707162673375235706924901452391730708131819779853248830182093356289110983767312295931619881081572406134701535000547257917886346070071281789448487137801124910010418961233881214674822940315096513986217352241685067593454016080766388100122715811492841491614001765914850231581910393553746213362665725834458165653383702512868167724124886292856698715226276417895238607068536560023259440631414591025609814425812726136033030739298971984736706298988360879026600106258591353764937250890198521660538812321586744764541212199871867044000798718399087155702123417031825374282454448867572082638142403905792690727606520276761160570540679632595698018123054703493867428354362570884766495916671756470615556038795359203072615643301285470562772926742320708142670004317939012632838285406713497544275642311424591648521464303913275897309863835775727962498479965947928461506791302908305005533666025585087266413447264223444221269632688357393888367942383679361989993444108783024410745930993620748237088826888239352574182615429774153139648336039292339180910752438434606853997076746837619351816741374839019604655913499984904403453150755309830068224987567364850242867963312930434058013229692031021740464128310671832912935825065269404425961230727492445829572253097422241183233223877335386201118035335111027999779783024929504514312542302028539929857653007980874380376670142847645622809858415889578707767776050575755856559692807962359878784753581327050683940092402155470543538289647441385213051785469145562869270733077204045727012610898719705396818643431615513460661763778655401883339153754225747037542124390135890066339978451931100843366321946144571270676167439136064907095265388001399253394553297670937071476751742244784614671700594200627304061229072079537138405370190507684882032088053065235785691703187438776089989430597117729561928717067850387408613604752604799467768788285255968538902617879824746444004794485724979335675375190244709394253987437480853491159329709790757299394523369743564842391022985140821653875330832660302869021411847440615971123208320415743563332860716074483429196685362646062753862965859408370994981470387513005229758850593869087876144813395982245937727807269298422947191146738756031988831210245888611202600811098874501641731564303885994467439525764457651694527380035749336512395557592920762160973019430599322692167213642006422308854353706306159613367774995905697541278595144299383609543319159381215857191935672361481880316437609350205654211652181647174804121520614297081702931606391921024328831275849758341301296928536841876741612224687086122969541466142721221149398283665963809531424911262526497409132544651826164895124595449658064758787613600740829060343267709481869238492366929994945397337840349345288401624738645812862776962869391814023478457794956664060897119496157856076300440880654252356598795517317431820446347958822234968867732560880037596394366477696702943890603395970278226186707369248205490983539163567750800444441678443477080150222111176942508225006548726448256969362211299540749555824854086290523854350891929123634430515019070270560514301644436933388704183421157948587006902722917297986788660569977286783134481631568366280456539294506506297304326111297575169086860293533271331564382409761817689199786031264001763595732764625318231046560690490152569246106900187144616310412222228780068813561550253870367304726980405220706815241701256672119764889777698123400306684686311450921263032873281719946028998443699535623286069834313845327062386620425305440320659367377106083880230853055316664704152577646386026712281269041205151695517918922144593241954440385269558475068830653439033056705930379935919613355079116629023815845855518445737334693698503170254965555117990871062664379004685458388315953010487464967514986317069953278402939345947314244798743935149332912752420804174824242210789141080526154199661897417825415110244279575390589786892823775885648341781511767796649167197112644020049195738605358451602123003556034094446384449818119712312330544659197970873568067096534921818170255934119990181372616625411689168333086087465889771665416425361098967308650052535387598178863151918537033933504102105763843747719029388380727907910550193762547931280806005150506392465579688205418028426840386739373027370680664842982256475844740147648436037425668001483800562570736498274085605093314209495115586312864730983185176396643298988909760781353901105225122273103727454047104734807301195566906190133749784365227243540976703319273063917153368487316204037628525189721002598306317710350801195310441730939564637858814471632338314342701832000715094204266228812511604307839027324939810325964214314081130359346001762213218989692160306990019471000227650734691290225460518913107080154984639539632290411136462759380741953749196216791823002102410315059000482911400826421270917429726302269934895960493471087918496145953727988293529568954815828782952601087681101847311911714933402801817913332944376167640792238320213666403311097048853932292890283055576225522472592323186572174342881791824089458866268708267540337034677536582162772883252194679669533407741142588614588701367860366411978980382100815664322679016472751614610441962719314676785916035772042366653111080712955059643271376365294585369961114768746970307535119715468460564645689521252070421841681243988614126607290413065908531173460524451485742613968124340039511227611927669900229209332737357072383894569686245336093055541098861351466937743385033540728953690399465170249999286972773220497184373873663110844641825491746642005616878822633898317669181719701867530710484503678509459295677120703656828437689512009724942251950473056323356889111914604244065528122543298879005745689100463489626162147320890551996765012533841230232595991128587312766169224237072982773015773621525330310980833776991271555916531618949427590440374136988835874387082046607293964123222470055044870383079731351659773495251758777591687786096992683683282314725365356920889490101347040222762164043671485306848018114488951722484389149760148667882610337476778444727747820243882503529301398799739892161771315211852654329223195869476511206827749188260273437136037157251117258030081228605189472846650489699628427460169030204126967644469420165566422824359554687584576676904463276498735919912458630240569394056750402694640039299262404495273880359527501091469848640150894649977448365000436038452897625695359249147522826159093795068465518403264354215925298537138040186047984277077807280502418160081408483695770293388162249495637580201486564249173110935811884506899403394473285871925482926536875598428634440486471700429847434097393427223358337053614237527134688375358925506873803456039727266168890573911213748273313124214665404024513621094303763064298204119128610252537575577957936517482271225635703629121464963838192953326138804837655183966460674524063377796631781234037108701693585823468557394773933761701417146408362501542381030350118342556938474551501616414807424584621928301025291633752446920122238373594270424311497654344695615332521196082395293685307322824562234943747340281869921000464585499156107990893362781799860293244843885353481894054376660036611934428369438055034077182654998515435155203464079539734577224609158393482458858010558911646958465228833813043308971391652997220666282560785819352620592016699271178131905645339548027721630566699818040185083519617262339491970735661032665946756301752576434049648495973194143741157125866404142676184123691954896659004365597991200757911812814358678299283041408238454143909856002900353592428304776774910377143016658389568857287345354472862537445292574805934523199284188325467138591624081505425097568368581306145130269255991050503109382132675466628645641983518213084635673640613512055932111569153646939624692583487699716675032118988622268918832521925424531403628102714888932216135610983761615708748939481828486958268588506561549017890556402232874443548568700525199401797898831037487702462737165634803583066991586066658625505536716029427656919540299051510615460658627696563365648101615025621797313209734941891204065377392550657648079493338217711013923128078939388670701301349501842913844046074136630969875887944809081206730340485471980858201308693036582018115962866714516096225228184144959159945777117118555060124210791847935720990725603766319847021803539968061389337603049993556648470379476147401599361083709140216358635610045216835281292537138086425750585966409630473508867480405815976913295942622864462887557039440179140129800391218745391781545342076031783837704904505731850953080192016200855434514939868880488278119030776338949572244995437710281302667633896053577521556642317197722514588993941292178020830912336348474423570241121513154110633252027169908098382984985572781526410776026128858029510656636137640491955208894076139447972032739413316645166439261690317528719443552146332348295985384948684547610123365901972784956877438368244662271544572100454096696472355044542555343495995327388503800338430753774280039274048449366268858553360067075038293344714306220713044032321785478272396923925082446823290202762047991783876226272294044949443575128229495303524748853818982865119768466339377564348920965758165268572160440463480845992505890154426885518819189640649911773621786235715739278510094568305539718979502602681479059648745135768336612681331403824506492579429092921108969740569807287155207789096274282028504662713790714047622701994682656004413426393407178065249030525636926557510920246687173448884739508806270139604823298231736995066279575469426854061800812775030772797556525795289255306139023269661253450906924812710349228839530708034830572039827279454863579596090626536029239475853876965826447377597063809673970996069942415523636402634904756799088706553635036020537123949497758677687496064257328398386027865673722621120908652875325009643854747026676883753732710935427502316568389719126592665186980794768111620333478786505626510165871641552220422425903717823167634492386439165829604210265823443934131287713095631971958494623622970269150026865834635550315960115860249536727250470152676240237370301636402504165626116258983149218301776349412851822600771725659407500076826487799860022494229715744971651041565293047521016905422050105034076304096373753305302429881674927953881065705691184172931951480302467731885327202199761498733062635767582036430465193945350195683576493135632186401260456981066583335617599619452010371372014367284251963425448362523063337069380760258503629792779926835175661552773200254949182093043252853798336846630314020246832468675103646798046923123186273781647384146708386135637779038690876716071375656341157642773113439612817233393922582351914543075594157959224560147874599007158033044687980415557172817975092908562016593374755056340090018217131384553013681316510677075586135345059260172064196420406729329281412455898906706875423780656130095616507448409996762231821224157684942375102909393053695627992147238397392122690699212912638712931329682669251118191824510554268021509472620542866734306975877270244552032848418072781237704632624309304806860726950980666328441321941063892651990279874407429464503457731471244727547576376375462430794947461775785239432023965523617246803955094893651780654872798336082463716091874374718005619784479425519699828349377036225524494408862794120527437686421320950287215287288448800750328674520518031996219046695657188203993806474060158244022595398428217844416648525849352621562037476647852414630170656378300436532082034251509411940437742002122975153960116449094834763594477320398617595739719217737584264003624640595332767792899169919574216052963329493982137114259712183409769522838853911916781987450665166087619368813011366982348721222916338502185213034771283795827472435593065978470081071392587261977812692842045885624040942355947702791422195432732527285845001607094645913680213170673534071846907368946637206746274655756907130376755343207925271921477159961284823278749932584407071081922094778565354273241459215899007263908817448938402009125141349894796260218989340528678770774929927154973044447212568872744763347960176768180742858750260014609638970500956073680554336506645317618161106685537689951080487619911121706046918492381042741122645409191647186357553313607509348263637058120194237514558928266478170101578062517618196874029031056432272838477847014270392628981052006581789617557437757926339345516110349390141168297366666840962061373477263793533246117799891748581799865391299960401786834185800906017844504954298311317852414282711659197015783257114787474177994325141764406825116164495689470699834482019562233831031292315052393748009764796041345234830666901128321741531349511678610994062135204871687829291684401124047850639716261877408450690098182332162858514168695125513613096052769345958117451360421627988928150614775753854840413626476607612545370519155630567462612432758784310517114075956293236442881286269293881931964469470255559533254061782736570083072031072395344713302128230899827195769765881986290287495037894157685545477766960533917657711553484397260898950893008729022012705029479269556584841970774564816545525143571916993109483422340765550177199928794534429231474141178705325015938274534915427965219606110107565299063496097852189524090202401961144237489700794092005552903327751234136558941430511564227381015660343285032383792226994102425084785517174025895121842747782698493124436602416688888956304093520259530064249846112403483005031692340600969355024746997452795650473754971105629604231324558576869993652910724557895892804286665830026787590240531207219093434967766194392212434035249670263319334800210384835838302538026569248257509216620074665678132074537944911527378637902011920701280055805841796681338730425451711286419458766885999136129688384280136809176633817567016255989755078259659270101671237778576414505282774261878182817421125428257281680029508963630928124578672660679229267334148901721600928307835075312233646841917779847516295302988100504310170902058501041750301960804160837720532452191412187277831941425723354406733617966805104257375128290687299156642343443982452080489936361859926793142615105539549090840941196081568442726988356790228978594192164405543893842745816699422450659926031446967692006370683573119881392382484131221858927566039307112432748731940335763790375168175271136923770015232191461750027144822583234342915075166200078569560996228716432051740325137498540775955372363749311414487918060639071955884247758542436791583506515584901812606647168877935226633683258204400681619327325739800813005936652968521163913411439637046132473732766608888879078343401901180493190755918389027054629648096175661062851006945402716617371831141713164953385826791300455674865159673015362500593429780713474623652677531025777916905807104794273627600998641648743640637744590460803005938099957591676431583093280021318669501621003062964635295437543755720973055031411775571542124064111507221960049169513751136889173828813121135432159790536153031131617871662036274829111888125035814953542067906830300204762371761039076312938887252719506571377725774288042609864200656085082311637775056263943760271865914818814306477817724921482239198183951833707014337725644991635046415112782300791561590554666101825026703052002874209500406845202013262621007395901748489373332459369771586584723817076115235605703647211496620635764864997589187220841236642212369857998193910074176330674500192922641410029933171084713692930688439929737107285453932137030932304143893130085651138409189012393662931355097508079667139405367281331972703381767921105357654067200558292862745569109113950348797671298248389177443614530644938239199292866408011235760634632587272610805832636452957338420810723156541006775185383749548379195048994173690285929796714722603560828737346196049485834309631245688302536233142714794094921280238266274902761829610492885512627600856499175384854260912737787311942912165313712073715447182152874045960483185787791646694027433532132761994504627085391045676264706604467780843506720046899408394787062095775638677282187127300595125096803518754606773954855739905722894698882198097084538268170431768581147231478632653346699942850916493440880856086431188117517853774934124338343740377779494325356744748142932559734574575683383690845217807105180771342912711132765330146801785532569745605520393258974888863017761525937596811012267922424672191784697616842658688223969973500906920855486681037131074038317372636166850318614125460155693595442560607497371056346562408290717328929553288296913089175817611424304911303015175776300324344936264929047503346004869566304126571438833033150058434603318465416853870515913089842403518880200552872315950443773453532495605764462775041747928071995581186161214526710925202173549714798258608583437528659885309977178234745793193964315499099822370913922412226573797412295184822908440855438590389358431411520031575400128067882502920978898118688109412715044452171730576528422508268081170422129979625204257736458168451710380994606869509049724983288334936823234418284066094655802244045200204862775312444338950686457291624744709071808562415802223097530027950380994341994305801012145061390461414475190477329985141586464836451123024802810910638638058117586836769558493544395645183465031369899113124609613351114730202481439303575898047476496376304974832082740535656597940552046096637833918780074706150948473081066093427088050684155164532159649229672870299585136296158862567208988426690346518292871985832526790777771018374666458061933448758271015837783251463151278001817068808257830547712518372810756684150399844340035169231955762113873643451941578368155533804301587933958138344067217782042267938578160363302415088994834633912862576302766506432964071988682500323659643610856771319315917789183321162633031704452533154554673104415438848123849002253598724036510974988756293055255927188455460251456283219335174870471856580515389279494531386933054473220934677727041303741797464920379606805641810953583613627593961470255569139728747424422498672742284833173920860957894815184511807629673479209383794377323793538498967306346479780863887687436276921824687369070682731329237159925381412774757336005902803640324687477859235738264374259834405557327743791692054218901010267381809235803219644711796517592332755761274135820130558842767044043114313249641970290069827843905417670262410412735183947138694049225616459647498351472002560190292886757750702164009246439531234042841611055455428386761329228984081540094051178544402370670364024020166878062924699483294015594117903916926432725980152971358149880135991803166033546158857091234188545856165203035930842956658289567391675596862147689716631848803358204749954696977009664817068586263788598682791646348606686319951174284728535205913740259621451960305791043750473566498178716098837464292964690993731621763464766564409694411914185835938141878644738095848507617296554598399531477579444562024562300913419301326641827171072897257874851947541937975661578716199232185046462440393278575727550420052072743426092250250680884544783991084477775875519979963025581761738866412418738965752624415126708732570072439689841139331187679307184692037213846024257150326661821053920149341300262096859714850783763194342184561833936681697527435675456870928212775526761660156749984055195906649158720922505890096262756252684831885845530665260283151178042690579198455177117354846244951181843562347966379931967578896824370256854554430171968900520986028739329354001093591481651777376775166044893859099709063622976787590620621099639878049606592982844929567998993993713149157528352691032038836598038288370003727208032892104759027564846416176740091391286393404120378115066322883271559549230661004555758300010517481614718405689459948780215508504235428718348805973925403735099260727665939799176493105758899930426385529212024309892102870089059804575780760458067785551549874345998530489690975905505079530491488124144118025655465359085341455117993428347036386724744741031888048419678647430319141347643328937598216634461337002704527369750071540199919403703426945633810169683297951788778277570642510516662142051098306900900256713982657183693802647999541840531661291595254872897659112041836615874061212999789384655694962776007371003070694690529772024251254280008651244785931457510348951629033240909926857869723671597084115663723349499047722370232138998033038362173901638486715136770816907477236320537588663808218127781305879607413878444989003368835015350807755961558382170334887285750553853631797831073978630168744296469413109516655542147140624329225956994970043597670472072405532680423536185704031446791538861064924936312944588318526904740060164525728004214755793962892925557267728589691941452031184976122937577005084448721531185583818672384749864474952064527167529218783909874440952750108794083491698671800829226366069120341545917952024017007694633730678773079287727659394036308248699889505245159013062484379845742973413676874297209862197554036683586261931677596840011537446304719201971910114151183762738953317288533286470755219967180114371048660914476510538320662049508218094307077557449500713226307718191191396140973603786244611809514750677124069243126319461943884234674207621185065452386805373124849928956066386801520437688874109206662932428050158934859703291732225929010716751996602381419582107466114056673614833435618870248434697088603952903982746994424297897129240104363572166804903648807417745392788723139321105491252192012067681735118624057836043946000566638640169329546628369883564906583973552751519948766541581779211760014613921618213300430009019486374665585082821216167974588218120364145774607580404706031712026168077040025701915731919748018430230255536326296458108478412263402563004416656255372698569626080148603581323283604864219073489229788352582015347857539110846536083205753204417589890521006759276848644568070314955189462351658614395497151941103393290388478280147800013239351097739590864519205187921503525056500885552157052615801323373068052763904516587437089596330844730257664285744279923246399446249548728501926025947168386402870707648676985282951332724035031831131778262352606339376977554846612589659398369200308794507010116165432335737367679212015913178395841385323297883729554978788004729381972584401864489569134376076172784279778258589070029393665581778175155215375785377291935793489586513600840207047001343870068748149738407224902507454514147115700908802628798619565958839608519183832539257960195727720876011305462935201998435575771165828918347712108206037310607344875405818598761444626993923024399016767818186407029709879499379778525233174949308249040468557363198020364779385186442232943472454266521344281399993906539347060221122413152413390016828978138493626730561360685746884029244618510051668051258130401335582790511272346672205317846309850648510210156480067391825576491785398509696647222943080768796170784522087052130596645224610836624786654382112901981714236475503196279255396251966397610719940997424909801504656856346476570451998539572907585934376434515976115813164668422726881057233600939097855204282564917629715427978829930050460393223980461867726228773577912248342682020746500601975780537881371375789923910062751895541594053888955467352486743924323005069164771520709834118454737484439879075087970414253832865821227443818414378432419346687343533311057642183250793529984703507763940580288498319348255742374588525149286747483887335196630866257239070756897071903914685759828843434007965592949738245257584887653748558402584262761422071134859080554642972404001236118945527043144159530348473607841323110058210124393990970617504134502453071607951182151558928536301636336951240281612296716914636579337686817149784777770388103287148145404006103871597210560655775604684852138992187024145450977826754835183143123886609087445209519462312918852509670162257655338843708050497436146885489627297814621387746951875505227478064067542244519084414635450125597640436186306949156333104423563436854759643371843869881254538955784608846372298366831179099689817686806057851510998294330716216572197461820831528874969322746689330455624051800751523160676655265806495307531578760923190495780109421016235218291363455050114611209859579730088171052718030426604394216019978337449640271302910710148919251621042191689782059036743419377734255656989079371214063525034424094237986558604075940760507957827003703729286975967965526969506286188947345992462755964700459264241387166331575610691459819205893264979554422867332785574301606674418676271440254762275926053789266672144209178543402886854373213291946288722122862413887258987498009499661192060602726814591237829545873651594381623584469193437428638200257573131885630568221807820147735094797376459078205573764276688246444996497481641483367164178667481703862254905496466555027699397031374766466424586037615119548893777649113572063148628430337580310652525752093049197614103756908372786408677251865638933164847455467221249885847524465085928147452344718111004945881828182807065746605448275933589564043837410215340374711882550736296774314011605032071677569150045108225470618151996815275724446970178384237191491802891261148961792328135935680010086626037165934659077859404640998250606235089935214438111706948846708548404645317217392934121103747989033036641194129897490055906170312750428737420214183683755593958655304411726068119646111538111925595805176311522214283327529488622841188715318402780525160535426777944725461685046628095289852242428394836955533668985994733922483190017670257165304032823808235001557863364053039665363984788571121090491366915139409736759269226465460622521261690542889456544510914856025047810086099628862887623590264050027952937441776119960499154636671451771047732726263588519805225591086839134238133271857163465018265318948577781509375778083314306250983663952377239813072084641205521815477505124445769933213239416682073444844485082626980457320056292858644154106141137625261689359964193156008688647107987438464336198655442480796222070433427023790413024211950892961394160731912637472569461222491460318156668368384786712830513462261698131607008554714437537231203844031125808578956715683950475075192335217585521832009347349617234342284170804525853696457496142884007384843245150569708563970980747801686051101424690625811168802729504631558630776918570765107315503249378865566255388050626707298940542457231528974295782499517862042534602014872995366824593918527350856526470802605215369949039521724187021623004218680040075451746978645610350220168088585329651663895226888254018661768895125273397825531692991864332459097671434970455050792932483757191813969018888653630304955502162721425951660411577522410502882368997945445448396600937833768182353208526943067109081550884579169251162606449434643277547727398007691782535227951461242416815288583362363408919831900701628474445018227307446493334144414886053967299755705031484639206550232643466608678082534534129368635987399602716826542866781030347826280094934012055467014361901716811639504056118081666553370073231930772318136617424088106013212876327693897352340545367962442002846462711098334330498548794984548173649198516560195725680964484078626075124032344782128588544618112817912500370449251943414903141654805717247698299049710252133700345345044983555699374750173651359238529250285629070617443984583539626378696407653612446689273735449319272845164299333167498033344197175547394302521843874717391548885741372740851591067717622332054542345118699691740877709584258791857276266673277175791799814696929060046423036554543703145194552319921629589159566817382609278347879755787440942084711621538422513967328934881323712551238220574231881494774834449867165406285559540004739673494608750886473472438783490322695833368618301324550233893595678030793550669928067698063793919373645490281059106414375229029955292791656801441944243861698476731471042371045948796625898568606961506674653330550113670376720518144445118699211325317222947757363565701268802479000735057006668490533458786046436383621683081607259064660749843798922350017547027980747786858829432107196766124007151414756045179193616384637636394374916606293669344162395069527079627081818905474368160145777510288525400229562403128999363492497120008312892381528401138314579148578353804052069712775806190270871163342037986628381310417678776805162780858155408412679120488490354777314164412511437217938323731659473365848213204525094595846829355526431143938967011839134058986575083451426695714547428756278552142287258055072455340428185307448429172211806263912593324899241713226519428482536700293481839616677273653506992720431475618162130670987140171715040628677374641492523096542306503424169009201720440911490232616052222756038060241078790174946048565728861127697958536358693053103772398004711692759519024567588746462054712812916441171940044498413490251158315492078937858602677433682918255289964957223961424167084417727009806229594478647283256254578752690092815047541994740514477404767555106449035275491304421256365809684122912220682649587725981590802813501365014297975326194726108904973891898470877410399690257756265110775000271583874631430818919149707939954289428871827146935392880083977576541269674374331072372194776548044637688778870851868683935045837482388828383616271984713392042276248053737637348692380809166019333257514548148231887023451556287375143461724428548095689010953824756554421158376294716883972187422363797199574034659884551220447248430311410154899616213747980264447243965145733698218578297788595203589387787656023982130161523362688907172118891499501228817377651143785935314981967433686251762716059936464606302397633812845292024689317721786685579944943868054845871976717998601134045572206013364704767835733303853532146310776907092443917105702380186344094357125088390059221358396148751351357905536450555898189530125699180010831521806535498099709044362328583819375093795703112243742401369460563242841929045457874587119111219231249045198342957821616146424936674186982143126626135265395135349979875947097370830286489809910343953962958669360290512330445783865929051436725565405872732505846128920011685387989688261801045414986194038534233457442431956952328873972299362032491411948923600791404451904529078226934071624025576475663812420470833289211767579937213595627497040755292085337981936970351430870055854238660296148906823645268947036488912675953544594939965140946960758574269611693283497963135050423969676193579637406679816803517914371083128331231623289172253322447620587013592765602925822499472184411510184866724393114228948920772278171576174754497316455624231207929467133503670900684723940249468014296420371629131173338614133076251590921597021621995253915650573848934059997293994700406990519309279901221313252038838718362822126881912155001779775999319939720712579992828828258100593481928197646673993867389798819398297595992161944877380731814125180177289332816605767950212045539375329522500611218248534581124694472328956147845193738458487262254976388406576831566227570108991634667539635380057614411741472594440035422606306112490046593443697820939569567001083290509478664654676737577865689115973893020176007101436495511882681312743705044127288117279682648955884352408063127617296067576887758001349289693437240113524468765571521802521687135561736554978234693254035393565291283397114720719770316106232355017504336706154114050576700673480205375039949184161099685439102853725552512054170921530878210007725080278409875492081467040446871580858985272100151726577573068819458712206358996395061639110638696142224260873376529316202960722856672848547655410301094297414651251790377534354878864021215356716860168073107940240257397802833228574682117645763511157215227324306928778942606534723347743232521842190350235795282263856262833797801038994218736475887567347419025217057837724777461521429001579951151830341537632877189494164417820085159031222603270161737986089940158949352723127091306527695539927989732562564883247776421977114031994692768668231967406262878109377697173638418515950938073229144717580188619557602819772841025747517742863938032375489797201852653468008377724829048467911922507398750572588077483995302308629978003391213040590092053103362805328058330830799605803167170462469836807375288664027832697671732687308473347679773832324462557933780352671683151311900744709356102730107216514868633824415830726210090061022786566311870247741070851828662349771974049289169113832953276995386115532917941417424928007885386104761077104421964327311179732499248044505274112297381459840431678001331993455890162910047977215704642952897907738074521769519421232856288473528343534975353097232948950402420755513107136129595043165543757634649658329370746226724788405214061809068588662973505560384036195865988538775331866190797437235652356256775214010056643615459355448005827599133385901729542478649661867992299195773936781916857853987093572059749726665624064517847676660556794521698734804092058422890416425536129671781921094014110944905907113135306958721102737305371231599294755916297592609238190557020977615476154574018108677882725334958647409070670162869172148913721109549616264748093027049510682737872983548663064036749921559396594405254515983469183633767130045522325182182349775012545881010973158943485937486672168027414646565534392622502847190114035959370394248526983456274175781811180343733784915252481239561382687745937436201350092716488115911682735846892604647214551213530820519809262320061358918869636996869697750116044382730200566542548618214594411810507550372168671286731750786129678882605466567849493535906573990214025290989657747542634306239243754929762200658387749502917400686031839558176680053740674576762127229889986179016818652284553635502418998838983286064412622205520938435159693693550530546873227407076813320794116504049886437213860092061382687081009416810038796441837917751816120370327660278221347145287194830808111557334384857617306180764100944166978853675103191409175241666317765666765399435030528378332472034621200011657143413413712964644512931667716268597412405774558930900212736500619390578282384008015797029497407119953822766295053228475000062990405537588327364160740721232469912407585126459721955050354067946307514207754304090939165145547230425591852319608010767279257571478963568721853383399456448258811560567340595828631336157469985987183283869740212831146690664848887206200717681921676686042467809544739383391633231675271786116564320447321462325256716268568093803644431278630176466098691036199370523770291518190334531598491095527956559931838042761726562460404243084304077423583066837187590478097113188508114599894219144647225720909183807103355570939265947267601798778736552866535322328210767864086407364120348684131041298275155244221068852942443465148604845275663435798073167888560329066041836175986488200621594331019549254321422623834431353333704452111558031762149861646415883155686177686182064864382813302837948304326165168519943974617807686305156291503436760225992387574373552778095398556834211145421352078529095649624712598766637771514163404041991495264680729316494706139869260445217749348064750250133134925883817385008207777589287937372769808381068327783047890581788678930276671093448100649117113547473653887010423628314172344345459125831717816860859710121474079390174741216315071961858605996541433394657312891123464951614949917691033020671923854450000162245966762782823137350680804975743680979274428927274654401534891659852978394298995937113964916619644599723745204439050457811052594626184289714339689147512653049966505323692448491734777642495290946348786704982361721640090820426850461225002267875332312731412503744077952535670150533326134710065293594046165983949773372875877688072504507183424307544250175776560232896023655613419479350057289662858632514809691745678277137757468878571407085633821126997305679470509675830679152207854619613250479931311702619361635737780333367064304656121113912830528324633551047325505222081822225699501702995378949739384201154220871943531438133934276726061873107526406636812971243729112112097825361870777875824771968065783345776443277508733330994092666240207993361142975374682890882486526514836312617738177241823031187109459649468155448915789801269355701930864196641420778468040316900873806625113510566980252185227735826155015836743923235977180295330877750793565959522681476787061841195676686244903461133248951729585563172152577326428647310704809098395451371519827578047090159599638675094555612139290222156391790008210541424632778503459293049646594075305428715029338764958649822218395338089891561331490352751430044550592658746055704217167089365062413776002439611427580064258179271843103004921932960239650461026171222813305171526972066614683518060365362959962810928305907736173981818376431024259439091406976053792710414286793202485823262566621475162878317768328813272233638016185516106957719324958844243771232289306157334662212266869984375343880435776041103181938633673735440436074442313066769657675157673863771815325135327876024020489995902062235526802370550055151702414882165886502134434249393084545737080686988746641415850588506957954870836873544767205067882231627526860287766616728509798046251595079469359794262552172076012545339872279008148501735029766613337963789828331596007387767279766055551547537914400076961763149111188154967098574004434216143666087660514211032179370439538943951922952679248427961683837679787900267180526591917311913556090291324104310294823444240611379037868248280839301145328369609209818513845645232742127842989397508275669922567716900633746384606290288573048743637066438663508209118465902273598005064408746950077372401583570284768389235738674631233564950374979220196096015728702795987304087392089570119111967015744147747097702385510452514970211978668227659493483606730979315730561867655191375662557263559284798479570079529807389395636115297263099326788516384502903773472894308317634789970115935016152288754782659940126243642093085595973905865581778814478850112531038031172277215038084068032060393914890411811971572692469405346719780401908981933651877017932070049375047818966277666796974715337438822201427688533153363617013411655211346576974612825592992897770296390241016248192096310366942842617776687486432502644552804875255026631589265511812611550867445453763800632421685046218746840973916090568514916588294227632531352787317212328847558412333877830914199377104914775503598533905764867607762832742643423061086146609908708914160473026347996108113707838993914103611642714486687235091713594217940784637006794763760817427746300720177612020406818671380496434424926271683837484235290801984891015095744614035957826805833753275423816046470059115756564852630705672316434669327606836209916397610241874078699619641489251601672832027463241597396461434450985570446927372785846813869305468623753135858189607783778066955860141752923853249711613435538197602533610402407084805639868773605520917868458733476421933789812847264810707206163114268855003442582321266172690103091514094156110306853352178488344235898261322604913253465153339208970957292451562218675900183254399959912106214058121487686489747131132913531260879116475626395200376591716673052859924979915184204500232440926103756377535969532249930999856343955616149343775881469002567685048079288675270781664256865650805504053830742864385855013994010977994817278458946284806430471602058856948859319555230739691323423190090230243345585122856239389447910276209930480380217310829719315609754206881216796376605280011130858760489033419176453130129476853472115827460666030823555029523742297912542407989260252128786027535140741176025061430014285567762375009195881895390919346700022162912441679046075229300651092779720369688615391396233505993739511582064344034229343488804870010503739707777856376062317679653151061935247476952586671229926978592552093445309616023484171138659463023379952071451650159839184934733763897674749861168309167172839606758434199386014009476027851543861284494859071576226528787593268805152338833632093890938088533837847198899396849160507773070438331575162160790607496676081070264465619240594162552177235940802554406311442086341222345763479188504588146817740737630205935215727804612774367482249644840161405139499349337443328497104766109832226076910499225828438024884205730996908226600029293305250018757710740364609083763778919347939170954663457516483728979995801904059195022544890989027908712835801531347145227662355690629495580766085126088546847581235549532354421533493904793897019930353826559600319415521049792848218462480685198421259493527398750056542380919140303528232041060175241672525048404614550780458578987430511601246984347851077182185090470484493158706534949308032013247063878945193831405678286672023777248856691409298454828395652831558960397095849562539041419904746480975704612137547700942897945275560809227138777367829855206213802056236377040338249988618140114329012649845083680990228072098226796542832485186570449041784029715885345665792707700816383057513910382391821160501134179590749027771960827615391372601783323939353205055509392609650690714746901184751456648239346461206837930992496541111493560759190927466539237552340392972709568905559889636167469291173802932258854379572136690337896983017490156019084356804740529239710664760034526951533935607581794750224368909909611398461145939083292361370195420292837644459420981322763289746215194913716631680832915636305022158404970083753672014245480470827827355776339494614748119905894377468794984990985657412108225167127989644690230899643934052662883803894330399162854132805590156525608718454203952001759424144498825627494950918188327064716387758259873362836230375822723719320512697479490832147357360689854275910673579523399023318067734545075764172577174818575089376136583020893130132768812522779724587031336896277176243604392920268347624188614685522999622576189169889002256395690959840092469872037444855040280470815992140147554702043124049320784718131060815889646722990231493485949069094271140326010097490451295599440876868565061275358529166806151443904356182405622058199097745243130812783225657703442754765688235204522118548746795114245148636168389284307360086196519193841198679411350516914910913924921172583700715019637497848069158414715394878205049388593176869634396454707043434230713736876233813322238274511925884791597651936179110544753393615435889957396106522393714279584080087949134557347585084865940346412308302492470908112975866917224861075842663254538247146780980415410660335524287959454776331458801787790727470747501040585419324117487882365708652905309121178688739965029948772951716009139214382082808813248060704840575341018853638707432379216874154301062621677861524155000398193545717627714124403681905352042968384070015376637665207312482519682486495964247339791885836741800384539611787978234037652056955192616999468595615934399038252894209904908633872269442500043180510144829617969262736041001565260826732827169592238936981648874761209601869073036692350936608733572253497731442633000490298112585845169366209922470321936950209608384463925562120293314086640753951947534031667638052914341051374180268578801210702642441013927059105527950358195862070032157265331299345001390072084204550988432945644842988347917400606810717910254512001582757161134707578474316773074835207020112129680176696611622369493197265890506874556286146521528807263696598526898843734044920535043133895747493365282699677192396322644340419233697970496613067072010964044599064887267559689519705350552506902495801160968338610277826285152549754693602162996467078455311912481805838163296870140805665100358302803568718143569242277099637998304265348362119019917434363847053433696371913837441700325702647921831490608186185622430406213948310787780805401041902172699392921845547415802290237092954387958311907950813916604205242535530809718606158920445361234257483814921202297101753530065547660009805221835577090874765425582906515789975310329906550587987110191090852896961891541942098731961816554895829704003283583701969560821380579330479683802014000985176949378663159120504221785148020064682821557926850745330866729157734061318195585031675106808756264749283877722303359523656495533039292357473041037546447246294718900438277428820272411554405361462930442576597903537323196718744759245994830773158533303442734994858310959768910119327882127526081235604890523337722808860500200358090478112153444285415525172015795915462220498403014979286964792809455307786789435973664002186699163945356450020398048914464203622877375403077764028879382227469232516045088920242839135604919517795251422066632809569931584665451509365921213704527641529685910903891649471285689782995315405080585419081037742758831044288487348009142217934278190255962403008043120921326212913359226640842841504172875288298963279474329851144125649893338388239036734747714257606885773220593014054433861505745003046768513047380215690141292254179612408241697561390767415084786201044465893435040534022616620058276049901417545531615939192679479781862852775832740322920510521007122400503834838027721037032055890638523547659307265001968069791764483125751300429240268928609590336030853816434130808329803803528068302443173498020873521968961472344410675909450376666065685368957725109174180646210399863469620245472715989847712425294114145011042084834198465643812804314196158453037320659947281603346623923055333468515843642936023916248371932935431573448701901344499275637766463977447495353014935130367711380380801789892502019081093194666161921012857360033803900534492730788826126770322925014393986716241152453728663833385006865249045489662313985074132538454451984212740301369473115661851716303275515190080574510987139683429988251739365655880101842912632828083315860258280861254864062145531308389454182126839885350854052356199055705846841913836975728568429779123145647983581849150997110976435959813225505154571946584972128456535032010253572548430759832669604636066016703910190912203186252825033357167820577797290501247247979254483068321154604494994344065882328242174453583966036770204201483329548768082501338901142166791904766456671981751489537449338953200218461379096481820925767909743447877915678738830176415118622047058609062075612579975301705541294471394342523852169631516515310509620340789825106568519700344375361638950627697553734320597992946806980201719947079603533033833059625325268872600436366751215954208005709493641160144594683306353911073373556460970815906341946055989707475625074555879047781719892113246332766409810886500175603790079661668223903621324758556079960066508499186691931137487455071573483447941835645438381524958434090986431873467743756741326212081412706204914778073297770715992261616316048674280538622134455977791819913087672201245653104220193474399691059708121966764082813995380592977070595867295065968089613175955397260456353948749378483795013288587677760701041191636983688901124606924961605803530873696749641634272694871027640165904314272383717310071797801147464444972566055859963902851225203707756532135771658015734134296750949731858171045038026837909140923305291953318228154051114302550270744918437691522346364014818538956840618023899941816957846521872832250926081756521449027009988842521082999077544165773214468790229291440461190247784521576987394191944075473096447927848376945755383457236815161409589413972143550729828056945101105582449598421822407516421194470704930590602440135517391065809537267113433508469744282975890293591582125154383557627002497686592160314360748549976654186331413908220712918460055606352421823228046578357197598938993007527721699246309410009924366617699611161504941865677901978430778982223710459394276859231354091948089159511222034308678800630089277294282318161780230113610055159915083357470549513290084965762966375419226556590388610014641912294195743809521916455618439664753865213785208657594838844499967644934180083540634183554009345696023953271167452851835334197418353143575714247411076486162344763050633650385160914727581349807311368067315089183576090220599692126381882384640807357307723752357591150139404695168866411879042052541969540340178406610732193477262718078363600848506734910347483722214047629050765627376482057662789747673367759582127062518883113991290842741198867495270589800710663775466260543104950129559595529273436602201004645300280541946134526021571443564911652859159523573484182269167540436173820222327897176675612906678203330208781774431516345454236703112257447210548804856717691382257545968107730190049446340930377742280457845897039812254550712690811713243845867161883384799673711298301214608392728955035156361564778660386712311440112336804026877421945179405421113350481419435253958215404747889356427223959162444235598973195686549246788606242173545620029191029248590396264270126272887488495356145900096176564885544505198922760908054309983158005165377076911958383925866434673920877700947677397590400048421897607712261557115531312038784590940207968462696483560243274754121200181977627646592072533769383035107243851572298812732951762351784860103164091239918208184053403020772828737200418591487988567470066016808420150057650393261842046194856955409325311477786289955823579527091827099467365043238012382615591127903481304341711611907733259865813707922259764631465853730940726071113596468375341234914003052316570584746867503465869600299025415551268419243624933069499744048070884562650190603887752064730706626500810817314265198250265649329849524421403773662858473845307226016715553997079777825304204291904937436332970108827539388046018914742190242330028271944542270925148639039599880334254527839484261752278853516811694127432914017182119438067175428884001735488783264722029793382211216424655041270288649167270956894664049528423305991998153332326985758667556982363606639727366772464763155711939837216433359765004767503126451329934075341281111164903648336504900445425848747829457700201808144323751476414413053727856055444284810444992456117941207735766191362634266912586144758771658444822479770671761672084138869531967577819165432367296306277551206932729469436128048410911546980274822334467733342434715210869503334332712230793802833708957195766274881461670302363461809022781601672563915756460418829797801031228331016261733822929657264189523367236501178250065383063103588060863046661525648219043516841828024395999365421779415464487347084743841437549770575254881357935035804052676514969284950971321852802373733228768414248721146005799494138040300506823439405762577998146072003518176595368637696355220530785865128251296400806717943297520680506352104283680337521645873656978360441709545342164467975874060467022429371819198436846587655887270737981518929257947547193650066281339724423867386401863567647625622511962644245384646262778644092377524137059740347542150092566761867381570990172957862795260210599930934163621587472845117849367997134871538778867484365935486334635530998095514269093640860442985249712601057326696258849101158033679098854180623822496258768117955142175441398453892937089667268944178339226259063025409643967634233917743200531283801301153285404606233183970653876777711280583725431261513690837836996043184211961289536372118303201482882896176485915684154842803581417027317654885080868030450480887402166025657433917234358016759877170654810240172591261030236346036129290646607983631346157655014434023276938980736800940312914832423947079928915327153994791842931939237919662717023599662495562357647374025335128065402975109123892434518937668985765108389667582307512437854793988385337047952745813799744048737906994129864617050654230880540800153230146234499507981180233290907157012566020175330833365928711663909091880259702862270625436587222990400816211406549578850482950002350334842582210780112274913692226398112209914814951287140447419845460740981508725191702377783494897933273671245971866077547398326525295634352198165834899862947410953669683901677598170048716004908935705881290243044912649715573089915199508913567202932024066035298408146328722833275351879637632944747994671141535743103493376082950349079910719134947145680810352176049806521057756892573379810208942810668822001731642845158390967085064839181915770179660398546362385868390136145973141493322122266646242040614951383617081588649952317043273964371236445172748142478289930575185816379132147937799363656699032353210636515585339866193946325525146672490883809609749212571762795617057894735132352020705335150072146583824260303158766340956223339909915107320027384637317187596380566584934634452089654024775425993721486965856538558779793224508219314071228292230409022474307213725232282739304152459305607450291708017271823202842116620843524887684879257480294734151577539806751295330513840274434467598241551120047389614493377897090201041420846470242582273463205766036777380502077206412169389135041125400779062126047750343635952893093011714871156641864955643497520372376601818920947713152713832579930038472436423056655022219045384764876627492605118361257219478011057250482880053569814437828458622036669543452417274977737815484979898374651704085502946679954585820498413809315727481167369150511085463196298481603045049878813136850115781780412989361086009393475053181621888757921029098962883524957624638376436556054795654627477190803601354695820911828545714086353780301630474859038206325159592250141239209853748474988837962883902359293915820067604905826916641432176509528886623580094566079285885247261257445040516147437724012310179940447330166019342015983318309348659476758781302153187690942345379439921479685922422880853740831316405923148057752528340918719380171303918399126461370616074857716807169858862672881979788424669146210186577917515027977916833634412000516687234180566269937420545987168234236557726515231878039759944269215907069048924167994011491068097358584984472314788722102365750634381099094258551246394477723546612991288422039358019763071061077620205398362114393647714240239248680477786332152284500548231516731684827536227227550740649241906407596960477444052083908512950433955003447573084872767637677788888977220501537944817247596221815160591247451692176890089747148679897162174574435312084132563771535916270569563202136427322794447528519744557235233359308837124806757661668312780933391078340390341737819305002760906651693331754780463490766796122464909315103133763289026779601631636628544281172881844486655778706935975246389951941371156460760918053183394364226242413576665455312834398577544321312344927212795975989137786082191686735276884546675300942511374154274894268424650337853462018360781670159947801452108649345135669094077880557517315897864635705181549013848616794214407981232950575770467519764637611513141367369652076555781050197772853568740939511601222845357095367327666808594770398651899950844439287395505514312784013813026694183910589648078344706806049022827974907008037933303850163115893864899936185240472569219322504218249135705177732020222909188757935937862963830714458815558882968556462847723172508885059845112981772966593094215228848813733423045035088474760764635417629695969257027351536024447562241629959344208912405342195059056282615339594566780754360336407768659421431453776420933479952267032782917577001218769077723517093141668140090137257432943074088358586235398877636341962269389553922571557230572885541683608668198378889919903752989972544611725102855469526707192103439604621709083246921886984001567134017192328278542983721628104987699419437273662394457270856840705063959483738700489008351788360026650002449472602281503036277208028205508094203435618157713587562535776309385459605960688525825722065052503428027547925725692684631835693563277183796245143163157221247919647575091224360434408437766219139596681503667391341226718141689859268798294631970910727023353518119051502770521961720672222184550425035145517296800870333033242158285668827739435027691458595376946864321097029201455124167851712935857448753578622971706726028785530839067550684226307060870290777508902413138357946007395696764804220849346900577007898115534323591013256325882864466671698463888862268977160383044733303728344633186940363165477258908822246851558869532707295737082947453379429331730412365121400174507836929726582978607052210601476189270266342653352578071257634043015988347628989509182671723794936300829003787517709165512149062873327495855609273286271141921542368283990187572556498170028452543378833370892208288533570573988966932751817656595374303552932389345201544108151811841648842652181997070215374994437238423995702210848849036950377032521411329918789019982939025579342777912530708111638481277234948627058980625673428307920433210200823460427943767741392932898170967685109831695225334154583288671807148556737268367450169598762066299781225288441632988910554842113795366177456532026485160242079122017601656375034989192794473440179022969675711346040336207396468841678622060831011256695239379416301906074430258795371402080364681753720682325143996687226404070416546160614192978072004748600137257536708273650914516856903342499847221220640020169976706271797163865753586210664439527525778242037039127926775100987030043332315254168671849967610249895001003942971331697439310576106079957336610032884444149759762531139068059092493501654891011102724236030318901694406597764342158738229143303465592621680383020534114162579234646587711395756658514048936000109822395434467677019055180448137343859092709396935874521115418599570682943299452046026067894697240113988715420169930980222141950569082948940725630656811684252794768395704899249110449069499014554117596000579407776932823210080383662033626450622265688239236633759256448081270241908603729673041207286782678689902160490325206354737880784367633064862621482689635893534835148086544350184009227518713285951117339040225507582473903016372802598361226174543837790955787069825287808203010689508302085063989850258802384783597424981063273050438723124438929406655797552408126389694655590180976063013928568765755710649344751314684935210622287491030524287730247164995585905257590096082583039001247497120938930981771663731587414500723198522756527021547144735388904327798108301350253280395328175116504632053798504109413835064435694403074169731245847703583367196395425600984269996303367009269452125967223224718024129470142727106315052533220702438115017310659869455325607914529794314773121857257099368805007895309106893130182843872147107511797116178162049987599087231309196299061872205725499444764624673341265735478823124953772057768468212083558469282463820196603069271597833098223243022996020296564295489200421173827702807940712582887417289966800210621662081254942755324102468103848528211726016505185489161844636441696632429443752236712390011890408336263191713296565401142958961637225458482723848217925946801072379368662468465876088667090406975246358794077493264813078814784243947074358691985888144037735910770920124862559814965227205645798752599733251454299881388997426803433853698504880552846850132393139651877659691266957921793406168127362064615717602156868222261157453611677176770299853143873935468961733651846819475240598571852881285880300513754775560824781683484217854729457494599442222614080161727461671536406545984090791447031455704342164036150148118680856967325811880737893759098994955778253807781230246703677817685284120074858830594920398344329299420678853541076838507463392627201756936722414462296316184832534054248549907297308239234381590536054049479725363862516885290525214254688020972231141174075633719644885013125559030907392859714462666445497548678047941714635728583198292968224039407128303420857156749790417716262419537464156338039187755623979522332681245884885006966373225228216338214991286295547007031073391595352967192404647303634483384003699151665624903089386489402907415278007525356224294967911235117355138615764882230169913730338333916927748275849418158705977147417590036294058276105333840082413335372181429219027374828586953397896173100602186544676639676986013098085932912590491923030838494291466167663156982254206593610043401409993836038484990697203645387361620147482621657325499054488624294522550101512845263449451188906270837096883689618187081131982150340533204431522651389758737685056583150067930648701629213853594289114083634996842633621012143914208817171819198178739227071754208378174641451648045233950988688033902885734875407575185871440277603733635670392892783616022101477989787206059975364016723314271395698032795817059120267514682522769940668428246075720735016720017625806974552641607693987357196882760206058399198212349744790881586842574992860670404816539479214486765487828998349082090679629238456415637353745250643187665102244481424573776635807736208065452063588388278957211840426797494808990675764326396427031406711761733938777556455293533180353624960512898504384242819966769084597997715366946994683244784185713843014433835091494808387384283967842804714601538651551161592465836320261766822416483774193876201713270479601817211008753606750535785494645965168835697103950458425858534150410636372059439133913934944110876702190505943076039695495594307731113619758161281704798429896987361580221505419350020365622134657361253905344407755188381436886318267731573965526393861194745125246782300827727790192373994267589067724749038481974065308098360133560707350399578755386189209834060574808419930879227387421546412621633329357858841957750464659242512443562103520181788843958323203645980192275900474473620515752392577388099165831227632626676406518037494089827925516518875570093235460196626812296387852632102373675032100086614933793148101395097416578745786969583156752181560920979498389263694090232483449047163270151717637237504548370966335832843298798939850692773834857922593822529033237138020221423163315468800994865578887800210035577520167887173351973280593908745716562318510151119460424441287218329272362038567012299901026205770530687030849324420451053110875148501358195359278117231667773014799940172010582321430864317626790225811155924066785745385994495678355038004410252943023167701604766487750015637116434159358674129470817529990115514581188821695468758066564133864406884418498393196934023069001865719864098641807000325257384745906049083945233667883136889193821581276391461020014521170965691691843423340978387462790685548167235962118780238656635678815626734029716950921507201783044571655144553284479045827682141303202076324472536470320846493189373699764424024152366915825907402862751612961690492272181289459500861659813751336489407847372353649976451304739593508371089280979536091877053229219155575566163887141445426900291842237872766443277282897666018164012835034380436658266166943596990961293945213022223524240691950353887036503174510285531636376688215678980881824325592298286805415529833054076733767816136197601289357003806751756723605998227611248062998620926276316527409431503482157889319119678152489039073073875574039682037749875198461772342216321201090602404202439257219985858913151380341210433170859580687189914363717990772503628709857712027658542770252464675227064490265277099141595899004461099845038348698543290025617905600830979131017610142654239559925265148345524196249097255140957015705333037711182162480159434196962848556979276333720608169715291843396756256205031353857505070706173855950579454623087937762788841726355112104173670111654542773905692405291964053930720434895040009319087946171644658592839669358362693583698720831690978690487341651705367421557232887988457060235553632978200698624288218180783038714477340369007509948036063171520589018461283945113496514557019840872810835319938937018686230484399132299469496732562282401516872867920850431402855194943603573747404602367708620165103716726867921812850197070516957928325788178560431103938892073714309217286050371856119178013688537925087860242829734567243895780474880831857503522944215908523258133684786655741840258557852797556837506756786606285256676857491955912770617193958797272586314292014433835071833437358222485383043090580995514841425988748454522325187522113391633232146140483523974848994913128198408778510896557190747437581970394299437369179734474395334464570893015362585228453084931317123786831236986796520255607899861615693726702295153875106668872092863163704677546027351301328496184563159860098152446577729888042211632942259112716215307022308410423222455843429497397823469693921851767175006813727246322021417282924465660957425097730944342702788046203591332517100746954597427447693390898430534394318860602804213879840087781101208928800857074019984264465358756029939142090343508462170463890616739874045237066487302704087045709325392016837841926278134177935945849187510889319375894133940437772526790688634689420657903014719011713251709568539087475925030598515126833447627466258002433165375349000884536842001548034064544767274809812482875186567744920315974441623748198802203107854189843498655430916352817816300466667923836331282225092464384186824625596590511563457554372042654929845118785275870244604163869304533760733221426874644381717264155168846475955517422945306782036862938108481750303082767709170882267224531130954862992613038181115419386408475539179095502814964972810339213959392157834725506358582914602628925445766597684354025605893669960676542972887862891085260094449694445738924100223731043049772494965188069656518907185225438014981357563175889443812425971838785706034187856262509998072912696916015743038902038203725473130349325209816256307473892157752644964084828116783692911554067246196494741983869224834024704634300917862717910489573456198685850287422301592633806336248160350257859260656815175338205952666693148478392742761496968994691235662643394970413934906195803699788654463245211540656609641511746614486877681235039182030805993971613222663473514365732693561646921537260160216082881523125262712675119853516292975487090293831924482599883532833894641344684178435378705307517724556521009098235586911350011343671044702479453838707875267973332465322882084641852637662524999139833089708042109132358649788207798692491745010166733466756902955764772263831805788464111855527232528589614279466483759805485248628045322540426213547400411298569094760506111013211052074640469975520049311952701809318720460592676630232306302531602576090914232927869888960045256454487409479535937211175110880408713429731385746206857173627554034416943127854765299637204461785543459418078165198383765957964138945441620798670576503842342994959772306730195650720457551476810187707622468260690550729623303774418295656130848452568301048093148703476400478040248593407849517429289600375640286423163577657409042546002519935413301796104193417653900888858937990792790877520107354706448739228855411471723622986831612774936067946753666575468444569077544442902173223592582497156101456349735570333903054759685008727320911093504759369813192542325438342245195313947636954988194444578667592887732915680014701607810088405473401963319092585256038745988487215223640008793593901819445537552667543620411184266094665651705794076233354806863717720586678227583486365513543872712869286010539404194761898820889772611703661662867065409469604067668131500957573702126731064043939180113921824696405733819332434952211944954635045572259318667781438824875809842250234923988050828412538721971634367647124675696318142471905514180031688260515340595188275271844932182424940882443839868538926895905800936147231642390422586265041556955570699998804792523512724577708864689426129737441387198542187524219401763034829526191461574356875569702289857151913458584482767009563669474039930044646345542313586026480053478723251272183700330125002927248066206504013493352143551614555021415477352872105922814769513162207295782541001197106953294606715247689792869193042096841872929897572915090368573436092534139311482532602744556663032232473237941873950467324999964810266579317001426782491134882289376119750521182179920620006555595056963577355070231682295967352182940454276643677246417890792412665140833267789506149473492861473243933075421663188481079307271995461135018201034885948781784381320350652092163366643435460075164144851202484282613182828784884428915385114218106286234387715752916455006544050971122920671144461571376270872190844835384936134374929803634793874012090970302362946600819179806302669042281556671468501485594852857478144789675022950995696215096156590371055495350498556089511723947236592450294162934583367951875307239426746375253072522620393630021670005212960875764131225315315834981285610349015440343830739255623791425218836720583771987829670553367228300460540571390333144045363039894842518115631600504796620332664446428580581766141389002684358094615880812079176116797535363520247042597747768299500815858649885431848794803124740204867603844266838706460384965931992981257492665650291478954200798479649633202391579388506532706309540850029860127339280952411405402402216694058924327043211123400178806029551605858471883244845736183806356050537720204789038975442172970827567788620009977644994482480384057798455317487639707779040643001148632719350161854127569149201906446083270480256773644741776274083596728761639652656251264950884618386130716007259359671042519563325433187554983649649145920543622792591763997365528304588706804540397216982266296406409074362539021995177143729326241301623582181377448512257015660454251919597121488672256492913472321797645170932628793773394968374016185286188538527907452685045179992094106476247624748245973034218612587417102978378694452156227259182177440232793546633124300373957970305589179697058929620853247042426889932268254036289811190183479762122834622810544802383778123661236647774704126925318112711859183827704974702592777380828326935740727247227117841212403439442596875017333213301780977313899823006054146861845441951449418092111687042969813630661487772548680465498475268802800655461378323255639299088283166993544201789572215898519181908799327659079871590527005983160010220788251126461097074294854172713297718011057132502922212724674181861984550673989502422648829257733566818384816727455979794146650103602085200932597074206000726852588390829726537600010158924609256929813713492627882557165894693019625762893921525710961488726443100885203097572942198569547593579970681956533275041538394425211051552045141606943363834481531678105405023024921199895188720056779335300893324227687866090010157538180167192320097026562818916947063857254394687055399422992215736022970856779518590180586296168344133574071041180061790283458977120387297205483913451996349402876978494592345922524710869675794795288160098169324321965283735805987652644308124702531194473029683494549173522620448112888075990766149639713080399507365608612504715152586628773281978246496521766332768570387971631429599753291751512209013353394167161895746810527459505412135390869754676184684150770391457183297576571900080704672543607138270490464522162380728991119947015358416482556018103689678927845848432977964343476974074668265207582226391062721779148033834674466118631513563576296743063137829417180918835418251248069658511061326156839031020512894255761228725520832726610813874767609400100730127421825832626318839948711724703645723926139433161975681993532332889426042619170513402148032453891130679879184389406027739044097673596033683209704877946021571845335870786414664877539281232497777193650635563223873285427175620973504993066872632139575312715326412526787225083352030141969572027089401968106645400383636330047049110135756241716378382390288010871448362354097017633537981344776404171462360398865987922236713846875506251338926491678291685703681078322025817655589557014614753496426580109115944521473295748353046604632753502435406004990621609420497025777986237045852884388066683017964248249041321589267119578331452177686914792891305744455585389723738232808955963971153971251779395465930092938852686531592860707298886334894962724018323583251971327895597970615526015759102576404535096667018902818454348629170554481877057193646457723950338343115360469022693564602700859533652951849186902973226924010139313817078178878752167303619128189337587555915310845468044427561114059676874933078506691330890383926150927279975647045204424953122246059187099637671181011641551749728415731148305382493651523214552308917254842403328383460353846508249247953973544421070051761492934279744485240798320231278611845814153137016827717633503050021174323898316979476047709133355076882800772410995387667742516489602802800958046679768291158271992757123207259100903419608398366722901270459981429637283064939882517285959888247581452691466290464718487007066484713914175118409558063454272395100919548264363045474586429644910519732469733877825359969415188322362982405623577711377280116788346133527994705690123582886526383311618809381544577360312235006953072684868573135181247150087124952455205937131021969889788282896566159103638010563183088949884406677500064356339470765495959231591049791866099457599105920945432706613905955632016873038203851885976799201674162929940908201334538222302003443079490554720950462556565280737169858764531047536375166417576040133529103719214401862842836961333824339137448464330819942124130521445173765114733668770379392413161082567450290979853815938055394493720251915927331099118321572865249867349184233374263383527409629049152378746881005854242073535636708260421837099517492157491214227543603717771540999932230726234866131784484141100317394475944842527297012309114776176043078390328486679123344951021611084815289528096130762618943056000039262027462821348169877982586128525664205221324609189272682427332702192408197570475903487836496348106890127778828098735172562498680936247520491642257053209304392689317852074015989672881812085522367370911202733506194802621805962477589021315133563344864823489791568514262888078985214047886886566432337428270954963164777515034688530381033953817296708021233699319123263826079285518175159093182681697182213508920335645278288925081982326243502787207932456149916024391043974148180922465957343451731056704698674009721333429001344575713942088534085709025020840556833591011885401811132804436383373269594403870171397805825679357464826625489603339153043598061150469055150873888891550574770495001031354611935785093361631983140355309695674785044717981522091192272264524547732553711450951976848494552158756479171123346714493536117040611658465328304100674904329767052408565567630415489135443691858675793104748973180276870142809719606134681952880756856850120094585847123202558121239415168329035709789567986902256298999040287326243477986030017285590407653822466834023102025475312733221779358579358897484997409600773535944790844038335118778323638319233532229395511138121966105327224762972617466587138333960037648167428912998108459710565092356590270932418233108206111242548808830229825702503874957657957184319389686647499335936514754720487651298042037860133918215465492876846739669360897188146468954093869179576637374902659607841810832785582567452549285483414851581301062015807877075386228010098044549246365374186742238166005181942623758651251571230088674735667547254081863596509034216002944895122926047767361981413359687736477182695781391240408750792012514473359798023070245298227311139277964501666805486208134354392549388678683649691199522435651161761432374302364504608307173543630199399311599262981035542744062667298377229765144164268090422689553135092319043349451028109051835737276874953287338948077968448343237358510634793970584339589499660532637390408885827872476067413176275788111147723287615961993342852429984502335615045722011782144317278109470523013677325099951433015034227340621601507300059857302726604733171578598161693319892008938688479831157657237998162510723974919307360454199364134564262140697981525719861320959517544087123655222982466643952299783051719208906197800193455168268410111583173887418840558791106697078133477037886259160304308800893634261465206423685781587060420557011794284094917082127482073536730775863317422806890662859645957958204467927605433401111525314534102382538131876371727142707587370852052056357038455995142516098972598736929216920241969820104333590258084856311503584516580346492557197431118374218050317740140783775143759243911518752302040485158216118735696052998695199276991147208547788956062619974802802162396703066535717933811676966611543321528798402643587957642034894948261918192350966368542986723857892140421905083820062469600842773046883947079055907811979651276194632819646643064625064645696993324128504224394904246464927108693893117139459832125028098835536544702401689872085719859844914753226236906674352710146036820675738289694000036183574907944562335844163145094719399716113748343345642928184698563004998909281523476805803259605474884700086431647118436679300863678681563484962528264736409918713844637876812705685594667841005625479475176579812238873263454313436874636966251037435214450583447593644354172849171303678154154776377748120331478207574499806967894630666127780872207318318312018407037599996016869219021940312277395140286768646134083700370886227353463850192523436177846549371389636869565664175027337298836857956427029549698566724220247316316491933696114864022957503061922172795016209194787647920218298532012623860188640328678448480534816618990638910403417022441388660512361222897905434628182243912499504970317528169154532593271485170864965627047485936544731751153234319545793400321297161674308451773627712954635204654323561427508228146965663266068265217965147194764518366565760378604124259226554710074795537110623859691455208447732686985649064913609828783050930175228236059592278963160799842248349383522509428247770006229842899086732289815493060825052131668579228186472118186588341816080106849182538458129364585066369935782329700755294214466739893671729099746092949063026809920305435808369054533906449140107691139737817247806049237186866300095653171945886583046822790917842413680438064305138252552089135292642771466040405851996980643228661050202336671325145227637777602439656358078482930860817672470916687101742428739282118852124798636460922152232145987005384254695614866956362211178302163755052080220743145933868165218472680383696853964560629495811364920329692098368267583574038792186949379560151563936418129915365988885358190093378375290385275542839542086914070347578972983295015976271455010753530920316588442158618887471209317673183320430613387654924538241336536359481650802001044602553018997488415511040764756534517425826722555936246859549942826490898967328823036997783019999243043691146614946165324148177625325628316587488102032992351950321698029906240663191319668586537186208552213669924134487685719519845383877483730865470068713438806852996257001963972711003666330878289053539157735770336853350499205884810275937614043418408020441164277290083132518650990677373071870523838450985346274142333814138578233141345890738398070118356563263860967829916589315521683034820674684154210403030475324358318546852345169274419750096518636672443291867880696284243041218878146758457495481988625618060606618943421070968451919116844405071937572026249395469309689897346959749536820751984968760056099181624568164612722153221062260292821752766730240522596084376622854763340625070454320762771167720941168008708162711555694178057000468688044876867169434289022968628999798570877331153727120833036832182734751938145574598090768884004267367168948489611963144242427555018602934961427968955957582562132546365367090213724346776704912144589970576931727826039754571070350757260727958076984797461033737301019933803358587447307284373500024025104266507619686516159121317425630357754454299068751104957138421842706315848281980922453492225560294601254981830904701369046289469363060490695798491432904057567320846691472834488052867724024189748168220796177622477503333577062997046776674918392613404432330613812508505504309328903180509000573124644343152402784090616619719415030973334027809221374963673879311741251903614584461264458926171867644629422849338000432835747179929423210517234530622012360121032668023538071752612457112956590372896970901607557279024497001389093615864484172711612709092229302611257669279081858685976381925804143983702038009909335382438467858552284254493004946631070771368421291673155992264613130810498500165131488142883442764720861724886555106293223924505716610919995431107387282657079318039113923133551405040319046735397856552009483134648973975317567600616201964729547382511322002730915523971712642741291225916771110835867295002248626503065748103327339630193276219117842240032876475559102046380842809832767267617743014829632199074255833568953204076760834108063932679806536841664848566915435086823824480655375305008498735960288108287870212378715573770012534463506054525944004939449387546842843750418720540987303236091971379960501915081042284032487748551213179008813896653322153144295715290018470388037638123536897675823590478618093968387627115696103886064635748783694912276369627883337412016866269479972971398831056980090825606783546811271360230807949327080584917326449716683810105001744056844279385695748504364514558175898615934898154925132192083409278765555678393115561494495207501758908963623035905420516259572407333180271994990245893785910877289075094562316434812862293525381562190621810913208544762562695717933249606242677273297168062194233100547934004788197809881210311679321610181948349655653795747381187875152101278791791875610385838620346650551301340999901777272120071658434844133877661853958366316134288773923504206847342362709052023237686179913456865870341915551453119064042749465718080976293168944202636494071426232824092643083313644519015900092734601571173743809961230435466540056542408040285200448172149811212060378200974795290109832974499996274615071408299778961514495870840021084130037062364661836060558733098638559858989353064980421320203494930607205201921989277760175399973718785114088786864156810590270580022600833579665231570973056228991435167233920428813496620570534970881073074999486836881474512271822762781457836629334239200144239248834868533861007256194550738399361829573706824742678539888865168889832145218103065843442110339252091895964822580445239486672480619474577730181149491324013018173366432526817272914069161079285206234560363743378020676648657601112966341209208151326550466804555710171824657656170087636206500234415150841573305786439991049606371464828120063988559344675528935312628548703862564789320554600795100691609033226148849934807852967364216317531834320397158465755895957194272241990548078590845594321651033299819965396793830110830789367313373430828559000973191319535747393271421356741946255413719979877801249660321933577592670200158322992735863352614444554323900816958278022340594769868376683266829628535860259506494438403411972584163266965157848358940106544495109188771284065756930513504537879363891012812449261047270730167926762056660874918012113014581199195044020615060094301490147268137624669828044433159373477993647629574684132963988874814989010534890356432300310369948787830413667829920226582131202285127044519215900239576654729502932769401719951741703027309543702321073629800541122721405402238679044772419786173996058112285095845514132620637431909948551612014001935496301758821157942573088929861551241100654397521898289295725339465801801502980955377485975778460148204612455320883717512119472156686067526633669585528849615251714362768433447423590967584367681907398360570961024462624143775730071450445919579253824041716678141247286868050366357741957072890922278859954445779955323213936190069979930599910383464560969429696577888104093525950069565613224395882010826954731859941321834776058086196667496330092135211519519238323172423907937227969708639203723682599808750186650412833397958799716655816309170020845397002954260789248534542186429030305897520268471316006156254530773274424636569669724426439800386069060182871272707686631169424024486020687793201305063069132256660629142434860256242728418494415980081590831355205652394410230357433094100364409496430506337958595886898333576335058400709961937154488382088216645132888528456162891538857919455137149603168704182424429116598628595735072888316348566216082892539116402845728934338744244960036129325749267753450463785517018616918783201064433377689401036181070909030217639070367065856502252748235123659192106009115759330919404370903518424401115962282068681696993606981610439380636430984921763854257762764063991348400733029186808046335118062473606741422217831228520798827849661629325740233659358720871099790569416069028933509459696360986311850504971697720337417313355094182632509049814683034433837265694425008917612118372894759476626543224759379163396033000766506318855471549229248372086402341681904797765204893792791545098245792798701693744206760297589926848323427749000097711630257798809324753380775501202213871183681964159511438314515454040770941748910325605406022496953036778852359350588155331752166398591743574724441190731506295917080621816434186506264095296835037814454297373269179394146092327590159941172031278245939159325218004776423741047635948620261813863528252191621081111206329443345154543796351160519852389683864574063339768502510937789300928633832802286662589401474218929686303790259363403159905122232180297826098851681998515076752510557198403806905661115419737997479673099480065381158640786805105999963444706596500914450707907903247304240169230899699947700465159608980910840538029402997234530489437574048396426703093945038826811078282717360948345778933059400912134900352854898547290937676945737268693067747814742476514554315524504152937761353828665011318446299585793226215697196013858008258726650939510268736242914959079449450916239824134316521647264649981802211904393443471226252071768431461592327241138390196825046608641201579611024655658241892884322660456416911431906100203421323079872119717827828839819043432247261534945492751039049156351414591496525086250989555410912166747589921152540694190901493707359010860838859945690970563715726886518812575060159143682314824957254775622818288380081098534801620148060726144319738073886749709790817045438774794964821821806222506728043818048721638230865592821681699163488144522618934934872606828219511945193083879953584657558272891397304691059049712347775594248868122015736439138282707603195748882079601468639701711348987289606763835060236256519915172272453233714353431090321825740410449748157600155446745001155252174139179570926813011005567181395166894362150509882489049945246677532030650575351303597448853420198209663058960242811711499242259424881458442294003746249269124543010786029880304399730062669680780993708506538087564920110546110568133242748139445871241732488040435698139016369123613629039047864735815304373473149276639687328505970980423498034793796229671149089003759336056618369284754696461749153738324546536317727454406786663890040380715909450484845083786637586406586416792997926416394814546022143797577718667439637735494154566708777880874553885324054016272428458013965812391430375098695935893302580723528624889723958887628878249245101913453791413991072173638647822707141198099404981647035119841903678016619447660022839664386897674573186545909630331686298170745745371355590008503092769002156615495433042211992970573078254554663449973887259643999044054891500712756409395546069202440188552234341066766663289646127342875320521903397090093040860751421239595941578718159875685518154141726544966559121616910530211476998630806891892345031825204449304649346245040394912826480957190211391143907775374247303502319702978348958475290543607895745653881564196181065105591066467592039835233421531901110808317058787524635236679931836792081786333966300983008852133430758710425120160253727190398193607848059200958118098593648619196271567542162027760441600902837981476614985662493817015666936088590104131671990127175229246907549610666466305912315663277384638624603670113448667891587606882797488687750527173161731329423649657901413870208464325176831755691451332052121588464244264762514759685504179287581516830400025100635819609623836204567387693203313238513825762667411237353926531491874726922440920156590653134785341300604453960949359491828513105013466770056137595276661692192352771231416885212815019775148479521992916250310114791657013787827062685866026894821184307879288829985260459208739516650529092430170296686111586024662734763196548742772754753192477162362909617097341564568224275239902146236040291403003354576605894098034681019360859002217384600509435875389939766361452316417178297432104490070710199315380009797203387001762274494236395110170415166902630032668842632477209481798884135766097031139118750345690662070309703710797940401423400720916461499725039002968416256979891081937519272295977796361435374901722723959867368688412466924216910384594982886872186641435646665435678810301032324928928135186006897152662647076371191814556219803742991807172647955176123198528323051846074627663280739964879325396205565009398981982181926003393266724819441810205694060060316607160751447513794843241736286749696564930052850573006692559798267757086566675048694824897361334065897989608723787206613013324279020832232444837193159392762651579758692087886093311204689889497423463825798944432777023393638803405003236795044697291047325381547571969778675049151659967040373670909955343024283946445427996507316506082049737001452777864021480996895115509099505991003250197430870738319328705327124428000365752911615915631100792873151800956783970913980369658247245802013449616187997981095322522762884484847626287551394699248123130707167848270147858177014997400625401333293861058948906324845441628551324197637057574338209808640021010586348282402246542534706909515316290193614986716661673600918108999197389097308569324516809758352873116713308222244145231189165897819237736137551854954657536546156800633074527153557566976918450565918893376910979992256979968564821230840937320107822937957136877809773594754421502851705176172693117129261423053965302097015356667251333354577451070183111098850181392750908463892689377017135679028922330256353936434371728911824881981282177516169655686733146210381897398378110195262707336516239524205333348592409455088102331887554826223131669898370376561761347254067297125145382532110408523522366422698784316139848556236851266025225054011330848433896683868996990535237437011157824763698515290462631266200345909633116993771670197279999296522025045860630660712332531338854048966521059562605673242961119082095369951385756842064563152973145818151967006985657112064095584583220447438598750790977233912360092226789955363707742991144459972018121312746653264971514674775683658324091493719110948048746490575822865830242675276688899169551126914998801781896220929858224040830714807468831291953254087878327647166542210443214558793267624796947429641594002614314354741356930018264809572309500034207817698559476021882561736771251449993433159969729447175791233879163034076369274979139227227429982257907478176994461028147097721052494833826188341418889728084679259201886912902270770888196226910592602897969010239272764440291870529193223073095996079700021676490776412333383208819925823672215808713681446257778087550495839096738585698296476064377851909055487740795819537061730539921826437917399869583724015101651005964675028879414395951792618586993912901797621242534928465283332011205206909238670882649548603220844732941787121347221566638259675631618863438823151944611023378798715743787126084326815412907397014717063668939234208389734351824855201586063939870187316493398461810755409967414545269291932819094707089972169171894669477233569600558921247945626708012085813942184170181659856912866123266899700092054933754879340419679444608020106642215498332359847679994873939390781862334365745805423057279218411022406377479384907446903085758883084246439578195491126642209008913947131068059613010973762413286238779410170076292794160021301076500688498737063254339168119037542423405443215863847507647643559033877544806942628441687654514250181405397201868055984350342810266972700979702259670502906071686966360361671313284270212308936736621213647406953277557669670396719894991377193178202989098771035217152625928358659941837995947923889799210424319335742462424878603205689187401570723108117244415869590870357090191954469515352124489336932425907639273221532028805544162143011720917920419379634372383029597072519456123852460972523761838175270303330090039409050266383578270567593055016664439330153050387054761213236040719906552095944235991768964918454216349173636932957161122646575268590208382326202987853153540600774109720480953817516601890989100822133104783853230716138241452682246577045079314518558923756416117956623791145994769062028475042934620249244242624104072839146215321157428277005675689050449782754490476448075323816279323741373817705229798932442148795053481589433266315019190683562702691519962383725860701796476190411963688939070591629213432600529551768010041734499453603983346975571356678590736071304380804779122062417178114533309077758405155632737761436368431717789237919745581479834973394392772490404279038199206856328316606582417217124115847742561433274393828317721148486486049807109438082186218336394267340218126981722113052613322453011080808825924764831204648649789387975530036712430254551021803428129479673624518034811385887254255423008072012891947437611186266074140104963193967211959858375970768049029723766716370192565192669293699867023001299586029123592404982557439404806311126627736431976185267342462579350808599017557666264386330524336550833025012156809335234411593783298205689239965433072160378397490627751951976964463537625246035264395229719135675410166411974289081331411890640331549235319272156066349596119576814179284181523951091650584555911660624459056252735572435083709693171849906358833231253530246535105427043579512289309035002972707792259236473019318473192413484500024060481028135917665307077996767924075701631282940085861577668389295759470799550065460420114695350393959318825379474215037745801734888349487542906445976892434724395724910547297611551239103670528495339440114029080881180851056792213202653317612965781170871190377067325039586988482433296631907036519017574114346192478617043719215787080263586927649059711234995028144387122556218615198225872420384380226510821521611195565536734291271581717052593242305975046565758787497748455082350896787858403677036777908032802198696374485696651501427249582500124147762438333480340756837293086327702064582216952546194687081538840974720073680241393472481151493569824341268615106480170339876962791736670029848511303591374492155362946793357608771453638462226312648900628803789597026406950660078771453156359799364244342533187667792246113933173534660850801537179036351377219879609699869541801506459690189427928737922149552939749657228692137991498179362433329649377954362219549831447182329632430382986313976284632616167116571074064235501678368184155377406859747360812685064238746856077377034854638130893368414003517056065226983552356361559420908140325823166905831547344761854133013299561342112032324874629682426897098244073805363856571673159222723904205532813737787258656637956366961070579213657416504746361275756865943386806568724455814756427537322525104031764043207883391537625403989419870125814943725991855106157015740206423182166172362863128303275883506100860276983220353384984170554114010011875364757426228410116004870816530137687322677831379065860889684316808937596632124898046853484778949899101114203874273117146001348287505583316377329438168049413534857236574374066355107455879275308064726079218325753354571538707465058824798315066309824843262472581178163399875705254043559395462503596911098590024498409127685656622400879562307987310385415974909201390993355655151851342971536266388063149770003149229848139338462671292545738341008731170073341997310195149905945601463099175079085787300182582659172646422138482910628180958866269046708060752252345326483956871963973930825994815112223554109154694061844077154225661833992013262079656220737531125373130382589900494524979036103339212216490109831227747809914022722798030591164709441843879797530228692882651420763044101813079313907884572970489427341174076795404633194539009319690714742707405888721617627630388853921627825154484087054460645001060610652519765020888142168812138883635219765641018022896068095753816308318092630506504401733763571686666833522328347955828857245225010096060457339069040949585393873995198889929768458232888891593827224243952541312509581324533723682667665672608431239457622683151230331045717304379119539211108873716822285619694401176955171844385044419125588542539221102304514916917455724669329584400567039481066324847073760636371338128088597409642788821017007703470048145506265241310110938027139252814360193969123442715342628045019734594505403360851484504088931504228668569817842165484214192594876461412956113472339585380051286946726810508993908871061503253226143927654842468815731017361536097130120641289217900450378943309801933635942919154707182210930447556178334750269536670288474164390484425166316348276723087415985415180065930748213656293507107679215095926612048984206257800052704636570968553725345858009228988711218592262860667234125480146124646188120267680992311526865473311238957912239010925738687236812985756177828082908381493237246939079188354969596988054169739621675643246419592165446002952204083985439833872550593095259406730590655699980935572087127074595007011458341455095347526852629626073105258447581902683840454191873253314875357605111316595467538925529987404110022551662545642991423340699277829763718968587194511559401309907530125219890433417901372016043146535031759949679148278441785095208087356559144751125586597783024364309919665718566508457977594501190045373665358614186410716868408684993904183742154317395040988418052329699530028831502912141721219610582349740501453779180762026460033709633144330405976746677982100264126880113980628337281381321576327804466181197831900002350792509199277266184014039941393524646306188291718427899309337282891341706601588004774458552600130207584484927180767253080718977187953508649150785387797029713772130086096694505044154705617609571995405426288041243587568151144715814503012813910328217904568477974399519030448098149534870598474659046346012937067430082254632205617914498403649845718723769562675561533825453268053667432023224224192943500672716355761129251720558506156893562783217203704108889469550313715058644043439168947313991396621450127000754481568336242592367071953565671372166776905255118651549079428619706892501516836837953098944925756710770800310410366091813165130627886320133740714548250883574014635481856900480658704784321670628092902408616693651975670929501854835368291332977365530220614577350825897666556685489726648158457516360979357385184691841890011606542054534167970364768597910649660712109478727877623716056627220934233216990535220443376717887833581789642820461463193686173768406044640598283095591919510974242565398564352772028711766588743216782657269807972014138379925308819730331692977978455329663964123855508037674819926674403478770251207831584383233086660726049408543303683097247848021712187941056559688690043883132661992689246540564267171798201441582353964358297522777825238621681438035424985507866680181368225726564707080922303646632971009354483690119344612414747117384315696434344447801420137756247029787928958496067379221096998464417755504867744587063738770895947496274917602261519341158470750717115585215073364527240570280340258793098052695003917544681658288486421915841114137157636912233211820759610210768624875171444186092079457709123846967778481280205915170433153692780175364107813292450847282018209358340534064359440162547829102236505072008093664798729149149724075994944837569164065979609095491668302474942639045268321097044385930743931973084228377218320630968802223138678970809157670020520278166153067187640540895442259899470416907118455698181186387490459545042502985105849849234687790694147832526747539852410388987406728463954853559638937184016791744576759116049526798698215940333102619760688545654786718711156460551568446459230367559335798091481510653680042088834292245140998818990119150415828173061214800311301828737341546366695123705988848327168182772643670056361626226271590493228875914397400930865892436353333337652335169503625874307289365453517295572873569198108863014780714439182524599262464609637005302502347288395821970273454275626004757345507395592823221133915694738327771317557535143530752773492469057124762730690017381028796842370331904947946760288196929128574301801106947997509553350978537801569118639126567245179093714447324786409940030590762136661988530566791746124866353873599671185064650627278812026703532059308817250184209400397041535132758990005234651772532290538950039155334276066902579050928956423008846499293292403338080806674378614214690250633137162693682207458954714447677459083264968725444918187774639285909482718679297801980837029147001159018094863284660964057573744328280486572447870077088212031008390264288784537795869191673500531381352503120787850488129880950943730205832210834836606904528458934691972741971180636584876183011358246597926959689839024251408050958171997370211507650932781622618919160112792110442130374534477429655032656351313457100479456886682923438987629496895193294511614578278191860701688636632637437723036285083957068520133818341944185038356849361263186232597384366657092829892021291665732499516061956301461440172837692795097512114473111468614040057977052224777157648376198928119858812122447503354775503887642898104849775664808933231217504009540185417422787176111229750042072901851592247466325745801949721495592688774653839309829117100069750511267099988617021039055261754564418484476202944170650219356619556271765668754549454594043349795250352909941600931738471469249139465727970770511300365557936384634515320519499736049569668515164260534258993812208073187340275942475730760419027606326891356554889279661596218253609600177051892748496598233820358960751838690752241813036250993124254295115164614572958826198058863623649334336062494317421747468272691911930040914464946154705765231963828662228118102923938434737502601333254738606866824931353345690233433926727266830589758532264099357338495562968407780698154405283047662448532005977680770053624270492383211889296072197594676623668392526092228928154896949280760598508374886108375180736099792816736879025719167696536078515716756263876980024824428879744776453053664764881911334251893118452840296254309027552225568217228709845936508509929227204647519278551213625952148280014558107736207001067317776777806481682643847339368175986877932568274366965970537006816199373033323132740119071655554444131482142332752068297505690493364780328247539998778163556406635364033928996060772670202606963267036968156080778017055746011512285839329461203771135709483258188910860440083479387923482959859603186649391745084920451334623849677408209586342549179407545421805414174622404835697337601384261003212004106999999107857330074395114200082344699858978136325524481735193279901032056357718432451036621308696349040370085818269430284495401140787482709592249458477620930449813219150483875934583176073712117532516669810542094389584767392743159592019721157642846023819889060679813163746094120205982531748601533969328046826635780818161999380785961043811519492060044862871828139495195619448552040235344174763660161779767094937461494913133595535430155276594069721582668392170219145952789337569846688405153108738853408595329292700119879621116928237703700052792780296671688547013634904131808767029907865060542023773126430710536724886359524569159245145953099705321535176521489689851690592481052539046861895014966324145898510448936298308249008253726861965571619095860578965278810382331132531495705332488543644493835084107854266574843317087392533027921701904093940634709294633579187433412847732879359635015387781321854381674318201709261272433453782140012344562933313216007758202783318778932595228485004031847564977548244652780496764407846914342943948086038742308948750042626994035371854163454824606576185760588326134747450214353713945987003666184121272144333072475973295792883555275995266352174160675012849881967892449033896729911889329292000110389643194215463928580413655315102722857062210694546822353883406024357160464411777839703826937063580781713121502321785071162095945340237696318377153263820373120430807334790615758501551829357622658305723080446462343843882164453479406983264200220267640403077457981936069140245346980954428921166278665678814803055598470458737041584046503427000436683215299484330079730346924083307333790902950764821480915169575593115748309988126413705568861178002372004163435283856791888294859306781512136541474055497001380537416173721149776549786876660625698035749982601201625285613228180341925949179504693189140412008421222184717466390759634450786160055374980744386031019728813753904967501361321280698294845312981101390481150221012705238077730913328345514925934702842555740881480074013775548039827916452168222444284585982817018486801672785241792363765861478877480211834950801760850451806194570595461651642885388691467036206417541861616680828649306073814793275060601987571487712545674781348632184954616792568494529017918312103807929999656890060799127413809556155738927525866344857653320858356688286946372271768194517994933786155079587678049654895311963445532780317854664568673020393020001653311852451850858684337578797111354791726599029282079524523112265468672898330467515282195667066161483902007055262536248575336670743685319913174551859960765974946417959343479056369956047248412566788297710566086319332126149462406630679069592799126638264691510849087407470176171557421555025180844273608814796900789406788217549391615961037339622785071275192312753229612792485023140813041564180985493198453491223979615757835118063314284093729300161557668484192856904048455543481856873115527319296568392465960857868802969955593201333207637714978621966616878228174811141959909032743345138384473594964464059064089526876826786600467435847464314233342545642958417143976490765246205642946497196276949143216703616049731475515046723785025810860468279433777159988999090091293193160716115348269698226344020949720198298663328387592037456627624743528641783637089478603820020271795932066809129158406184851446974153561174307168564606660615236017465401299438497407945248381966974847253434913122754380614009341778844306386410210394618917289690662895919978624463755855969400217283681003082739096699842789004892595116611285362320870482112137527031694580710750026622461871977723748541512048513445838866912821659899687345342520428927311498819783394960921389678884073736592153048389435737735575325754501736959076869587089039502803301480573786638593814257840950974479830472961062517669520299424953359839321638912154910583672393733747700842321593369656185445618619617613146903030136103581508791135370557961843244548163096409876008970660972975774143940959809661047111127976651529443483373448731592535139402050298522601602837129684635077984693884518532040401895569998458328848867863564649028098404638597682126628660144602850925353243942179487320754123119688847019029091460181051358384404603285546889067567243928656938560662539243167180276221094376557326260461429283346958669104846868225797536863790661162229716980318955299663875901965448327958440175863548008346571409671733977523272844869895501930281938535130023241240215713671920994010972506254961012085751354533356150693373290393612964604316222869848737828406860080085461696723632895218183427783664845858003501436551134561338355214870430292512394772327911194221788679555061234221717364685221365976268526808892643269139815146723033628569051854036208943474990614842998377421608635221098495379816861413145596495365626878928822621652186172589117300721560417948827056006445746428196100497784464995984904539769416312679296171392901809147848847494862309340531331844612220692428176487399772414398536881161409252779378025921501324520393169735218309844582103727437928532086934673651418427640196826005872486257440842521649837933037017306480307418255683989824823020889173960674899244701178345461927289030145771669291589738711158120886651538551043331330266118751396506572825679636555531914811243726182847488974840374930766455107170601822706209202279418648227104526480919166408404840127935430523263138164336550473198236494168436832992596859603017955977250077568892075279820894738772757100692282462827131603394934431947178142215507373426121561958951425971744657540708923744505888220144557968427891931699391141621809236869678713426948106814439192235404240571778019487274534738403175329099558460656150765089846570017260953199620731137190559385982277632582228077960144129153820453128971385894242745849011322981330998989525354105034700172833623471111619986576821237418030229743776820447203462693573376601412400037770029899490366775835517252829806410112547902996937971861850311298751380171836825618427402183384822656573864499245542381391046508170606421404765735797914835158776688903831254398206977644483591015987006308462319910464547076085558506107155006240403094326185818816577042994117296940158470742692749342333559324998488489376542693317997269518471234672059572857675949573243085302076983233806374363181198554657878649949638036883917108571502551296257116755242255862920173756508109625339133536468673417837108587527349573208681622780290489572728518135433875598349986069321321920446390451856770329463766266499261364827635442551047090042827555184702746683002284678016228409559913371668547191803700780519514017080164160798744360469727587246416217893740066851313147636497769784877743073804823405102751735242819259582033878303363845303572233239270443888589799231880346081783594267375879847767701562680983481231268716161262660068255676365828062282906999125635633189643480286392514767195900952834171079698125280786677124535055932523353201612725818953569604514782088525607413889642896302491106733772275628374853497720228778292424411665216490359991326703860204830676531777819145451637252092446466850855109181884251252622450106850059019494403875142340600190043765715511417669387933440631221264354918607912352227948007470937298333380312523123222269352437795827175294913633098926176096970524059834048356334268267238816614040828543112672401094909114869539682394211246938839261835288600409813600153180596073217310937778737900508912089935537301367913062316561801037514801150212218433093126877396654475354528962485062502444489146324972610427689573555827751742753999061857641940315519033758868842844703191182845986310510974050042989502627354110555509355687138468185763839045043364005954114324724337950434990005945258453333592822703013728252941965070158325792284853461774811215168576562967598325253310980845498505251960998079639522439454364107728311146359668150314845350869817821982340312513160447580446502060226930541380583930182750075610777333447458554058181936661346996543127270282163998316744275133808877294767483159305337954287410672167402111926139019331983853904177261228199424527388916479351214978312554579996013624495504181433019605923971502928228188000166545031656449252161362408881032307565791673318784623945626333629373259244100276404187363627748868613681396050900319773081216660820089870073726450450414209357251951724723681936741782896471101255576911389361244261816438627913420892638772546040617772409065814649787901015236623176427683184939301605789456098231834929887533879907212059419757501348369075347943280138651910208900564433467961557543349899961038880939734248972743391353359527444616366621311703399631630005406324737866250798893832501431636219557016295623180885719574245035251610859933428094913064711490661733083662166209617305739080369078127574791179004562890143485744655133208716002924667614548269761158582441830607853067285590900516095906292274209128789927733602601081141132383696995140770768140935284955291608826431442684968730240359467847800252799159724061167876337901179807139385680724749302929004636085372170130716141547316622671297076668814555170078785494004505122126485747304668012717164592349506528099890956201173455819566268935371463606216309940901057141694451464579260546109625956632166283899639937159485694821857363707923711606729509891233097595503950892709785923600573475389464182767220256976666766755033848863994817291685734452331340719921684806445370636208842018400310172977055545792631216106393666206474087737922611051418093663202332197928117888249484591407875031468414289093557949414835148115251912439333609998403497573061345528826752284365770538535680616911765140764664185708870722775262236814871148964453770129635846080483244651282658570289089432028753474761383693710490687479639251009161307945283512289974615726438111745664999088614579029815900175756820474497989711159195730351229875646914665550898124558348743590905192192484172981671574924632513471322203002294608721237644744948446594697499446262622997414123598256430339892228878945584695113293193557958266275958957953699491917431444225399194390144082286835442205189254836124299557111317043598725134562917967949043046975016230445657264431331136453243975890199862443113101525665845950652776795656684415307128447624131084026262585223012735997266073404049108683237132552435056259788146243728920857461922114218584868911900123947058794156564234874499493531705457150960782342662300752525323031382960721959815343779145816912622981510099541761060518600552903132657271038383135392802698955631604185334937848323124532339681030937085826836215127440909602474391457638554165297828328388189131634327189270226448401253431720319539289515028114259101133366574917602541054909568237718080906094704828302953046522994288459189748006679604764060792920476162617727168313580942270125653427486874368477825660854513558905567419045056035533312133335822311418274104476844110283543670398293037078518212030638990003844185568540897309948726913490615300873151964002358703535530916165444155995535398241524144849960892748624986689457410768781536739482186445613805019148086024763617889133373861118434145394885228525893621618274332032959163872734451109340655766664642951832092303954363353727421388847804278151618961736536961306859510764633573255291431091077852730727579221452004537247683852650618337889121482503925558249738007436644442655366879066282174228390670139185935822789537958999931275973109365520473552071146795409234880092597613210859788248358978445314368068245316155586166132439474945870207375333175219024760809616913279004701872147076157298736908512287582906393554452901994455311572533973050257999947642797705787187505227553483094849451339207857534324351979834172770640399051738585959910706221220164420335610173800907487570948836053227630968124292601306598669923028974202297248234450003759943172085229293038154730437300840543611736318991523885648482928037700002129335151822087628233792750390161570799013071900916800887212901474082547094176311561707433499789338137640727787165761615978588529187300490428701614622613404571366827683205860066540584030587921908326951302559111840638241826886954912688754947428971132366579421656138066382925039489163022607906029642836442072590958751448178598280645049293306357464456355762973868242424041978613380207906267211271429439895853353408256568268338821310151429008105128786161451960165249208611159201532275994858753124199751107438014581987011525452595667788354798753202441206098442373918588012162531208053114980489446775977121222556693660804104023426791041347312935139618944376599491145126414592966219687566774655424491134302467039037697338371942369836345229346033127326867088990652433538258480210780953707868341259645653458864603040468384718307682650495973175022686044297368404666574387129404218028976756565526001467558431770232538906126379091629078521484900617057513646964631121703221505073337294326263815412382425437286044423204546620899129530761812176179890484730344219696321959588672954179400086509166552737782606455805853188437878268212345684654702627882544428110411765011075226251157327370366877750024382155073817140162076892752287150722457003778462855935034639844630681167092351409229092104053749914759511255062729201390500690052882296228903812692555991513879617367555785359848437607880052715774458693702091006646456520505507547742320443046667253143298236157763796997883533657470871615838846007588324762298427835540923528452465381277595431518062457802365911727623470905780926970179671857825285046236053673578838398404587176193990434624114977192254207270597931597597880541769752142853365039838186523228603446972076025470528221245093689098876925345677034455799273421405044767300847616132008386742137100159549231572601873679711558149793667008560977806384773120168094326981901322233626652737455616394467137113773402878252104397067309274022551297682093473592931491519393538981560654201121783106864138710786490443835490837218361588324470403094127543375989617516211422233738102933429930882275200543457250260812899039452079623280003061628688264621136254403184067521811594141640899128741777193036606871279108063638660660984181192706175620355262377284449759399741944059527306286403999582958318904641502436102963264572956705106105039885736127833339259873263272130125536288459311453500209045631020285857487841575452917568528207209022294098643626763590038774792416291112077831723650452247995709041351927179112568082620312726861592303045866207898787985395569493824844570709526640317116773509957903245776787852933412435661238007225174523773791431627821813436522662746047880363640268468833792720226495953435859341018310561726280683803870075529221274472010187583600800626479573001022849025664078615064875077885758108153526746533575467602939082493305631890145920954060989564591762311186549617160866655449759107716387228606820150851919601827738818843590459428172127294970523707174474206426611643423580718678645083602903599059944500434482821579357678435833385899057663975150695086591415681018095160546317629862498949485674869843809849701601213092792921455202789449936180690477963825645765780735787342014401843886457047774767587631560999393383532980914988684161886945951075934235873078952348417445262825672406999494026698681849571070903358617495529633940021729757632515579398014666739599112487142649964871998919406741443714469486867975289664286538035225957045051835705022221666079384715604606393490887180898176929884169066304497487773740011216361834215738402445670307345095411486313896810951701192983687918989292645616089414317163503566822493232581231932119233971093327733616656757718336950679921593992666546196201578176193625393204897149439568901947582463428602749475800408264327931748477859192460703330928591724621174215583260880721981564349342237649796866564608247983509763715207439046565922216095814772599944698129690470906380901901784247600581378013569944888943600785109454083815523715643075501437103022194037623957861209816802752652511617033042037489458477515427366220646382016556978786020508986525515955778960843506918258360313502501902254304735436556147410502808996728309403226673584140810826000225545870518538383722685258766059290226089571894102611974143962053300856408638158056624309225955690707848030093804206493482553076208970093927021993834566707768622414161391347738308134648515106081207122940984287870620158934030755898352239202233793008213731278231363580699067073586515212970699585072278125233270241412302711997875035269080299812259520760333928907970318106635537406072230766818116199514277847141822035353340366253285392419985469932727428544775607067400993121662941372602791236174818974263577237097407142396291197768162061290803030671005195649231869719140793128937275226960571753786554761630011830982704051844192436686753863463197633703513571754966907786999154482925603162101131352729932568032031037346764432877943206068019451018959577883696556907658457717697766926539465653607353504712431910805441805274802177279335313162560708267510086829397596791589816743197156216604517761876798202497860677560153267307793030087063872470460690095685390657248761924767567790555644140970168362538433947410253895165457872003264731155434558232958098868232721969107646398927460228653252128226807104594224968902171362905123821243076259042256318035851702325710547741892339398594737168491447474216285871008360798295997462714428169094632202434990225288588898031005862164660167360396794344246244725531300703241319288192033087298327319275878168262903540695636877515161553250445632016812979086886717723076561695373417995892597203450242548590880363140074229203224786723336830068325160214840957317473354408115372424591555252116862803259826552146932010592971030459680270974913498844113183171693685827123597491991396794935232046467656523738319439898319325706947888328761813197679704313420202694708413015463302052600982896514842424834576091088989759263786815778284973211236294481770919136632914067120209654316233942998716154319350553909233652505442137494431491089892926814704370104966774056913431213548942844830567986050284856165497427919841338954624357072857766596606453281199827984976907823661756325507818521995289221881674280829338092082292447583906511678173748910319109767246665277460261874512341786790534943194588128521036134002477615476715960592217673148420717095494880761359484699488089264757546189318297876725648212973866136008803328258814825289155745901065779268479795135443892796376814035372409756915170888117087818557502579461791104986962102273466202201418266719670027812091903726856882524610270737589848245769662194947378136266876198276365608038619438717614613161807411285677523892083761042822641325494720218328742431802070959019356156175601865153294343794394237367842773966690122728887431136269703653023491834050252515324905309787546895561300047150092125705623224018861279752493204885130856817578833862929102994519696136626381420701181155004160062997613042092241094540874449884314540471361984880091026023465574500646160015993679009904467801666315237307387437676208512909961783439726210988906413628169534883166151180378992413604241039521142005452595506846798816246976614428508524662003228609878060201633150406065339889428636547848487061422759864327432276648671673692364301153049868492490678323960797137499146804689835588233240841754023928132934848622849335264466388871854671382421351780296878084299947094905386774393643367593960662269576261771132218243680375999875007434372212064138261170432758967471538640528058914436510250717517529479111050945502681449587651453328433823696430039837129590699606625701704840722040116893408592740650041961993324005653965502304688776651470572328399098085427626059361137947121279857031270594212240048299519350747266048638465775697817554963019807101034808828728131689029603976402614964136555487013398182591028333777038451267605025068967074727807678948651830549462774153578142450472990513626944234543380700373772323691084876408627612954270448935583265026397196402530887727777092985524974271108666961569075345900437280653480374898388688055028932037490153574465727763446860094228184749941538220078543870931334009854365467069670701119660706830802984195205406828466208846393951230759954324247370794262955436803389867108694983928626579915791845513413179206002336430566437103729045737618475708766434052512581885939838871174944619272837369653262384200017953566070809081586744346815581759537744821860698818716577559115952518545438190330143492777762696723523783720905594009981943384527768555675912450459356337454947070096492493359733526476533007763811108076541885711289874258013052409556825925590984934661248591398052719250415596202392890879449406231284679799395955785996472671802239439939901985469546421811165407840655275676549137689903554374520980395595527522836497187820246894125743756522151841126494776179760978132010120675267577758978170974884183952026200784630634117327886327195582486264017532413419824123444089125827902187083779951377495014402079701450177374622598288874395452171366948739913762132837524154796966316371960212196733256973509867951802303820261083546726972465239675360629791578837225219442651113414685073624994621116959588326628924927962039291027390402749498634253748503242103143828951663781318234523720467059112462828698049257286540954190111675561577832070272857886508997475799823096849201848578578719617011500630566087138945393972204365082882710042956900318986617626079841200559989518590633660909286976889073875249945643242754937750916579543201490246815849133488411056200684723631079730397039906945115810002491852124017626443850927365397799230223560369926104586810272306595119990389683290384717631320636563959036041759349492834369005370659102853723432523594814880691139889689725736875413747927283162657672745875250901790764079194081342685096845995039377420723047217745889299675067862921847077787582297486564323789521760297015067699716164334244702428688098699436468850341057902044281864141071619184347561506290030817876694570798090328213334140448629892585468655862831375742821382541878081949724200003185753115104114878036119696979489974789883680028906315670674470129519435768767720886167329626958825036196192425541494281203061309190240844192949810281075636131606241088992709655461661233704755547272915394700946003160724563266170780572839734003182580430951943832915743883876666394676632073248668355428203687619982219659874738536508738904101503896434979637534857600059501423621060921343101428918658241337412756734175792290275848653997890312331991867231560038169145455499891766255347075939285284892697512085054359973604259470636987868951649517259742074670461728291473472360977028419950213693658923786679351709267174821933821911062197624998389292308695224104602560457787233548330844053433201200213702959198029840667402397305655432849908852280522653531048310453432244533002199665473584061490466448920064942829122156443289913940769177591655967928732100435524140896812856818560588977634001039093447149896541446962302958903204133933236879741007425970780268524513280267594455289662682798232440369486451965905455543141341781573337969543804704996208028349101046152280873621344016753289864337809454911733323327348309728361697891812883560597458531380051362938620654838587286775127534760778317937308961265381995293972333577989348839213301847570143784055054882168978512053621862687907158363267942213431206654872069490328616638829588308430162235740953568888665525127841159277822015193965374842073288014303136633960861199552892095666252786897155228770411767183314977712768131300942325268050587598249218390175644611328117536975269223813721364699902213369922538585077944525753829264659841175711685021448686157591036189323839196124405202999944653391657462300627064493950869953804878822272094538267957449690030804611616854127560709373044316605959246464132039873173178590262897465841370479471534210760882125559675282702732373396448919829811394420827952036953015944815068532856542392284944034540477806174390602917698727106294370009027628332612352956511932704195849860052330704487461838013221193510854099937892669411043675077231892277160707187257208709162955379616062755758533962162403843403007234952712873648508707380299544486735651857229067488972932745855000459742974556927821630687256735732382463069474403561823625183834680026477375467475077684305586850877229179074666734407354381859812901885977687789236680485216452518337987295374025573944440904899306497146061244619519749310512086056536827208988286680961284158497589655062075707227767446976851952253091014616941645138106663325894139826933771580428126958635720241335792242523371494191636983138448343568413498243881637208368943312215382522516480268105236229661668922252196822671905347924054933480852865120299004424253386659967666792771483884772064610477261437037019768309022649193801404513383138061858849211104441755814281670458382426921753381223412391137834714995199004169469390572103504794911810460766924221495434470877438092814336259372863770726419104559363869098407537046669509317999649730003685537673467615518534351186911192040286855377018011342260348042137198048086521516151652082851727873783970283530048442531553654470587135469829444647853100395024605799364521882536625339856230955279393006074999319071734282312331124541630952759308633865600376013161711225436102429854047438518653520294632214893225867858441739636025328014150023257094708731811271769127140843090982778404829988255174085837018082895198107307427226847870945321393525650477259467274790249209474561150906956253642257877554854211593250567081011592763978940362255759133119433783319491621820621827896990271918707700126834402774000192745321707212839572908042683328249883219053023918550118062061238777694466440167536414354397173306756197237671102698065771072215515094391708530642885512176247722844235057151504391871768988745797857971426097382806446249352688611730062734350629745326039574846617885278477743479061695689117009169902625959571997030122358041030526913740688710502907223618415857665984081484529726306718017882821323498321414158352773625515535422081551560932020604375908996104083657177718548484181946480681804781926894004283362934427266786197039560648251343481384644523556958451354377234405789114383020615380053310518423197486024663010530764368965390455618369208323655084547648485839185591698744483765847631650497923961877455504793919242180670612385832244435997222222129483209276224689565486131741235746423929129592460464771887403106965577393976571218764937246737292804890144405953849052065264816185507008927087716205946534508233311086522558001995557277514541031483371064838271335502357053666464679060334015568325574325413873889577308990260670149221581100169384901885003914208976355468586493458276636312895157556162971838830586122839380586213314909922366204662098164529367520203117541543543110417569082679444934647520752921200196213465416311316929474546881249561003222946332591566583955197136231173858381446119720676299402770469586083774102306078558799557839003409981900512527495521110566266234925431018606297768172023097862566388381611962598794364545563229428203942702380350148164699788788656303339175572681638217300043456162092526034504983032761114831941153740128814899529766850004083739944587825363814677821736568094802411034082710700865447077794572242033433527583319761151724932274708517517582917828199518904174347079917550195511579024851381477172330038109782666044210787945961662985347805692979144030762803851487333795492549755650377257790133320000570866303387885839292208852974039005619687839195081655815020827909665947901457782422886441936836969148347816873302218745082871119229561185192697675734164848372646097596535987185385304450424692530271553515450085816857914646161186959687685060615181122987089742892750198472341260089106016121654712941798533946499644175147423481048599725347848791557988811719588941078661923529652700815990849248565535676204458049150806898492924408594776286909971472116322013678413963417753169796852652094202709037091868789130053129525743677269006260439546019751915216163302880609533594903163554742666931865812555359747530805487725844959266926761155860473466776003189171766185260740186974561146753190750528120508856728943301690963631754652456297434519863449890229538309971650662553815948154985183935221711994248240656548358969263032124808512055713240196718679060068923089433623268907849404430635792387881822985747739730030598699883651982784672996353736401948916523223220619327853929305401768687265512260604498506759195869538041052699610284104166284134536801076677313073077463142097183370533036861768220947354285878805852617852312576628374225721803265306595777330993331931044652574824600408150769617524518705995362161762189052337504055561251472878383985050339099645312371952345453295844079871920812797227702401207081788541750056684682842898674088423635851864922320347938391915592378681249289343807955817263725190644229458725174131205493216507134824495944669227999750771968566446244029611027638925024023076217488657031640834648332397564645811767371075291199672444210796204795546913530112292994784621125792470427699899923045860842319300712613051083476217335090842717254189899665551848155911520895754971170576754153383678275281641549322774866455491715465769035717685752086738394121991951937368708177202998748577991950528713850526241668535510598750850329953628678437594120568850531644450112746072404643424890185612200346104943959481106045817693727029948220908695202719229582726216696844511422508163692275489149423369170948238332719834333676470059953985092966121083768950248421661494777442842226326051285612638944890407571029742456267018965423530988419640068695021925692168775220590090035640199658993000081389729556903091776272042094440215480831471395754420882751249213899024163614992935751996372442590855592432979428404420466699882013261302781106285875594098053746682984258123587515823539850097921062169207434814351237493571460586515315734115375502907387532483170364483086821258522508849493889326857910835661216948619813216998055101146061544833751712350709033055005481368566288820575775700500391816312824005799389058506978888893051091225847374639144111563663015796207965775240330958788592778947804365351410523719784569089937019606029751060481205464993744064176501963682726665812104423704907839494823413086795058255665198309781236500636928108982263257765550481844861292765355060841589746233510911441505157615578176456842024498497395443574438455615872402587465118403485300975648004187341259946299209444577708377008550696932802616368787306180382930637562658121391409144298004296187382938553706481236841199273354806526680649025358111715083369823481029148352259439466710202561690885939879372699267123256600732636909261351745046254919264810512116919423518473724407441351739602245984227961220119615534428555520015237851903340762543529955473886335971351306626099322681392476587995906191484832113710599612130679968376100336786954783650655557182610601412447029376783242468187642287814581705300722534361611402704119923694008931743406683897244075860015050084787194020711599155076448241869511486310708840949630045328047754362152531938901741879371527401368839902596421421203152495887348240294718078537758160821226566270370439946736776087388657160392822412745662365433309113575648790382957963512503540607240939923554149584340131072865562116530448941012426655136367867985840871995630908722150834563724082866305378462952159877918241566264076214022233297864233472981711490805373492985419357007507713779679260451595471238314162946864680447912203435054699179088289408177025032159206048951630363212123863688624099401537108965658165292960030178356061294672354589115521311642427539197192863174146671972315511213083505715009511869526168854410163711334173500966258030151727922395505072256524846823480901979973974575826121590329008293828655548704590673475799890461237363178707971079325079229418721858808706925948167425169493492321004695488807923897190642683840957134580855303584268015946789461118063187196516536737578918979088624600507909737705152203325011298325415108150396595594710910417776524930410303825471631118548913029480512200913026540346239270193092405274785929826984154132117036609480332772890078487557082090291524893463524369145522905001907044301950828376440743919172096454618436767617317402576536696891228273711492926181610448950389560796735124823731944297519453934648990757387220135919297871314981050561251094367769568826189776277072211803946453064884240527469063481167273551036399483618895000938726085431484075429102524380544530658196884441098846399236610184243954276772906089463099958483570422356045501289652187054527745144569744344932557024708200728916881167987396327879382279090760223713195669480955607607321463780116912911251851045247655509071973542020122983432969416540533047709478009101497655637110080058084904999636983903183147129176745872064340429669527746880337089046790768325061265243648254631033352846015176154618976323267152313166948464079827090170533528297237212106294687401650692502423255178128755930170837769825589548741250518043378645220500263889137600027792757426160716977611832129072187873670404170651743189417174522193807478822985054893046778661868759284790781408345868474054934870646604562603445245135100975950754138980849077313345038924646524958429014038717378552250853285609350703875563493611663445750310969467544131636722252153030531617651097091367392764943550938889337310651359644204463200795457483712011765182733226752911053362168852190485973068897006673057005968182469685977259355316838015660838629485258299802920924358655491495905025001763074249820108958114469736929229299449280435739514545921233323321842221997327774290683076794625241669995310405119719588833359188655095193930434339791478520769348930844992811558549463506116498348079763048447482722939099797772005771516139633231651915915813066837005026941223275473974684023860724325631301933323793430080475756828771177063347718831546958060663226953460472690174917122940930178588464519701331282468682306900633330734770351384484685600704045116827320750486853607006111822742235395199443073299045091662137248573125957239709774452883843216754995515495043029549763905966645921157959426388477257065137718942321544276617910369337181852240117092344278154043274116905790351786660398697953223247401594767751001049991265585163830222247292961191871963866269380857547096719594049657449520832096649591095771061994039233863956479520284301969455940159668468714808000149224648194449805857909944881807705162856712153170518228043573585623453408849813888432956246924505990773395105878375211860993345113572774717149362377917883364941559955481712327950446495569458975503503741331704018273368355613680192718733674125288608618896475818479435430811713998078098589631003267087447563995174618775585206063269114586504883122195149073694788776727438841069284015339738449174462308206387952231204974093654479854413706302003151343596515906290259367763516269464936983914333092292146174283250661926653721675561403926295321567019201918990004640619516370902041685373217398836913162957930186664999618499288569164007157098031717459662606956359972324728893630975517651697809932558126472662532306882202116636715655684696475937346596598073721312525086011711732835228194422006666537591701623600236549356039204785387787485578816925220306707538044952171392570900330944882980286477424600900471086407539495995710265780060530161690239169231286308076244722876140819814795111907987114401907636153417112033537019540914191032155913782638678993536248087205640835797195610289519934713505582371969787458203024327185761084297965603372222595098115556470628597404417342763462236805071278907000712357959729768495820262666125562720708424166003612447194724279692055623865730810215351951259790561707417335521870926341108296167495855074039697078530242827416631597933693958866498578763801537947398264061917891259388286700650488943566618597907197481015292311446656323663280226786346242769403237603069999579210176959862544193969883708186670051329855789829618804679765376503398737560704972291316592709825881926901507837896857832934851159906141616044773949636164334773037806044790156528419804417746595473661725608269820946462686403445967487648761102743766805040567227378131342764634681461285049612544460986209971536820410956048417042191361972857034484313333797091793443553792862956247556030773691718277242157894638412736303410424872765750244594435499036518253911500719171016462448094919266604663395354559760125146148766712603916955172364138438074581440542476665695527201914705050389445950727305266855492259791800343253325314433689488545381354233635615932357639674296115945690692853917886019671162025174584106278599357803205611001452724819648113637483105115959789707023515715050255245803367280808185492969301183834983426521740967495483752522903172981633032443635135222263323004167128323778960977663664749724272395241141019895443254923127504605928473337231095066700648073042054008859861956863385925484855962971364746074089190025405198920009352661349273993463992951432365279280455649202717192215415004569011552485902935219311897386601787132309083111715056104527013459975302426781574082843869255568632609475239038550017742475245669289542801201693402195117647426123481408086568149963905712128654935510578704472848269812687523535937681233108218527206506415701936919650363498808215075429591939478463098344995575651767064460196150092133425896434390690358576845279677528750180309344139074906210798548952891939998842537221642779367344205113042263137214455095794163438261958852649676090858367978912730266576725189762508358379920899041128070601780887224814571895125327977046431839894208260360789051975874822526195794553496165145138739229229196968287313685708131464256695137185530577423763251124397264640235524508378884756532267464263257157000179642949021795503705044643629823915246887249240743563763425312731102335665489616506891879836916983121573541844757823914095825193633483697913917909474004233022830766123027013743272514064872031449290522053723741181040765875244461130266010379615877591649173582997434885335656002550554507514669288289694563355381584480931426530206902240622378658650718653838945988956646824083170228520008280552015182905758280841025312827631143463559782523320262611996956628590703685122796312579427896336958759556528332996015952437705229055020801406298410984739767900761941174480843562437835628681604779476652631900612453638577454926198508235037438780510524786657879266485996803376932417191994784198880312955696745886581489178537859279415197792549536370245612837700393079745487548950112619680680542883823042284467897011434525677251415376904315918395792039439276322365014013397711254728692342777851119465611368629533872988812824133933843047095112871297090142525551189011001611336962192296670341542983136282932848429199428154803685834705248217366565790400261059898070973900674622935453783598321432501700064711291051020492519276023484619435634133552875091851401484839720248485148590311583590256790079751886198137420099132461335430055388662166905708525697736509026016354056471359567013864768522870305095648419680182284320051370932855007452421613303188374412203141893645179264686805623240490960498642465936126741817468456263725911162581282369590180630504319770149045193197248329639000471106637591480052624357662141276225445533460953500615213948575446824045095758037039807797711906042337388846594241281218131290913555535995339541393459915347189636184979837919361314633562544627189619923401032755488492789485333813805399555167704211681013689739364895205874920557874817556455793030950451226083667342339082051321109082451182646376402559370597975002981450247672604709599859891538713952819828809192855362724308104971181704614571415381470690715029868254262412697250614009736724287050892838550623757761183733071155120918143992503644156829341980672198563364194998129454558755107327531703883320659656444053196618267356326739882760928493876744219087619936190199971509024835862656151260442253992609435218513556457064848256281186642046772774566775634075036444700927136172020960249002115616208567480030061024444410059447191557959899361607937383233723775224928226043534554883128164917789475127461713407308446060549875981537300791468343704443773149810711641034438198350980945455615699067025615001326632090606322171986016512478478043122563558295869224475170459975915296895883559261652613385212585873786111108135474280880842329209791280659622881552442004963314556588526506637516824438467473044485125322002191688544352212620780753465738596104403979903638207359452135945506585131006377572302363688370534539048899309469541146514062734543148162649009945753813195065599632850068976031749649209379605454484755329228000011251596759979999307731822482030423489198481484160246983760939932034105822859205867346715496099750127672759291718836015365927814860024103900660236335420212094069421613163222903280744767034765373820131664778225298525113774391175025171152031134693141846978860598651396335160272247134744913445628964529580359498672193504024940968515675957125661465514366033501178437222393645792814950241458670981196460805862183209187258174243119016499675084017699594544730989482049907952745434946356769723382819786267949709428624978370215346214475172360158131556638889519843617910942182658428729462159846881568391121093337638307935669038976170384023029627997812767890592951738312314045763517049560917204468673507572600233806063444708710720747136797162655591700026132805782547437024607535289210236596978361539583946306182451824261144562455115406766362758301933969544055452127639271616091782816918210574341879216374925833194778559841522090622329373158870686554764180482381427530730258982245775894836252853810459317973266324818805368348844844788338337814299789310061390165166711854803774639113353570688359088217847391783582971277111605630245329831385317811752315316122299196136319340711891397656032735722238139753195085999184623030737732664682390746658200488840869326608045828457598250035820455224012880458222644920244321580083469372984460966949448334291609524049520278609382382121143785581455437577236574719371137312361370444846910470941546744880653801738732560027643879004719689675937514841458241829313722081490050244553532136985997199471669146146141747329165204320934543082030744599615221172676026210271411733350469639501761639671852283024572224979014596243720415368803223969603065608649435731416411331913124890128963656703616515713692908420672711363941545534010139190813881398816098993577013709041694241586029146909970517847458913575664832410442999249629638074517029813363880994330476260014464202538999590804624513069842564365305707965802434334381403864335504802572175145039812113075398510671171212495224642096107793081477740743271727045021563337234571525189601386245032076598666313126871817243201047763667483843186276235256375173484511255963793648521461132416933924503374678822699409723808025700831081357158006339782394646829296603657807756307680583340204352099903222722665169000828700762111217231325261593397722723279984342902072285600389936926129394870438688433495572293709754327263513537270480821597407480988593020915456299263981711614656502040526891282756940542890931482759988944008800262252689768349704014395513809579316370064593150665776674194222583183880995557470745072145253849934989212088157712237913448103393827720219326170999061621748159278936141585552986108581438494821403103540486976101167222580099570024169731821807854141425531610411550657587781699508983967862842772396686879465892029566958538650175793426942019689993985072084888708491310405743818602694287447797377398865234881036991384131799087645097191950042615423901789302156547862921491630670635055182826633661554336947794224800656918866537282455020222793789109612977189478635155401007847980001601136758372754335471458324627592775621222264199804418114276654418382988762923388381299749866842141102203752664152357235633114960149452779867972892866024659297767712708978847259785973323527989274894920095574326311520673765675251635512434257724829603929223734730525027808454973957943951928380904725306271570197348847738598652965813110655070746116977436263208822633289499403411059759394239242439755612451596053243527217027956029603564046253866361515136053510390599156054990141497110374329752769210245547085379847454171152851875728014571490467581723059313491988607188352993575853808018474994672117189114326153480607728603113490781781834702683393024456945112960504458325387702318091240468110237081963317628915056799499186177989579273362639921966250354387389489412700766304105381228587663017996711040403024096491834622584660362532600673703442359133764694341420669126252703602421393242837917778036218612119132438559948678430629517459536039387141460005358994274228854189442112077546905410239477629154703877076726865236986130743551805211587579685595818188964969665162545522940336504089779433736248115598069209261069503725878485138091894124192235243662451022117089776932055537417891218660181876822676783902071513379571487870826013871793682601096789156130663117328006418339870097174832865283217238393124711809643180021345689275652896392369715398810212273562704744233661517013250461970821817961121847245685362561406416077086396046529091142487424277063711645653923882111209825308706896117885682449656446131859483771995953588129306767340175700435034733202132852091343927910992413053009388886089219300091771512284583812926284782510651147666159236115095954259351709334999292415408564357204392975969638675293947388971716338793735846283815753516281884809083529629062434739228889713776404462037927122756538139238123809118860264268413371975599163273655954204776826981753147172549383204977148995869381867709048290337522239423791527045613053134897101932853646004899043674172717961760024413724836667164141240732951368141097803617024851024578647037292242524326639718553888249717043003656956999861957212046354666337392228005522827887932488323966212217104793580483458611058723564530344674179848508374712779950833651703178031325240445803963218198786069045848875533939673427534317490412544588461948645810084622534724528550716253647670542650255041969782653304910651763386704249610561191817221095468843594974893078503345147534156328384512549508765987151468445318959074255707443989919133720652651948153119781968578115607453843017970315030335734836863160740257789766467967257708637711617500635245280177281922096735394410880455985124968701514997637571846235374498436043494788043172819646049012349452587884461757263328697182838640353842111390888950437343241731369021445592592245509213377166174688031042197944245461752710589975416694262201211521616405548966148777719956785717788533769810788404048748553595347580985993366103021963667093021104826938928474753145215244203712728889268568825535600086334676430652635768962196725535265183450256908813085991413595413404783140037918371565974575050657728231439423859501312994693327556501909882831698111923535103346862512145704811298738870781751649328865675139510140031214116764007561838589131547966207685577772298285878805749038013480750536135710081073673060144353848400073300878310321767440536478720182374002218890985567565846371587317481944642883671208728304179385312763698697488236809763016986255975246133349168102361992138223307700385813179084229080076344482140307538824997015980868262613262300898068688001708003117284624683182716680320198956673219899909898948400462034957407210846519133661657692503538125824386161654236990084545219007728965947010519561870580969445559581472749086523846571433535954364029852499479840543060553881974913788562022853048858726150060540886701833432534221815272130148667004372797397119380164763369492523170970696169303640298565973487488086624858676838093073473216037432788994119479748592832967860306573783937714681378017425915643731549796589148859620975535778169426159049541815097599902849527085651924047538180667996307702690877249237988539893696912416985380887886831957348541402143992053057698574904950130421681381428136293484175467318582707393228405649655487838744557069554008315402618690050745502648567366842778754458114043833252379524524824569576266051661788360433063655975872223892744886291668388384473287922696365624317963381371972311363110167014354459530199544510244705278169249373944785892712053980604982614712935592444726333412510833884189958378925650491608122636669719867475124133116268529291740758341892694172688713313811853929758291200925181108765933450477164069212180546932027658147367122688750165347619832978031574719873857201055470045250793049094827326945984179587888802299861651250218698353977938910784177371029731846098385737203262042580455636375975937823850747117222566714705905202300359869812693675794976351223629629119261783128903100531586222339757956391658123262223295754438833645490678912750155949288504229269785970742301264943917184669557841744303851750235002326534243327426948928807445100325511635214698791538043933067208025572885032000238877886786008199061597821996015320891013099458679094746132714501446730802108468088425960987647736268627862496475381112272842492664929518992421138392924156090679448853843241942246398598252467356751407475175589164241072190275718124146039072128404877584195440301753250072190053984037216902912794564374298630228684150568890895101461106308185859583983631495525068146738830496111103483427656625167724707136010161924868581511679098161825529048049963792344735675630603091428694604524895204197327750307564951263454356441422392208313739931726475481351407496343334938262100178139864308604787956038431526914039170964837555861765784910720311062977660651029176040596652477389637136548835687870097755416285495691176424752233028132729644815695021796769661935373016987706455175374929101659986907172250121666724423262010754136687402283677475846966489252760988346562164731674885441321659172475018254174715081855565412935894408868845720591573064289282208525697093375510084707285000062341128236055941177802198931175040883367672791927290036226298601261033084991862342422225110282506744269139174676237120972729330815534152751588142428190879257643214385205443470685462306119090485915958350662998042098242779424623007658099646660854966641092474808296966664030698150448434958795704652366769090681916809870147804757332546629935679613896893731248750528857342417379573941946832310744392005814841099317447625535454932365073825899770938059303135939626964014565909681681249638084559668486874802798671500560046103073523467796003460570195218143121565825520759709784482464767093602029696867086915808567286678401880194066188811646473518706152451027599563549056304361299668479615245073839986509536753542576730812432784629135974909582647322852713491689615092934214533955438090064039594872676140297420478533010152615006451140312947635167284661687416355249270166108085641843554981345801004547014186480276704995837199003991675412963135071096969512211196713008210171900793100663351668267954490136743914795546609705888132908626090363634277293820923521017974471802000940180005370781322856361802730736708899422868729379034845775214913503204589782203525046085413219763288485977351659921256817370381318981521808323224382864038172072816827482472660642154028397799608540075509296699557796784554464809049924768306362574680537774515590742486077892682756916520034732141978177546443450800805330234799261257648944093882863995656886518253577817302285365410053127192742843173048889842206303600449526737912755933084470567752599401522495024276630834543889327681644328730543334445085682607690969387061033992666325444054012613948855715093592021386419421382998093339348464418237382269766371539669782378589070022438421432736648629395610759381781365276264991107560075613534895913689713230438255082801207734204954651857332516290013435277745604312460471658811611699196993678481547540302169146607123864063473185666201595055029304290436767493517384411392031976625761958225828988957552796233700134084117811808938986888583818800303150620801112826685724954284866194852697394298440730959518080342092809711290143250977893765218771772715587449180132272764868112699686150978979257182912222012071733852202294589420215135172414149014129486429131509265054054261584956389545703188500172239418839729383448108901116302458759502257727302614827609686187625783790192951271381708839091436296621920203639783902168908656080569260731782762563599772898238732772817571274670898588454044079414888999633670290104229433036613110654298357381901130338020689906817963879296742805283930681603623609994072330362100210094786056205584056821356278297670733935319075053876567118940982226663256854726089152432341598323514513756593190361794786132024700204620398858987077301027630671712878946853088747933834111903755416453123597730282230565781527437725513787885337589286190216178087492447032714050415529925776796536656235156768817881395456440473266751220562239078013132777514196477685655805596237111982247486364832895262610026753216952082244030323053419411571966134268456196795278602441847186712915538371640865043676650184580991037845798000416944444483047730931358135058858944882370481364020961621009520402519324238384192915176412388289293459601851415985829603879645600908058631749522957550672290601192603651218987368841839874639802627463626621933041985963450556188042808925618476581641741902128965338707776382543547783331326058280704932376783430152662241675453311506363530693425417739118184863379706061255363531970919164861313024357086254668138394262182827859327953646516783474593505278461328212310292680968899303348007991979132001514562078713159540871299233093597576608470375541066248708704947131511095621805012792016292495646382141390233796255626518321054074964955410562786269635813849590104043429986582489881405206205881862986346886314923579924711135185706790092254816627086503881474879989910556274920850724198070509850340967328375882488507659470817842316253470163979567830329686330614908066047863232786179249318753458579384176581396567804758847300873433537586190605571225427447671697779213862506566793082281367193747793253091370994081176298086911836450713904994015271072711192337148719019752924083415971445511638228844473958558097164967422316379898512766374616201041419143321952903187747336068692457927420567815065067935565733447544145503224437412948141782317367931264739822280863704883051397114300952890947636867305163821597200218143927756293055316006114149797435924656131891781131566334704301217502890408505034887695275659384628665119371351694695328035606588939210646462283202800614686138703484789030015517473582594354865147347283765908958728847426746333556289047793665890535639186314345989573353526663335017669394319130467094407333872863312821258085242236575934242108530518445792975440994705327959410747417029061399375025543629777368707160697809946752994082273847125209596510928167222323801472281264277778993191310768504464055463473771132871714596923416967084916062579774461757485908936952727223113471307452262021862827212831325846557060159395394640283476039109176966314657210422841902323785840558764699341393285823211786941650500190999106327914539262842112045760283928629050852911070219561218299634961960087824330164468661260710789465921117919149558233500431305237136213895397433150430206752034201881389779216758202880417981952182118139550218684548933448103269726825852275020939119513764495862415945079256802843252998484677101288769699179237746431776906295346264297118838734388917647296490495052773051376524357503475488387517581997151439274225912399886378588662035366175841024606169800475650282316180577764327280304663470436372638894655347568453924409563482365763283489536191598722160960564552349929407839624586052279029555792512936435562678166957591426560395380957543434043763558244101862072406380132646178342277785383014475733284420459884885661913551737015801416574087542658572838413188376772649313394595557685189650536229904887704616041260051859372384304938824409131805163890321691722960599017136612309478018761045276436086622491056306796554300479761046771603055271701545152720901613378216929616046177458556825133286822140503085222746249593428913876013586493369700080176455389528263228272143735697392946129497591931917202999367414241006529785273594712454876160635516377813630177066160437817448931465465198150520881056240495841135776778723596822428451917032699152074162842612942755067155755692827940866058657758572037454995789854884533547281070206217253537657665761312343850080192507441731653271241986571573346889247678017159982384559918109374634181436606512097406199185514060216374907017549115345136485916747290212661860038380353953098673952231721251582928118060793855595885158245197861671721301723024207025207886934184785669444096398081825897740174221205347439377785332880485795143443194064309379178206555570545909345226622764490830150183523115026324598169626519411552056589004373397306289218923818967126219795441493069703327527915157171363854402937431458370699677849210409903769535760958055645030088332206114012506940026864352424217610245216124693634283444796797659273951525973093189008480787094852255985073953395715630929561009847379018344000104269385867884083490471953740124119203460928925138904023880474973602468714515806327703134214818934019676594425071837732478173814453104492128596534143556420603571073570063753268149918184799412130667601415193840450013266868116382580774534628506233161676726515223448049384830136168576262704692250048083910604373356846679370193565084352657808344794506201746074567485543193593379436064661868525209561035183645716776126613321875248470802968012293662705928306263245188972908426799695107914376420038659263854497683866113613908602440713354450617175068318936878333855521862976613288940642286237247566754801386178631865194198351592291705218125596137453181217824840054350133314050982012055575657405132864568177743820539823638627164643398271771846592364441454738339016802008554757448692045368644134389753703653705273648548871726758548918829567779666478885357371654479097374601381728580588800553927310588166589847017482335493141057029223140631488247607963935860283276007890483183798034581766701656952382566626586464069523011106963018815809932957171941615125999425125503708819813300015290177341109223519110441646645790178872298795107498064612700273205979384920101982197955997263669530025403101135973734541309057251630516544763148518807028905692239562289247740630807640885086299725335284012351681104918241647083040172264120446593248657506852362488689203849650153692709922342892839326215088277649235814102720787025100644811615904267862638771175959171011853868612510040238093669937938375406271665325673230270932457701566379055877145952011397231089127788329660065101367079251541539765405871227802899429808012276030369007910896231463131146745954347896683858165096309616600065292139288695989718906017138063007746641170233765372837650989418500301646594567956069348784525510951461403888869671513411895677000322799078628097886322600492722564122617678504846236394874976161692070857687775051534591178130437764288734967374322006355828512909961614815283132492229589276934112194630176632152476800517947297197214578855504169006793091247131915406466909239690707948572902083678779858857996833718909619104990839274107652788641973405326648896533619631785536608843074806884977256057592656326129176290803008160895359517211490461598593940851582339896069826323685346978515055771686233358251827032759918758865936686416762926799985999092428751655447289004092333206402033896201536637658881102146746246251110244894023494593481861510472389897034866694280444458894454341956748240641555792655527529073115914230363108486462129655915049607061475606860567618436459691275313802318086178194117896621137565464664914769646727020129390341112522434324026595944696676985837475155482590816064640041201681798327190904904212349547357175105703955112581778404238558175300296167452938746201551995135969876017688746365127897461241794601543928909308278353201930188983819148320582246262703261734204883449651778108688579575394168914149159230074785923703195775465823107815512235251824855139919017709712665391132756566449760914275361386014043370634381941940437179800217015352347203609197738819070099452528218717143584762183942302452001370483077590913131315272583896990946750307721497190128354187627641314424753706734135139143783303978570383022226203652237312465394431444973902831569487455433604914002002585999239530416628173376150733596277260546271195343830217772703397474930355353325976890547053623103889449640148488250849350794776362209461312726075073352053207906238869144091906263738122608098292644691463822516610963509986754597220952739046161538880316836367304555933181043484390323437340615000855696065887332776389223315466491495229518371112130125140554380399512546424150802780545405623745184700938178496673110706259531636746548960112404839348218367799071502107967227751815593484385642975649853988525265140737572115470603026125587048663337868519888996135182490235147895369931343359172610083183745855760708662554164586682513841351178231596205393438073601467249562955257534269314484518270755829074283614647704706100832445305311385178852952480008730432893164904376602644645061715848501139143853886969912955989579861484894609006848670774695308041079258135878358606810233384445821184350141039591431080881506996742152873229618769437078997731034061966359611171600400251606866068541210623550193026108799364360164395098183350320684987107116823608845114400317139555317211582137726454249422201127273160037285711165588072002665406335455291142028643896937937553585085162831934764478225874241579136618886986748898391926304807604465080743251348707811277298206658523193179462977092697799494625508964984813590042438434005977540205155392440662951674004365513612516903795507094582023202993426701283051172739560940960271613092107186791644463272644182397744493215172244460903199316338539236470106400694555021137260338738735178804146988822979142157909773309417290642646066460112078795838164083877539938099250303281360258522399059160551832740707117046323263659289388152803908008266261035031359998911873930016487760870406326462603105943176658859146858810761931044576022793422352664962012760782214310619759222723958761354729709337557822419581595065020821810853551408522684214546636569720606027144055418862269758941867013552010980361430200037151490233707796576711144546624006860290968297164617933668673498506414778980382880758679006502449656897562775171939587107357778740727415045927154478019886800834111212560132723189217864804610911980964967802317163893091224366216409392452407694378490929179792572851704773121507260856722372144117340211693811005064355767494661225071802989095176222793294098767655465899261562492855396608165028574131437458423167049543647229677248437146062847655545366220787129338765136353694835465956721370132773308088231881072460711880812728417353995983057190096735664833217383633416758021061926244069942156770905256496401723472805153613905819277413566149912261996567477345198154285424925518067377288646775156295261241550389711790558739752693411887547744803444736198619803775830721629437513705115969769284198124213899639495556713294444763118621760771596840496099519952667755848926381955709072827447331337978776728429551850379042115119145397031539588899296094488299169235699742036943755640500635701764695005505883122801279706621784584997208181522749806710235816514358718418244666603823108608621358795561329778303959802551846641583353715571297131338994902953419639824221975322813600220047941550809435197319556750165861814176069334198321210560550953966848718777801600641948769897688504835823227287505658267887794707354696861556886135526774421148719669883492532693581056763991354863478966533038365755515691836952158403010794192610187842659002900113178288576460837056130365268612445229942198703887236767302926479096242405495460305084690728075157093156760182415774213332860461168592816097471616461085796687254067272433973459722285369171616596683052396848564620950433145788261442356245337041458185286383494518909070987929608247694395587617802328208834666205806380661050992711351048597566861730044331614277916415327544687719293138491434622306209674441614997078065251899618795978912152296631181452713174992589836482929710590526202870979828816468652269626875551956848008627514081553399581002557195795430383192434671238922059762779000699232933487137101710013632748959174827270450063608800515811386077859202457448823990400168137411203386591725759187945538274426030099536919175453912561168986633576719727769248508558750354240048934261742628606618292577541553836721378422198222713491155076809250527824942510436501593756145160201647563168404891148087220913155665812153589192743005689790461097731823908809084540550562316299376747349046142541458597465089093264609483113165002407361267096097383824108913082869336576570082115109685882738221251061177435679033336032642230443907362032682248355257366690665223151208914719513383151339652046284511405047153470953437760912508687083416170072073467528378753116498122103389221280758613808976431521617137781455836642500018603462444966617450049661632276031271657984112111700353011341412458697000673834242449530060787600255308624444170547097533180099226387891442439390198760483376312936387449110552202548899569732584797522459586728470964022404082210806203939090544074780315236856688552674948965007103029784464070918582416686851199541610215235536117329653131715826690937785742401258430356537462817150213095458755707450092275667482413967933883554200583478639568144279403172376798565162200260400568832935144195853798445981016304036165000605312290272841844522460791822418519718777178769593746774136504160074615717148769003861925176395997475529291095747323544804999072314074161843848558917448379516085940115582504726842524778413565467769325662174947299864991870235673162392961497585307862228904608745742403207861669763424174306833694534478442496542813488037608996842822080708037802264824233627966595289060137446560152676112302543566260437446278892282838644780331269030130394219993660400925573718282400487700063570449988406712422410512543913873712179053731167892053910175553371301484791031674567855592200897185646884767798478458518139276105677988657227321518483792614526255734526623775815242505177623283978712155931547163516064665414657428377636246117388245188707188237181547333236890088842596021109403960463973483241809296853886618621732138997379836422838778950101060287443504523625319329857060748271823604777810953612113915618618516616434695144705582972937720938898336696139097454356537654656909915116962871609108489179749374347377190471543832452986810305029538885343547939773892958840738474424834891887164267514228125577025575079231778687686493634868517778046253557023087138974518115045267026152399478384478388965580615075790098034874174036109994171117085906998609450471268848142146958999261802389360337686403947010627662907502048760239494143204290544641392268909949503632429174678151537882624941579988780507920614953301200936413754406553057362966522531900742302840010040501448714407629122092402846476197377200080356027363900414612048463398817821510810885264305940054280449731835509745055649610608260075320253843190352735801541708003205690938032255941087539336184723290905880944778180796960375833756467373188840852829682310614316533896676782451327769108210151436535869453159132463869097005078124666731716411732289920724958874834148348814795634626506614574130154845910019418770748827974081595852641637133335929656905801535890000264903373399673314425364464697645762747066536346934796947213083595018644005114294981327922834852505484248802171599372215636798794294974389450197040533181723921702285994192158435793141732057473495442702741304360537503254676082677718935323033177871462743926607404484622163599480682066270071997525406410745497641232878738977616060711234458367848962325271700288411055931733963339062935888199541258768678199416226450986887177263238196692831750957082295158762524043268593445154111962457153251376365392661677423187783867651269351302502428109031989041935790500925757819340961700846825774287800298528521355891723377649992754898196742977799127707665267926770199905688279003525258874580230764985742299175438272256964491582283124667179013574186335801036417440866993723425434169219763464588264935920604978842647870661192992232021396301467182834102987408468841373730178228378002076708936177708032695244628699605940796946475806639253594545744082465771455525725317848343091246035803044041731907483035219714976564694851207007504842131558597913905793100646633600598773274215832209234201756326089114888229221152077870565873724882593249435863128071459323227854622947038195527315045309193899728624492876733014032797612515745305315275511868538879656958964181264497922910156963246992679221861163849477048954819591307138734121482420046938784473531837677577662045205145154525598004274245217637927415517724103116164234675785322065704552712879646653297313612436177189160634770379051419068743896350009196903252123332239359929688658454409736322385338818364919987757679861001581741622941708363378179857561353348918105751053646708761095280254378761218134076953410953842573689602405127504364101492926110379380028230604242097276004738003089515626801379702181198867710171124015895971766999877921871290133177085415332478045693779486686075552167812343377247650656314107559845159932250926373082404341328815996889806666942631213420309658290483858220215357605371556172004186409619039201712152367700413548589972582279376630969999463635202842627126499779368313660072998453039123174822696255305089131101995830477577491955627106639352333138481107778800863208026617029097201202534538483470532236962121984849460404877780968224842789577058850872237715268134415891867720954055918922958843584930907179287672683146381213033994455064777328207996916696364793021516541463335463660256256665464495382066520069281049447274453778928665393867334165589580129694118573328515863368084132692420185077726399059931521741748338460812066656651901592007273999063937959933935319151344676241158123158943595029546739272074459850663268954089035042633648077402191700831659896484613780560065001757205017737711547060482189747677152509523367830827385206184113375971426662647051861449042506793214698097821445318932711006194612893394411976874363998418848907054993202719718240161594971347630991075982945159066751641017826263798917905124324724721031314042767866035725561326016302516561333058805954016554114255244076012715609822611153916989766721669236036294478019431351877359881779394174996146491909719037793963238397678346070638874184596214254195861052466709427118621248541886892840290322006243125679415139835176979900621848876624623611801216472560743639698076154795184442474221847918371034219522240401085672608832666662405764004065956983144038897518273292413595460109911384265380934069995637634573843162131115928637354894968487425681524549840913253368704440888265853759375507557004151044393554349065188930387608870941204011555594859344195210050295975954311396412172496364865833666052687227283413205862565385486129056401855007524464656228355541304740696157093807654226162269592647896958813737554170596625011610989797800379956346344762600967602551655185554196976405354963977787518113922824805868536821241339502217356533541322836274569263134948252479497024437531681650162712312709327068830532640235433184028041961615402885110558963145441749409145808926953304238650594259185451918070264556522973479616787956744400064007202717117334987010519079147683604509313018842012155458529899125498975406789951263265148186232943953471759913186598795627363112364462192479168841742321409834049254631058642849203452486068319878741276966542966019493130824462815183650285275939722207538184229583529196618036947655786455263482725391492580007977451939964693856375589047001695351427222396356140841733649301989965524851541233948624554549306260586129851821452765655788602782828883112781528268883991858955695223737298784782829183128028420468149643927751081027622670445165692958306384851541547012633834403230188353204146845800978068937540677601701571616616724818061025334975875154830159349808697170057740788562896682543621969410738472410639988008864999123967160724677661620645168448561125159234322640657113824337466793275696359813007008101495414965930283009407307545932849563190885336172026354599297318271904593654045321451818748281029115374931037417893852340564798155241178447659059058218733669058098502144672893051524494434021578933918750940482273533191236501639223198542304387510686094148491769731013941845461967468445439638211509602864928643343744373578482508507556110197946945239609781323849152688654388271488939103893019253300129052832798635585970315623850178727947108877400880041887293030074746296037194742850071697481500267129815730284830128354381555069586853074118691221999218083822739670943879789182016528321128339384661798785109665751298800387473576578380506092395394595768429742417987991711078647710477087112335670039334850928711813476860925086241917759791662174615616125877602613378420111347779604960406975674199033597997382227060800965695636342886539840684795126609675929803828857765171132103180440486776171185625046250115659807328551919793444843474919952535727309235352322687091484956382681490871178564133928343950356668911808629052855872608272591739029151820394769680105429363778885794211401828220834744546554811819729000962897357658799098085378680142942529163907811166439634866045630594125611041323373830281042987058097861599022059753772999769623684364508465403563000555933533692435666762195342475604629466990706882797105358877216968410340443895829545955840352405601573306448911915758539824751261621854929660869211332527853005710953463006787326553734787830076001237107974938901192110621398282110069327942867141382034401857833867449400686622191723278076419721678612961379097677871857688331673169699314114470575215678621886935810000644580587271671348773187022581284377395171846753177877285280274367565458215872070838375410860294066890898817525201310149248458014202422247428730810516598067846783828697006055082103489823662193826261098263184491499262314142591022503299152146269178927281934486449162335671142564361269322095512535432564493406066937755958018359773500677584641480437072250962330896450851214947279036073848864816053910694471348917175936909318260662142823007577763628458249171257194903821101022326482461672061655783554289013155219509635648823073733576760417975858353989603393294112233485810154479383652936300206952513565627412979088457207125018915441184528449715484572848710391856371460254080254491034187718127149139924826655691486095453569121763423802406687560243399965751846188481472395775803488793472898139661661032587669908557558094293648890790678045470684123447537872517160589212776286318614810766871394926002777428479782115207544463410764356219225070564069301768370893651841170285210494007969482295853995297950469085746756951151794346457626856980053908514354571386170328461287341392002411471465132271718991809708284200934566050330384204757029701311535412069162734925756351960712607827289422989099188452051291055893175805668227886676587093893693531783113384834705163035984214817315373380466026784446837749606000376390045545954785043300968722380908364911949801756703149669418127171962850438505045719058603844537274667273105270440747181269846133654991624898066359689659882231497787065981606728798325554785791310355787071097777891215879649587031912169855753025073262806318671426675257891294703687329560389044251765739714374286204193783737918817045673358521789612057518772261651952057924134670014930340469513482059968732079831479381916678515881635617940138569104363081000532983857347128393910576315324522924099725252721103035107792602627117230809967082699848774401957906591630443441871732950904327117380341173562987455187540020693403659597201112480949328035790942061012776214985561828038894898099122430888189249896240873420798580956793101227710491931930823380080400084248669331584402589086459917083309780655254580484639410409155031977433012635634745552180369066934209644880121107110521041737561337006746223233461919830232987699191412501240676531207962863953489958592215361726004758113296214039865311527380092079576628594744014604115949835028634432022412351421789986451570629368060364625483253605743098456739507374724409881775285594249653455831465261527616446521480921057549959089022480034455078128513857481201079266612790293594005537892178451677099823553835260685442847952737298526657799685815148296189672849840567791119619198703913553894188008511490198878651544820508110580797578648248655251429185120413287301927589466066855215585973182139377362505943864213536696366246805683006345323350810627918164292974465026233578147338867921392836070131958430322911721172039149384210245950105813319114136572162932158977757978894813381885873644410320127972158277309520686784888292741041022438442989562155598691634383916688385260139817982371434530529512983864590382989837745950426180742639357094294972916274609913852189002550962531608997052380538508426419269024150256146377171760836620470314816230220232372263145271219062132288854433847017106608451205972328323839148554708087425253879459427726307621423768356854599760321388546714710996032012669070018900132126997359445078558841880568930354159719006307817536889860133117603272319324557771466012466729780533794638531417657721894456085400625336284776570923331815831145160073470454977133699013587484813087298856200126536494011022959732597032667691028658073386851310971941307041105848723515082544877502949467836591401898422696654703508521382380377651096935652563242717746755423130862441122850054765041945940454193991199573546266949502182074592657821628125908371153603414525347044749417869909117143407614598577575103943403528443763625057807402062147103014866073875307586046201491746550390515333268560425779367472239672873339468584722055833956337685873981365274260281978188125175414001996568849548563213618128401611836457526446412157259248576508946179263670738016463978400539477026854703506968423084388616956598426379535121779892773378298977118059341833528373261683311865138561869675164855098637465316925115295680412235944771552744516839181348310702829626975148123559584674902160361770940129866538384173087830579527082413585954204561080510407798701600613589236494569173974343548585515376296003877400606027245107277632220109564721939986434809054310439366499789895402369705211044926981399664419517874915752938227857627166506193261838095679011863059673001836208566920878573953968343092475203978680022986595795550842166190918201908526090755065239797950375127175896980698646311389368854802271434540725536648851289613436386643034509806846439210519550744513743138905248325741820206373589371957912365513978025413183736030950131566873383310285555535315801817907036949685967395919885737732119010332993534161052834686785261950403068103413960115698659142436733623825200678989778398554008152885180927968474253848216223359536277561006006563942294176775094505322330764298556335144150016159979405385237561973458922156905352212845195595634933471882585600002041984299161351650268156249858365982519723167625003854379384259706536607235753396775104791678499214758741074996028892503807786824655308225910667879873262133345235655503952145547936972887083814283175674435876366507333396661780471205443965390045776197117706919284821593566200439976683010077953881437013482857011508209623036383760572255118000745918539953214040626920080088851669293344445323173623446129099188458449272361399013842842547807799584036078162186321346198881414185471577098417485109459008667883458469451271877904359925830936913094576353349292121185756861566996925388393717182368431666621667522680404334530405978050654896194964959008187102974570600975296657897961550086593449176832248935449779163971520476237640521787032969248964430010301821452302150256959052197626913926541100664914045750554199187429167696033122152283008363278826399971159719411745665722743850106137656350217664445946120255072017150268893784180172635534772391944416590842454436689438009773117615541142380479286888321116015451877918414464837546990717451781638529799119344913070448314283376769961571515533005226775095049456894413679581375699407495464854087812266875206102701943464346761224378899914482238231190122714685618679954993070782318008711701549292606643238615853440353647539424708309830712121810058685178745205331190255587530007866784087457412741384499889202720105744773349316800280463210267036123707289626592655119760520312410215173814823153529786655549971087664043068743169115669537534694148291150789273165732456007009003201539647103786068893930752157865815404902363481041939609710351538020697579366559456767546776532669774562438542655664233283681825704348640885281889353445402458633975218320045841919079813862473753747835974924576683487383819204927458444310252237484333742349616541543519820667652278633450738355848025168763925770763955588329426184376100171456378535123860819220848373948620817838793593414974222681913774228550041097002339427190775398052142076134808321362740410576167448637844186135807019799988671429922133278832452572209911260177971800934294795414048492987334171170247762368281873068088626004537895847293523363167787578230578740198667505770034357842772804709980528650775404590079210425203125279319969437201074243634213873144254575136251116925480442829370280000127708457989483502724164341862323756290100847990107257798760076218321620389131605499389582938100241885598723473912741478593744415053512295827433041456297990501667172198235769641703976661089102432804127771448614891277534975059738826929612030839913727273832714140896542594677954024141649591218978682476055269201260135116117555411708074277800121289140688821048359546316837543380765116450388110594012072332797419285740137039083432555820207991542027334063287447338151112888394717466971780392811774644980146148267660159047258759564470351267727530948561379635534249224767055513271645592022416411706402309349074713719392535324172032887890299311213639641051020302491086012050256360228009812240232940690925215248036370898667425132020155610498497724254319646434974033636856349287848472463974411540845209275641168859955873003010944651357877854314467575575099551346802606491319520328036166421650182480035204595156513389013113566992778401035027967527023579712014900943420724990935945791255500452907286900039845097511787685832652133709357574676856272154894244105790691429927903791646405022882499479770785976241175676609797584670290937870056185606881633464016568508545281415603292220435356497291498888154920716021398644188057225348560909516453198191051804837741436060651823590586464024026410185868517167505640919052077938203402228740804554830245374948789622894363509754972801879975737128898426189071364738223218682145154043983185687947501161750763450515719354126182927544927173173596540264829260978306437566807283650160957430585030828688253557982683405847485667901830809132467460675096444650142657419619516212221387777964737645568317787457879178437425114098402374372797895727222230256708039838527482604653723660036600545803202611600851884601223989428950892076325092700898368692825430764629481385340805943282528958556701045830490789425447156602341636337381483649883796903990806264751749755659484392322327367576120213045676645539926271957562806125197005297326466935685278613120633577388844881471190677138253737209076979235695249742029914495690164219268111158409688663492889722142635191449966258863230586581690005432479118015585462546485847205806129548656617993528826620563945237366878786070689653376272441407854251820639763875849661878886454595355866861488313401612148689301615736563271134747054572463919786592035218324298008351873853674677638237883569628840831667818235785106543226706345116596642651094064513409361656924058284455276103371235430143065120250344863672870519163679528423227211585633419378971992668299930917029210811388898852636640300710923086975727920194941015926973453562579487812028282230392939590320102091773995379901099658766741796539542443563799643461613511893448308935722319428836527112566112260483495084791219986010532257397337163089626341486594563302820013136501784979235347155920207075466168069098244889621346967222533020129205472991084745282595963779325350190861977984060841234401385346133450245319453385431212021094990307588283724097174942062731611528660518734109681091443615021512641513599509594239667996589693344962845658009841814830560701636519835515890343737910724582523033192214926085074129620126169076543061526170951335140401706834225105098127477686932972860541008936830582023086635312331274977059121939665438020510446320409591835067059786293247806403786432147192397819410289309784048458317382073044298194518238579551042197336067238332595300155598974467339297221686841884469035970516755563915716462478054204362329975204213989349546163731993412176893905575620647837542225674076082125972936727258294992791215555963313570642372763736568173100789597992881795307705695508235207106036798319723105986705160523144039060894133389272729774226239372681767019329301720967603446940600323253882588179653246634120192389721950223208812340178835965425001199847471245885539097901595085215885414279753806448095945282590345610954648567743996296662693957467566772727173492312571710867661477413494775647359358210841185230995577080411938612357632657251584425251953096170980973964162294614725863984877713676995282579058758400943052089486668555135362103612514650503196914555039127211802635015245195167635366980930322107737472867304169092052580234963267062030362110266192354193123879992718058842307940766279978528188750544975028843792935943760617613861590769469161863332454701324993768125516862721755444617866231556322113051906578987442751439870130554601408958466199365423091274457070522025263254369693517714205417630151195467940353090958461344050634005094177234242277279966142145759139931993611305357868847379363792171458165450981485668029885300998946000591531317926457068145197070566469119428850230500340344637418616413203510338998176439095895826605601887380032283698700660107237379671706081898073699924561497424868710826988452222696035926261361795518216732100757688578750543794595997877720097529417229928092398257227203560965478509985731915743157245765652564666274434873279457521301992711205879894414620120290395887719346047761298753999620964002279600076796175463920277491014226172356731409417777394189666118964295615511390797726539259691122218593232903369172412713307625802941361106517343052167411424271371620178016765636624594266613602810611514618468952033224557440734177100987279269010037825004920215112054354780447759732812894650070085365663543689895233787455969464172176249102577884763497465466008436864207215591390479278443314972415728367884992574062526437220745162269842294923430864157746843404114314594583992129560138372546651798154313487298431045500856136245203649150629383562253989152560379048264038239226453831774734338372350145373981546640161913338500768746540513830523202878639177505159404720832462864338010095119086923369334416968667748813124721612172970309540117763787970268655195683726715627539985085648786128906056116136915637240678419058123052537456523510120380089254925438291679648885680584932035167289002539335817339674947225186593610507398727085033892058585179247241642228831188291884466358598193788159041440502542370252267208595019501212776374555612629692178037313375787374161022195749862343614372430602881649403615142079711258743990708470789065731551132808942239317224574234391331687014537348533749121634717365847997556047917727359965845680616785158198467303812015556233011530731433248293126758227522649096324634980814413644070743340457501916577012533101748061765979541502325886003119477499813756015486206350440632029926128368596051940673458395016695682532977276754820764225011156351989718052171558399238927417355042376731973695988894524065974295391373425064753349729508947217785676521274388307407541755521200857434626100529933809605954359178405028435143489543270737862539667152158325909292862144301144176759111077710161731268453862706595821638311393561300980701964412147846428866123848027035092062241798892565847725493881101627807225415392939226118092424402872828458049463931646901205947247020053815210762465656765729374572283257123501872026781773026292114623263528166639147816273042345830266287522641375720760860728928349185982275875890144074964617341475410674360371895919437387235242122487771605154623438213236063276306374994777393112260075280482133322282241701686154311604392062353166894294158338655711442793225006608753401680861654931087288396236624921035171158940245623382404327214500203816509113063813673666074920669073636898658931681791712333193308628048714033925748350989214206614038291966320340940885042835366334638587293066184762184675321220431392460697605792175256476097220630917075748025821091870094456157378738601596919015915459852255817766120819450091765853778075079135187100838062887090166415879782174262732465596964700421993907263937735409252347972138635692495446866997222058224254685655261419448731205319815802481078037654318978971187697547435670164707299673114586775963803465118386440752600466512814610997266996936060020816881287310232080584397969747660298990368336621725724111630908278841300157740604405556731515323273316924281684426944830243878274260241125486505703959716662253149465782813502274847169526809497305926476031542192580971707960762653679195591737161124600478105783184722662816515547104995068205815102166427176991902304318699054902126028878714440302346548884509935226189491090777570831698265834413618880376398175910196584299166132368878197915868368087861360459629654779090390803597151061412844095481510801387216896444039187483909950713406171501366599829268794831490431263718054330866237319925460314529937643731577970976061525513756788637091465818195740377268712318898925545547286214432392160857360563162690393375856044529077340727478717326661187766468719652316748717796241736165438487625853430388899908782575036760749342201372406058961856440380991655605136014691368579497822380083786227855561755650149182259733463955060053108149525100518759114782090188596841161116468414107336334498783776911807147141383896822210453949918378844016708321090057245850595945260672099887693214406193867898247267176428134526988778413300974454912047279362567165323212039540953039390188785066400622588227580545139287154632107296240950368158105878373923077766966958317574402530862190245135782996704991327423794816104824525110069741183874364094512300486077819934327157905557090644819304237027009628838280667469698837163467917919315229355601805765865282001098036104684628191733739537648466013162685603446880561113445342599900689684318911273271745851352790014545928891538305349298305778544092140880166026702516254607942521610114832613271206443232476428644850500080333850838771666768238683250360290900392195428832979558483232116697937923643976405133819983039981168734041658670608559258118719573720935679495988413459042964510037249793358410678409510247321434991124424470418363792170466237578759554778482238254280338807883150549220303972105567108807309403859115494813728509910730685891731337445465093185692800648875796722618350743002833820004748057018704649315597409902750036716516506478885449050656782505434484295815983147774037338618287487764816876862560354010568874734806190801547401289096962737117125339705707266756817809175315634415413357358932644525995524613727044785574706624419545148028887578645707475005713080966291423753340873227401918766402475742712896822642529154828538576231352944863446044273997444668512989951437596666874580238221374023333523075008156441400356127209998265178609852606707198880064565175688855075968362291526126948889261279583616196645072128378759464053926576505149686231766131332243988602254996169485655828112832004898319907756819641588742035464519680906618940939394097885795725304497610710402021922112461098284926691504153513114780805745865377259722213532041454038176334103907142599631819017423286987051839090341536934323470832713416168475044657337828391399582470716019935353027012861006227161548496318044405794322294805745215213935719731300471845203914166465698252460781963401877491949533431129120847298038131717474322479420671350738779994664654283120728927969524628189331989431004399353779729226891744533877158236318403298934340897297033259624024822598201208328844129158114374551804349627432119488596449025680504084574004516268620824000962698673979969311166153512894770563495745083256781709200461845059673890069724515606830714948385993484817400174972245671383898788210145260875765332205619208642745343871849209147702233587495372743550516892192244215090949708536980496123652413824245923022525463199205432733403137187512277644448114336732044630980865845274843434510525257880770022083367350265784603256423472027207535108724508981898498692278451939223232054333799937130193879028645470954655313337866849503742264993133295559903758967243948744762191887040724425689623879908756115062510321888185129489403599748290832644529407782976001915171482990770800547068784452019704940155418347031463276504575637492243951394006721270911279120188726519068069278700940743731707109101393347763910973514898859772301291698268669379314716016728345220200625282378343817073543427230288593639125072004256785842268215238380067726762818323079326857938524273745065720344222616656750395548515504041672135087169215622317583389182148338957153936501985803701565648457579676795459417741871941937145785233216919160044876554371822835484557059961212624392031056713863113606002154766950803041510589577685041899685496224267336488591135439790383403604815351833566833748419669311717540292277920744571038798334348480018217472045622022700705469990542002826098253465548622399170979833456802483705796974753280682132369452668587773469491020445654214318629983603661578767954021755177656361199170565295388931275362883317096908384661094801873981544737727372713240386760671757943519196395533788243762108658214163034242575794035318665243609523142471192787450753040607289563342198926309382485818052532440350804668432987083117429925393879356324344756637812671389059078107235768475905827982968950673067446371123742275332707652159623466270705751238833206805967306731159259289246299156422762126842701955875875244030579630388533715472809730317956880261494105440807728759262151044581860515688788620591691326302692912817324496289861119920906844954378543150125758182710591995489817237267983522450483982589837989416219297330920701668927444944573963798595116838762582349981109754648615686805668780731502257475309197082376278013289318950277566910726014665017780676407040418127084671890941027256719802829860596723414735447722055750640870744420034384959086916102296561361253718053194744343490276535118445588479981270389542000475032033058829377891259196154375617752899299388422771840675578077029935889215625489941509416904494926371556697082978795151333426749499889163110461817236026685756244213695382321490222299492525182860858960891890439070761745391099118387286774592448777155073319653934271625653647080064886759943927526530903707951279577904098705923554351427269436617541923614941491903719588375694630723752301566212902171789465612730194504085764622017832758373995379162123815510132798359532964120360019744796128950098903311297820575259706645648664930678347578300145642786686456495902315091004893135634208735787008254503177164383442589501113552175985671385197539455178739603377246801853391333508694123438967767433919789136444936385651685365627991544929677479961916728097408873511102948976554289464783883504494685554972209910625697266537897009411846157518148502688678084049626895705642940375594454899338810786063729044495790090427164806028752228980284931004142496968229678782032265375326987160248322594194981695679023414351587237142327565148776344301429910770692292204651714915397661738087923954952301993664436945192540753172767700980140376869772972653343400048753178201610197735810928950988580050256179575852160518935108589479444813274274161760794775536018170018223450115788241800996704932051546789230676153344464479830975822218823362536088516180347636042500446493624032470545822519518976761978906884381716344590014594969018526583354075417509362059694900611392919468447855124173352131039965793080356475823422671116461603769135984675039902305325833343529104759571143481750460644920054158667553257484303829136105094843612583422814697872612073009588730678351781784784980563019072863951007567466542788245327722110828683794756793690902046722852719945486910057835624756542990227325346991996903781753950934789853689313665557431122571873535996356992180481047934752761408474477436502377421258700113606975372951836872672408554186211123823641083283821283288013427427808094272941982360263636611324174630934786779751020289675532316583601961311643931204069621104322833552109871960302977168889029935188260817065560638157053328861408278812678872256689703523446206580128106937563850554127694090251241108232712574088014672072598283085530391572902628567051437911454373129230419853484505737994896621878859642231078860670952526553522846931505300633604717052089906780748947606603564415134642254312541447633790862168343132141745074206313617628142694595025508547398463418622982797358485917055288846873585221243671913863112210169853435013771423276993711170534437244598741618539413900637920389756852888512825849466419006740569618757232741306279765448463304095034281008917418110841952584323538212387436401064113435729849920641746835594859886065657209092256744768158966408577612671946770168432293710677962635651937874306279834580954457961412725211613975647272739265741285267174890053558507821223442773778259465189092642241017859748713157817432570391953176160937082408015915950845521916029248341127110749187972847715724685824875795956674637198191548462815084164697118670935013207635658750197843827227045354603069867873547954663126495133764358785423250888807715655788908030879474671325494885066541719969156966511580894054435393991595265917466839964886701330918199993168794872220240734639455010793762786304643752875644648052129288829005855324627659752380829534669543736787393559297359857666962823960421059180767250352203165136628272396818076965067753879626013500380128365219830875899033812275592551839601110031528124524768980254717528499744289565666046196321006330894058494481702034118670875704242849101760128520318329914012195718550268224340575769540233862248626737065609142016718008207373680462328647525264606330426735899535657756216570187480077970359649750997484188885606682611346588797221534535712258837627738817215506784513842166872220901534871023735681486995718135381455895641867072628923173129515587756390405596161436347332550632130717612422170919750936540027257188405106562789960740505096272898177976747476682679322525661612330479845330306128872644201592858931660741982623262343000099647632840461463496063123750145313529057830601728947766853132680387561135672065588322883493426269639088286424321935640399034335330066370762957883851867746251250068690984956219947157906015299487689194097444916402361330125909989346444340109722421967860330202991799260662909776403058459487553782003874043835857288460013352082380139778957475378313051536447828913940238345095658336792963408591379273248271331065346467025662557567368220922472210222723484740453336959376518038057214612905950425405017109878198678992498472802265752207282584707155115228287615992160400118436118655829966362852348404518746556478630659959110318663510199579655236271672993534924760421503939808514501223937382206845774997537390721849749360776344473368723166426367220118245821485811715983615099087867674326105825865555931262702417153499427903735512847323078042523398183780949646810166005495904141479895177349832844532013963195700872593749595778373392218262786672375676216403476015533878168532739764827207197124726384537021298000297798692253846211621289593406863071620684289996916988218874824862667583637764493949507392212258107058480956138321146200632192048037070817798974708240411674743999344350791729885876657263124930475016074571256312002227054970978473853670844178884083952691397976042378779996034439076463618211527884602348584680973737123990151400257298624696665009575427463074902891219632149002098546161362936671895032288726890255015272016518963394519224080141154240470732819170221745410176963704609922362776874410436415533496796189655936400357575108327446519316229363284097238170158368778580655452113105755363232407534757545348411549931175185490034511508651016765626414694556484856488470885585873778581188405824308769183817341372758956708986853676471431764343956130483713439676311026916741580443306365922044462487249341688101367290561277458471043186300784763984489689314116865765244746928196801615509493902757646020593123546130586753609294326921099359037857739058527401092578472380793430711358819821851508668546035805271904498308716283139160873323489681446155247997261190504493913262331429765572201708441175121921146968639823243887176722781788462788582206419586260110052509995938834503435041843882137196322370736722025505184356832329496885336767149498194301650334687778849794798969440367883520312740631500659226471887935614490310132861907374679332287015643473101418741895510844165292590883556928332899745629810228900877539214399716497990189197347534001833801321892111994716720365133737819635792663295261997291704414626891057804124651687566472830428427472521233910157601419148182105532901270010117997914282822912201520841622082058539848600073422971761951296968990066783934177368013271270196314852753453461098545874169777741027179407272343799529232118489731412965279135183001703537381730235150138999008737526082453493146281363768221306717331084347359515703965337536704647510058424117156924045865006607464716876060287699079061759197756915309421345653176124783867096424521746503000567171427669142379163807463892584795041127398836662632809184502955443036437064768680294082218559131304454983517972877626806947528374357886424826156776383724173907809284323302943958500039645065351820703487977971407680816904402081601282512175183484451844305168569457621834136680070084021949769478004568329216396986361710193466040262955015446673295929951220031595355347466979189921998296722180520892451276595997293596560117723974855800322833973283920740587672024135314680947563185571221294537265972005914890971313714266468576504763130803843444911794530642397599664477647710366361222960376383526148966995375534194160944009634798539837048556480238288943004952966480975804813315091448019440726475772095628660247350477172870294855379712058263799339630896920459776149546671993045582784488062326363330898608263125367735969406980647431522357352504444497565570542001090218502812950476441782519623084589408029077190622602923854574787647867031314863213208464610078927049167161689801745134210591260805562104107213658997568021346939774551920299407809926813070221182439856678470329148365716475890142832222545543907223792723911254494783172422383342409087217141471384635592780884330415168481770335383857341757800816183839638800126889258445914674685693922543531658600505684928407911774261711179645874082258476889591666622297613026954292951228488462940737840314785981914853292738681542842505474657766302873847548316394563126935248058219011848832337576728191320832527871952306032954221453788263419166713456249746241059971506087834885344951029514977751440634550456190579160598113866931473554968275211589202165610699400039325936458959389835414292899558773797592502401271322425028257179094913560859897137685808650290646080810030360141940309413747667534027649262521895147118050421888380025893294382501466472009743725002214871449748549696708084383644930773737094447311903595362544249001893325148686048458125230940656415124645715181185442168230321222826457241179400292088835636504218837093560627525753969728397164397907785563755935578327427358915057019035538632804262230759018185211640560953636939917163159820641589597002078893971732972766812558128370555950879890437322422256168648632563945033607584483946961536175300264320854454351641544834957079833984282460096196861214236914929078220884302857419666540486514902155140384016976587498714318759171368760343562746999144891750433593255660110363952348382819141051896761554758598859881232958439625185890066854994529942841152710988727218126054203226560253140322840561860557475936690279317802857300523069369608175815891368858690527267956137380458729151294767172234024612049829158587655022986908101723197666431139174079046210213649130733275040895394774342441617172439397352352242698585339030122211322772550284997374173223006653057735255280426179508553323252505035365075120988007223942290698107035672107727570038084940076466440383772509222630085692131865139935870964643218823059131406567894079924218553771432376335346435856672464709891900946650129267439962823766776098798928561339583857777223903522796022467388687698982837092880161813058858449035700684942955525745900953111322576873913362283658896244552635797370491424055977486710732298791891540857563467244002217800620915225056308824271010764850599008236944463813743803494947440185127375602972549040486437414707047842463978455059747461551628779122951833485769554713862104247489836635073050045603904014728379731435013040756634696700038468266068478048483380328284956791304276571903593982486257857831986729564554329062154927949841310666102219716686573814147084753781745730028557534787870928117479528705076215563530609359207363908215505342176230011334863232605323524739932151049876572381661651844745233086654673595446507074878134047423860202783441625620061744419023496016848274374471687663976140867605746423256283821732461474958832107766004706514734230623732768420694792592733244556186664683678964262611244294183926253117103053734678995050904768548265987417930880570490669193880615943258501116018377600491934628171565490722049875214550609007612406768671868795400307825228300800045806466967449422024936365880454726741557392636261598410219047514399763257040017339357170473947076915269886065031890355810632758281824284417413810895189489951444500076045676149723000708584791995599795177684134176195304151773018398491161504246971202721126805501961229682905803681121372490469147628521136496128861569095097751902214844268580870776079461236190447025086469424843171391629962883394370037610078359838353818321469978166507830116294566338945824660464713605300195112410339059487855446272324723386047809954817815753055800204840289894338546786941012764501692597874338625355335811627689842897874493681602935133492396102342556230045511636847090523804571694795738471494663872373711851797229339590639388741126510846371405561364615920726095904234522254987604200123447012519189149957562571844843726762013020694061086098259709094626876757622228097158481132176431852918511489396074791646452423748257166949078671990699368407103950925713872103164258626848457804586894889982315729974247618762316961893889442468781152575282999272727140561877152593305289048449766715049767093297835852314106922033195738997139848105767143854255101570077507772981144090609933532777774972610529132345166520255864595185268777104749099322645754867800683585344641015017488956010058876636344117252684876145728448074663465877434748514304925929459540448674128989653535639466248395545141709410816050018478094889378868337241974915222945693945600438556942276024379551402848657820508746145361192248791976590672375822472703589061892832718679386302359233807212054025037035589620801789939252521418248770635980347428576580966412643167454606253572759513101974243492840810977286003892750588828913269224320053905236715495340779867714646702588429749476909541021017586127692165253408194313838243218312474465898413593753251671585529899236954216275462810711775180580843658296817835138629201061055757124271525386206981334188682575649048225378988938768134972194759526002847629750473690560317785838103881966632970315071591636227376482493234154681972504001801509129096229915390946406909191619842044284878385669780537422290918538635855891081325591974373306633310077350555806875532969619202563280095814186872384581247933865078944508455461182504589066193848440372060281058961728806878169080851289502053177729930448072992777948106696409759669882309246797534255216375577845946923036912759988006943584636522683046803598913643675640792904654338322740620617280752522829511882343338165924942349620944561853510841654956796090457350735863119802939991876672897675354842810738385618615618181708455348403621770511927112100452796496511559230478452895323954631926431443388745466419470575864379525673642062091472511934681365445735440222633700086367929898077110582153034410061723113915291854851287807337682039058407139506547666036446566108589653047601458452595501415032803883352515351875465894554365318874247532221944368292357696357581551892466178691982274557735828384152409895421666486690773367596361840561853351639741974624032570510934878264033611933929353681059991806221247810068379645988893874662456056284469682148435591082309950623439483958509055129038867772968711317683208981896341443600193727070521840780324151787577238097665113171275375920102590103102917105073558663780284346368404965948711438370025556264110169668466154317477979154681253720653087814474408699887622667336293890202875859902393846367071641836233722692427483312653392362669514619840811782302691633109323950174651826961637334559424193734871674733440812510415889911809168068735906529171942933193169519897878672713817429615419510308881161722509562379861898037601377124431102129921775814271134543272683807982757631362701096181082546667602841158803940552780330739160194539273024941701182099368854284667669839390240934074711259471106214243389911347127413137139408312017986455396169648785666740667782281910229355118575846339741846979181513178870242080003696567282875151809496861777258543905426122151964435653569385227543116955927696578131466257096511904801214526539194427945754210081550306889569528011322740151114450521867455840416971876005182441555644514248213185143779662126200563484591310787492739350451403222217153180474859220978905495284111102515116418104866352665154847063932533155335182984802504676949440958469129610529875917375728830632532613226476059132764904278264109238689426136826449459853572373253145803721670263110936426252271423277775012335921152006952837731493600558093051170063019934700356463950051779888088706232446121780378432353298391802125318115423739227912679982890507754499425206839866860121114682168955319899797398593069401174599235969494337558680250676705205773623073870194609242651745104728186457203602917467975609697019647276855425688524233174269266241115803363770540867617345035000454416345695226030677395835812345199578877135401906061621680374271077454817912821621140206392731246038003908800945467552773689997782273800474597322284239523014434618065387383884057785212703552867060983593696886094110691751892505223451563786557278183086033332305715556034003276345582874965269192403692524681872772168968306549678909032513729979263513415888736090805254557455071347359251233406366716248493282788928705897097042524666865580662534962252008890541534950744940026017815687325044829405131814130108106277020524237736003144045757171119832183732110036396414828456082827704978626840071412989266310335184811343841065084674144290364842382783916283534864484328710467723986325377846084178629977703728269990979397384150138375276251094226154596674513012958666783530468246429974670898555148757347849930493255088732436629790315657920404611252173002115241616391448614658313961779501448791770253140426944350597607167797941384965660089250314727512312363659457835859284483347161935380437880410143974902913286378205257992201008743175259098119885855451845408745703768004327380404017771518397439873211515182283677444935223056176737807364931555557493531134096919923546889146376748904781044270241464043418964344910954865620177775256734066192678522178202563749905892962332261319983690543805241427443195317501846513382233097846981277108737754498958731963279591390884024733650610657334696860491878658074138776845798991645672227035600893147767124193989412269213478685154278429521694206900973993872037533573208912609081930320018363727315841547109082598305435916962800525932973453828730388275572898833231193715456546617512644863630390801343951726381643026397063180124459630473346666572361612138576330145960957805058448256734239146070437598085408393769137228723377379642694692297846628818940590774086222776118586102152558846813643449111736253920915651888715369215297402944839315587521004274554704634348250979102698062022428710477377663270779358142163420983919476572710759876591999101952379595550947259509049312730946667334498730319759399933099113658683840990713255838219233712735933852855215578473957859098490227740699452141757269302772994012630084924169000758173432141600335487948010195322801130641545798402851923955002034210357584762041474153255519588446242343467976272819075778209484339823629210478331541991379185522521005916041841640743140975270168988560757094588646132413851752624214133868051768283807932727151869893804656125679858078965241484918157226478028245695699593803826886134410523065944245774466939968406780838789735728949409549042605385310851974022412350476181069548051956084817919493015822529203495418243677056622293020426259260429933843421391960865661683958841927136018816613845551687968278950814873452988422641059133826493258870680517068295250700432888295349691016662573555056808616841191873001822396643547829297740808817258901017822853413973018115086655846387261712671726622155054527570153717434789649858481917007965775199357569148549704560899568316103740657338852925237153922674814020083594960905054365798344299681904334794920800998948930857649187306068525751650354286107790739609422323792710777754117873754298249477922766258989545247073185389103607697734869954466753741514744515513503029835815301949070550814294869395717659602685482889113260537383687838003963527025217799956339106155016831268416727723732557483779592011912070588353246032046279778268057908964028490643026402949791827161945357393031653604041981308481633899538568506259283108384077883278714838860453809042147386923222947049985761527551806302558832324468593086561724868880573043561998640611768149479274181499020772590091313206836361602095411070664222435539678534713105561506422053851856632706692848155715030353640487065685487206588875767816140390118539563597277748492099105646132054335408036780800860500518615318851787498477390633227256533704801577120706162347063874352604340342678428708781346524525570149365015760500414584681046625585095539719337758446084134851242979341591042968035104455307060390937905836776404206401049281490275653805596804133803231550776188359497555485592960206375822099420883959025704754811251081605745960514181135154181624568147357592844158758724658350484308228608468082345227491055603655060396357004942047043281696498383053351549208878938409319650405918832886402641472206642737099071150758078039483338730391147837481919258404417744448472619564578085922130616264128476383426376266101564894313926660198309384192010657774496667261915919879796759666706793791569478260597610572260536559487255609924170585930415801587882421009734773120778126474042125137250105542227362185111165325652116958228445259100804984057075235072273238859351648379214028956352171359793162456326194955916727638502711332950457501594339213011220989034485206385159686989535612455281533525196290648754398024441086613995122554209958302336954207649058968007820836515114549756007467930903924588812888716455550375726151788164003428515305276380783323968930433727703670490077312862433118674823926105435728109570617775044781170734911482883536063850137391673102133777864635032692936617208145065734682126177641514119021037641352524334482495539232614049459574928464795316850482524966000817402728615781512208884687850190983355335206471009750188403677595659316737676271941131867430376546171309084154168297014969649584863349627521101250348203890817503858030208022113396386609833752506585852414864313667544817643713459686943926825241040974358264593003332477801773124210322576409894078369644534859605649515311603334347421638090770782602881238324081897481076134061068303933640938082371600771346150878165844809886370896452222791614238349990788704775588731662719845907956815734058859172644437857448983988549875757296027293999611924201741123212257332971701610418493832219285064368263395761736152047309472861584629250158209560615915005949282001339628403954489128730613424874856543539252431700591277586862246078150485028989387473396136213124691508792344540890535297373740964165705527189211315276563448773398049600865538214406402740257852403833550251289624419755458393918960252215917056399103932832405226958347015789994865262546485868619456544963209566392036307814289967893324115934761848258835244237202397419385777224242537738592314190679420296789566419778540595046666694028077231472413994024787705378786083940667302250006049540713013223357151133209476540261634199054997441693319281929320001911209934288830341876891983068122935365163099545418301799956830040165640598547314157889899886861667758905694343838829753103313092746531171767453283158051367560510985182375579313875839086926398927759839136054951624271110758647822791449158886282478446996188375529366012085694398916093972030721731006627532146457217209930901103951372329418057735346492175064507543298798099755087112975596414348693365859334754133788050062425535930819121053297249117734195865525354571920669436903387266911320099832774323001608221795954272353334738533133038203557922009974109223982613307344105734583166387019776660729305365940733842041948028589699322774269337567920985326766475615838250249678809709151489911467255935085957007608769439292075452654319814536029973439050785620846657102974177757070862326865289394491168764288515635989676547345831876994336802996932131292018017648451228403412860303469754994273101282679402939410020505222608450588253074725991250829451909657682096650203169382958990783018645213162745739398603390128038437181396218869901295623627137625482375665543094504517205432402499664763941692729256976327547969415013958919607567496966886821641634899764262057411034303790740532310711522149439134511154020314268937117449494335015917496919151325463944562258114513551590021491793730350870197535737471940920127173452429675014979692033030831726214463010265023621659363963909996893092099218819598192107775026656389911625275834280184136235102773461036341223693883890637065076263363964764065738159469623205878777139684446983787568464860461064646678024342816560560088476488661735491874517483691708183872666891088044679197047527425186763061629295022906192125014622391967865432314734002582868869584689209108236145993122168814032113996178113588474245781664461256524302064152226269834720976732884957922124556299341788163087115660594217523056381918911515910132365851532259321171325194110717805540729916827520954295639978897076005813825471624588114282650219112060966457738659424420218619861939139532970741868586173218130984595376096515071115731077559883244604336912613614021738401930759499379244262893551284268152961758804739294737796341740864991086322385357453787907509432524409221194649469527231844579123195388898391116316806588079171694351450321769556051823393024057667042616015992572504089976778055724058152937505776215806581727154774261743894895779502683215743558580743084067854974816161415790098852998373642238564365715557719932138943384656694745200718628897984095548453167766645043691560473627574814288081833964185705188277550968593889161175616412867383936263100742880988957613436402222500661947836952455917869555546387843613964631038913251043222800226864507676931792226528121369928678664706055335115573976408203403298408980995718087405350266431635560528496429282800440024134730098618323774838919566894637082793268520447561721036119589653056911528520104602228239488244972202642520188777968345762216405292901931445988250308915913952381900032787769047198409966686880246133781026193599953216617663659105393189441482281157948694189082532461159756814813446465931115373886733904098921344175288197727017854092555858871328663185167050433201704419599507601786083500450950572724792488768413059495687180190574520812065552518052115370917954029023166721765051570380478678006165673982167896929842082089814403330229711099936018380638432953455248828545776434231888678316772248754602156575399980015141506342648647384778727411807136537569910904457695911110678690168135553246334819707057379293009516284977368661245211324521700410148159607255345690125169231003561413652717745161699194328193549194003677258780770032823945719389934059122182444542861919916711345929730775927308477293403584355909425589936286263120400544745101603523428764378709751055611992001860318564827540573164670745865953827519311728305165347497599663129503121471686682385837133208828259348504951470369966326330585346955803031765065711442047297625342592125426019825615408843011981761359650666039271430968876493756669065706538523141538193995031362768286707093811852315350009158613030607426441661705731776115923328530990891882520215678936908910174611325106234604873073572145351432408848393418590016064875760289321723869699728085535726706725959324991112826137208175407558914411433593585262477349667787129008571986301293334578789146885177335419254621941156675528034988237303639552431699966633861022419739520693590239113653618625669608857745392549584839283496766292640488676587440625392964232330705213106075186643698844696620070411455483711716915790274713746008234365138331024929749188024558505940388559533508922248891876955023829155774503366344762850790019812751206948139825226581015750888018389008994937210191543941143992226715878501585544812801904616854113768055021561049236653468325888679195781637575816472341056649958335360046139989937887539205464788857653468901873733921751771020112338958075584694787726262342606424214708920611047583764941898149401844658129798302252709576213201442094260523294641951225393620859852411113263088179151783666381607637788019304211654575794938437932950910453299310410271146300822113727503418111457928530904732016677504328767385535662044140694215679761757866718524163456659158556668524756476776605349264985004389069340850359051541724840165370524757910055331874273282752418805361111551100828581610185460678573311562607677969927050031845396092808285056828041072780810631660875022297861044861779382502028670314339558779596600256271987192901018084238530002133140480331903284582842500771860191474184244583514536630130438026241084750333863108528926535566537121375364609934948638974425854572586317205313124564408416001494315317799259234965913776389417820836540407541758555747346409506093905097961261959084414721009992377965740011924658838388808231055949406892610166783459146937815630296261145480797018464372503102642065103953559710268076906917252350610785721096609271765085820606670013501509317434264698564825120705190979182280508510608183852378971793424219659808915225240514823733868626833294840025045685611071369169173792321455038976457258887206528774489208730070220456379061163236268617478427819596996207360402150453489727537790836900813486786791577417584381261825162628911583377940534272262819281863714297916048085608446452271237275789254825162662101629620874805032224035345304978081514157616821167518447821795997728249768884343294674646093720330089616169759060720822156691974856023443017752835998537882434511346429284099756800616188089849926407415853266507558315471219523764505946322112846271556901743483718346590934027920318757521125143541025790288435273106920309208279834963782393118346985637822258438340147011783599357242484640322085478569977865578951226357250708763991700502013191356684819385801205087911095121648601392249275873319178453026272876304775945043134582425192026255984950025347400362192340652272350777578294266564260184522768337088850911757285220088524886772458180877937496918742004638195009547344765047814445072919602298041729872184107565431293399155389902945414328304007570360658045924661669971178697713902453015634808182617925895263921166279487917365020762567888492058376678892749482821265439267319838389908562060037559189456832399839811705210126698489795787886650536792192591709017603495440917501883077452840188000487340432222096647351113926971912244960006077780304258339331574071195071519997993397837401800247283672965898931209157275920213602187248158000646634043898225384766153964615779199034913178441863871199689319105320699940759488208667035751588060620657108960497961823149946995916186813981051600734924003541508614168345012939373050482769520668344329399231051576579694060693377802168652912138847777628781103254161445294044275339532882096922546699691460099443403320311424782945229000670902774854973754736244397946024946452501280336444296188964403098788437870117857459358241253721387861363598371290615024360063208698125568379247425432361031436732771431215717593852486876098338511162693518455405355055730958616492113570281751148553729560531157589025178946590977632834785165770456161122241114333893488524241969061246193845791969234195111764365139777982752363758746454116353940096759551783178915485620636346147876434580719433216651765100393339814880403925393788886810101291893883210057487300377529937626057961922367712412202844496565155539692260135606999769368581979981793647948828795494203189546954677207789530126524149176131554549347315028068595848733925614004016803152443467344586948705742530297464013861386015407804933900180681529024404937516163797937634193706332915756540291206790141328773449986220430574961690320146809832875351965168094877719058150997417838586072663794076160336863436286778190823908293833741458335249852070427893964451994690964434252719076517232568048953036498153283056034171532564067584829435173662014954750452462508748751218504564498580438031315586555116703859306009503953591181986477330997597185811528762759452813479441886799031297393988931486447214014517467837072955932467575450913607345817734032322234829595812612690339972371526816019100210797283676448906614066704487321331333753261196340310398212953542769315271807158642576434361269872414244848377211625078201067836839552221089839670187825900509726118903452420779269010154901608868670355754118918500799069477478523617078859902118490060880849088592480607185557946480241835761190643910423375106450837960773811620446490206824306569845997146911299391005918370181072949454018113454260819774741695521180318110352864238853200431637318654692218324490822395491917868047039016939696480925414250390701451215640759373110426472545521636522068181409790539141235482499544878223678725161615177085285613208794288819942057386370069378160428857556417601754307796564162826141709590983093490811300682734066902315996698140084650647798401299413312234585248169873059260942276698951381030875866545891429978851809351632730777835062193438366462159533595001029330401340890062869705444601044845473858099717415753499905032307521397758157290261306531672077389813982849155889288937441509838837190995353986431474811379937973696836791590676975076122670788347800505586359627592197519972472866206383937699655891307019885007064472777646343857134380269496698896522576093713634439836948414662924474519637633189987198257039775513427345660476536275793752127698784166259882693799642429199535032261709732408940897561139457001779095086835000354165416596284903063285404506480697496737019952845893309969664271898197783537849524267079861182400379802958681083086714788416008391570826048855351249204288076397820936615679779988135372348000088459848657932602317951152418783451117908537288053748134513895020920260728368853694961782316295689490823481488776657185756210527433972695755563778268991033582099490302561427554740196072211517177839966752222690946870044400169319630063340318157318655400147602930844039989046213333638007599103542188249587765763336445662096404601351529491380253185012277651645330440180279975559091897940599890895339011319552284205913464893210195951694254451351420838295788945198933272300800335959555827005533564605835667788688995528883411687359123053468393540382729416271255130848729720298216098088396489444543638689204035150068717358039991568781686187378391303903639549034742259615450386062457352189356489919983121168821854950647764013978259468193143069472990069733524203463386220684824412662522094152911793584180769337939683178914959968284624357092690304307725499022283479644418033233158528497848043179089918931804649822540578138022265992971842935662001176390975970131492463197079278230336770127945278520752725440139847983081129822149866857620877927598426134880146967456886198481838962909744357308186612959346821449542473803073302771441872178889580296761526154827731024334234396125263014904812167053138857481106565911639662409744132248362257928594049510805630053659565955316647211121812276910835693975865105312055727474150692217038111884785735338154590822319473074184631671200427166160363333434245250140811943857021867745837126116726330208838053972060672807089966141334632888326676747664844990835720607792658386050339580814751620495688199453481765618969606851535615321985945574483442848628189026552190339086261526626890181338170430010645939395507989138123840521341512547764610435647806205908739874140237699786211758682644866036903253035402486299025964670888405176510906863013654310246394444566197466419690091953231964713169776044815231193519657214935027540809617360737010912435314104762769007550931766971674683050196695641147236757593943944089102953475224991102900584621335214784527507134041615878339379710301061712269013250442072532425062388613076361419670739891840844238231294736239455665216401371277183392483657283826040892581178065937401455325985246030343950402009813785395166029408483026257379405807182605466018588675885303112513399565040485462337740582779500096542905992866308456971296951487741543423948054880004345300860111224588080686201698082033469114927905347593460946894079353997642111068581190683495995829526051400282743344830084269143349522598377410099187699579064452421134154309669917988204935404226528768524885864791923040745457424666441195899194712133707194019361256079289047160469418590150870261140891866373316345260341418907125158129520174287756876737588630843481604868668911716564087171637679012145541203352108693118839334473448852950343640044148982457490081919595450542952187847093888419530403093669490662373882566100697983574658660829629294716315726607535787477751221265020198459546167583956559070286768271891218267447327174983982003919165560136961315526127433502153368078791096075239775395220735127837986570491226200068592388997351193723317212273585526681425750225368586091758108469461195571264054985994707643139146743380712572551609498961707296299196301526761656916618451700935882513569273518581757296136853853427750011777225911868996813840674963259480494751924728613159733886255033716354189702025610350357537458056083707884145063722710759957990546526131765367260179246965227780608957186647109026520949930184742731764278659571991472228864510136553671834542351311299927062417175488956813098832598772658230910439206832297134104808623121833817479336418168350178567144069674607414248375130019605815961363794081117739963651957502616198843571292042174319927574683713624074049578929954542925902687750652443529603858470203885634047569443649889614793641783634742485501813490677491598131106233907051515837147008616401875237314080988458237615017958212070437021343534545071156022190002208177464245679737160045840806254886439551531394571842355616695921623345592597425399678152758729850190163039611435707967659149566669906525151863604728859578566740459014168061577390946255458191833750684290259995729809988847935802583438886422123278874119068609337214244467287914646520016000094623170300384093697510075538304549871764598248002947496035486944872689205905370055758434113754617737555382515082596570277423591737042774270191508215334984216933881882823145706972603311496982834089445935869253547903939787544124871754708173110035891480216844308588484492834654880564177311297062213516970505149445409187182130106995741094388270898997267764965583779254495638185973525163727300877667005485154424231021914539844278513891736457389192284806320474811092640531488905867267861707002351958629969179645711446908930294700974734244565281612280566618325653967127088730208048253309205032396356319050869281001087152333705042149286741653544821665041857284917423059419313151493588490107627758749171679480721363091144799767785691376215976611224932426090652537726506961586839955159190117095060120842115955978987611729420467329037567976232888202847240401786513826791486608702257468776040232682550354442987290780240292994358956624053715531489527124041276094219575078201525517769207564235385488342403144509908626643613824432070441070915351751710564677727609040066766690671066219210157818557873782160812637041330451206623899860711966844225861299812594407892015963279470411640223779861805674335198730237642069059365638218892989373801958258512992771026738778458717910250703227371627921138673259945429738347344295047350376032744296165503883018466814133999263984182672313578880780552374341852169918665802360385186760412733217976480976358471861102165202886587324003019700393191541741743962938285863089361194750143847622808890781848591162519456036208888579993042122155103240715714674104000769465127470912553930188758477041798603763351120784288749198655807681513412049132516123759475665247933593074914981861753544690763936411950551306250868127011796390976424452468846089149142580505532071398786377717815672962357248226802929949660931583110887849110865570697913621382611356694303703883722372363937844079852610259549408082688918813800044544725110761044908677607832426474566823777071386587026781633817159526382638960341556592647308468207727696066559222632049412313326616924499315428065476266384498665886808922952993949588076128177290437328492837613980465672930724366295464898056702283689009419786939707072042734303284658121782451663918309171092261410211343834807382318639147679940447414774538785796690744268381332138125383744565308840526670228734974565157599705594249596790278364565795911392203775372873045763388731800077544425881115577137917657658083885825869308634622724043180544334899686105245252985942469166264894762056238621155951126326227036608393374555398116969577885097776410830060453116432195059076279571678716949355632043856189250007858597966762483526076411502915708780889663134856269986160328698294217288524613518913645642274540907364679423515457276519123302123855831795595701252110811259127319833564544518590763182095039078503139602891024886922693966360441051929864611451420877425965737233986300633606482671326289716033128063118962289970925377961046580075141276287281981784111458582682007752196894538451462085968286486913674201064322397557825086866158081026297364000247266274854622874066685160443337024794618307666417780457935758703541109938153842125316461353547139311952260993001053002770060364959616146588914082701769871129977176502673015444509068309867740745324020343828205873372491371076506127807034565143325443698431998695007336992114533830009461484345844267432808192334898692341794726754214299761846389043981073178371433492862380358797010246634632050621420545223804028181776920165078863710273908193086746583999917727323744819333664559547651788449630754999663584209886215882411251639282129051880303220331240913115403776761849845324430296128872488944571903735299459568270637845229819560367795969671691637806173449494233791374179033765354313005109218871940651300041479139941894466368747596549337590828684775832937240779155938769651170826111396384281692819922704645513771579487465707745296069450649437139818215210416144468299248244613478400499544079066506872667778479774092415381777377590806951303266450955867159424926861965173238999750016120350210596012194755016008961655757578458156679560871009134441301301169516224918632259158562753000579069117379616921789984383077749794016483647588757074951365420632988458881454394588306000862956447592786261779066124879516024240925287460347218511258986288771661989600626848226281371790809692589620953929856061739179796938555680455400054229644880777753485013718855238954488326029225557570959047439883843887983555816078130418225865657139529608926690507878510166315552441252354573951829979710132231275945314338376972289097002583764396788730213942650148381724057705812806964396023113546151600705367601880769689629652051977009379101850331223139952731901486411254897088617191223295450269757628887352278189722061169227988186767716794298776810307421344127348081459240940936414654808867928160182408303717820433733471537326939820768435393785109918862869641386564343792595858984779562147373756786550546189926712759924017927886968077931761542177824640497050729780638571373932794850196320456181053075550715102885979816053729927929388562673051909111808915912845625893469960304969511791521282150398632247934131602066514629514713714562977710655390394718754690355922458216486582393912564240054585020738380209281398130204884361655924102192100832324069365019789575934765170269404626639401452843756329538272088646899512938468766339557171263117942143863659634125342718684002925426958323009545156067356452853285668894073571930948260040000704525449642385050596272143884540564088351768056596914306202601623906166042913353152501958620291193461541894549332329603544923458056178358824433080988305058023704101619240698245586858352366097758311085509119739460588185954945802420548234986161689091274090878213703530306453165939995802620631494210811822666431376131265417056745505832837339267488719784665668283740064113695460264817567781324864663567404161124514147690882979295344425873381610257137108802932390035882769301889414049244773756793354844473173449736639339927685270978210367461110880808186345477937202667215398563915677998558773683016086684290577268897602266444432353722508450801205344098177883962600374759072399440768684877716750741998652077032678269845160056914538637970831387445194523574710413049852004808497942300213180302383099395713091389433120169023793257675450919497374397242882091450049689262819054406444590710414906130758065472914604338000563556142236314707893412563697755267147015838272567322161409376849338580669220326373387423887809933683142320010741197502037170710202469550537399528798352301235067981029778557624253826603577288427977347248448892360018683029808106579454596634856115707441606345029813401848823856079743141744688462369636382139089158834785267172425693002377973209866694817619057781010508169388533868553788653658473944966628247676890700897664221491107351444990029850402231917067477736527845065571128441872827948527818100210755053949501627237901333060860809213914565541340947092124442301282775558891013763638529917978013604148840788472319600894438502168167749109814233745437352346236963941169070674320028627533245111503208388859651514337278815040469692300431731985087034337248719078490080954329683365060794262272360648464507492739138265010056251776474516441223724115134703164668339320722012997033292012741954397119754951426631430205793677185255473059068923814008116877048348409522554361269446643970713914151011924463732852258452388088413983776349873113231889911083151293447005499621937363320560112316374476799488868870058299196600818926915612030214356144714591659282504125518709850392987004801502586986392904599000389232890612801389351966911751853474042484254421621398325159143939724498410165369967079901507434136919217929787473506136773187479000316611510377886570674333751361924521309500329604335076255270967257525374812673439073479059154240955751401052898638402003119345502790106238959680660130119751738568430637156537375024523760859991711281055688163597952445319743916383428374750850588143430578403041107292254143536668007328950867089616879600012419725473412108503375757239374094914317393637186561511354336281989412403660687915557755993900278967926447005041083290464811056595943859064474486650461311926442088964079666524298893260692023405807887668329035869525232802264018532124105257992308957860458471184984993980439268319782524929739689194996258360795231927105489426747418109554362894766387349941447259108136424415414106634633216672993717666489596097008034178197779944052062353273922483642941764680115618069936205477526215872875044170761957713935032444154495802802869074204273311034553607680677647743622965554251401911697280538142568439250014835075558962136457042261932102602226864977294940466601909164329227742733594726093012814071764642107430682300005829892164670036417040037293180261003333363690242021937577260103761078242117255041374285929219355497032881486670544786984798427084788815736472137572682719912062588222349377672534628337539766868656047074830591685092277543458322861226960752648602189026089812915090643210911429752784217316125878539452365029169980541661981857834938772177755482955058181895231938327072649908856703889418267349478752472131531838424321935201221191502739339070085160746311613944277495087909985827433537019140765069386979321116173882110377974052290697143550942555654882097603004933403443917861521060766407518012337796509309156391411765270866611369857880070930240656709186741437020962958802659210713717695926707428354234151017238422237242314294882592743006428130454947555364175288336000928940760679224877000590646542088735613742026105370404601479341695138814574982740570819095876476263631269557213911404779656238081561013026695358893860362541619890931962486261051062621133996867217927166253853273021826495969070253190498180638812780195985487769857037268001713072841713643251482648301568814668156438388176255047916783019102267363283723252189112392697259100026052017008678769684020796682898403090562060768278870166345226852309619348318792567320222303173721691441232597927732473924579392396346337422155307980176073312192223971663233150976798498872755909760661690322613147632625051189730180139563923611760556288039489229331276030110607217526675498748859921959091639088197100587673231780226123207797625138706274872159661493900415975066216528316201344779632254081566714933925913897515908356714783087387584044598020942916191546119856282983467505153382295021364727848094754469814200534230069955912720821681899889894503760693276317619967753887092871132955470534187586384871484012156409105299170913255667281204046617297282006442098028994538812718814802482179726215544058993867157752881381764058334221529009461146193814994716830684678016629478493764880859826371130254561356969608456095947272334803555780424571956597213822801503033398702737002428995316303123654866269415098000074987400904498094544935492023137651588827800821743087902233813569323511002331212183489238512098862659477379578921020137318801996295562363770078976670511182827300749311360276786534929231133985091141909551286295622186925512727493328992162664114166415160833007444858776003638163108623734397248187742494141077171535780342137860819521331939593194078453895912115588116603695472809800817951413707966206875005503716152995167876221256701378467439733982232144660884230921509634895912883015459277496965375883839104654472030810405617884295312002099854732252397270680327361520228809948974397016343692268910415815193824960794246631907566963671776289725455636908224427448217176899046189548026826526894466921823824777469613812383455898682516800210950462843684618447131813301867059991456924080706840163314491509958063354744142234892977750063570373238379523012881026536416808633173561987899123160417697105466915871566702203770211567875828145763902495164410040583449143001072464685456209801275895725065934256133712050379822994702964555655030249180020737023676418669722050278139197343921542068437272845720803624848624107646085601452189170355090723695937009825415467652296572795169846627139208758163412382692730446647188618146053358623357925442577277673924814814963024839122396870071078825228020703349846979772716221608285638375453365850587116925273589585404770828020262175682156473190696775741607812894572390164204514706011092919215949460138496174856413211710337562166785255930028109892852983631605798153998846818788294460657165198262308851068121574259089830637679470742610014607785052914481671026060199017818886413804407058239722783109617273832524377543642379932918087594718147653605378081821617595281925614479458580797783951319583930261305158366488588122884182562556979128025654284243125271636976570155366268153778529983373262969018092364055526957959277217491263926816519078815776905199604614417677275071438464568452492752532616433234299864955914428519859479692728509704724824293812702819102150887135058701227955153199092212740058726106436913453534380401147829688275969302520626141597066744333974664769861231710515111703957827997604430370868140153933049734937889202479818365546149107364923479397906735913079395871738638850265377629803244971847513736822962594783353834190303514321753367464922644658905474458342953146546077121471562029233155585998883002834936862484225902066921609995968756207172916789114822222331187714710780400311632396952411976971135242918358165216332556120215824911016399895146851048621322915007765562080698664221177709066301621687567577346742095064410710107396268192445919038093317100979468939253179435652099156055167324027681402428065018233069198530531427569303103247803455731298132099221022454902105911138553362371704014527291033445984669353383004630436001973628793699310124726078842278807344241104323755698726245568487809336447850352948896318271755798107114236586880975358217107080898282760355763046624568020265626771715008516465461713530259276195497648490088750074385520967495390037112183706285373721293374351976902392550148803847317434447558573789380701864719877266527962703711466787213230664430075187782576703302965612663613821789858107767667617455214267279659881739498587086310784668913532506467443498761974678870906871689006672039517715726307501810747122875857920664139961861058691775014232132097617255330668192011095135908270063870965845040117001514167755553272527806841114000402372657883726149188260880435188704760833223228760182192926018568531651775210395922119625555227383542616559451649614804228236114551856026288023095640555807261441819848515866497762174915462927919511650911540233161740684845173437879828083276084447677788685942657528286957990486912260434878289948538600540056321859214386702346446369116549675410148770239168014319529297950928412566515722837434659003154354183556493919979406825670432207215683451327865995990113022524795409415910790416394083190518213462961292841397107480156502072997454471973318308697834883944627288620749183713924403599142396480620647864036683681703064766285752119390143403520341039408645286495420885089865195235606862261418772457890923892019642498428558762016081894841281422815408369220460568048224240922006585526791069601733605186861893560666019914245316233467892562531296407451939824876449392153480876509664851539437575573126108434985664263783792054849344520314942308612510260842124329469367874685323715693274845864791838715439499038455913357844704063023204760179762542886938047138093788853921510219818502361269330836861932289428470570013021719551706904953332035479858324107804325758957606905888519608878459989044664388220906266158981872239333162089787951802135776659070385441491151300834198021778726564109778593893290487651542586907273805441950493144484820932207942165351884559101052684244330434164655506418756636801164309166554464934826209023378118095213184868905939674747863306288683681703588005053184927383509589474875476843165091906629899035332434641631859161854564787074159872759467700523547025470642604698001248785937776913080703591651459168125119780469533415048359349605564736050590813810905660037058016421880186278869098032874790567604241896676421803894783394293902173861885915853884602716132540562751835367158847337801571443985954608650277099968022709252135251022094905906469223062899940053799842888850203358033349282819128389567104339392313793758083136172570191160387735739575673659303549378504542531298718268381705824450373925174421254769871151858004186843183387548942269122351351143870010936289282310444777676116932008471340063014123879443947499538800541590310276823039729999353593200143307513212765621507451305958642746821135381544009764145935759246391972623352794805633045237123757483878931075584507916941779878425052064498187724724632950844104272569707401328682730159986445674458669772700687809232960194504094651498560209362482488779321976326635899052341935797031603007013229942082007644379373476430750735848062568737811679386231801065780095455693677732708527884865235260160334601830144113821590835877130248708321285552360078573462122875215432831760784218111995892887345309043137691457203298534393313552991915188520669992019809128741220310572505640915132089500987901856803307618402033584924521546789650977862963308572875793392331670376185820042471961424050920506661955631854969220767440655348173695956563426771955288083580533966972528261904543393610595373895233409740058771517194419069762726856197636153723338308087582869850091769352499487733032699433802813674582212539439186313607660671317807187820392306597400635462164582575429071438586817741294282132678950968543661562761428365179031952563455656109423954377815316670540705372302823420269439953601692319472495308112445039671727911555732945056913378982384499426301267385340640247580471465559931410424941555961805558100919262411266598825245763646369778155377403237211513535379115320306175157052430016657244756196549023513451892938909064244706067142872622213755534207401011514132364243418170228402777918127181464822432142170764399535200712734264299246172169606035489073963894006915810478088885024556741485734306594444622436154947552213191938632845151749554324245947173593519820082390764590986426272368929344564417839108545062676995679481838655311636480228587493650091305953165997103983301208554111667019925797559451073475749981341901221189603813267887318014100413354910943019256902818341901695420537483301845411657514580439192675856992071077697746179401595750028249751776827794442419282433520019222936290168514719809075764412469238877398530421919906857841309400401934822163868446635858610991400028590774751711538829998255337444218325600420215757754483567443595045921530122135588656402867067803078260061506997546075504999558363482369126368688555622082807981498027193487734819193040434675161443313861405496726229555458647770245974681573063748283034911805886631551199943870273905401061884330498681007332437044021935769984534411469070049235560894497120888356668660418136701656605227787998361683174645507263380637971446875014588791806185149926919086246218991142327442273675738788808713029970615929018955648889016753300989849136144823760039179532352573367839911343728581843070341927297774990418925857687902129814273346892706696392591946268133915971151983908494074442452690935291607175237195997821398019269169620366318858206537557193272661323043101953675066279813854761889262882910324447967773323219990294991224812027837540354112939967385424692286294551719540271721422870379570711585688228201458042996939151211485660380455251458281340046916378441640319989547687176588751865876687530984536237516868029150958376756971341206042125616647782629884459989157337185524170629363597429430691037015295758192516483843553928341528937220703797269007728774725816721955534744352747562574782143806734969847927863138115349111203081223354533305819319499513055118295720403228533451956865401567408317994415088039950179295775330050828163047427419282429440000267379696950683903146940077655276444975516888086351374009439028818654093890103621530603123217000588178715583579514167149233067200976007937948363646421270320384315154367308604307856911648889959542910055377610611884729701087083661862568291929082810578097608444812056627257162567792090982748127102933656898131578301904409158983884836979661197678819558878889158941011780528435952152166624894327386867652668018736074396508411809650710963664334056139704315438779308167454867921248492584892664378265832585563189903770697586800241609016370477112510775683427258354064068214375334156454715497609526274581415814363524369793946677526541884008989955020072657132484357403615490716795300642106385959406523455891856129375432763511669772914448601880686193401005894682251122391533187318548270970921500678318304749115820245884574447430843035102161279786942381741367551431405768680123664730173954527606302889564716973566044004365703898304303287545248347015770913736459999433771344793812201722862628914429568734002964749303135901445313660490231908750419786119231856951087742679715725679277952990925722027575002596708789081143050294604996896947964561271813901559811891424564212478417049431573834458364075316875751349386534148699960386203193256808811632155290931268223600293002560435863394100006951305178616695873163401035270902763696965862002423702887008877710722819838623774386667589698305018176522611133636544372726341997148033503300067813983613794278386336879633125864227343214010959495220936340241795866055022999135437192188284009622521767445597781128472144504521247760672314800313050888853952827633381921752045314069243238577459975210427693739989638870142246627178108006683811000551040091918778907449391824296681548770879973615866152967653149175895592368810814467606562233875035027402935939972043603543776287052539587139103662419849492262796998133468695713888460395774042581965140198863550721038409180046116146342170015132412993400099175052086406320234707713804981333453324606745082081900557682013481441878453870006078586907412419004127929957720310104393051019241261465210558228470100042141916832748685663062987201743726606109315580907429626990143459317199215663217249211629995411398042002812843090036008136897125371844495873147305066357812130118382113178728114697593170312789480086559948515511768055706930205505656068441654442684893435145852531905984423341702182931072423231698086685607570748180661267285265255726091162360729048863256575969445814964378411643427308462254510487305938725056811237568132681714887696073981633836376380618345148683650445871315013094059352758743785358088696595092278974559589229817008582242641171774599369960237600990407231720023259006652460067177888592614277572452954585723257858419381769832957082565286020772856843358490550435340544582621300939427276403596866098278466611984875915089772272381176883550495491694493431196848362176070417774360328072255207744664749884309368927122314715100623819121967929976633169501132678309952144219931681128071648872586042216697006665080904836353377679245455913243597175763700034599762840064716963174755634751283216528937322892717146186267325759845492727214768438876515391370136595438746193111550489240868200023186155041942102771297291050642371550131187162821227270876673390669152021421514329462052675178109851182743555113624932100807804225989853145176219787709902294500839536105165160381356131638422742073463670805885245532837729395168440037603241997584080783010306912520135418995277865706039161245862810235914741502622961247864280876432337366354613647258823066690038509440118753600987628119059264279951611216424801945568421470451208122025041531220087225279293493512815034875697984557119070620524774009290309955743624458555406424981864774640320984848252640565939483927678746726790970568269677637361307257379456637244488859313960568023427466751155400846032326834541192491334349080242600492132108335232438571493167007701404198324042478356356911102136003363131817395458292309380566076912883319135915962879844075721410278778313724077742954841288940151622543012933819864358064288619806495010350385688502675600490276306269279763040918309284266253789414053412889050008822461695164940019696842365417655241755700063194193104817957917800542953256959195620809325536098234071202078857569989282863299983852927887753151616269678335892453881504786652895961147763094134076127068011620373274502866776329036282122043725001997918308762625117460618773354740003774179411706520044742164526012936526010717906105064376973626745413554024725623642217456144686275820128793719925865599659796700465322431335514620376447019455588023771538470919386624840656655077041147361470574584381078335420337926850989870436858306605049766869296683000324928434596752461214032155494882962560368133527183325627328622864694821839940386170313327400106421781239813622473127549052525810151536016036375157017637547792498084617100069797557851866514506297658216386225421581348168096950677789935515796389660295050797601349654221177046046823415173489446605321273369349167704953001475442664772236342889757233005868075243154996515662744115620692771842141567331496222941611507581825248849792352084816225657453450107449063218240808796955101259754450583188624731641623071688577649862918148662410826294575536363596881211156740146431651373227245243139527780606151663987014251892048413167797073246418449960239686955267828767433450498934612369507714899078024942354806843704282528922359878346568689474507231472122681367203538573354258269710958406441362675143935092182591130645712336973258406761492350111019908046209151066543311426226277490212035704671078938035414832967468980442978482300215870340002914889565551388865064689440379097433707352299223957339030577153294622960709130869411305945191041853609070835888891794628700024612432759317601012239073450536581754122849904742905637225942751075877323498005949878042791389146420617013648006526541473212785600775207288305434533180792953800254972877625168765953417495124906584062503341187748872183786545272360913375530999366430508965399257605502453830371902153696137148233452714245530249918183394832794548454528190057019715845269522191017439789703993762492488988272464777842854356680558660442349320800252817693748577456989609318675748435079796212061031104961987078491266270729644848387039366829284616490564915193838353618780123997295681321475730992651454129290071537598719237651691558658976496893929105600458078586611290795020967205419338833983021876092970426311533558782629275584725307531710268465467218039556338799235987184955654605905419209569573609041679296639000454775167626072453893111503685945779740256011017398042327529803032445636297993606569578008108571761829737502920381577881151341118960059329143633558407130734181867304535793209851722856038828034780987577640284111125193646516390526570666019312728512299186726171789899321671129634638820280701007669504694046641509566411544941176558817694983669386359736565417448390874599407428275322536410825095020553949813920468157040362231906541205344133606583896396986729179962797775740639388513946577890062334018018809664065579469890779373567073702867205407241372860816776245989390592520545103712419201713623173547151243565301394233941552332175099721975122416592773010883719891819585660800944726368330231335668933273503891810803876809014028301318868487387268873794701841242420334076112569837434098646670623246902836138110896899262615773692970578215320852420674769638423659914354347924841122554762114549014568875539673930218910000394944753382133190916697278234749925120414019029204125619047903852456549736463957202082448401866832120568405864013847417155839405021471607154219074726318543524846083676772242502580757136712244126681815580397945039170893698613199813458526252458922746915054432847726826105540764660066662683346901487653332953640291101767270625511133341492391481095727314269793800723790266057313889677846271053836009041386360296413850853020524108972326271074724353007382192831490413456054597140482745904708987817019678964780889407720865952860068423816383259832975709806709169360353946948604963602022373402276236626227449941292257503899036781651608163199745290010490686099434087756425110418379247238306104727690344832972891085624268807104751394780332448464524857311202325400270611334144929270079674358872049368240457596602661924766171737626799001552184493497479655487456369504360718464100929805433796903042762842101570906775952483277856912736770184114626063286606090678809845330724676610000688661186547238084138862884363307742894846286519060974472132961427749991400846905609892908890451264997281372760889538738432992452157820170164811622518376106288963414645004611133881549478112169843755737680840375742748083283337230563371966541452588409930695845856090329180684408326193587446461029394957899891060421793891658363831192443856427243532712125075995778664946463571801812780178502419991548978967858524220480034806471753426272403149304060204384266282449994073911574033690555633817661760107256478883699031891975146803607877145607759124370804141881560515140601799747271753005044147909231901241404448248898640615595301633657732964276470484212896295523643328075523901998582661145504614406936123129960238194955416987836919223278956437955009204951449589639315256395175675008557922964951820746511140153772356849954653578956573066482755182282197133088149859289504385091603229846211984752927471403392534067016364627592329610342816452708564166422049840720328500874747861276383263173831954362423433950640963553177336671733935894356919551517292810477041546018663445484077757339450953194515755835954113549388001574365690603659080204442122555571182282995254979460816877411268181637226886537167963894312097559747501598403107358742772762890312459815211199963552108971959942915664214049914855776753668290100841441178898269940014451102855462428647988661145401985975365740919836020303113795848415783739220394454141290366077170665955370531231270810540995660691950626422617075209838786710302699402055578587250909379660746203865529252536358730839028492129494274494375743145202204247684287297556359010031490399452863785720058347289706835892116444599082552145038337451798496660063495783626175571524399723229105855657744455205142117357581164664047533478500630989791491213048554734627477596449615727764977401289350118219575592935429879491857132814311812183095532943641134901466878548613647553890792804521720740734367949660441861241288737021196001594050279725766724660498430114334913677779036967712247491407562199878593610740924299856536905057135242644200740384538900177409350881215249730238851849750346916978971549485754668691950366559440332041992876333622997747788073549275610173983814888100233937904687750719125608342753330405174820251608082713055168697160567846528409642027411899337523172800086745771036335605379666605961745821975000928708643157991958986911269677404642779111304998120865625432492295178149764148889404424372842906595396469536138165589128540054737536953014719474838204284184402517789381053962168718010738452316368683326778073875477802422240466969959430823071468712196906116298812129931118664011223826908581374910243462113855757440293649652237921479502883560103975176649141437632896207983390577412243885467159120365004213705787056766413130522323015597109532028744706938490981745306468681431290935902497740187591698592329475282928646388423564554667334334493560465908676830964579035511202146598314049807071594894016118720230417097084757620069371193510640193906933991958997113907931894826320646596165891413135996100187736280545916648514284327937440483409093150860579943977766781064124817194177964228786631575152348346201426024358963925839814861387836811401448841571665427874078960273223720426532004106767349205342641889197697180666785121383398075344590301913779426925035559040066531664787199738054769671411027648650504546949908124987221770095061706984765170711265294586119273398329163727460487307036148665975442759130970014243246825981659222445662123828894595099366676319077715930939648744072303622334816850881191103137898684626677220493325476259026815548864870353757035457759244460271230971422263549918318792331089907173988189532052002029965909177001017436124170399231609439168640485856548834793921558951833513238883844600154228982354910688935513398633306749757692603202452967523013190293408281425294518088673057538039990011168349945436823117081916889315596417427929175037940388980202182012321252811927415704075458502347190750834810289020809141596920974421339943223509562975320929162833601701543680074602800533036665953920142148703487802645986303340957245762575539385469007832322009211733932565374181278517321306661017930133300049307083568903937186331137902227536768393044877751113568214670879760480205456207952512731976861935354459359342588841166596344793559060902137562603344090536235509143637883189353440161135014153102304756753702551587966980451811341453472132631320940164188929987985088754541043232041208437246848106214994547545878303377641777763774412986798136621169732806973043733722662967316225196861705876403697781056224792138855649414121552327116106335573602810437416588589601303220056659047511029334921993698691330381790063387810553980161194977842088536306132897739096035723621248494337520413553446848404163502333545668058222614910175493479277436032036316399269627615402711171351295726437520668022420010502330248392240186842856232736650689387156590508638359039411826473396287639372105050801944944113202925141121632214879991344044320078589072446274494704511179179140879441189725950765582543196089666056519363544935029207089917450877729221213911951678841743959328897938727680643626307603899902206938073114088430335093959818126813397627698629433485282547153175066311403402621418037747331447242614058489893247216450207229539080484225480248621195520114098475814578671408061717116883479501751410746598960403211619214212068213834568417068648340343164742135204654082401749235779184149047391024840576488429248286407500659064544057429188868735823699613873549361549213895274594766719065023265493304063164486772587966430387475943488139483308054941606436038426945886509622171460465376518681157537705515193405854281754984193328860310554850309358087528688580880598406332323004743847981536365857185694179737912972513331445713753280126928870525503440973602124539721952218672425536048567511370507360735451649864954749403938225517293910020145103238723669696476688953814074610506611360489709456627979452388013444486484292036388309195903864596585574872759071050548988748057417602278597754055741101518860605534972391268218522192016381001782844479379478382439676211541044341532766426750984542109202251376218007682652403491928999560886890622230478900222751340391424330171855415821889842744520024006614257929283674897219092804280253587389046262473904229174529578680837053220127727561018546379198919153195984629130887989852044813472813641558382359013541220802048121274547735206822208637293981124446323501321060612016410623783105338194657232829803361264044595535722257375341978689441156602316640053295838883883106980225011754162626422980075309179857020175942111805755093029503741964071073392453994588288186056808996127141145931458192318457065042620684282121490495029241391202569274497802270303032309687901957692765048007315560111270015680473167959225747409205438908761254033870087643215304467478292412734634831622376854849764681303083077158822235661208026673831692923372044348635081386064615923916614569893381454003554243300408324252046762499591641710091997125375585232692585957485758070999937396580649476661641689178664049758694945687083073199266314683704272598832647294019340596505551047699158815216312183556115444341133251881659860381030962955745521731362942022261251553020206262335350138328251472877503081042297268241508422029446927289838269271805227110800052209021898910572147258211696751707123487642710910660303283752432993045745939471064163643624153098412520913645608508947021484694888539214412314442833166622105322255786596150864611672197185504204410168155225334164743011897901831823612580893660631437151806104238071978177569795981882314838097061797208025926683979411459800986937149342823627250032187721581652737207895713249464889253453887720743798838668772773732432336479657482381075600367474491750093560732695665679324632852037069180243945454314109235842965309268634087857993497025750297336174833541683096869321923453336428739266066156849551353517410819040522590553702616319891645928424809260202424284934561937020366454442316909201412490473855654304023185032394335664480459026815948506173145430540284868854264489290379756750625494527080646090270458832219778351409227538698291477336502618894461118096944953636277540805694912163627891676855657461828295247056205599646037381474469356102667262384043232188813839087713561296305152478597780238124623560131126816346164425951341382000717192193383447253056066299953391837541045133672648084131157872011546684766434209303678098131669582011609521943583562411911790243372986490534122198828719703723095823966901327850412777500727014761851500385911438840217835507599795826999641643112377297787080423873360711154084615653436773003406947591246419343676688633929007089758164879910993514641238888998468199864378935390364679943694808473941478536202846317178286350674669864278536531819094072334144842106287086759781168948397093464362149526984684773856690394180564186101456402570556264605849752604383633037014700113301882766743019081855706776874762384768956443783974518341248472857090511953331802313504520155542305561965111122000291117559298383731075419795589806726740116091879576867057131349951424168806437117493906679737943745385918302058125828988941235017684119741157175329243571038542477534970800512045497005801364542403575785244489771387084142366892207905865500944646955870841669389629695609193107677441338345541977189504261757519364441305913638378636700920968481058879928057930338378236480645915555861581766393374137651730175745286256616197289088131956192065892122895612115402414120455170560849012795228365451310373353165508380577061745905102304691633908789313767176440511218563857784771960035705674301095265498498659883914538901126655208798691475435675629758442191481092402939050577597834241549950068197302635858534241125384943055144068381278264765044990428080040989599697282163550256523070756738185236743846602667367267305949023275565894190184314338936755961573115925273215021782110459771631731528399241570742229773587544753388914202266830016465089569895298235224830490264743929852994343914320457694983980025067238446546972642107082112281921317206770199110945266611808300844042852932011997593319227578498672455150713905132589605785382473618551515537721020732461412387891161099061612892644236307836035868645935193776977325341971519951651539267538994774177576469815293451734962340195020408572752835576103362361786289138783283345608928534837005875158700312786625719735246940237004330524335763948681019063319431952623968177727283277299634461455054494207754776180543104601131030568428954586028112476939772257026287772083482641644511850124311503757107568479252802406896093729605006938866574059524379993740333786312074488868530993263492675836912182623871157097676550699722536685162059956234675447350866354534858682693402360896390975665297491899499018109208384983580073955053992602763357935995651267198928179251339470117704679413100444392825292199164265389379634917002625448750435044448958377070826355029385687900269530764126134505854348601683854699992157823055502408594177321732908179584413865846705557052571771631624036792064833109752218837886229807990560594412267061288120935445584372330789564928593266355050717781599573854344163896897581853853737660881654304890700462511485194309544984697243350930636270205600292332158935631831696775543270982083370761521734891514966540212865021279686749287885856109086817541746849915138851023748991567461621271922669920498723703137069903734497034076841262066432190851119899179298923309431953202284839171694709900736234977455538789981919261831089959075929730666985655476643640443957758684356435355015127853581398418958559363234889622278053917710121692570271920177107493032621231394253212501864034106505885548665617091477780243054505903437122521232785557489713335369170356357463956272127948549807369574773520988961742852656440449653272898985663722728519727434728910965162587411359027933888920972447459952431448049823077974606382053589435456117173800074639996873444430019644578759798091918200500538864140647605603261046025409795091687122636863939783161177260050739104728694599532070719439405890618521437155231683417069171025062089488287107064389068192310535752115861267235449865367619572223970653784103871593963859510040378002909406566706639825539816250193620360132101854440728537953779658780976627554051064749365894734246285463579543388361827293637629802241147781397947702296711080234785813052106656323045349321383494086593463904491215591036652480669669141276152037130349865348480508542499270942272452776910129802143495364663885156311817519470911669574378063374895115519133280602295244670734423426434162880691117283660770437144012885434500215394911696209322885991018012602045959659126180685244287548621439300919502360601210940593708469304868610851238922306447005392170810503035947186216089059744489989998837468403090192417441781850929516788806050603454937657202891297128084621041514254364504272528471152983396435784169647320463587743519702393640010611008099146639417518309283144494134600046331954486433403559408958735052714921379902017113629073624227188127727771008314119805379354298580794495605403453556817284384067124713482105527997746226489766872429520931834178063384030802076484876952740897477192673841838540581379440499628692169016456857886110548164368030362180551224417509540722555963998300652484560312672041787181287551957070930989162372111859429330016408308911912660141762042925850933940002672119790045865226041169972702729702430163621519852405064406248507705518773600729396256990766929407640901098674792015707063754600807153222291302027400070140392694242450323600403239630417401958979228442765177759021673672838382509950645775723880796224523170913040624447628395443340486068978789471381449519155157871180431443147210055890137689644005647513869745891131242044626449945962324736168988133320589532687713212827191056126960929844370507743794749565054536315221145065253295188513839659107798922116199093080645220498750868355122095319364501906211889457690769521788988551841731819205827066186447918575893165690326863515989546731557257435670676449896098382715685262549756600222437588669396448813670077322637269073804526664661742996238126418786862565455058999063112615064539008022584904177360823378960555702572498598351298903545056099948955417556480477809160720243645498872249059909512949447660340948404749639519354195341638120496352181609871052957187528925774513102710897872956715116404254660347505394716567468288011004792485132038813030580248127698693519994680741927552878256145036025326559860687573355845304443070837338431496975119936300451375467870471082822543604449916927785540362302018445711523478315174099957630823130739115035229403425102954814975228723179581701420401438026514756145387421809159369666219231125800191202412495489188072172360514558563220041529542314169276616653193752826989795844417035450499552783590876193944369811976488731825582665147271141960168119700071304709568242205061936673932221784262765958200015598191242513190786689091996635122397440706523188796050271598620840287961081173816019531859661613609710043157608760951414481651224995398290695138133850647828735877365001558059689357254223622017602807367271393451227906429342679184296077611358707117449978832515989726409618537973257579231043675408025581841015465325418047009591889105261338247988986216100767213294355302457957821671283934581280664801168046359779601938952851435678091502626241239326230823587237778494948242986735853657934978372916664107126785863980261450814682923493956172734926128153636328885496225768979875313683603986016711082268614265295753273220122338786139593524606530557915088708951866336695530428422962297855534834279260475130860625821264623709326416632587630063137162606865090609017809768984435196523761476283591570018593143247180826292897168438399926951063391526223093350835436917563860241592214644784179902435543861018606741341311724502550070516483659360719308653666211506621966303016265496138884407317345699407242453230095109626892555422802152945718703808252372377574555328987328721727964622342552638346933436432968350226414054953132760511834953334442307881769272170063292664262926735428543113060820185431356065663893066162563145752336807779697624223934994172459237112857358620042733150073558656410976062217922446632333510750461689662732031608289436028386029569708140615816941803149067320045877449937265819244006684831424364127888786160211615611171607279190761295459491054853065742560912987921402559680959562180668728086489748731241374856773756941644734967023850712163519756314487487185348037474734618979899517238802654173308180922819212226271262973111683510435095546323637164104925565857472478883121422688243594952837927076068170358537360154112604259204548681255756161111541447125295452666158865635524936665441561377270050220479025187195773949175687008338316046742359473025619895688344395195900161427642313315248293928589534736958816038236240500526278249192061180469753713387432815215043427914943289645768640429035052846240328418891805605407957863465000610230365870774980757365813782249013079812661957895009569453226738903685077156759298006917814202639872075959495765488447061822694356371901580547522350034229944577465837048865872165507191689095216376941447647954738266435617118264619022266846059131488431943095564991287315763058293158801522643868806552193116077002782619250404135017446979894031170539791719946369877574752258158544899408577928798998187416409147676328561649870190376250198581922482638500142391583169137350393331783936297557533376749289924711111085637095399176855691843003573696074092949242644036900195142023952343226870594007730086968125778715184780959438873134438563374261185618755808875548138142093382158463666208882812093528879719822208043890830532769771808439300229994202597523705945079636385644017584401552825113225206219575214784085567104708092051400343375451635996555550776547227668860920119180816046111214579574973797619582098599397615012540194918343564352565536082602927204366433108582753284553855433224022558817718078579599993049632091097961609000524034515045413361970021791921052750782682501880951424760821880234359072205056455030446407662392385796185905064079788807010662909523825829981597710603486148768707001449542354730427498176023671341791665112986204470782492611676631011839817241263556049181484605656961619861684989752812581450577016419618937944143709814508409457921409479359009215779257293851869193096628332068120067099896414706478521965326039479896333943103433553521063702626090247235685973250909620626414464058074905810278505140039245465208669181439022516967957683391719965236300401302635268195587256002766040229460335719866284902762197165706534866131752835717410983189634101087679845314093374404334332379906003539310918791137682320062655201217251870609740593417306285259474874322876366065168588248443341175895414461185816316004792147528964616756202092011063769315584626866136062686898675629952063842076429066639531256421349538781174920191039852170587610690586001072564106253918385794623284063102101846412727627824304240840371049344678398760586241733970749776501296919258828337711093253999280058695476614385204755823437026671041140384797121513688375130854706697238825076179354107606789065047203972719545071433200364874291382967341385505812173848504403289279397294458356823361933284814096799312577702012363513149302260402802692004603918680160805192578149846753968204069501781805846000299576125134415243753778335336722492735289033718744577986909318528283583783066648385835250926185915904996754899911568817477339396264058526587102516553521037016538990610820296420436910893441746145711330560334745236166129176021427038757531823203343212810525205041504044737939174554961478992789982044417017241179261776201320886863233181068127103556653831290150744635287437276532082818097046456481422451554797044466738808266207358440449169828367798903335931734458718744239507991277933108522343448170649052607663342417738638119811336929162651326587536421519505040080842541543528202401281993069177680872358682262149425877228395204525606172961785986406255073011475201219228580881325371571879506911527818843553380598328937925183021905630477710773091185783916758959303316062407203946744612700816137257403220319619216224002945560684388155746123574574793457528969420990766612625722862217970745908267203605222892375466803838179345700524997789100048803607558139594238293431298003867705654288887159720824784239341475222332186885112481839922030522965340006273871291727288012765836327898977873770273940514449746501534186133635215349975468905198556940530497614067763481110577336662517351678478606961404637398351279057538121944736008626328327158233106563903460369144582996720533364440507464390435986701362968898384186271918023971974213538421925024914797297553601754167705486686355660683515305177093931360322696380974984006900392197701450157317452708249936817869634951031338174206551086568310774133809636521861401198465536117757179857467515333810872450444651724973506214157495758473686115647667874500099351917892293460148672303441240336265759947090387105873093553180000446872175551348327114652450193929730757424158094061136030299274445328685756049484603452784421972642329740360918210930982136764660393828090835080356058989394003361660887538809396015623582365771091428392321267055452803200182721563921156513075845893503473374932285622772964464113479508048689200762079094232672299979486905441218180619432958153997179504815254131019102508116262792816064691827492825048886019457257339172346694243876425426270032939629808350492226943649478239731270765704116027777115711662483083025029043634712373878691113651881073689184711591299814268865200083332429840593424056750421264966720826067716631674265526473884204080251216429862059806414149421543299284552216428179797873023814748360356143032484750284524039913269663912375771083596665394502323302413349464625552055723930618000322345278247786675418866591112135069939183414759442801502283101306572721188703444776659175076536313523194524031793456042989273582148330474523158310324523385076774886263899022136400600756601972041085582975105056147631611129578953514044821106570354344606424980528520436783299316689539405501135491164882606341525731374016351196342895129595947711639085187127013880110135839862238023299663223379976981462467587812555666617213726830189281127870754077078386704290695776141762147652826714764620269217511293523328318001350239055378729305644867790563870745138328560761934512134787790654387703075524959336571356781656953733375856275944535897946256312346356655819999332563976923861616483086999366547810721119300715657053492964053161653824109920622970421530436534320160037631652621871843466515548396526920785401518313470481335331152604065179623576734285783064949761332133161624750031017519528807250801637183613579528572473319816901605754677390608819243095675730736396629988460614201281349678631321657039022168107310627534702478510609347905541118475058579814034870643059521873098608986685494447533457429474291858551851126910366546175092098806934102832092721304755363683812421373146611825238378806080289649394084175532680450715869763890811586415416647878520260822257348893281329358770673629039020079065930081623561389074518297556608262707279719459117525894466399183079792156138192748478079325952335289409520842887957424468539840759357041224658609929754093534965333336249191108778646940612702326394928230082317192434421169175286326318393461417814911854440615522967165466447618519012298500710324031987880233709404573296939100043073234345710900090470674911254601000278166963817903805470151031074209667066090037429226021915561315189557476276811365812213399272678944860450381576892122775089788851085043058364377289726470984790664231412070984727663344009186999933781578123053570971553215063194636476724241448955472571037798904055716468712820393151951788036545511748111675359849395507028903282066120544597344480171763754272338409903915375061196011289376606730754629090138151299250430669507259179635443847785802877374597754006752315433311306495924754842579590048795939141825453098119697818627119790512035016827531571706219776495346376852933807000941404970065338402391334249877494455643183826300429626814790885154324024977393764366289407163562798160243264528331845677060062339749208311664889159684347742271780907767013526229888453818737941996881528076955026877825590787678757338654474939828043296315371714138251134080681255601368360193367259317654939427399711064928951382880498679450259361548605535258910927653619309881341744141633242886796266798510320748651987558942020906920254227827640618773209871610299370356135935054370383831661786051338148826009765072421352455285078207889412087038787526367663840045878410626443732508778980494837962514775478620336745581453753243090994867779897424160621007418890789779692503628925803503402009364620541705896142270557833890153454431284339372182100430572009461021132053775696940240575388464492170659152532205473276715371919994466302652860235595097946925218284920115675463165229240338441794014594215250384291678548312344374716202983061600468866989710409243307126738931644951348592962437795870722650347335048430288616161915260471275006961133019247369254614475927252186176917012963115342527677194058747911979066754226863299495830745252693122366763613385186310821439293923313535836742753723315933882630019003048736272236191889220641541405355431483868563770066282087895704241336766069772856680303164378881414725799079585657953089340609183126068800481286417564757562151599696517523268236961281939472253787503046831751683997259033130610465635570362434298208627507448225801087324197998428037371503654619669024601270228579676425874998705069778690013457622125037911506852549415416060058775075040243942288289368962357634581691242635191651727163266126090851083012986119846382895245523405250975973869931743121184932225867464216989454230034521897461819334377101004684093679619079028821848826154072657948087932998011334463059252345285485509785545253664972218021214820403768967276864084024117940962668853853068196795452708377186757275065565677394192065943614284961061929255798407238427384831921709278181013335555479799135185496188136354039949134211680608198594534532252469206506661294690547896726987115712277239591864266591972917510769360860568320951712048205918117349007599815262819288512611030331838131950371407518515727007597484675550938435748613482328803359276583353514195687254173073026165032706236674885378553069101253255295096813893987250590729445263050098641921474146133118229802097411246514355187838973118023904818252305894832597439492866070661458720052802779925142596494481280546754608503969275339756580189189687694985424180557632884974998946781219143055814205055617550447397053846991023833732582808123160711676837965180723158275265306905368102978863896394486277900061068705466033202907266942199146138189858405103510009695482300980546000587340638263239585150478593720421224465758361137284323931443396176512931446225818037170048965578789479897406437169928271538818156473564493187836350893270938724798748423582686613799154211722835452817647251752847614742701274184926146106924996662711280071717129243665726171459626913383927621407428230995103649629545033313876122942169954737497637577815033138646600251269279049008500653796416304126729251592556465248977351319195547557025999942975834440616157912540163892075630266952843954900302723581776487773483023385385271298960360270179205713615292320488254865552510333411673598379407406328082110353025800810702581216605307880893921566409813229504201769412593421751713964785575213382441153711433908929114223510841605477954782621667438046879200462079349915133649763522099490622598500426772709990819757992408783683439668193142551944871829255149709739067523681321603070107309922463475473741486120175599198683297680711418641958265136804392559919366651638345092425592009139791653606429024093776150965856203740461805595613887138193833667872456866468594507253504990880911755149073372742061029309744211441330950582302614046757063521443623870344441512240043727870028048661142002059568513782533206532048034342958584156977742816585815435637134938377200660574051825554740014347916569280249119311519748660883034941799288117297466514966692660574277637155898979086749286879695072302455350564572028027086286656628774735121042654153876273067559767512696806075181137667909357635479917266313819098951058785340941410279776492880001893317620607112908949951962035663553378690224804367848602605982092584566494351492753471119045753761815696826668395843304168574124830111689148536336560548729911650902821766571283980024628163485026332162913801488009139654564904108496501954643849796696921405478487273783899918983766955067230461815026167752285058839592117065807630375845791889241754613611961064410326279260850574211559679757620675422483403477004784258142664565612513421310303303922032677436761105431263211946452158373484391884182569589021505661378969379634330104843258185817383653744741752749671116889926854243585298891994616506047529529000921577114053025650584428311899486581398535190202682550986297556523544026375579693113702935445870168005816340350387776973076741017533768009955574388543551614766457836321034428966161252052940839066421502634005671082551426716345668864918618847912205658589882543665184742697905962584963555854294570886216733371431281922721861485882495792177421619620305087148684627130177011875085401421963402063552418398878705197704074611820844711399308189931554048126231464098430898688796185036462958356369467055323728566194904426857154165900188244827363400942684441866376516322699009422376078520498915185630878664508608461379694192859720756707267596866118439595454062595933614506355541626582931202497489292123702082616931253594150304887988255743964465846672297631098207109974647156208259865226493414936073882383857033261520863580423169760852506295296064267655527815083118299346761284997666102376841084687563743852979135463176506796857842898529742160891457429068434747798182973455391485422827582082286916486164139088414466168561792681418269622786405032546209635429209635391007423786238223019553943237212118498049345216522630647389244428309465229731490531907785351745351719171591994281520348216862284826545914308116659630097077874131429911214766255561644554965668812080138231014222044066884308977068975185001374559509027910903738369102036948415449057503009432910279377406023279017653861625167599783273172987452071394996648450892909232279110166866232635371915020348193852066634718619633272246076189569844310592132452691647108478401049254996620211307857700184890853913585229114406834427647209487155892819578524816934239797494449182842647895807302730775279162858782601294978935569971761433193251471393100546236912965456361083549089204644421784997867096433463404326498900708983203049200494750073125356194768947247515210478542481461067154847486709832418477792154622573917177835031721980032548531756281015230531038480964156044760545936505508116114292545894049047499034162243116304393640298891919313363577515215222978701150406633837492721734635741748131780659984719795154020224878784606409035511480949072675775636891065656824802844616329584948939316097841090603770103982614801200669833096747787607281112156405930624335955481401816628633605860450390249576216506418526396160281800822705047182039702254469023668211691292111983134653388086886829072520462101123898789598322390918935939116065338978702694800632671805057011050887403625811540209535135376177448559786234797284806913175980428651275374667252831477980938096460560125351612000817903290330894788263313567616947983629541724513472818654759996986658179053151471183426531872031055587241505401897748967482827594516371717481777661302626229656654384734923205066398946403784498508416773819670498842245471851104719283780616399006279226243352542940193370535030119544762536521660296501112595716955403326439008331877534646276499145937977151751574422014415080237551731818007752420053112214420222611146710315002768619220961345033063786734186367659581604165424233095229904082863578287331661272548944138033508037786623549079586823314261267387057220000963626241322149568449291601980501757594451632853504053204099682401804610932722164350767110443777036681759905818999931419288603852905661480486642384211305100651063791029766261259610033628207616807351159465535589429962206951144762244473405041386559240552257004428255075301110280825779158028071934567932126346484786174269595845884506269850559414899263465211738673102537285573687148357366640791087172011772264005514963179909191116461558317341894107419957468516826976426835291068589826178063625923798261739646676572638862841007674256641099560254308907978101546675228982699082978878650535307743231558682460530493595784810121847290668930397686101337106845639728326777186667404809980107906642546579069960852236040070587922295344169765016501199361560568347151685248782532641112690929741051797523384863491991907632681123733672351552825519300152107157091146643404640964137016853990054359562355130827288661019554033155425306658036578146202325879166707030838739817147676042376002694226637911775398449931859839923330990618351362039430169243673854082968071314807487067710592177533782140058089910647657001188809006008252758297399177666702888528427051417694707514355874185846268840955542399211220108850288110817696200711518920949280493503442796806607340474238054256047505282950856592001234687682820642754116715976159370885448320038126872508006399748831903675985405378862765145595506485972003019075889088433462220963665109165634675313637890000893654060338097799521546264308332086485532215873258799858152324764993657329976978395117467253810478525744999279148061141625284844745239803716200102152599209742311344618088216462068423763767989354805335723224856898376257019909001935317985301234102090822805878779286475620043400686562461209920186580173689382195522100133609326830066752252986682302304376577927451435501648714359075209395713919088172133588625244267613034166778926492719762581241681719146398643785714466336276758469834271408973470345205934943420390864536594279866053347440082286449314610393135638026369822378466053207989104034572059488038311162102095165156346174765111410153911312686048265845288065549390831126178235812400355431146678961934702571705493293685677180420829055570069910850474134670924827359797314853435208504996285397839076056085371736940120680268120041710436906984813213346062120012652835628365748791512804054318396465452067388161146903942066560355371420490842923941707940759314811227155134931902029605755797199266952907089290708830172631336512120188194622518544200273766149858917284817682981176788558739659449490445219223103816156364838825416894367125232672424676687884857797783599419681099520878833049993759689840039853826342399605231268971807029195893012097025832612935578976110057191070403509526758490067787420652942731898702389554823244404551888608026018639808682460804747579840273200621802935492593776972203549673490032706157980712848593118343479048122326118332398163643642386394250803292099424693387316790574688482980377655929962467555333119780964569928222107703091127906585970890224439234010541862310308775526201164083741907945504457780556387431713743948117340301924218561536457767232238373375476938256895378837158413729905329930442726747122065763895513118776963307024111964802952444217903299323883471960070919290924782594538104751384849893028547469621775948028018302544569516173866469947432680998940428724481247409914185433061717883906335050373557916863762498735404515906309641922651911080811104395432109780502935836442993860382306792802176258101385963679155533442379201953786679926788364708843120072572983345906442303385842450291826086674992423670872018640866052565261263485146079244344474834142403734809608700563328562896117298133503091840028182696486951154798937770907214264516608266654168296842563921042046305607803292948294615917961783472482472718740344555064182170739292803506095781395806618927678849222401355141536975464594798699303786857610723924823414742914118218454086706339677087645705073381402220778945342566997953570960408283049816002660489081243508233789325074931550743267751466109274800611053772269247312058665989413461521823506955367352767207943848815547430474014388961963999794813561892044499362223588790327794297162450431922538928077284677881520619846346452697482379719414157117782935884959111209191899781895698136512584059417417961695788559270665271416823052167924740260895765379052610437709266962526414323080864155879037726644800588633245745931198464626572363671159769433858293442699438345367005174682116557019857321477552298872550881649285335885210482823492304556177332782844855031758111360288389121115044429262062494812552099476154737250004088347557832421407110566658700059554085749814566793372662075245362040131534765082337045279847382675767087901594269753595483291993638008379010232946335798557611077561599226126685304547845273039511658985509488927052889092099431353094694663115231331198203887938210559356674375363344879012270643875279765911602794648379259668870967694440919220245127945160936021607401039089167949002584533667772226805549806149266832903715972808514201442178449612469577537254569532353411422119240073361949453097758553070361011847776265036848664230298452680118486809911849220648629200477309721199097030909806125950877099475038102905367235079728305102972538063090784951126108281834259510013200864173335469546371845330582198294790672370676176706175915888020781234241710753693675643676116284050801294570810111560400933116995970493508651652364113010363152718447295759974306581954563993037261882444180704046737501309612544811934254006149099755176936064881147857610967335022467802108347960250687441449463784630245946720211661489642035659565264152550786615742357409707262100601496664998850444580234252986685753125394357190807662558428477114522990129217798593382851506840925146330311628457754217488795402649098796558425552707152974154933329824051301898957633003320790420037362942068982059331801366875943014200668932175036261647806352474286803686572046994877452980031765305058487593067962032332071615426063481050395256423783542029392755106087348122639804179238520564935343136570644251213109098559969744231687528008516575125381904851820418523935085379612530527195587536624603012298843466226325444597280179247818498535716376512421794835465081406700301387854431558227807008011817678608158432965313034986165966505890116393632909444156969394490810444631926822447484219533017938868078888043326844417819617028284503838373748311881140097978766199852521742137500555925137728158475922814797773161372369577508108534516507971408741304893683374338803056944751617272859101926571738623229773402926316907526247934833155051398613930634260707591330243772025569371319012382049850477967829980882142744573421208510354281277417363053642045369750126413335945968968380299249246442110259714572218425875149004110337405538380169153437741256466126356993332386202796739108273685363642929079765797718057672440059457552190658767033519930911993238780970200242336532747822836815119990233560962329447719469134000588141217612888332613353266806801891255443681854507173588195659859433384894099655406394482250934716348261531871683077657929734618419849220153332484982136497835520719488474487215859476625085564511698069771440223648842218284359664536558998032315036151006500831097517572015543792663021084521906851569180899913263775738918195463019919134815582828812512321483135865268864764221687960842870075492252300666868343818189582062120789460620026729412349343475985777349858535010285802629597482606552772726865104752103087578385824041336608475057476463116161739429842195653824038651528286198236513136240922545750792513098943421017888526037265584736032359937459337135437597466964123187268274597426881939008381187512031999837962590149476674326513558494052885011705604835051003292284393033492044889569068326594494867644547003859720848448852623137312338670354763284178723464815687103590121438485936762853773325000252978922865439536567290728361309532588987351774078056977938336375804158796570456434417798243988893019477758164651746681656917724745022577703846622525918929510580787631669714941254157368901025735210951484362745766029414892777453142915728883045507895328055925752569493533753782474866740277051909781249151864621350274059699802021909503407382519092233431438987064464883954018438560815637857699934670093898551139081009200896788571093122598555247256096645068759353017127386988519038959542040240264670533786277460710885803226355641994389905905796098549607542288415441556510436743762509477700994242888867264506207875918624997825588251927043832532597331226558141605238073076507401405402003444050930737723830089340981356888247327537362798443382077006666140326532219044116438716298974552157073804864104104243673910013167960439545510199839191300594552650479591324052770715211792300848224189934060329916217222977267831179685360302725331693002292042124829495773086799559426120232605281173578074390877049738506010287870066152408037049488704512617125951027902772292091344214057976919530421198482644666998658691238006859910191889567280531660508608072680964318741701593931845446930272125559735376899141255759528082686723588491346281943932593046224550352703422291470663477670373658681899542655599489782838828861233036999926492250231105665292490922486970073504706343675804205970547605974385395096152077922371537811851043983836296505259153606153415439432496516242084492466842396082547442276941459740630470927014987658965123186937876601436756079178652016768205659342063132861973836216058655136165170243665533794014402230073634830805274927215598860048371100119335001863076927129072439460971542104081750950777888272649519886344245897628892428838978093632826343658364202665277184116950720585618937694361898621862573977531357797484183665808287400236462769420906304592098491808053658169992794129036482294946049509521532567428295087927956081914628228369423777258941638322332307708439890559179570734135885475056813184508911603020205695211712639626319955300026210214185660577632971574928439524510655254445203678677344940760741621551441982493935482216500862493720988788903457712177718897481125581632351501537503011708194498757252779579943853718419759324357723650430475767246635894235044106908313240522184846796688863822431482168112481261997671218430196772816998439488349327487347349587241147818426258022316529184960423586180895012025014617105305328411894106181913545048887297756366377921011859086889321099908637004663603206319260342742839528363001140155261792675915017107206683695065154408323851389430699526089415882888724864520577099504327089384887845715066836185327784292282671548976356319383752402857594547968047058151337611145547651883204787212381683871426886837792824493485051844394199053472120270227107319671930722963633770513847651121592739729370632146466564627632908542770127926649791419388524529662870992398834552038066185113195288222153772311259874371828587058020888831029564186427987674051636876479730149858026067812399746599308571918072551368242958603647683596725784830687905828812014555507725232835358481069538133564626724646013537483539100467342004162016270830613632516567622247664685630541388258944973239765706602653710225282723540112756547209257048536555692292472951411247091593898907927197012522674243492961816474100435797471782275817494615537867425177505447847292224172153196735874758798716322449415654946552486284381629049003622413273905063162851642920807057202335461313619684252357242264827968788827701874860719392912981680477553711504853536279790463977586774628776710595192930648332285967847813103136401664729233309332594368521787289430319960956849264588221561161804670562593889591679221592072071725293081257645024446608126260570750893718844490301969542330719166967015549623318183784543901183092741073114210460143931105463152645949289237374095671808026466558341299352766957520604304238730973923466173825452846341368584099402759559683712616571659365914614456827596172087820635348782089758138628619101891768518616177599037385198464089082856787598293446145631760797091180443144563587459580821091028347805676132739377899720596835056420026880674288847149660693461449824440621330038028082025130609526396267158916583487396780745280211443997687937161789575348472097978371811998430869204706369178684261213153742702928684422865366420247173961919735251749310314984284502513716412501403374227924082307968287563194378594099830806423735936175343275947823625626003800946179865765440277863964320138759411378092753272863096378969163793047085731789799350288017407809830910546746453169401668329219315415511040445899077077200662132835960975373667805181036491759580341618267105606946131453233016120578205739852788556498673434408167776970838858041735983093178249873307030966876749072024791064430869598880294195779279196347179697572244019343989630154110674688178168365680800087486995613927039734105965200162640796750346367126724922959390851538219468791349899422055516633691892129011809377649929871603399167899646952182748323576924398152422990478170203149783388638681479304878813449675040380406867832650126905852893998277237027441683935948709758117620102024745826100378516519890339521239616956417217603926396177315283337881300451452561925361645602850654226424105222814204749922053227004165211711397878874095933575380260801012773453217961428981224070909553013200213378712927428198690002708107825779387796881343391856530241581353013394054536213722012264018092488692471704490249257036275777912213687932516521874975386432348029498010468954334300666553269916235028002542255042093622299870037907980836622557190830378742820130078832830440983423896421186140630692628591478809729183223001669889834927504722965130565797250627494079847067656326673616343181602834111257652511047986237885432715171148923790568337333174160864820832638144576020366700446990955461743329066188569304773027655566750486136574066017902976134878144998591445928556861176279824272011211956945953615999425016861297549755458405875875862016043896955751123267316005664205768052745983916685985154751304881513374408868775329708418127663661907153551972572746346154313581816849612660497386072661325137339860108799733035767889215805779266187341711500736813954513642828819513178658334478927202149930294141950481221474561276305691172858156881712803868982411092326726783074701793707436370723024688759740537391705227888514691061115001213362786528508057718430758268922605423935350226638622666412186654158337913359012684198731391292446591852998752794786352846388903900924769032957582837220702860355738596095433089534002130745699442876899113345052240016980035870135757997631132378855212977052922580057132190500710868425795591020465289716187592711099040604925290486989831563377849135830612676034666174650084107819193284755132863389788659612334383411068606908014288981578979316717383612034372215641015879156886092653087806573797493166249354648186209590669473084428837510423281885217779145441453660999196847102703991305398692444564771019859655873398382910793140898275082016275829045690040351032831542898760695287909376372588955365897362308155118442338859836313387912215517706694172748736435854812295834336834336618221664071754790083469223512882655440812448205692715003790436577618077416352161179948157171792992857648181435666392927096599335130015430220620344641138820828226666319229320787311410131669598407610080940613205659455682780541665106579249360712138191797920883166164074869915424082971145180639722761690258741645505269093196287082241979622682610941399235750109863656354588168697864351943082917454535240361143902766827616650736143384864706792683936686614050432226329549337834117550305333323471683050869831338688206684568868646011638976713809566156622963694570219563913710124855551423140373766407356707633560027936551244347249500999582256198334002553692893845884421424867327638824407653882700513042982019645804931551496421282788693927682839398544025677611518694382155526113255261818543793305024142846336105650508250590978219827244016369900705965421984391030647928515135986083991030094393657805238924775471653491770381669982042819067954986242977568308693112738305946279081869257604532584287198288960567538720425826694684792937895867465688501019079015311750501704814540314669975967677672710269779566595894885943728873879572604633430543170766704530893323122160455374035794303079930153359135384925357367708906577007799071797428199770192347841401175226710588571547164260777493847456144471699289718400685231819769621717686229181255851129428475799955457940683201444852001082602124944244816050381298271531875533727716429664096553906078801654653917590427402962338178067315746727309909793400474040822417563488657552439166356778028003381490348886202366766897447013018627895262097541679675359519505491099546292279292864556646699726839327972984724434132377360400120418636926833942104440249307303080857657684587856687985551131960845909164995519630066775304837656827526698109165598592070008285255899232511781030317899938524346786671100193263525027808069050536165390234163856447821018057246477512000998806911227954304763928587214193071158392964189991817782596400511492189535033998028601897971131048587318792741731775289791625837460090715814998371630429146701868361390642707591682311331013534170040624496494793265350441947811545792433957090690765595025293684171408087483932846696210552878842726689333919589099437573785646590140017993785588416472413936071276186193111408601157822849350670269849256342640419899551748479381183074527691575800967580373157183588010806756550546096121188908329323607703302089990786785372143957433800059756617343324580655210439164076694643181308586095048103469630635046016259738252050785646771091969099320165200367394243782840647236302422431300490446947331339790326656883244222947947309461167849337770125203478362336024283183424104065980202696351143151652353887264435836931973562200164858762826508384761435741495831345880294709950054192985322706189248071677318131181526837300962461596105078905033350160272866819906922145251462484025743226528840688692646417843700268363882898835595686582687605993701695098696305719836790498318049537675048892684714186292582846799713508108188209354373832864421543674952731370428923056477327646708667430780351123260459990951039848786147883672402506354148987405585424930180127612830999220591438552646143426422700988892036148996877680128538215141379709188965487111284857301265609031994900267583441889778732243786836143994562787023091336372236130436105443414850286714268963957185149023113540769359484377901344395828099255442868309439355317421085199407776368185118904490275871795974950247313940871397831143406938305617453063021203445006132962341932828105684268490144040718514672569828926196265217813831649408759079055017240178338944229846970320787039709187611013695006362603960053792584665025508375216179853123994086136641874417178376886299755663909365503856431870338950476271714457549309674705682401760453777442771479383646672199510502215749103221870791960595669681523085683011094853837568031035099347045918424757311979132110026742200183552964933217284400598477746340293105653974754760422325767046929408185707097051965177912019046326257227880580357579856480008474070838400961545509875345937433670374289618064002282322410185113642313801782301775694084119987301146350047303809201917667836787497867473070816583452586337297248475764522487075656589005392670755172087003125667310084339464605842835564513458200662789384735317129579075897387235887833766440274327895910911763265114401820684438386189185263759258003686689512823319573551036635956338255841643334467275653243170757194427908693045141276906918919987305255819720393639056994283874966258186634475516112895961484945330796044242528182363841673031193024381295486361361483587308948262012947659212039620380565234496572604657606688458699620305529432200979053873640615792612006354411618835812731807198607692026520906524940416421204498993466871095574021364126153309570955102258249066736700782104619714292623440150517252273063576039216917476110620012072844064058716808628246772762022572017816253211842297324992193960942793858718381398606769339587087216391838449016662030026631271100154231885004850746080851933202943690847809618874077591188588615330253726701418008613765932179851319910302647443649463678037612283915355878713711430227921801262356311402556311487287694771761385198613112426575791149400857692749811017836094101884140624250610038125710368263806450057517733655511146267615956718651788882492222721045584391707831213974014074149139049468270217699847567716542351377777661307909470332511742165464780307394817347924268244286881986350787202101784845158117572555187781218023953456058539068247401838657436443352121671417446417815824257140694301727396059818056293789391661004253635557333603198938720094407835915397807162077876542447417295566294069038416279405412616217829474268980443532931019249869584634270611859569909270696239110281316862497303017365517518920543080742733291851505277173129519826680753814415221047033833138755102972835510927173154269469841345226901334874893364724551122140862932086820963440956578154310917219827182589015471148101330091371206988805935521910074875365922566366673500990065566503059046815956761399489980436601149668072780689204827564006276491559635728764560060958853664641974201951288185976248981288333106326570163498063018912292148249368680926095812613628304353503717025331033089265991297403905051744339384695443846492923341068528325029755734722766254495412220701764558097621862847993673254888983379297882526947970340641261431962568838526945653422775275303080560895330683455342066448192955416557997378899111755167947694925705023675412904791092842413621669126055227283746184364827778561243533598469781799849146039382489694876100963262725190048192870021105082333806630649572623033730564156190167095763152981762010037694636920416992578390625590690010499698276548612942598598754227412560330197248073962044575699374724831053867980144477767905407797307069178604949704465756381425351709706883768715919464941785156606690788478206224071596877482882289369515172829636274901249834870889619601869050721600986523299913363281709839465792580575809551712759812662820336970642741097841675995129111359703389903602501099041909770041595028776019256337509220281491426091429094428368806100400700573461910363744570793606062884654058347627823708177129795745681736702116437962901101947943916352812028627314910098944838937455038329842730413298640360113766669633816263639048346349140039923978395368752808082041349737548558015421112775275673687050170645939122129192100359444485788538180006637878501048464926848529243636235331706040434753366206847210471573468607168271791719097576774005495294702093056048335373162691449849332995245120443210384214796862596735009767746652643741997857519727698967069759414021293819281193066039216494247545682251552803181814322286511379528763229441940286727370586203675012388744969994756726156070835114550027300479625861369206331352108920097258397642225024468245125870381997461981999760761844553104272458108898762239934198553079145654856251210151805297932747385308880446852876562608212450911341489362270310861044681812574662910335567574240100595461962226730474016116901332406003115243029304100835899895742343453042039869977715883076618119316961752140023907923974636633384411440544657890221042326082310294933321926606829177990802108937864566085883922674730364770129057987906166924343189919328036957058893157159683650765750032977433896830195050063209060755081756616448828951114876926130522044367312934463573166636395693432470899599280445871487645083803181102635245215948325227479652399522105477681439385739941100229821617193769679157902783794296392817371038424558071009476391425647178173608129905353009464627753648082939742221940551568212159024140640800478315563235595241232290936246532731747269299804665485071423807994883041468076267698479912156601795911173789207079606171282945422196908654636277173221756195155453000884498126058258554014108989976998032588203517556690711973940810643863719587987380914554088976686832891614133999961687125252175153229236809370618637736422292181717230855853731579799808625578299264469419642800992228428400772763838771092108823101124667227647832963570286041689407444160366045733458808752892281026644146965487047284844650384814766314887499389622400136905880502468714408012074078496220437410350875007302849783412061173753102231429453686337724591276427705607184233625468878249350819467363006104336277471396749939136417528675107445678110955665335496090473138706587626608904897750019218452534563411114771870285952093132424107262529589668054720257076608310255007811383681721396105331476190640830849496405819857079474605437505717452103839477939131007693510376288574066969410141551069704318651091723800478748647387294144744881363184770255482140692380307260176587460461627585439459812483989803521684292907728669151311657455282493168744459960062945233693234436727837468067382771527457876415590209596327501840749134303128451178595316989597559067317409794957753491361627031147949177980056552266062572719959844812977302734950602400109848995885792790348916107706333180397435327785359630914314001391523905651414750746162134171063779282807547882829020214124362268394446771836068069601425322941727089604487995162565291848690498930688742451568476161272931096002681591675683263187559531530467104117489038874327467062081168788903004444364742803325559235811105406116468578409949273945138016154574502366882496271532525769181174826913745690763783659115705987098844541635279616455998889908840663566354111126060572049437158019597512045118371175293435038247500806810322985463005843142707537126879073211405902149432723406737760277004567926571504184473178527077247536816798963378980539235622019324077932597369799574499961969338197506933432418824583020605950115036183022978516159525562815669756598991732862176881912842555989167076707241915140876143309502479358328941558285035012403081880080262797366486921088725794829276369132085095462038525318328208116329460132234622271188433239345691438266806959096114463588283102718958060932266851383257567658788158156540171087197013523812554875732400728369020445441841017031179558584194611669795431698858400047449841827723275142509373177382088231163682827236539120336792162794134398557149162019269208275113044682287670320374646691027556559480964806801213560178024599405431462577550157518203321555134595641598596172386878029347375088793739214441381134968958912084737681867187820422759878430677808795033293181729996898329877807001033052132225142316242361667856083199400077603282674014574162578303311687554364420383734066662124572124004792017039426873534997616498335256389489493498697054004730668804876141901433022182277898128982429942555754552679967755065406840341975230686484889380970232750184868081152095662066694784577570531916587086560957956967079817360896601041757740052038278823928301892214824318411766456000513678215609873045425036017192676601288684201591517670385252147889627664866932940560556226465300260039260027433960074102699199547794787244389810712014097589774595690451612126208235638804822627930026916752072348791221452370726123829407046970369943949063425564100502154644104422851560244266413386110805195030277854438334623727146637015087943068012341122799687705932388778106611055105327843882126758014814172637793456791251237839119134099324347404878417651094647878557527870718552991349562632043233568004821882184710011681527073725916247683375148509192689401013820110670381818112194727263859770067206788796450275032174463838600569847243621386896284408036931077534481999097687673003187885799117476681518192608148747460581916306355669797903549425432404194286431872730385508822912387809165142126809469808232227757950492235602660618919631071222425330079824125164406761548773642582102169666689840401656103493526980078245057106334946220914644402876234691460722106161049304590883191356097040819656718515268491302289301018391272303604701587976520073170632785003272756269162386927154265801250440639014101014338395870924047394456087565040023789542463371178463169109002310097195306081814346554991198626894278341169681249429187115177870615276652261502348683741718528710478093909075086027272524964083491142141008925935684292866199036935873908005400647002852242802492143359381585999971771143118176715647526357701890848081836563715710394540852230555005899601872256649094244473442359141281348529631599155192799413885099690893401061494389390028703601368956524921627353517978902447058843379487739744131613782156317075701724299468051720498290939772667763348192555007397420837337630910822644116834345257355315496541269057487864973330318396799837945875587228911773991057775596943783286924765410279766612668569523110652058940885154953331034619885899185084280248028371705994187808839294266341019343263375030546534538574562161933140572085150359195001189584453370553455750033254717110535470755283184138895568299999180109977970681453443958152850412884349799040136305186375148757450557042630493773492652143347674841582631818622126405149237647044924367891180816770949960698817570082939140618499052779685069034624612922004022783714605634506165637724950356218437871530333545365706679617197419771766405368259368767604426778913797118729645995180855596625408853147765162242970744920391639476108325183421816537625347466699248130285557955892833441545102429745118290148094523135363611365729340313878993163669012295530715570017019041106781084737738813852944820485190441144811683288998384492970268523587110140734378858295708142814214258602858164373889598027229214941309515612900845289350886774486678373501608837924539193709032953944456532465795811590704479588555851176878280200648310435166945650471443920393801104852802094837434437599475889569560723688417024081210719694326937921832584580594783081335817625473320414800930622806004641051168846209744496471721919891359632711124483476999255367363306702892830078935881190715947658343045386958849152640063036841641608924032821672531480270101628450784867366027304280472441380180206715219415666315759959185742788330290994448734478174858391591533962548040964306344755199688035739400588807008099038321287621806420059798712902768569090421488835799007682162546711928266745399505708603592212099262058978477283194887850561378179578690357715731412149707070978984136264186860266466949931095371152307728447979887004007992722482825673261825748836661386473350710653558747078733473904409865535103131357396149943657638571658009913576362046882550970157606447562954086663358760229012113225195452411699147138408510263046551966197415469742777056370419643477847142211326127044083342231170029383102963684851184179578491451204727662065195013387882310224368750520055194722026384303243265482400935889144595747140891706234178223843799512574456722790590849589083360112738633074601229226748296157011176290842654954173604100536960825780652814181359526889609386241143449692632590291308020857098448855556802875984153815399661134643664117841322133198825385849981105968334079002768080177098311109703615189029411612232922541090652344226759791962391605528095481981619629041455374485286330436806372101336438737885986273154463894385093950250692624088063644787744558272536403159140776189269448190377865812569789203358117836243866895950979100842558365399255543155309450347429101665608829471391863568391228513876769452128722503266829792838296301143622701444413222551713939965318365198402299290858486827673847059080981413392466137749006516926969326212621327247213638378761159173371152405570042332034381786310879977028407174453293759432947388605553436021768762167798555850201459420728518376159305319156071694318442554029576416480055470017435666397432900469254874056300343444901849623477759101670159983988261843738827736465044046431321074480714000029811078424027318098644089596828479427630928650765442979077190341748774069255026009442958434535044378996211801469170576116140314125106487317329157248641788715147494598607003383255244585217565422498795847329869991968776005728759097255187221012394281081106572701391113419261634806569535529046688198592096478820388842315425863405504161579434079701875195386810857252326779445828543008417757073215348584096106923126581561530669946438788943461883882700026295165274206438332122374084005758978635838815274950718373109008723073208448461288474308728940488505819895373701268193253369194691179945628439306858431733530967095910676543485425630019021337934974514687741545505866876926811785849057574736093946412552097529520495318393473098156948768958804330311714574106791266429639058957849549860940563386571173381306058722847200046891952227467156951468776326204285221141083472963672488900031985470783026928100781514024023498323011750738722664871778311716220047677994479410129082449273188620666289618636574656014674598698422553864579020205531035017192235843020533918837892281633470350465190495518784239989140821199027761069944560585403677286554609450190601829835316882384699148518253415037566957786617539819869400281527306206242984442924298824652861977936521640840188774237873507317650739183038289582036928661985866398192613857088917321076443380841571241895082848363718012547900155999968630934779649328350397651645579515875346596782151124601015288102647698552592158963546080419543212718642955961448824679462006271785213426392896678433420744304757416260069389841846444463957915808793384925613750045472833886709925890063239732049138915914498708218893236962542353252760678511834463488476966896889322404727873640494256518314895218375264194581735100946260885739501105990639419727379515027454486350883855612061760544263526840425138864016471196141633694757335588986742939097007939671636829500247016034202330617241066501531621819190503553093040289826243162040949477363913754365228673862331507204339126765403149793651744753247943285393325368129249177580583859112682486391690778381865274488603736395274448431264942987504500860211268736792051540643066409592880425696461060263638187407881033384268414929565294412023176976011138658337907525711044712324654078441421370703306692576726749300900514977213809265149074361005443871647109759130478065349167642773079554450594312033587310483665746790479670609688830925294917440525821216186920578484505059784180991972399023780260125063321958782881531071069055571837005694698721264158119496710736744716787424382449642839341151043852889381888210025395285009533887876405089611275977982885235155859715282566918348167340159921818545562098840118634000683722303941670368702535191955134146635541471837406487725102244790403692863974793433615704140457095459027059058157927673519669068245966483200602075110435074992122923563846517476639586049010758786291247971061021067248572412254435221459750318357075124293167148222867969496051660333808007575740892985779939141940265921740483840581015994152589697182152635696616121914260386439064880753529878225806655529346895350904203617076173785919547439725738286955188211294775731668757963915330923871925233230680077289847364298900044111614407021477859644829650992672593400616098356252296450481867086678294274773142412504534985556258131678329619915315537183440862090065914112018284620587915978411879811561725337751138179025379150804257896742851502129956996490882917411680843210242368408647152223888957765066374967757035877604837103030929419628473191492107890897524892070548529472839581073740708935533670677138984273788735813190106950473611550643633871722358459302647083454897955172301624494860498807988435766455095432867204562771634265487145201312221859100494049266708704346235850325991632657814113535041368782431466179286202659107211656383439418335683331968246175828029007747363208971445728401405736409661500809342142443620391135825061538311029683069126757624378179868340275697486915885324742422019207279071058605729872978263421395451062652012438648680791474529071047708808528588514059280645435852892658130213653071583118231736258606411525505996186568841238687860207741799474757725510847220476700541830978297972227436643272697142120318677294005712664491342285573851471588171395418363450247661589995263859053013781803008412536686926875630125244692743097201801503191927059092955866650979259723870389905837857190635124130453850995604905291871593009265009130890873844329493794838770992414809392379887317414659978475394492181342707870757955657660949359217776041834764012291867659915355936167605211405884208038506521306628231651894380035118251518296214556291970518865880617430064060712279011151826805594017565915820925236080107693262805527016688097771615505811965013894855330482112839709377364125118999634580120691628344746088120247951944352681725856754735131683713692162098653941643859224095819297285426788623141782373344528276469842160154115243933533047917033447865129106272580254340540084655134649402353377862441323414281850713842143768571741180326870711894784211528178237850406931973598550634417219163114561624620351530063305771975896613037825150489762234998053262185093218412615476072862738645107823679016399667782051089528116963508502196088635746014029415922684996717710710839163911609466108488124445402790029984800105398161549017044950717126825987654934257570371041628865613876630780466875461881359080099464585894515437966193739047998970301342524241455891324603891343882089820866924912275245986616237527348671666842384242904509635232684405596124042995689605354817520481577396717441068813356775676129814756180129214298431171510568229727298468361893296163507192528757295847855494219548578455739064980140988981321530818455124133068860501307428183663110904079675977063141994256151569894234113237918587424336667350371977599062878951318191552171156467539094878168827137502408017692652057198479155515411268552859724499111825611143139096568665110628624783112445702418392840775340303940284609970871640117465517875185555861672788257162627085997899290563788087457657077586734269732636237956021564166527078156417177247354849460542764747883583715551539840905872176267660186407578462758637718566504759129720719234366911728840446210539913958598549086936869271998351432331151961613554022834632890360360354889009615042322426624542247190191351746674868057594492698434949088796095035679282632211608715211599638820664811470113197006583323085216055194565902090309212893524363916173425972100325722780848008367132103153595702410580745768624172646751088940430387134883399020457078282003963394135491299070913818744802709914224541449082199204309105147798439652207139123500367683170293457245207838566180016921643320751255677146716960256468722878824470377304810148142287455261266100101595789865460186561820872616627989383589684242132726530885504098803068442375246097551505250410765030006739904060599589624633861631753014255360644410508694661971454849763146926470691229983023043570032533313030018928775097075031077751138417015936918435337868839826932809774752269783493126406168824011306127383926915934117880082867330549797567775605218644066401610682428392546065685910551632926658838285245919399794328596268540209478944778632806116675409083233443866856131158574188529299814344904073760930138240698199913127493825631730498260798610854338310080179772332286397200897166712526521033678033282863184687145347322199295040975678780074726624786302674113064250590260618920745687051994028927956825141061765642261792163729340420233433531360116682332474773686634053867434722071381409712456710263899322598517501623704643352045177356785205847320264721184834401683879014498891963254546949051993975004169534389986574376748342455077578191451745258652598829804887515510226988343377809158665491319961608945613205037221416248790137683783424836691311560975999115617981370233670817722676335821624877779656547259678198424248078263142469207641834264027941905737374999713201865186135552975448078238760315207749710708981895510435148630724230345247624898219414725763876373915479589211679032923182981203965913554212059869960150107770198176395734860149880639375299872843961935735202132831659494374686935889422742803768481417985755175053649038380948342668277021291461220464766925069069169047528502713811323588526443670459238799040921186852027303157845142987995585085050522161618403529377091692206585320785395902754538787515996703422134708707604770512026560650681297018850760106148212711823045363394814193475124219449199338199305608682453976905916443039390199379740761450540841469419873622823171772757648242076927300097935552367784033902262751187969041867444428224636295177847097740567413640455800984572643328073307924863594887297007782021644257276099585545348477814152623938489489052021419245535379559416793945173681125829112364897268977597668851596134440307725418657816063569515726982202919934547235616827046320067299053118930107513008329203758920164416361567079521300591646935762851864655527907113800347386942746708291764853494974201964506071366191203991335856133244864460266657040571043491956046529497807682555630202098664273405540575302010812464064583457295442808193114215181374978518484934235137320970727152423376660718695321992832514111351710970882952051463049388560734983020475375191886052851895661398158800805728156665390772517790925071159449716351821536813005021331516252861877410619905863096787809920589402001628602176452108554297435008275214862749784753522896442983345318589478777993869317092610079254771359971814612339146908016439283408796519738089506947786265473703389038531373918885041392958687864547807630693909464997926835832247848006361031489315603303076352104284500071419159134376722634341277331888469695148097500311612245544828494677433781439898757554706484967564322489675523000330903733443830570084799539645021130394364996454965453305960315278626497124563965830417816220397998849722177512373111194541897089651664737136856149860091229968701125089396509069957906636603789271271543729447683110951751041361466040469210138268177115129737875992588229791488468180458204834275966922993864693443502876140368477318915583484402324026614518480309333614640972344678839165408344122778160431930736625932116519550955480304658697060536119963472345371428260911986633411606060399231463140386536555500996659881217440138130755856437823304073496329657486985108030217780226490961681634255197975477464756467863417245375295470045922554069992944738292108060113983071220412979600877918704467434732429519736113293529907425302322622587528216621626129215656131897172385944386357302978634391119883220976799842817841389730114871002263008736239989225706511176340056154307088293804204135543751471471648053913981749417179527640228446169670768195035482738195149426781563355791645857051432320387411923454511700986258177944620911379727224133940624385032571517876086524381316867804975803311354310028454021291429759981101164737401747919051591948300416047236889473013454395187170240001068228053980137238066397449389716910056004146487863853956291208248616649626152408157457745815246629561890638708510066121876566062339148764884365005472164327267219524496918925321797899639369078401597871604851002263348152766405162308140670005429299248892909884696922196184545139288853625815682993238702268601306375192497413065571147538013538679230726585751903428858760929318690494273830549610655585537272320783015176823904771772622582255059013041778034142416315802793104484733662774458062718662602099950453612160258853291296627287219977539349522656863484762176040482767254788877298342628351329900383905117788588846967213980330474202369639935544838666387051792626905420781483836585768680004648729572208975310432622325013338876549016668013559870667235681080708701452070158230166412564997934997345958906631386720020056365182786709612760444964312077687217342030463845329941528359916465659349108521777045452738872168140565398094222491577628892027965091855662623019467835326611345489312105264376094521939783762559445031075611749239092322523857758854098794544115282878080824133617432113342822286496492820031351579963239594488538636631513992147279621851164821604217831669071609635560324918195059939081957894922677497540660914635929719909417105313313636300681102250046083364144048614157875836845361559306530823685282654213208945540995106371531988303370512548652251117261373265064949790917743565338630047966517501098911835507584407224076525086309813322729896605649773548420021937225328478537381905691573758893399920333120365648440054683582689232239267829518771744905949698395498516329072967193675372664289563552733384344364335811277241800034154103054658909909034174100952888676246658206628934336063667806033504592478425588135591043750757020324346662888475489513241871976933342323076246744461563738406238148769349532676492548464790336589543698685609779278070264003627299933656729563704557732013672262187663274947140387526296239158021042295521986788592496810894945034664717614994760564009806933725615609750291921349890494522565139744791203879767929025111641050559596625159355171060468671226931854930779008292576949013000537872593126812075278205449600364001235854655970416293489003824640339160987351049703714118229291835960094640990415334616428153004602412333912416026126392861867706663174103277819773768255000340310808461751555297466149349909797763466695756596183833928817332485074262217853551233682250434111209940634271632361750009183577383936938286378755591570591703621102641757376788146934759623557450450943660557346810033880469050294287963914347756200780832041139453303388174254225944372587033716871973139516970467148396204536884863170050518357844910341679247987818189328915142212895301705986558449234171705191040017402694558570840873109085745117090441057192295620678330397480462615470095395772505496936650590529704390340485852515117196531430659288221021127262399837536327674687745208378836997367781279926001494304798937135785465418539284617863440216306994393012252602411628431844802873097817873078842723058737213028840126498696923383930548606252276715582924243568383087704642443192149159403916044859813608827509661545924109532313537860519426159442073160447509676187679067992288254984640896796354846208287351477381988781036126393352238710896430617243753270962968732494399361206344062092374628520002925089732926837602541594762847136485380612117698361463275771302239609862579593580908039195341723999378465571329723637098114308256215899227918390423004675057342533131562648784146957478274217235690574758320669941555278257211542480759086513737742461371863176182383716490144861933638161119271913575141948710450267259565275977617958033063649806308472664648745267934309171100842403954407608099016191180772123066311409710908221540105325650620999897071710758124695697539271674393879144833282954564144716290693738513815842586087909737613534338390849241196867609511457589174684131285678762307148384310639000953335027619291977053274044357985827268905117886417409631497321587389779066001406461159255736281623616914468864269102767755268721998761100997177679564389975695963114953816043682395173472123925415257345871550379204280134403349526628437575759023893858104166866950048855153323040088743889482837908467515068148380628279470802669002096619008691745220441817112155729613789875343063355686876068364108558400880600732617730272785433756932283733490144766493914820470478845931364191937038555384853111047577732758638006026017257404143728275436635621728734434015863320263524446025715212745035067184094546043899719919853182848564554945860110256246935465342329439987704899797148337979491234073179017994579848007032129922658037998637607916647188835626312119612578245096011556376703950232483379416965533098250311060868927881140511360537463896886279870424317520941626951799970842446937758820416034852837949498144288616957942644282811816715321326020832053146580680333520804781218739013711800202031885101651951500613366993782396493112380568548960244253443391638242612293732713031466110632878582817498192076607915644232765961159464441334562399749442788810078324865621575813641924967102806366182603190524449829508523911762335925155793886298659413157551950269958826780781302034673185709344128306147644591653517140169530566446898701264763144105979042566177484134636041012633785783880093306193745862111968855563499278355362225669837472648203227112681815288006273996198006425169861123678729959351807418555396223996555713597226786439752554015225682747383022152360241379538524085887843299011326420363727124419963345965047024895762293115487152901380190934151008011991767574204827503106176932161846200695717383044541624870719743309490335226388130165999608253595337755029185044150037049275338177155541083116404398234307506838199126677070461777662869912417875217467437687368770452442063692812981361502450474304321819702619356296537372078661996301668579315785110819118789164451563702244075891437378331297908585541212285325622830851393688948980690374467287479252801607864965270358311425790868338004911942833547482499864771360844482128014743621942731379889425516849649431749465984315153037842754822601778861519448644137834615060436553857133438697118753455171680418186436932932081807192161319391807793753341016095823881251195849465859287292070289186785265540713098380585997032674016314563737609894069784820785556557058480271602227264912331010585146490523743831796038205991954817239232711463894853364299824856271494091020770986614663608092036940891539445826320602150441892428845867338466533704924087977506383808749458950226040918675671877159975431204605884525454153101838531314485417116697981394284748057280997205585643474395629988964837422164834521642105687776043693449961154168796065956378705372646893380298763916789122400870975570250378361360100783740678766104428736949747196377892912523507162767515140696219627693877135128470246590556707636051733069870637487669007454611985257516854974438192472061601483129603601552170883862719059792220725288739130761599987649743341382542902789875609955321696635173670393341349604557529108768003821107838993086943041606399393582790112416863182662440049146165161000800416917717701753850614096019076300434014648904232413082913884802067253150412896491418270916287573431059693846452901579219604757737078339912439746689912607534057679548338357095896906148327577463730495758286761423676731959485059725153488889411066234258200000054310569502657318347206873826212315874868349315126916430137235667663392711237953111472193985855391365352108155586009165515266730724432622608875269220467412853204281546630414549020316965016724824397117609981764786662930699353345084137212878425084341275563802386278702491010662754107257005269515018290405295784242327121405358986734262078792632898805566074055278688691244507789674473042942429535735672485660659256526515796986775703859690987164403138693758086632018845200288494360814428531527518454725933342174294364263787220273588489590675276219949829718326706942728698278017168911868612413454194091579519503966009344960590886198017009320256397543661946723767615775977947135590128094168093272865938634345895481577090083873418494237696981215174067451004431858577450359340531104303612590714224034908753813979091163752650400634047898195670137613088701751974506421336341225283157764497368422494561488588616615234640211575335295424694897095154187171941200418873040854251667960267729532326985108260353865397031112226254808089061521649398891548358783577932568392796500516780994460102481178736536760000828975444928634694629279620409821954222938911257993519024271651698613876536450425866929703291648974399247599166912042155138168081477142102194024493984205734299751224734368203768900080150592913412621061245243278405192361068399610218136911475287098298704291362182562080691480099042466626907859732113826174710932363118116609074753037074276596109652272371975999380799363792673475348962313758187087747092404084135191825784384463488974256221487592519800242321194587278303563176075549751885242433587263524932621445647427361355000249784152931538796903410184115906556748898773589653658930950219918584632023417615389082706843596888560755036779102406549850178123189196007797332628338386190792243509278283575725528959957282621471068376922215844084966971016992752908688519979909229043495704885074327512374649486164991021059667307970197265235788643949446973617974182593253772541527467875075115063346204872174192627045480806547239028029137461145573361233428353438450984013846884109686758013413864670395115555638601864358724530571834739605385909376173438407318805400190640825626839833327016533633699744862422652650557344991372438043852083231659441936604605536115077575050426235622016598311358997299882637867001294243066093593462644399610721011213908629244991232366320250348195281987290426604071796456131706654029258385341039075670159633429884972509333111201286194695305955754204984813252355437286026427557213137462435014271693583290506473944022737896078198323218593651243411230510006768084338089818229918741001757356040877019301062859974294310049608728429140872619775794793755061703757361557440901493044665968767444184456311688874189075944312696279264427152047713311670568075222885525758300798044339171651827449336552904125199108709912791787233628590820787938001997793920323036714309276476516729309978491123966728065840878321616121008913942439913925903072580606115479636265787455442922355738885582656081200687175736312680647131451529635444144993006151448676786631458706281636080765291758935178364162716617537241808656476914158475649236329051443598260472999173640819460536586752687502439400650869113175674697893789723302049669385508507849011198548756227330161816437996764987446264513703057308236982815819309510367288242348859551727808237406138352135480629941696827141203799228276160130268375074849003356028626370872200243994918865956652958168978818996438519467301426886528713406691471280553079097004040806221693740725743890221730752812527157755841353914574088648756860451777015773868331567561667045473466629703335692632377307472017720880086314363435587956499638618941035176244776316749167675564035374120083598105632191350905609360269276592106358303518642873016200719039690049832695640990026294139449392782991899733323431039085937435883235853915190305831736452421751943548962488966078098167708640718718812272827524711679416708522874015848147629773586239510917584668505659538960738806486746376133982246017453377926558335374141045091358124298608624560127022573262755092419839707014713619135204769119391279584876192969624394169135380498204522834092942636609891563076000581749977585247837281921017477151569046915830912969633243771549267830077521159726800766581899849345514989223314052814013150508816934746676267468077311792051010324343060370541783641906828605290728421639145428976515437117443160888806700549694255656986693007492986913842306265587199455927848306322025229920144952444398400078490995780418332328621066520289764195762649455589030048727684583548485172445082842192450215214757775839604612156384751642086935144469186737053404486259117157166446001203675560449957299023487285149442079230014791578335852772388317154432087582575788951834267635973583732476260310777014031015344989338397453325182633060237302617866338861613734869953159676457340807187991889377698151208167299302309383130506514172028140738733772265761890177286738773471004573581517513465252278754239867155690030163522017951808343496695097058571289801021686941024088116501634974481139463371613569775287424503873558249767874784173055422336539065717709512465475371137249099368794556719855915405317618362195203404024299043537062647036462665757994138725408729738579307980345514114222702275935660982768050007950491456334459918491275883390859288657682716462367311620343383717527169754572237729060140533802551626359663007353798282689777399472695331853557280300544546889523458844162759780092341037529893192093856100095088857710249653757714278479357450981581138684356944061967635801095160662387757677906723871082295033045113639855703104475972039071503237172800141631358062825951982308844949094908677249690987337343999826015554509556307898291895736001146699871585313448544728754788969131242056828808913999802833653355302136957502718269311949648388016224623911247658690317058254391114234351083105403570070420405551734815458075337899386264439653283542121168507460869505652281385096933487860947475543262850238694359342090867068222601196926961864913417985399100456696307695213158619829111748298835550077323430345132571260078835416378195895334487511465798990943133294042770061448097220650517862610193820385444628053878501802196511095476516586351521200496779489283686923590506973574938120070373070475404870735253678291279241202173561986361662922605935566998328487630744845093529187127071675058325545638459480785556451404543070468884444119819309398982112069167863646554637370011980638341331232076723978394051443423221103709894388164003348017106702972347538003944460732882502069887529306969269108553578794479464984787455969165026320427409802611558290820315976889823553731299019282755980963117868305067559912605975606320648301359504669131371904755410046379269934826335088969216833753962929841271495533584844552921481244887953111985132518810300291019931593743635915239267276755267609335791025584520372300384029779072865919854654393976013783864271048393130825610325974563219467213798228080270242249215269281999894493063070908064942732572253879736560244752748316446985829017990487670037579013622854804818539331097358851314106243364617957861250996665981295279680276424401066445322611688790399518208405241157134058639717701786376544110832265153366896345871878647690586492087652502364386133285765756256506114946565622990828579824203937992201232679584056768253604875952348765313800873036587819243434005006093167347197562491426986737771759545159409852314158253737633846657232353661064895463577750640169928558391911181892874351869560516009280215872514824104427037238443596014964540492804397514863443984090821433620729792723513014082436613388428280097933078393487825517224657192358980175737690185955874074865140392174208226032392788953012667067734678148084543771380702055487394186759157565863047102960955996627282541415556955043091606083779975132972785205479333344674191017913161927790074778107886944402960929566882774769024721187154711759954747298496330777328284605906124412236455720718029484631511272790538862878484786642049419624185307649831833973448921441838034053686216917012930828600952743273589667597716094562235115341174129996034006969705149508185601940940092500696749352065489411464122150076212734789662268927735224331922426740797398570739494815350226784774940277755743307913498904734116736135390284801195604173097291359180701562310228616858790670422665634918985404383846064245487957726486823790239682576377826480545649354834328311049578138573286467918659079915709550195725925632141324833743157006876224575018470688159049091503379656321199889498947539184178567100503242070778428416748310655967404358034224287133529674011257416558359783961933595285949983212671520773662499069800433053425758560312698386374662718537707910437807638876073757102178419334989404766471975126893125624022567473037587303445709934715734021588001279768932154099802896201611312838694813899489790776002215369732176027307550131647767104218742957840001426514519969004715693727545709181192140374082900328473748077569327246013476700400423585925912353926063101422327179178063818774426737895537053433036026634872339897599249335222928122531960021437515083986170437734953958252713493419102931168296797598944887103446640615930032930589018216877151768857222319722115984423526385367999518822824036446419534996870539396571030692274403873737040521923215395520207425698551804129541509357760171141220640079980872659801847790558702330607818458610949856915768166605976171991046979717221440561567003119443270080392738284993467846129800334646445727536280058071458875739923075696081374348070197496554070740137216794187001722111253029653787911982276954526331014990791136916404138141349085204623731185877842000429108264006264158965072006897830375275642306983972654917473895346632554748302831320174205179621918196258305709557695358924283140475046793321219068635003124036801421974309489735024298856464706145217706136926902025232910197100344653090582043871014804248706242491034967848047659821513047244458706230009394587522056490984448231332334766091349602278655074660116037709806040935970802824496032246939353248508056275101750939232546427534631082325705893741114764688834245572707547739369126818489741622082744375914603316715130988219104687114403468244575223064344105326697227789899072451634303322724585264598377847598024974616544883494588433414436981552678286842336958468418443434560495510241286185995376958810523636500913515717515707703357382799292129072593654609782873270786733973812980472288861243303231083592914801998869271021852305634875909747010579145071059362317059814502416132422923242773091535630446168498630755342567046305739528653753388699025933174018110950250496227840864593709818062841056275089128230702903509871944190288777293881762335020039377360728526362439765721608015822332883446337361914001958401651088058509682232198357013381737459768349620922937319610802448128163388971666198174617716122295204187010884581060870224751346762275998690457049079758441142425789970339818964319276540684692593034586710971678386340243869032731641652153569854473058676742113218058230750236270023938391080805690354389820633427088471598434822502049474881188890701347729494045325470254341944608902312494030580836878995090195208381104412382977274846808123889239395746886395266788186292996804291112925146383456355345990479296481983564987197441580235931709351781136091735707295973116862869687177721399515636977559177280365210845601476389388700837361057360274461409544137164082267827180683624816097756817763577363416481065881698582158205882384911453518105322603309967463078666358628539925182468918232303012222941065727823013955731088263131147715671527164703959675370123339194131295501014877233364451545065701816119852736263325292023387617505859460628901078827197711322592414976445317792525037036602512385590932289568399242743410312691195430900140598196496629981936012555436830159837910472578195617328064951031701272994185278543419330614339548698704717729670387792530444725603146968318151223007156994099536762136027051733117135280016690892997990967267670967438351016080720606772620278443078264035834510616079072643420104039431937343595839734171369445294744368805987347419830320224272059559829722847166044854350189233491871151561550646131134623268468857715931543076953614309199913971008100771501641216681481120810204643783278928752226127252070746201486453965333156862211789617069827257658175857584801824902640832616365161490751420113134856524321880474002175731389662214603629501646664017650966428461213401412803188222679924754628901599373326527638041721899986445677581632353754206111694733177738789366260665032851026670088863341189163082979800466514708849629685797262678751750245172835750941806740893192052574708019879835712860163770218868609494687328668159421514448362971174044633436349263777805363774616333647408009723611717937363922659644434860634671102085639905889406431899070800806884090158711512327773447974516659819724694315176600826394801916390050446664748433737427657490145524435491314984306026813806765867447149134449714151285287619861191156698980154105687710000302433975028112321139523652638256052057058242754996554353036804005680076484777094128340977851976468320735848651468060468768236111542784501854361524128380530011410605900188692216883217789190388604239981566290244563938795419962438305288077636895331283159788226188633156128958892408890839695501163299279440703734926446951078926651032590906163146422519174576193804184936194385551019190260923289203555151366185595339072377945473998266792673858508746615760399600719306165155592318787762567272490131012133183181189847027173294105174802368193321330615107898834141920973670871467429909827375975567140796725298970659137476856595499209128661097378261503916697729680441154360172468426342544223614770842292949901807152446361475602968956330164335707121187813462957554764390315539644824114336588844962055117584659495285339330681027233330764503830337599136689060460529399464998995259486717676770616622835535212190119324188180808155813786402969824092081436239251471525234816629308832785017249739474181742953747420832022274501243343996682727626841610008008394011962517565345039433465483475113862677887473275161878918700837112455474256924178180221411040304999093678080359278528108029801187052634318862851331493208057858619989511892173763365948143143157023228625506183400029404411666242702774268689381604003085537996461125546639811079757279202320934973939419827619452190371152784233582848613274883634737194984413249606959142226793992917133260069320441453222205024541160776039456408921878450902733973576319854185271871097492300672276006442598606517614772068558430145059483631610509832803180441702926592872138099240883360147763722038523219680487684886430537688274881875372942720143684697176403548742310170627506391495527409854683483416077959495247143394022895855170002581687565142530976614511080756661276040526097275508878591006222143393628245276574791630300194853700393199330830892221277876234381416471311340022956939488901476319688848586755971426022373908401775863740659661420842755720685835938607253015098686648396328817248703656306026743679545119234489484330008275628661357452830773428012156583540162824842566584281051600145307955442693538996536290016820678370475662090033352323061396600000111466582394389425524250913314767776950189071801956038269115443758334454131268115988596937730098692261749877297325804248485168555456254280273350922818820195383522411870316635813677552164736122480117673300397715785384593401903977309844596630225211160765498302972761778888675385918256186506072438109513005670909414027643077927382421169004182922946322244451204784286413373973129600494057525651576233802161897765393280506260608793547944660177608942539224099868307104790807532748163665282201108524771184475066589635343610003128077901477699243009733135259063385089237335090240645232933541088189386035553544739610044684078126972219338318140621164516071637973635483841342937440222430854350799602137440690384149360553640508645842359214671595820036409648299508795303508604623058143534336697598098045503100204048217165340695550470474667953236015369674875941861286558925662860569327489970679886827762691488900456405790066050654937221021475799622878146393325038487783497977538847980606830884056662078412692971272065836817437060539113678757063984717079306673384709158523752678691801653139680396468421679348940502851681199326149401703711217183991369727753396776000211618494434428295571129417538570232850852587030747477332454102403814568554063912058447760455993058122989513037686849544703957269082337448126028583166746012882744967765759265473757595576740850641199142781805516317256558801584921972228648240764586205106850100137617168573602530447708721077132474274589554362911890661361383896269606215091778295071828274357631784822492488774103105880434649012979626548711802787996736662274855467700419899668528339032269565210795311113554899552469967169303901443995833836562772712105858264447397653166774492016340833577565258116936440686673659336171845705040178350667627050770200880013327642191757213479824932496943030297125117294226714567876733660907599762925693426809304922201148634318677177198785246646842059304123204200865315867326951579608051983550215785728366998094531966494406320983237924406765456886528373305901768729241667085985084029912455396623504818369432746521497424667062438508072589447998830413530404265109386188856639476382215946574708267624464611164112285419681991194819421368305956136285417157030910538448218119054214350394340989015030361369601560112687287110268108679275252265531516778449222200441694005381753643348828631368446743217723147499177266735292336109985514489773612019826381981206784080008614419974305637121411028160746947233518586044840092503432769328631858926491862203245894536527871185300398784946869642922833570715937014178259573091618719832844106837975982017735761232959594783786324677448440614042639112441086800152964680983822664477345274513647700305267633579166511515477661872167073713373596514652601335371963626863838688672400702247289630786924983700805855323984950602425948205384832695332681866316154702514146259507048439154909362435809960620650113445651453234536862212532477818387004081044333981394774737218444370715088933625127986270715475896464550162277263676450198392964871279251103861704921232923021246700258039862817054279936548045085477080741105832215846234308500493668523980080638497461881152647224592304779155838409181497670574497510571116975896231437343593049060414045293433923878020379148394442221414147473733276521111026486457184330853102114336082934296363993710969130595308160160198225908433042728764587446180659605390506387137139436699497946562842624138812216797583182280462092917197426057429139436792368468823667192639933793911841346084877912428576855058519801695377062042134673001343537460352991686597957033278997102803691477441394221315884756288268420976756034832210254726576881381348882318699530631453722719330909455458356244298615847465634829908382398272744682024627678809468661727341188906190927836715319424407138166330527420359473632945856912646985502777575313168407462354304593110103791138947120255249770856343178297098982765876422829561216122285606074703031535114371954785301284162904526572303131851925625218440426271563607593077326852503253847633509417066386193346644161886987720102043040491977822558839418847984700856818700334278810293782493664012148104745668407112695434245882894025086441365788587214825039752697233843739811602654073227232518014139322024321909238631485438390005255615405472942891348629125090795274725355299465038412343554395564397626928690893554084352509272346567507480044888046605984847373561003097528397364089854002744729396267603069174549489296413479464940797953031191131879346547721154976634440315976925714532663926760884382971895305604364948634668509139420391878882124586506187080344832796271777732333196300740041531832351588204530150500878663526720620340783447837322283194310288496087355156149153735063707332073174190959797100035554189289350140280494318892140280346074855707141699126670274639170110738689527129750697242456985796617824397070574228374399635600594542154655757127831598939895740052852691320054895088253287516868181742345426422893342494976354790964632836397882809767296539223660804608766917492160596358812406024993065749214244539144354558920569489113923347720229228864027514642569735019632660004186001069516461511304827920702708139525226558394270654614856207849722814101089253063144270901022693983144472207252810045071369810166567844650924067336811399263137428282751592383456748586573441388349598472151164162622588774503830875714822350561219064041705462345731859564013245131681291356208797614201972980530100613255345530231194504431634672633032541952039294464853102191137112367600777391323109732942147602662911912024134593256078064107008791575134396121543262167122142595627148074042646970699005908011610114359481280762992416534961360093694534771911198444014780419887483832444734124436506649888589069506353138639416819426901214639691269346680130671807051627332725256002519134877174427887874440689457279550670380498357512825196697102254972601991042843900326967928146884234731947102398737297037333523575455982579640974383179483273889852124793301608414770207124903805443885972798141526924310059686272538323151027597021467401051130383534544305095328965013771070167088839195564838982932241545473329666401970745508068031216787888781817307173008412938744281500315168892017777598160050038000649312539070989011154453281725433785349483490269606692854828705250887012570960424869871013054579607264708268381204415717816565923555615724167055381534680469786363901289652567085065982908882363790440662804717386656444209125173766562183294355592456423783671148003681614740348366797112059165019942091483356116568118395436009180723997412808604953713118147959890957107381063103378554473490647112581099564926488683489448842905193584788819628761934470440207228685555464977667932262772445802824546657069730558339901180682795069452171440022110725354713313565823983229842067945402565629985285375442829050577574629905402531054364217027488451054100622804075480969408251512052064492419129917438352409643303625402239710162870876403516052847137227942293785184154769583541722705206503499304615092997326376118217297411882290549227502322258486130222170909483843861478846634535165631193595634358759404542927715739919544617870278236492019270214412131453095267176509852487823620325863137835292478102189092972200564612589514219791281610550820314271427569332979507214813402348670884256678758581201444727819812693906179643405969256794600024576964666445192819992896761892108881711345358729855546724992689715463688318615991664344980827513156277741563220665670238583674102748185630464910593544531156733676656717413736129908096342478944391570430819449157258836169368738709545416324436437658982164215562713855859845947179477905644804946350027067488623061150727414535861950296357136863203035748716706083094431929690702587286028712883341585111618202539242481251542744611226833830006793783152082626344271955795928409712728376966602962399374991574620877045274177004490167078377006698402387806933033798855762324206860972151611781248491121923754319342738362570844440188063591896469322222484504862242599031861326636788183976213824099689241093517035562834820250139064868575027513671643709874453241778212867454211410689391034115151302792567676309165917165463082522176828117086784598822737925267405575115004924132054766390173739715504938972160241901465685570106184971670143533197318541481613224377899477498791327929639585538093672631986527522435845122238255390565104934170435915830578970634356154550533980816894135589307667825508513945922151376222932833015898294745113519608896840890029921526953306578356445567200066929790122447409243136309594477596251854700239641372879744696567548658187818421908781883153678111668251881507799494091049302141861400591055944857513602000455724371421391700445290961152388467329224438854048656822711226364718436070015862989880084280316543356508902395486155657510882198060175745714590437363670818704398010731504855361182002917524604241804242553235250273986811394106764744702422249490885107104755825717107826108606320654090257402429268787431213377970088997276534692743198065720528276544806112739554108979936661498998818354131736299512155313677563617204691196923656347618312856778734238978773783588330169007832798040744944263975720542007723781320902174390978309573412349298518403639819402516220875253008637150364680061959948047336549076701396435166266003013118483029078825938369358686031343753483456694119426927993152747960475688791436876778119462248854036902606971643921180218219033318222452445806770810384725758973821285753215128745690723032668052864892444588851364647068516749066319265266815421775922498241204835589469265711888217302064830365437151035565035828748068129497641131027538267642689273227775301339548164125868002229038178251457980667881621931717721383528375840448606461553375257788699539692843623754658906684626868309658013043525561066091812108764434542361003040997419461968522421135702082612294284676018214103786713516427454171326029006115264231369360975744495769277041041897657035165678817770177091361448060006929821151146567703481557083114129921805947039776330265398341133499158110901172121976625445930652348417983867742758175286118838500535611635336342624257538970093985643842609318292693067788286311385986750915408882882307998880679445828658541603866416741781250921247549468001076168978937544541367821559865591533928325996339856090954361746243875607433469375773686644003581056849064947306347748998595738221317154289543771403259909174746172812386002446398276165189825824411142769613099602920045620246388654342387462822603226637231026825021410753924653970228337105628346939273875756025062569205026172296917228850823727468310183525217754225092681539395323078626983085153666896911620674804398790490791200234934754363938484007501694884870533853160583988873956517689518777743201105341339944061909835179543749308758160372629816920227347704849042211141574510719362632252003475460672220576422190135620292918560735551053494908148270631768554075933757100916199094717028251441444600555305240396200847508340155202835353072845718291797379631877362242609433228344309933570787225309365017994563501262192843350276311659248681316409049838849086957979472754899622664780588838501344640292260223228677631430349104813525374484171624831672687174791327058890215948466701943247409928255967471709855839443850583554819527335735497305933230887955969714937472297293490613044642863950553264937283751648500987953798751257098778627522348364444727731394471163504907512607421029989711976032921761318075351789729332047093773073685107032112568547940774864148428415884837178305207722614844651108321862969017177147716072270866354180196397815421399141246845021858941437248652813311181170186549230628049197785048739406547642306465516267490884375232255561352663745385246562260756332242463251949161335726844816992535294736168575963649295875117235331085355240582955324462513139640225734085167376100399784160700553870447966373703321857216298031395209411123181837834461749877158933655830958972535496661294384101354672011492064839851593427435152534267039326972526334520587820475132106346952485271187300352038437395021479144267330530479495952292872767303961760661974648096852197465460457201482166076016431949197491586597529531147735406747655994521996432573466219519381505720290295843832242350375141030651884688650245740462453996945573783632472774504811733363911946450121792504688555214424140092459691144252559171339629541197299548161362298365868798612244472299177817665342975482712978627161131047678683394948611384017761879483220314180748894485675601139674248108187990452264677943552290281780097690898854105956245024599931757079139081041956120881248351939409254238170064398432230834187568087734754465719159881644423583253702105632111157112896134439435622219820721104160297403819487484055736992597385590470051145097341361840020558019107878436122659527452434619470905626074588446970311585044085888403628594269720606140157223680661778060514583104146528107889856080457373506201903642215109021424883719215307010706012877490558933554125201085060522423588871333857676891261271014324508277235318040937681315254407639787612722217100311214226396909755072759533761951583600758204946529673201759026397671095056189051543988911536964173165024750957960392104504401400520343263618156064356387795615684860028053255658345636993589540923598495772614485823752294180103584364383200322611151474216668930858308797749812005581626186742934490104665594258301930086305962081507925636636378325065771192370668367070531572206749728122883836447364881141860149212622243379913290681359037487443695452954915332042420735338897957448922968623676626853425425045167669599818292426400400558013832284318047913141777742038235334089419166123938224076671051402508088446067791532383818921448274697610619642499003180251969261651094840340970508843078877684717027302612091921558815480650703931091041381626406662363886976758138850182371774706260981013791353795238672056968138835664245893171123109765076280028208107509497142220173156959755449188224887275217143173341247698123921331658204680810592429032363826100222896933685719463839272918943744344482605762481731065526476451317180489532601189302482833877693399433124743468378395028794314574346864603093019395655839055711563528345868868903237201301706382609096239447281241443400043324218476843564676678555997206560309018778225155753203660914334559191306527882807014972022623195755385619559056470328194941354506949521937181886068861954003755118042386199697308878169205052268788165528831841060105857780023673292856512868348863768194987555126209907264447561957989285463971388365812785348990463679582334215416581080202721181114634484504435392715411374231526703186089361550262400503707375284851674255950716373620963339329102415716075183260920411599575986725951513551453149287266171304340298269869428001762629887396560205137031827432702711316701759271128049207487963389919581888623797768425061091951584956172757740826971662266109557958717272639756176869800743675207429414646383762987971162238365446047897138016469912631285880945328605549817872786823998877614664678281585595132570283523631675933286788436200478585340636135269196545022455119867892462154358907628492751394478321799000499852628777802481962226280976010613968103455482443089229518879164395568900036582083233896619864226879897737356256766305773071562520735956096325905065553607861608999855706945197286446030094837106755983778553484726179063168812748770969921086859223881925824893658510231281961447121975099538420771897858688855893914822908174963881793489194714254699764173289057115102018489268767821426958683826045648707870838172577917898055593261785051214416193875881722321458781389378167460966579107405797491529581883638240516108451572668611608707309095332578670597949557915286894662133096068162726120607787796671717319946285325609353051663772383893069237291724006719151156276922396131095315686420357707432723922729340561179427702173305836961445821898659086603160944644000748565664910095753871036355099926735476151678640597947970864374529277523652000050276413132249390690099601983340641576739630823282686317814554342989829648967880353431003055273483424811227630303863162213651964787491269272062348099903187644619725673825262007650489389672509647811040314783443807874181763917619658309840481418826512550413244016618231005474031506498561018867957744824141744634483615890251598472519490536900971187563219416041898788553322932461772194631555143275465531903100139387834268701007476431907436766397997542002042167001604022590771644646882493931850462377115765620520776581788287590438684117836573219286364104625533986434305166013162812721840302661543667470311980619131920088775200495750343975686872168382063307064262734645003376652837597410840556020485260924261851071008325447096688025058913947166143148468376713044276491468471550655833023912396119161468351015833119493940953695391230525064448414776647571129633157411233617707866654976128564787765217181809799503754898150361538729008839491100928770902815869927049815093054431326099590847761636323977493463315263088233483048268089066669115337893462647189713253452720406977844270683429275360611990549959829703333535521872925335195452193387673335763496372885868388182059492718330364831637980569515325266555911613847000009642159399322727978457583170742197645312538478539313562713135587264407073050650926007056927104801395768476054954961018536270834273505707214967600098861380349140046432815718538395891261107389171302313371550614125263257222797344570754520344285309021324562465122968177046460726428289901935164984209336151653900593924699722183336203455620803256715041055739337450927223348287791857438605784433032002980128647258763907628876055884695982850541856290520365017400497070867986179274049245419566178271213161471297300356131289477778610308380708053138076982992738484980743009597776643342285506676957222855188500634309317220378698636668571898102350529625655526770668389825765930121681717188460157315744750436956649635817266073229687407117785076543370306838582905964137335883002054935082056210251255490647457815444574499763551459156338450231880004499274877132625110433224933334935397278206612968248311051397398125336288714882075777767623475480446397173039048444518632447480427746267006894196463426529973984505932985442126013810223972363229990814891729926533571651961385127772982972825426868361943676233472824875116350273255391290144523160983007786554159716263720221855693760942542838745891902026816582614504593228979503117883790606660177970504021575738563299570840106558324582210109459709635548907901225994566379282109096534158147097664661796680634249950661523379843527140177092085142655401143733618752252010001037559732903200781040875336186573018545031479924043945131760045953240331137590787728878350289138606860006426621387913023134914164471205647991688575409072648305185859939643561787293788784761289886610980667334869232996080664214834163496490526080649169606947196154994100225167381979573298222862203992189520166158326358396820301114600317454001538786210080569594681527496429393986217801870157771089698853707568727299904373870000647398357313768009979986601897725959851902576241850271119982572554020491332091606570313204299047716016303290482871465839319164094372387068002423996841015996857321117174726279511343734017739168782765577028156934513343558483391847798452622239589790394405144371611982255751349069556189843198932854332629262180317225964490087937172447164869043456376720962105054265874414725388503839781617347608465819903794330820528920536753670423818866855591888766826515014981740104438042882394493716644744752844484351250451123006278905296709271614247392317737164510928326573755923187221089055102350480367228544506687295699123760597319894239251589989158482454735372842689684649302136475193530271081157311253656994820148808795395685153642518056719455637563130904929155810223332658830209639381250743605882464593327367826531137694646209409229151542963116807323330669057715342447929065802051137855041462433993266554568917323808503292592217918987140244856944391067735182805566837000460894736306231291531507544466209607169269458117169794507110428389987700566723085591317293675800288224153175357530948470999111551482649834922862226202009075425475809204693060382197535536011634619891277379906159695150242994002355887826460999054203995490855873260837536872218809742752021787583911947215300770522865439522588930707476700974120716671527574720056755985504151053528531649263846216696124651645352883506140156500868611183949730994042382194041826761551252145972352306612677368136092867679382828659193713887930379834943594187393088427094479638207120848069092723811188756851554309634760157531008635673643695693807939111583360667116413868644377633475256873895344548730274624554120455051552791982336341729994584647947106418782449602372996402797174257570586292571560976280771365703356169523221216404212328497026641766648499110275865117950251149824639506285333256263970527215595093562259868449678883171767175405088833464987033597610017280182893576393711096967257921691624446282810110883172161692620347259187819827106940946647360231312905065153295299512467320155046227680363629218651792198909540383606516050502590840403555093911239280076428882042707704585212195926504037783804455194105839462187973015490908903408059125773345975265709082266577118953658400750719187767232523319720074898383159128318121836906504923191885617615264623570501113603873018955542929684164130999494868154353670678260524585318818472767432792060289382264315597036315042083940922840882076884105424558119060694397802154098719504642324817256516543152335134027960627778254642169143244241079943907348084667177639240865059006662092376108302660300521051208429401654776787021477238943829891856553444567110555139666253593166191421207753052728178741904045366002462176250940089171529661545234080158758480790601576624905216709323176219718150696184160782893885674192387514690299716804901254799487454895091375618169495467550101395853790625934931175118974701549280711292748652425725877915447548393344554661526961264597789532487576870338295039781527431289174335924803632203392983683573192931524897104558317258409440966505473042327907464050489819469840054279951785629442578155494881591808046201832227280666936966612787512578345251955278132664714287192332068593587526344170133358028714991019694575546547178632767699573201911376815589334595114003122984813851529367175527295058398369554485527743537461812645017468694720987215778507114845362289091051409840036360878608722228900789311555863608925220489138797720258421494763548023996345663143601092151850987547800976883218155297889093656349358639444837982302710127325484598208773821325692618209709738578067778138398524429778192644301776135751780364664203083762663081077105781131601348399854091022643561302610095584488342073454322798210529052480973712065075048998778234977850597787488587970460924452589959772911783243531252513860944332619643788032086856586825016718885982955074203232690089398498843910835002907757090750244146160019791978299898381648428075837101310952461863085670018487828900813308600057749422178631683552041265124015053713185679478315584643358752750809538707866121830131807297517433677576683216907093781980944793266087660076420242198203171182336824522885047604687189343083521660153565880054271183625656058530991622014058015392699935639491450258518069030958228040302797014190283645033246198484205727226590141125346170421098036104680203810019171867384041907148375141075234248959409023025011018744277194782303583639403813401092035900308992003071514851621172211356107613436685678916495318037445600078235922478758227502818288944180721084166021586599831910780799603586654501720653260360942889895991013284128508245467387999803471183469114013980580700189145936235490681318147773752378771210766479336150369715947534680309189202267875336835822286444979166735078716988583422036807000556940796476433653865086953979386274862122408715992054501687662924207622853237316076283246092916802542749816241950826934023919458754569667394763206674645126732669296267242918320358835668702838259987813394989177620890927117894609890226459518649234145797110632973774190139792228212923037491119637174200499351324075323192935116813893209075025292723893408869741224179384559087847159916119721022718277928750042337398547430216092883127328980742631940067568989740768354635561992205595968279804256164935663908900555139950652810220699718349207368937567011203909054992413393741137042731189645090897900949937533850792022265166306101849600327538834693067693555035126618461263441200724200567242966336310987453247204187106548328664596622207006033840914041912104897118388705386762454899647829626944767476852282380869443398530945816105010144264528053488037213664234826391673739593720912974390190249281470814702242876233426765051074969790242927644007392410410605372029662615861566828879062830547822291212898210288701024412900947103358147251970534052468182589694434902716491138681672159247495384345902739565030859201140519247502020459901372144916904745971952028405485064199194518063437287153527403481765546156714639958590523292186857013714061097747656312499466609872911961774882263887481579156965001723702244714477837463782163439709598673439330315029571635619965346297185773498672650119432710513096118248417578551523382543351224838310074021808905941545126115634160105827694468192387637512958564167575352837904014939575054531553812031167239655505274303769042688612261935372287463315124048846389970651392184833083620831467784937705625394635535767533332085757172461921597456018731574981423042905734385625526810894532210116865748969773329276585156760689776388866284844059845481001719417676819290368179784721897965903587196859182145342161379774837851810307734589811676557704746049819111412014379377187828462696083972132559717912656220153294575515636512429908430338096170879221223510532191376749390939676076642320582535415886739767562354984936365577491371608160540296973715329784286127572888006276779073476003462341589589154642178343713298571897434613842692054158190507041328299154949641033582709171123916005400528887516089697845953867962978837111784299935409291493832166269189476953374547214841178135755523195440418032748519808330855205821695514854734643553999427587404734878527874502478121020113855606109100771918717018598414919441186457943398147923884866417928395245266832277885066303707090293310984975036433730581469324644088046261380793393731761775546992114138971222678768064701276025126915245094471094429121700511397855098972515068330202578178120737201965731623999529620340441280569792129910262748284858735321414837635474091737416669537193982577610310885605963544304738374481550087145964589133291412181930147622478377504429050071222052825493612145860363171439680356281439342430183572637653505856553709148101331137766728949130389847366623706074684802495736465628383579588691007821162643632737493117105961496277674281111261510993331847581344606813890345462937415950817947608657676581612523690112590112621111120534341061575203296544738242053472016420098439103983935648198470050373464979015713874874997082921574248860021771524007619165996296045410552842186592009126913712475156751548574522850579488885837437815991788499119239101419257642093483051136831013568990624165646276300445636222398869496147282076257569042944037454639616978670050062332729583684267771026602697050214188254328239275810738548023272033443670139127676086925735192313064823388980509088104228482628015181146609658714979764396533095171257815929058385400486414421000507138003772249219088500524031810170133451074111167174733303913781905448652670891262171491143248014264121692195242336577289708905962736705122916379031586180161785735070918448044495083878306298709689152067432117064811164789548280636364439100395250509534844942209603174257199522091740466738338682996514059671314779933687176741824831470500289126267429846141274677559038146025638857930105557092618997684873368253184942244583732771339133597906034514201984702396023690340755123718056834564970851600590178364910744019131242033136156560677482378998527126442717485817132803429947769909911681177026736214544243466920632227767722891434274429715600599920087714799897396719797834390297535633924845601565687677396097590239624711336410430633077722722119482071681383241053974598355817381948527286227558628003877001741129325404819233347675663878339496087702571285645522658441279717996672887609791997808382807174227007867241970548096243023358272325494530091773811909195181560632691912607500207495567797980148771789072303302322826744748565607749009687978702568398225852548440562020796515511064034362546853921842936708675337729085876680525772497572508720882980832419513104588390671645983143074667831650486185016454613307053358509360539050569125253990656698555929028763739725491206264247004889441619846644117156675779602377798560015078842863210276796616467120399775647397318093438321615117257305381844439740424285123288970295963409039207518464107698039518059918506866798598040170729312398758849911411887611451925995458862698021921690084026154586277419822481244785767285227028544365142659933968379791354864798671226916526804600157549559182369868162245033393047711261221789601981223032328311560414413146384466785629966868945226142589984441481302844355832094464419842161428378949751614706591629493360413667041783428982097186597629732401575778027835407225845196316621969563068907037807111172818964401752132129801321959206677325312410159659589849168773226635913719864924590662235752110834000299404549672902123538916299144200547006773075527353129323429713086645453866948426583201833423462188797622332177145766537828770284589290324674534987949952264546302013803828707371954853123773448813185110684417877017802467616814613445810107622706638504648011955351379657491774350822415250660048460863863929104948883322392849953755799511663339345080900328722798476032955897507512434801821121738909710240777981851141330371467882053074462868440067889239070714873689256491786334321098521370928456027502760584607626078814261817571763413509050293434907229339031472429708415498775130116163971960075068870630147023501140924968283940905355699871747546074695258255805066209194607970910216373738267749329810780312292661337768145952174242940697941897712673346092533170396433577215217132692797795022682205683925378988829639883041751297479115929754598392651796842691227001821595528002277232548541546348009813977456423942678195956482866227785028692716894872160627315218768795933281330406557791615369946713077150348804660969279665738873614702839033443079982784813947830141297670253302395966602863145255002864175732890720171258442816243302541265924429750077546159427621659157492601494203342209489333713362527313538729739130643322503657152802979390049719359156309586079832475456014494806853850825750731407999383405198213684775016839850475181073956675914409099661778141275397829283394587238593556882462718371698811984347703705973728538762682859831413585529716286122948265739700978976278257638436583827371474248906968588453368061902014777663266301308387185749076826114510716787606856535201964194580027600356825581464337903358593608162611928436385896548246996771590761946117286744099781724284318530648867438334506856415544375232581246559190489424561287704473891626269593286496738391236041349663404121788873507675686470634151770909630742253411669969223226317215165431334523233891641448087826081156809149929215677383756505942433154678920654712892805794248343001639784073751959636802126180275952086711425475181867195185058293232566540747473021073899672883752861602776824010168187302516349747166776080533357054147865737447720350111723730352138660136127878964980372647906238971625079135480562994441392190834586378830954662249140916364736760207676987137840841071012786128957934516128978064945117571959558562822719211967756508935829388026660447185493556209338084538049412742628036805293861335044378427850598433099938610694381734633205330370665417550043742852718243748125678023935644501063927955210723727120936827010261839194787842212286122408930030434378950395037729463654716542772605200621465407101134425718978487945556875146010994984422750330201069379606013230571868454034989697166155708956529902577785908893556404286287959373398884235535769003311835202136459626055334925371566822426270960638677302982179722092790590836299369796771393453325550817071355611835672190928745596057005643459941032549893556777313243435475324160961841880641451303689772999281180219355642756133029089337668584646450099859411150962618296270337708062428351423223219146376634559095157477415608254627107139076803403271935533795149750585124496226830191463020512214845151144534303216911560262599703751508520308892420720528889765251078245806908079386068996502718438731385137974713480103004486752322168017493397022010212468992483674101043839144373375788704230729630948700827137909451574148545305540823433516729137069839459048963736099842207026473341612860267860467536573027170334567821553235735825574464292693118201125373704364726875606791386294988636696972722261735660739505141729513396355439267471854132997066254872672068691650931671925612432636373040687592115799221917516855608953319913351726367075764485617581875374603571180072602174344621124038192823501186986345661997524052017994254894499232887098810385493965720968870627514713017835555648186884543074349841635896853851836651001458272138750218710691884943909189367849025368121368884768600872791724355440133363773408209552895714935365284609892052077140022834838674566289845253100176977992124865196254139634911658920815622087709859702756167479298585984207824785251771222130761287397163111722237679294146829304986764817931656556290557883365168129170648097361046432527521353449623595070246462962238785192003383902473434235921394802347183453332842031607538991828897018585562149692796759165816825990449604941282759137968279512534447447509505192219207482397292118230357943403337761432148655168308374452241841522353472166148609456706793759469062408805290851598639189629061185686794020892757164073422714653097320845912016090075347462400533770251662066896545233017558520868620983897772262538214320330715154370992773565099610926369155260785344014530078331641240849371243237825510121348876515758055703137593321646500875113542050920941582022161755034067608849333946145324718874982831919957271941459014222518154990584042699821667400119810964278428935789340116630322024695755573320966806497516335881235422594617268822739283584757173044013384179659909509691989307539848973116593985085777120382632590592773141672270750904199155862773512843422655995101758987972984785980086313562297312771825064901860403154175703129531400861319551158974526267997455962672821556401655654878912126464288840638615944447023796456945051973746880388342261059729138624936584606647947461656052713855999899138794199865427367277840841751881178105345293452308586605565866157256650238230311462933312372745701441659653138472330420345372051738073232006201504451222827204399106990901053029514568041173385556036726991363440931532964044991172231111806612141666563113823923635003651261909518305465282966956069844623859327000033368203150661142698830180312959437606876952523933691233736797696403290979017991900812177081554696110606848817003620807812188663161597731707740863527398245471779033536367042488812428995192400401621643087920958136400655898716256049385919011508288977956165991577011165232323568689377066646853330958407672961795360236104929305689897073473922294924405551594514687711911057885613506144826145480487969287685707165770918866288717247852672305699566574744011285599369129710487230725184877302875386410683983724658669513544935441769695202223234713682527581551318696229271074338340846324102130122038327167684928621782294129778602803332821796249094204768261125696136854994281764749009057769365340813485184866512729981230058538877836826985972903338467930160242891165731347370214046300793190409441666164663499113401659886978891021414919077667622561331074070529902007405646198388678070717920592898577240408452032039281674091215266300503125744331810643952287158371346590082239260580104917444807027777696296944986231151830641230323474858146787557944130286446172951139747957507220070914583862183122415687099074737572681832549637390231161652138457305155573149096818421297005929088719452504562383410407834978026452413263249118787985913085114286627285987306058023925771010867993547951784345308214500301219944576032877976669252084803591608155352538842871091120363133240043818810508595922147676343534308883234539906996433144579721223083958672870003961529500121838361555870202239517617781483688783058787562836994903139931350597917694272579004299935130411490732744785587606679146042920682703135339123580995188607709665166476426149506705222365509408058693711562787634737328723881950451537312612326652498478955158475329711772985982029663226187128851754856293083948741691990582882516325874283722864185673789361017414021193565854162480585126195949184330474538294530130459513553293985325002845672231696848856071102754798388129480501299262213397183795259247072112240032293523700445338419264506452717258743242769929348091326599672727557307699955026260024158052195728349817832501286226069719201293002366466400277936109672669873812995847112364489584862315673116581397440683600310095629658319022965912334087882589560585835043276155855996049887366076510798492328304361057773559526778395184434008619737811729828328416232712617978766183358559895421388599855606304932108415510157459211129421059856280249924858753809889566535671877949349704526932720209967288405901279843122315847096913665459865070000517872464213796595513014767738491685868169815872241375759796330334067632693548782109343985910899396968443165269359302554414380090081085127606611728610585507037713497950767961581491906525797282712817029062180129377208146018275655111832729299338379693895056398023380885201713870015691555245858971315770210489780830706690029523681454885468769061655135122864457940120951320995395930942090481936044947207331590808532673597798678851122159595191313771518858878189651847966398951758387706699397388938313273271307027544196127197448201693204319083795274074795427517856769778618852830350165038324413358239255585631100703295447193106753866679045280215078428560695905524878977965318564478553290768993557665740285456541862945132867380999437660203050633441000660569232880214948206014865479227688565856550465624388396336069565737254663840854774048813143893033459341485821535706590157929723248041282448790212669456109753225085826511211329220761644966269753342215798720677686888211391048429008965492840950206959738293957730324789344708389509865203098659433199056027931413167128759396189115400356939710133793203100336273004240091566356564918514244877418132988943137967672392042629411123845620211880474083130424720106939434503242431778951485879543027065732927493350344488757601167203973225600815472787694684420588834942693647290111680943965534238531753270975193894176800935115825496701518258344457728465287086789385896572102962240125179291502130303688334068476135344239047079232354863604612883750584692495908812772894562731066290758493632119324901189423366575449789325964990801138807874603403510344934113417768539164734191244797767753035763094644057595228704897378287506816656012555415753349126751568599329443771831950838642780033975801111726893092364043127800322201672731187319869992789412529608449807909237752201526352092777618450004142388821240096594238741304039224141023961314173610089066270218394895783716153793980075883765106326599538886200368423714250311313044922830203558382626534854261703711343013369977457171549665191073511272197300841741020383973641852724406682892035368814513428523233350214732772395137176595457215606538098242907569022526847539465419106867623324579141593349033472846207684234479151726294119199022725997476689793664640567422087135009824423431748284560315870681517950915822827371274956738953771163460330056530012088569149355078284422636777076780816089131280670402546900396882073754331610718937882521849926836306191084998538158949596508410881098082982973102906853167298084330786617037913312558118431531244012188084899940229737084894792472514646247838792882997253078949033225746001119173795712972519128445686645501980055044580510063801412942991285837080276381998514095374963141449415173277707643718702212463877487100546507826149450082251959457644896233218123807782715230450435175092959314957811747465830640666657478292945311125474819222709468808442483923935926250957399371506334415602401716254493305333770070982297127679759002079652429806168365167030654480703102640955607147054335876486505996849616637094162419489142422757706349078664877172568880743016449054522069229930072750270567810122920580070618567185799597653459310786226685975142197348898243357785286769467977652343039645553910262540597700167141525851380918264134299016254091094436339181956922921871147377023664257265541356602880364684893279004983360695999834286723350597638238057530950250245498758404055884616211240546210171722384171619044917115303616456797604717420084303276607192516784036458193198701129910569239436848099581676782557119854843223709524885502794950667280073865396077769600010991209415385061154899375300958676730092215409845557079989274406421488291402681512293515350725513293587004832873919966106909866331159323952195493461701645868491214894878924489878978209096489694551118551129821239447396710576996688792086375689035138998085108293706510409689766397647809565717153758172653367455276940832856807010301464577233594497077050247008211239623816179420402999747129274426995585625308777782110873979894922142348679060621870674823901441485153925928700041034729872603028664132006764801553475618893748258336032240457338261770948249733800381805094161855108804826558249646821776276354745527393004936673996956328902422378040574221129704668868115978189044899444446151326238899340622440572047335647143099489648700686606930734843470981308806748829341922278411562352921280829976012178507987590050744834333113153008367041930859289684993962251066669006516585691249837878408612026896336364497937598895309765765406691641015737164507645482032429178205725157223323656884276721923045815732332877533865992962016178959725023557124855725699380043539363521114609722701979448559236736592262097206461939082802492758792256488854650105906138715988297653637342738569686036404056186739611252912093422704881181033392001122084905560865299900654038143864777744164735499839869855597129899982185747566060393690715348278340979341032489697230271406471188370879387918206303279666487930398026824912621574210243872744793485991068940643528650375553836865136891223085982972822442211791654675343105962059487499481184841157389876156959062534720435807486998444669906377582888721641822755186717835898118346998319348157570032511048042169530329508743184382323251698228896316635125414758086224750297555424691875321739973635174835531522355544901665482965814836087305417326425437567322414178379480688094169674072591830515569800043701683027182873247680803351373612016590099070285835585631285089159331494170248325837811300847814035428148665512502424560158276225107131156823439109896757625495345484853308903959984359560594870256409696418676095059195758659444157619981365742846719168209268159972873007277705071982683520322267870495920316848225849898118731642005511393338043632369871630787943621032029183169487178115366110962563531730152684153804180672628681463931202584424887184094717616434988757486700724567377744484732908443531572508518408116942290066944956809088328150225936678085945861243367633912229525649363699471398139932592658001129483014565473765639084843257399001251463236699724914926590447511567739346682212083250675591749870900883015968947187960977497814066518178751692239676699144734327054194639958552485408660904424044453763116419987168725706938375771227785444722792010327898333797017187829120199263112181256925908294288206260578841068010286535283692989746716560394717216965649085582845051044038064370468508279747595142807823430855701761626411890548386323815659953406171259814398376343978634256302331432556843876562792180313894155130597362404658612708365167371486102639671719127586142865121243161143521466764155836742229429961060512802695942274439644815653079789013501909713583385573316325730945699273457177872333919938486606297438876623848865029388610762049883356211008131422934648921994477146435489201896409515808951990413781386768606366861285561818094292793574630287372767482788717907407006785774198411178409857075980465950673274482336521487366118432653811534686175586411668314721203260911588599823656948759407886609757775570276215202758294877062663528211696277977270135235587673986515799730738072032776731944355085593236919972562730732571305749904201382699063262839143500691739648537255685275071530086798058735676157925527394913887544834672722792317528192098778554216956086834561998531357955061610612037602767927485481368781419531836154503018528136811847506466328629819724656554220130853641037434428540386969785613491312801355730574462352523235212742455767244881670590833069960523544215342238432049598927152818273969458832482724578989898476109195162061463663429051456857524030158874000037387385666702519918616998432384292917991445324159914553581116331632363877085241772212471835595401176084005613800279544032944911323709681766349823828355840261265987464077627321161883428245479244880272899192950131115512184853009431093933554362490932486786014641797096356975694315542828679778462766328438428484796306896027785649054412603182404803304019536757708729099463126726311194631227843691381230900924546924123760247247118418405065115642175721552265197225768031572103400953905103826883347454948385317352053839447671880859905386345604824030176795397491332405566130643664545120092469147446843881954491221589312763484010201699804344254775958122381240010546116971873108507689858650041494200882411950154974787603396153403347891030751509385676064594039637716931472788438725174808319118115744667744052694083335011209302618254516031010483382971143079111900749720251606346221986696768005635148525922061546794929083330001183879176072262359942199705573534384815561100994759879086836752428910367534375601299894941576783415215718051731566852476292045573492677749580519926495997215076427159470631065228226642659514653838348233308130192150723068966107247723794497370227562462293596409832269143047081770563182706805955747562122780008594032692493337939260230883223549661553324590924525185740595273038985702684767949734852907635257028972741491792413098589718413273881703669798140740808162713338106032749156352856863534179367491226956011817726774144905520626694681398012416924018268922377303358254095376883967172416767561955293223456461858208133697696834594623416415808588252949700562607460666162140276944566144130584073645520597674689311163871006350491139188624004623851904361013688830097456658531231581816875036127138152212560684632611493438733352976553625268727206926378144669301605916855932390939014245782792954326396758466976641590307313293321746082011763635932119295331314728955257759255647295040657672073279111220740703202888591839637132832930241997392382505497800864027680505015221190900438539076885441115324409389576734938060789821729196280006453034591572017949352854091768376776662214583407743259461871847333924355039430134133553750508603015992095823169458564330411755318419109424982887304080328628380199454131118070455344937235001441437328580945407848624071174155039228138593066444776098268666480243255152869232591516414755248634290566151270768710720538060896205323177363578133965707758999992640416533015136007362107725362645390416081925720463785012167609271138973319468788895787637957082921733849259661225316210667826220668202080305327251870195634910010412697856375699847607734334866925479492870742198417295110632383482609097826973865980819490348223363875132090996764399621469114547872316996622217145435482932257770231040223241284576116267656701106547403060149285164000731330196660355067694601981770436240702246947519501377540343040924064236111966526326436442391746189732502889542426567340195394254586412308322942435804044309015168913798525315347620821251509584140688467517733122748975561453211907933201298844660348793717780320055748652392992364355199419446633107471173856882125893042290013711207429481358522577958264393071569405783014026916147304045969883901763479005922899509103976760910237204959392827668844535459685223009083894067637549970100108983607130209111006853253284567509690847747853133716587355491191055466864217450756510122319366586775988904487557392925752684323476665242617699580086413840731585661636041656687993449045026774046357976690293989653210803193592900096569771298028363241057145660054342549940972914359561510313927191902986829696384772192559594492019035198111413535441084933300088893344385162458352255517735428267064922876714400917902780107140222484458507131865765770657890245106524549314856641688820543104196970071151939691306093932363753671236905052128906234074972161525621354509641615198671931114023210766017063887279098817990374894618088248569198734364251075830479307589424545140228193061149814427177992884513547892898544980867410277671154430779250451992232617003409191567099761917367899964094159481360483668664449928481290950023119209897465078378985160990024916114187513740579495060374799334752405417827944971415188499699982312640299096855551906620003213897436484855125632192792562271123974572562344160057598211988288183513692840989563070552797208233603461640735317527904775500960700883179999181382118736915462211633104588592349527257352300188597031784140941727069796169126759027240592754190176973182504206152257165557097805226595763599611756871841407803112345613121113117606701195061483211202158614648515520489049681606066617150789183087002268431228830156588494605765017896714951406071690853713704243686357545872843205470863777239836928921495378660150014064647191603131298386069831660907131217393648245256332580270375959000806824967243542022870126374717285871076485955506248266274878202593384748444391454352289207192334056968514882984625537373821399779562873628556365635116633194813559025801514892243694794912590558551773532379573529554834692905461102868977388931272939080680711267787296267978613904158781983894268617592060123563590422962957195693497811472394773339429142178644546590470138743785178579585623346747693553816036512897698796681410595860130170327011309371707768366843398715252775869217290134093766502972897967671311560148904670549682398083470851605346565948732088092817803357294306910205600446158052786690751073924291280935478008375547164612210873301901557711934097084233623865843816846430638783318031449441204215134041923924658312923072780291866416051178182145846678728395576726401206510731684137693922345247779892586148323028800738808783957767834949916912087753272241521764460917812660862487794688327972975476877407818430147104727144260358136353030526826606064754639342296390004400423833481034328360130291163789330696472298863817245401731315640051443309016017875924724286894342609435369464210797540282897577925460827627111956805233984504695139634798278625281590352892072805290767565033577101337247744749867683871416411217197599229239770406796766455871039740644777713756938408656156947408189269250977180308810322736221533678629902288887935298896183632240444346815953983512961899374406013754367609043732830565388960146162245056998697961665061023797604365565714939025063798242675714409499910614874960947618371019201980932663480777972048260198496310942336415798392009117527362111065548561505473047018412233460155077257934516830316359481539412322408305249333101918132919940731196815198364328884323388417848979987131270042396485682134428903999967706059485480677346458601972864228449687670813917065994627467686605675559951934498085947157355314332572477581400925003744795283832155377229421404971791086461680796020727743876939359041129792438932578063539164763057353041552466274663506122860240120906885936998458550019787822247431605504486895526864451314152635314962243599799942339015357839416109059760040945524330720991359526348610620519090533687415121820805026102419170361152130387491923710893693518190745239318402569921596450877777098085316631474628418416870816056444506735875588655318316055686079682437927547813622655841187828013692010511775260451550557527679444630740447917846131874900809622159662795162603647030126086647352633507345948728479499947126775306517456515829317064708020422920723818419980396972895003157555406425918764404677364606781794213495230389278886162374958528869299831401866200150016808557865147444500134205415317857460629279429128708763089070308873012180705981260763935441614035918514074194627052042526310743650941635132819478546446257760604175961765130248712027089173801031287578147426628837739158270201005826619008202170227231869631733975161749826059488537868985689626393294352080327765953270009792914477973284282831214038610824374513314309472568892412062865678637891727834378001713638137500519457957848002691701125276379354190498413072383844322681032056069527805023449187857317862583534488979624038267663437850925033047088902339934857622467310996381757222527220425443425736998322229940309441084342442895672415202447893178633349504183578728561966747986473685731310670029358628171367581800757180829982036143760619043619552205244662080179013897646814984736065606403204129702838827854592395587098871394450211603417466147040145131763668600328073926480763347803669886450771271344885910397723144263952750884265775973266326787481463530808255664977683641022649053464951603041243904768994579284548946999865501378867421336125090416216270399284579655713767914536055261680415359611931351530971689703547203687947146147873320328524644591348327977282455757129670551632363502417305813533321048365337355373446454719287254116582382158678419001590367129908482727653972492960147714325401568128278909798640060555627526800231908107141684882474483928651784652522310072740645975774270359513708460446327015513067446611114832066528339716029688856278511079481388919594493393102220667961586832419928653304432462831299543120736890196256626507423775402641621648467170564535284705066178941823862961659046521113183903525315183785519975657364317860316023223839237182655148530311429296041753722489202417818838731226528953065553067579701844666614489654051015442682880608037442295907000091829363607241025137380370857905545626019566206903275313945641727925443867472293109639808522928511356678383015873053353567336143461981651198281460550713445029626073852380011245209760815987156752033292780272208769282280251247525501465960330791706715626892566534725529582017876711678053404360278317510382482343514354180796160744854943458938205289022689461084944956706029615390710504244316741420786303081485908320210190711468045856926653437922641876173755966674729226297259118897777329275037350040683066624763082466098383777845723179988793003810199320781686944732140758676030255066683619255266868595858064658236733664327376224425311218138802503286355697662145214835340842492916556233410356506297586369199448672212681298103724688453408464114181468276545687919317294345981512920367278488132099959708498802165808163404173149039122596243315979900589912310760602278348523194769514287377464153817491802685194611047774465587645607480343179062644115750460813771552503271909014715106925976935531285006132105091912664039475911490089513906210678645817223093202072607661890920107554899433048129636567806303366417140188321604573513582385888032872677073761329480947602619052287651201165271841242840700494047693489295198901994734167434107390084807413187777358147816935278211431385245774829389576198572471704894234408114619050489061954277194061048540959489144094790697602655796058757420057332050690998216570877478396477423535162620991796471255283767733810717133034625449341629048032761004162035327236175953074709019422781317137196363563367227171939996380990007886382151058744239339720874415074037460706750136278177424361498794309157730573529163344092938365907740130540458012687070333393177914643561126911409360979356444809165613107675040147938048487952608702214079079920486678829429486149833426052619826444975747342717314008457954992759139240653992429410946563133083834548993298643812519971237773407943061871855231438231784957868778612707063394226308423748391213224247463919105652589786816860402053954117173318916687743214941437784663755396639250680256252385515512072486621389788221364244814830350271842952757689185839882138157389042275286656523144757957051978424625181485911229097589060328059562450885774095827765773087030462369052421545554267157279040864056564899185119398820538544300773349047387042485207458944585124555782489868142487788436821116112485910874091724518273441385783323779242285246495610689919091794395004776571496948103080853841503101312420512163981151261387419102429468786163794499160943317483783749555687613017827661756502136579319478183853720300990407483425223415051960882608181633041556381105818700640968400368974811762251502277614678360786287109289991780366187916538446524315908087247489460898330868852628774052564347725316491600222814271377521543387615016261786525929071931459358201978696436094366525177768516213920105396670914865444411510590319468352401903410436673838743062789029614398889819791958192245114951330878878921163241006457199256837602633868007352184661970074399343902906662480040939369103425930398978830860034236546506974413685103163290156958547029301972964109957781381858467742048980134103197690672548836765674376184237507390655362075463329283164511228886843339143667130939713024523788715320072874510710117997801670472167305371003712388202082695184531317256605693476726893449300004051040191562357403696046072005454973358515382191414879431314880131352315363174376093000672098472613784505152567034080465884436732599102131617808887532093595072003225034770384548404989594636986993629013615801778086029651004885780567456411684039116408703461093446103842291342599858734217291171649434879070997694705458519543182914192079293430223633757704383386819445474389858987768555456972318017473964402082055721753547155645452305965521610195522036202037576338119283149369505264402997598697325401096932390504122633973146393788030915910469316739018485841997797005524297443323451382579434329884873472190864309031655395910808222827652585661580485597030247245561303672083583309454284023736495813542978873214466315619168861998725161911501785935559891003738368220855082314270509561894535345805462882988027014119577835027096732844742535903577118518353962889942848594716434225619608689056324443274703418884063236596108894985665226872926372371323209096334989861137133426750745566423209706736725877657255218222956451972764874619188917381123782119247526044188607776522091817211308295249734912441842466103148408700518393198957261302656761913109853162232132854842742530482092668835312603403466145699286008646287421048371968569540675758623281322301996806660574855482984669748060469809639661001390041535317308251954170042369992281901117949783412457036418099687678511545217068628800446346980777428985244343258604157611296418634217790443435890384965853353411068542422290362520031214468201703013559193126989876879505035057781381919413538623792143646135630110401752759466061745339920185733392568924239739429983746501726109513205743332624740517613178453367325673240608443734332536156298688417252312320229385953094938220602116487107676080911088321148313674875212151991400851316157901354814727804801790612840919748642430925766256966508342687665509194283325734907104200272316911662080464006503843429062955186787112995866056848876171375335866347949637545572516784573105177705154476048819564390375516659059811505086937100817188692614232879821451208254661938667561288322483981422341513071528780506667406557214076911825857066129009927280305354636266592533319550929089033573563186336142835655559818922908010653403875570487958736764685208910907766613250915701519069938414364806493208104090522840877603946064993238083587812468582261690557042190993401277747268884330399064561561166966062005411116496914990491693478598100086336121828955964823286882383034736515214029672817393206397741387303185599085316673692653567956390411754852688527509489296818776435242747817670127465807227652624843379559953585071536375455908951448775498409201212189883645803648524348452340999538519639958309880342752431719850819983159988660808064182844122014196984852041059477345615751380277782437421361220166453869704546390485427159707813159769014221213047266819164989967219721302777387747551874393594939934211500511772438737721076692424207848681123027415156909549762961634568052740074234580859925516193549582287212112893741960630359137801351382388482185798847554895706803330183237025388599862982080063723901202076239651845650387694533041192282057611447785319699394924310316304253858541632073309085909054035208081773500625936966978111440285205190081742093764055984558280881591889702528694848891437468981396032570178091704372404680145076142731062768139625246995122493356141412412907378811503649655914816509376739240517307678438529943226635382316924636781807642298769346500480841257873525915306501069077458759128795635474902476022363230169072206343988185807316585805647172614932534631162934702459204355557779810868109783757966034973830716640212408527652461638918882943218692636816506960331292381496205884916542199059719142349851337936334972426431717483398226364256534734198257880386200345970336434973143585264152310855033367729569378870416274599704253068498082711495895906554511558326977186969145948352549950249316107777792286161110017643926465071954244779159472543534678794221045482638101612281988307750608856246040630862839591473174331922505910028588114778292336518070067606564096452772200574726786133411341781265927681510643416217462950000608606486391619737385604640457098746962116727041907003289745007211727959805245320082254572863266485219204699413047049469293012549311994805785435639600759907799149291038401126367598758046807267311123153845541888641202377369669463303254233743317145082421809097691034928089345099098849238912977347797933412948318318985216466382861271144371973966703460162298289124956157359508806010939457380824326938087044051854270129432738050253118614317609343662190461084707298768121515710962186542711337525792745193903650772314363086090689893480160113873084793930296112013139866969694171175064801321672152210075037780213919287734103229298675547135460315197259508902581636838486145374831096603928642293287908108356355199025366264442245244926620621745744488552081576804054484517860539288472732709360206746437264541339163679561664620759653417659155436331514740971740184344003191516903258240671306159393843295412478498080041162999768064395162818495031468959821318047820370038337529984126025498885854776715854821740340514945354485943418686459273023643872030631605831422546929766900048880819159037447882815515055925277583982323353645684659107718897378964581741693731161668773255116413854144468366893031151787661957703688181746913947200833639049222661379258628848000152450950122730413813932838345289416456946004459787681232394328647152144779287249780890373846053757561298283570880075530835948879155965979789551942835704857066180198688770514652819140559830892701499176774714835341562179194784581035962564879796097520884698001885718168945846507301931069225808043923392351372422303742624940229099570405909307862852303695633309462252417141928631446497918820642960616164279265285758455086499672257790737886136178348747546770286761656652982166499866138453723124835791264845129482426407037696284806147109189577778342104186174325056574170339646910821699417021894637784943307209845008886691006261206416356150856461075595501379930917535816921545470215124578091658671510188610855378496877189916125376197202645311497156912820453239960247679565688681543585281372192284984056612246377229930917671811467077496993569257002678189047282922295740361375731058470231438104238831663274833565266188736702517408833375069034799004567783572771351839485318793381833999229655292649776812985036597844795546119169853930919396038586988308278995926221526917867145801116767423505992844948613539223156120369860578230204456947542405344760332788833451558897032253924029213408413388491277437492387426847157394458051579265425428945297183656563506766132920785280486326109004324918666668305891184821502040557374161243873091412262488780732651320460935832478373354280100577309946023520289662437935694825902770700115407121253517070575869271323189730309761243981881515358839570710626351727482560455543630767661127209693978577595544920066850855981775161078931241111685708281271727509969963132567097777935133643013998491701315700692980975691034066301457716334314788407739640069152068551401111829351475079142408908746326842394669886101571148244681363945960994662959567619425297099793238815533053463931855815841906485276132972217966254365534407713151578144152819472501644109140447068896047660035699804345909013979898111698145961049126758892282596349460177992215479498826392590510340147855565121654726196004126000691592699968069355175929158419045717872989592703291763423876470910410715993678966392346361362670821088097451691604105958919683253092400727953520639554066062502101110341749176748189050392163661621985217640983082553428960815035413933258575324795052578441469627513336336359875110613472534905700964450024299128287009889479145984045971377747728297519165890250467536342642692554206658696776844579261997581170844532578724109031970304668103723141338522266578705841971433205896009131356866469481490375604637645130828065725712072045310823359815340465852825577526626231169968426054281170714532748743381816729834315661629285957121985665331701816728400302230808369581370308157987701015258688967051467056589817371797481030162337903123715586032595981363961846925089613024555691054767463032556206719272786831816652815149515939108550606324408074551358117020867005104498453865849444192570234678102224456782727394250116077471681905669306627855395425418742027689091594705280164553630220927851336406218180663545149083408768863959131339885981515890483883489758291001910398575274302572613552896037280437189167422406019577960608651481596342500988119242339374202573655607946473546255878820373565150381551397912195718880552574818223951900722039188409692036763537149206355364870423515009414310095629491776698219228144462493677315205343439829938334484195137071215818464471136746331749218386151500940206442674406511486417832302582099815978303373009774190631293933491536999058044496354097411303692246949590005126264293301556548435289543636590708880764614202506240647437404596410327917711723727867246937370084439516643729574131142003094292378914570338590075204118504921287109819559914990884546795896518769350222630574479110113177918209597193170378886738808800341009927269955219769053948712298775102652585900611504316522910632111405552433649443288493240040892350588079501474436521383882492501207479768517222547513211617513199001375722993168478852648613691940136742372157271479650300601384153401700331067725301239727913317832414942027038748697739861083778021145098638184051035404317610670847441623758651736996418909800641339126252689631034501097355994822833766838959608059574621354861013053470433891754494336616739862776760205801227591044884840247006929072297578457714903505241125720289758422613849122289880270793454044784020169725257120057736595761347889273729311279842058025088093558902618168307242872008926616463232869203221996202374324783472028777696859997665436696255171342938665033340170753488013711750109410087072997109808693073688738420071462284511052539809365753312365936767216406787179540733382983841817069241960643542933545867783445236927799851388399212317347027350675190203445855509594777113613006325423847868527846693222542326864286597291082642195339153326189049981943323377118498099408521068949986697415781134155266190884317636859911872879170299859320931637502391167397102275965296196325425432601116683615185168257956834887749681913937084355648966935323429141875463637703028422822804179431796825334601692273186865766462146692221369961278530956726886335741444630755551244544332120708885215407896489326626575101658858570001039170422014052223639684632948344529054907695203861012933193956979744188977740652406094160937676268090132743404810614025074492666294463794956495091136204126635221995203018437015770909777767087263727266987335908187167462238186264282727502570003755864546203671072150361982200804591371171965518251445819586309752599383065804313387713003827406475156319740262154394075015461892495470637146930934548130305031647899814250053533983556742499866441445843063927021575077556787029296888640048732620889183044604295582492432511173266478910351584764792642077340121515958858469863615529977293706761577641954225102940459052807995538907932296410493605552968568907813958178731155078452826468198104429930828988458520627717804773278524121790984062026856025157333293099871483776490094036217652853989544576075056198777509409009482363752413119185606138159032740204087000126955101729356063379597361902159595772626904159978657609050935418547380542362176904812604496648274344725736354542557701064806978139887365304796621096869800520158343274443467322032378077326349505626074748661223437896842900002178939983698055448258639063562790007421590394110622457953260302647834813640017269078956408140404190773872154059687526888715716300367448770688599456682253137549388197323280268922677934458858528905848378413268277995286037383008457075687263397498110541174699112451566101710074307724621785925989965521452128905752020912558607492550593845462427986443456311283722135691235496280206265985205869381253813983851694030249396020420524527572605872114166971066614697123056973324637698503013285951997499030697327482633841282962371620369644160938276856537561175227786820939441465764887641896812073029786644068228514797233547842040333157550803766916372596001306148143412284085945165970889142755683998762800052104225323097370166497525829093449078309540060487914785141665238453636452864623307110720955952483156382482523705455569309143817230258917740508782656497713670561927852278410094684375873125365192706169295028015567613057149998952001362849205147447408037401439666452594054314158337081746450852835757596124329936051949209361062267963384346566677945000174747620670767888310598760296078871252552091677100046198968526079504704114053025476123073506410138233630980670145012575289184097064255840113212149737623809427307068479135936157829016971451891695811073920793652223646182891742010482650839362971335636264814772099509568504426648508133949253581688764960370470787544625301737158920235521842690207799696191002684880767638268364863494520709987200198803713074446940332593531001057253694886252876559513967757877605366508616769890495971224098966895240732978898334587167826469397265556501713201408408975376116210509677103830914502265354645719171843038469145845352302564989489095237293118261819757757315081748492843397363617440459107277219043568370706405129903853040914390569882382309688244766488855958987267709563786715455903506415478091408642375719318661666178897320658858941252901424058018008655234152469482641934726883148438875828992800207114515356507410962490943653049900598686210590519084373091573082490688112944359287722891252044946089732921736354078824899791744587676433060314223528669644791397580150261209123561656279700924710026297366501813291898548746933150759556067204469868147544666775604410130924246084427377223099994169589917196093670551460449596666535411831882216645138231962378949602512182600917599658548353469501909093950874598504757890084647032700541920854380077950081801111761491314235434564124207334248573361435883899945795948753844822765721062307198989813163704404583979199651747154083621633176663920767168532980434608093432039953993964306342129441366297666869499607298954813126124523460887176205394064545848370905786228304124487766883862688911310286273842888295291023802556559775983300983124853663129842466790742870659412191637689200725946285388441376886450640837312093034916967572522602263799589745583820969883599386774040164429305483793349580909605140058315536134176694131411528161785433654569225404023314675141171839509158010915473706378312415022011202222441703294116583470461326851904842749683858152348294952703425762214809915564122977413074461740781236430770173994874297392849862993848180114369538505461348897523463723373363776277233381319649175778187316484066093432719671077680451165550621649826435469814199491459743524099551945498681966642932388142474981892206700746258575390850792970694557966272311239661945637027815827453852306554384475437892797659379806302268520548872172184205300546306430692009132426817828826878557206707521462505160427505253798460758942420328112797876098264962648629199838986870350977684542456400883887627801763949877042981247349640087043050098300177642119854024523374783946547743724086446163637654837646660553258249807865435239777696507416986615039251758736439771168907199352321065046687986301741968258753234923022843046696493071629926155675008684908203427829011981984907719948973037087416450692764504622677444911961879645025232761781063110967092364886922547066354799066920076418918775480336694576528717728507731680847878955951419703832476932502549167947306972849778163408898020743592234893570265133354771475855726662741764798572227042576571810984113477597455821338333013787041945141313617865891359510167380934612865770091118583565692773872738168425093888290908317757247902695387785917553807925270035279523338633929034807435451389417824636476787336500150167186290736744453524904556549425399530587621529149856036611213689432719791965040450012437279545018263252975014786539648818063051804342361333281236977587498377543904250968560226322639969460963698887486154009094107311287593030773241020834441249186318819768571786658181892821050806636269269201801032944740631737615583663278338554234225396998489200318006985513996623998296737730467922635562377414984089673918501788625596200470280239651424561574707790324275621154847231306409930102771888602866177932308825012686453522433612499899369567578288319851692835094170790483251238607319111505253577820898220518401689642351302552308493246732315841559305922927186523560707337999041520069796086336854188511499335607529620568337020982133349864859172939435584831849081267373177483061545280932839549386855995131646133239674550460564438377344965190319625961997781209470008378476754247266806708193408554617606128644636773733671042267081209350175318292007134729605912996155531518973520824057525854356364713558591591170206744792527049363740741581159534861365923580845212421345086975507007188165656525584831430895388793797658081118805114037472897386357677578211407206286885017206930373270947254171673247820701611468229312948573936098962385130088213273699937750824611990315145747258873449643618064499242700025045566997709811355637090741069265169988010787540036118236543161290128477724801567279185245285077448260866077092744106766442916127417790020307552155199905382660730164922447673436264363176715934522718561004993074484340113199136500386483746306265130731070972040106980194700318472853935703378934722249446416596894547670952904224722768998154702756924441455469818389142996086488659513870701512527139899563613466129223607221091123053361043422870449209467470800996467355312154535227047239358355904712196200185314063676426788350561684830603471141696816866154899874733445602118719777291055661226142696846147650387585978734355374204105964903367452322579783799888067823269770763256182129009418552203157357720057437408339260336000651166658577090937017490140582675023046374102317883150731856806355411535632057372442640123145871331606451602656811245527810056402631999206596248940426098058511602866986328280192421780513622153509812044517004764718619607564924799263190583586880184529842611006792899127449041388451653398789557372799812732498211966084196125169090076004274530989715142467846993523249602023608950554807659448660109536046133422514571920402255111662478185478231119369549388659300421893516119335425659120505405169157099712023455276959967672185960506358856834832168751981386093712377924557619750842112417664942108091479161952266242085109760690002612328002706468875203327701195218563123975435191227046407957356326836399829611222072311519169044859969552779995355616348916579527737752767593255497446118016569284751532658801171036454589855732975679076861626942850617434934155735725559592636289439863968344846284164902199982760146292996347305007832119146470487524188041405850765406616102668435785103510394563433969003429520420080614643441055714465220823756173793032205131016850870819481442801787688742320390545033431987682848938337843912397589301802575212875815355723538194176832487205402152709008990472150876671809149713871589994686481977217597808200033315060468032634663187316107633875281282832590379727463257874971997486820889607081978680849847910178964489281811772473336908079129457324059741033774599840676785643759269402904648213742882289005950542271720912497617889573331582866845182897933182971984723207214011808125269864069390836283962443353041122183115331131847232557861213322243269420188324824692775755869671202396130355524832985915833950716509173521847878654171161464761022511499749937506580864775047607737764511283521109331159338110381975664140391174354512097521598257501116760896199889769998476502773851173549605441403978960922381511824004756990337444081309461105669575545701292157628135730475978920763127193194663125516653441203561046269087676077724250642816570199796704013652656910535601697187199014459830270231464644687114418186769199749461323121509889982088848338103462478307735541640842102934221637376083059341533381856076759783053702818483482311457512290737859273307194307037199914365214114085501630380569431492971385744913713344472884831620567706864534802778930885323222356038256944927619759513542389283925310695602917681579008601429431772443913972518849569316219417653861413920331284179500111534554058392012098345779215930666398306781128138273198969927754853649598120765660767414016605545620907521031363919381474895116163930152200601185756284573159163909729606337548735640408071210859788024379437643513345529379826778711865549784162810233272700627051375399061450123451954481092776707034877099664250475143402996296156320952689126882521987852688903115255221268907002796256001984235684854994097625141023006021578900711197267006590944280116826640418816443404635092908514845327034790352613618127935428309053555894783202682359929765411753576077468137552281676733783965923215484905456638450579304238434681927876205263789727407028746652962730827326431974637844085188263277970897785678705627319441702773326586456094468399072027548547781708089462773566749551698628826242567615353774523176372833049689184520763471839801281916281115276511736995112706697907176390936242336681260648817569576672422293491662967600766536527963335337169818979740251895843120413437011939439737762732822591424029726745334237869679139341173670842367435849491683856582538493314787387369513644663798672152341568116147244821163113102928614132562061729195560707384102691171354907222655377498876545943947938769524901661455177367258632445349633158825626144117305430965093554757442367502781583886251959499516493892045077528774479280848467403882297269582378675902192040340793802460028749430554526615068343811117289688964470212869062098555482874617290308694809136857873835728719585593719652219275989592132203652522711729651603987510829314228875478211913092654719728602331722416069450386654523241853834804868290361430657984663453018363828204077355467737803525246721729175311832756550070282244603075689091769641744206565965323322755336974879483158877988205289798817176557887952673153263931121619545970287078357557422393304211657751256271137528748130523365498665971050035913837222931633993157344394809753038959290014662514443383212331248354609377295236716680720590661319391112752695529850712375467721483263025232738088037088636869804977663381555284558529899244085322592904405256691336754873956834788460401515863389986785772504891286249369056443663052014741028569298549428662854031454162509895728160019163385473476858638817172549098424604417724120793446850902871077942676780072079469574346037506303114146552517217439553601889454940274795438333127870768013282698333421246786842925259245221075249466935835693615631581675993190218079681440822534075819828490878370520682420337757687376348941576389003319714113742401204687571051049560473277707620115041080883909767696096090626531123922897409747818332615753678853554220251038376770320972906245657990751229538384962469430264975296887829004113975467601799709103294035113029807604638889158131780631051304275006043041237133430527356022621564120756138475808130913455306726406847602457937180615292273791380720941409557923024237247560585420832871127034229953721910037751631503870267033456319502367910876888179672484712700557403932048876255410191332191147313822558289038161121651586831485308635747471848589065331949501423264589550453082352397229691958351605779739047421043272388284440243720183357707487167694799216617027007693710079540728289875872123145516185576195726503511367105763669535086053821399239687689544753069498983819137790124918967230667357133571368028875095743941570104647282457613472273986179280626652699926925115138339229495785365513922531083061568749147580247335495686946339020008498052205698407403511215854510213683891122873703235805132393454855327373318002556755675376674004832696499306217422383798809163991596616118949579340140156582561461936744306482985556515216800509855858872608046202315454736118336631928309829176306395761034756289134357607794301416047742388268211942249873273280632437700362208017179947324854657346642162435734172352092179434282311050912410997746961088056445226825023306911671986210983560158065724209436988367793152675822525153133236371558538427184206218112183144622915673741610921681967669207721400543029518282132116405986998046248144378189632014139705070389677174770856966260821623955253412319226208535469897688125363065235250118462976796319734275786534237132271216867333990268950528391949361207321449615555626800444256159908984641091392467953694804758907900378929476676163330609499055407536840722278286383767692263546340024114393720339000819254733245619597944554822573931224655949404532437052363012672831698966970667734848655683974522432576917760680112160422780088662831447464791105607699902040416544166182838485837953645386985319342147283508333881008855994937392259283456899377595138237826380206526301956035012141192085783117829290767355555183863692048913990251511756763643914370638633122608643002739984414873570863956878893716560438224422252081729798248221128936358522722683526678286845303060639244492867656131181434049946161885410646636310031644401730763697091919003646619027101723903029457380805619704834970322827660740288533326644527735555901074174225145957522709753056341838730848813911168772477028536726666832337720922165267829295946596126113109694759284682740810135092239439856294234875608570851910659058590312796287143071974722425305140081576895526444410367805858276572975781371670214227778755730598445884047759689273388981709103763878482775811335337812031858931134481988892029183104211651935592763866971717704974928765719829245675004198745272696305747886387754538974937045422481521920496550315823991412938180642102664442792086373604286916024848360992651310514211117121909087143124128973640098485889570597226902028797411752520179421493346495459918203767814854050219260095626493665226115554666247477977426670189835201712062317880262559320236991096557985470837706098862814642064112427523874383975428996762856661177136565458868125573372416047597123290424346417633619068955790415861473300697831895901794441340828071337202472443828761592374281380201934215494995859599138212248841081261100864931961338190452566264039257790034788413278874310586158916195483115834913873517478163141780916312998780428586528154045265143849749879191154734874746203326329230140943136497359666076307250477850270651113974401372694957913473332053974514235259759280420535155096660704889514738170079524018143455406730284298436364566831264376646138575770962863520558344291442812091732891993706462309527889923325180021818162783918794696968719048978964144938808478380930828917929253838963420155295070115462239239692985240946633548613827425069747832300254429519470639975015459931198844168038494830367178483695616882093451412067121992812290208122262582231330651325718589749228436042034392680926042064513879770514680851240922321994410783589873429484668434680780378349583992432064574043564104665333979064042761871880023509586067997464252056108557764197432221125508093615563791186236692918690233912890607333735436963517539530195074424018949398239891103494317036069814657443682329790430327012376739599304518526939911541650509134215866742695109779735040165682313048443414075820981370628235910885256325730230874767676080702808373423566524491892014546944045798310533167824742435722798049075429489295443027730721906123694867317032853026185759163840078763687046327554870469797388437556789723631967143121397566255930208946509142019934178430955373036012570582515325862090489039572413221275068328884327489712476901810964985124070160456964782068094159042657353636675536390147984592298018903014010143079323364999391680518155675446490551068922976603816992576605930246709654721975712737698943925145073445881354684006932222196585635372593661615532098337608998268977994758844942340659373682750263921837854847390256558199887306276054597878930088238762278917003778291496120816750032801945781094394237424263402272366465662034560786389400147243707876968520281304272170829565652765705898501242165482574047361150400934787780695816426638296333023158454142190055264751557513496316940336017613429196517809200512536984151978012066918304645974559001750626760967037054352057577336256729772059534363591041549622718991019136590810417148601395840510425081340722771095898795368696482585947670278304041188658595817348863897204724801126794605266642582425927362482456069101942068807408990651628459035205813914383164776914765954475643746892063007590817914601248689422365870303893991482158019928788204660202335522485149909882912598984406856470135876159275834845550833565746631351198136630586971056790438436757696237586116764238543505388809534169147767179826318407451706226875190270663441865454244448837358776644941438420067588508404087553073757030855502847487344588275677734686218962643454117424385706521982415747383822261427080456774277231057635584101871535272252890367445191360962268639529720733373933431163074290262719774787967774219354288285990415525728065502933374290032883366431150385797944390445617268100173713071908901117916133962516809638358907052453659379422310307578830791950538818386893627214884782985402451257104443594626152885300016783731963661797595220278989252042649775039326819068746193766295007622519382058625464671429081085037791229353568044435935812788923643152825276338080296575150853855649492631410133933428078892709107267225316798451568922155895106731130960082702050962755488703752598406201404201013121572173140591232609838985271189712720341453174795602806638931381244231964679016766428068716016633998143896038942793890425760095740887417789399089196134087813200656414135402367289512547422689577128512443138810103980793601488655434352562554862415454016837309863740199078869374284710230762077087838931536894483405207152703098359523730921716815360893714429055759254493299127329136990300731224105966876813204997593315841918832104098201451399005428786866882557463216336235856412241373636132322725291216976867428515927686007787010328865105857580965019908765206847458451623849025767155619271735519238681473017029015589464183914256531765768435709066569898984412983355495895577995189706453548297461057840404557511669445199961375366391771705710220426958079264289294691720569799242086800831887026738259858003177943682516301961541601798637933063340217758965294325604664087678882902320249261260732006412450723385887241958477513061794319941048964497926891334968664270501288599212652398718997877923465857225888424529741924577427373459870752971460174497153949498742722165925550712000248007136076961633815396243455915153862193830105326103716929319202015752136354741140260914826391754555409101561051991270561511168646956734648192824549047348421315640711189070090635717622039308976611683569051217632781685543040503630907905689212108655188756119966264535709693517428279767384037616691221969843055757595738592701394839842338499280225107895308016627944667818170485552699959567358129701597861651127079910666969764762503925623730674538994961775557947914757718631615801399287121980752457892983215582278076730012980718166157009878572578342842808120644094670984642781580121516132868665439511378497570101623840606512364386235480767147183379840892306692690656485757630489131196910136564637724943101570804235747905751333715829315462342327591867394715543191405488077617527456712716699027520471867008967385696065849964965347597155092989244235735400988645019810278155962836817593272511166513425202661281053555395274880315356165807969998910596834935688022803703018370315987182377113931273765490556717044340969242472762432046358331466371618442763255092324709661057547011443045428780300053931822288547609922317614626048103284518714467398547502328957632840809304359069351205870133855883831552696611732231222340199025715135879430405621668945955767859891185264337415477157036577982307644459463805326886583325987295161447002760606873147314245120806449268603762059956819443540894342133815677095496936036129712939024847938665354125437691314901001799170588277003603150049927308173138971971265871054744113263811075154518078875391926808472615736726459734668399681529033664063377039738031832152664733305984099214559123669943756937371608103256906982476730966019587648796721164518896865168292123059587651938737378928808569301011672558139013063531194667710757492599301869302759353945479924992729129297262735155665055795097402586570453328785545528596416957603634859673889810690633009575805473461230945793233267055562595772773399427235100421037863353935209277902715316058373692222716366867594273815743306113542353928784600366679550280268648252302839708224804276934768100474612503284274052642985144913687195552933578882832529578591050610887006218094184516013745947963521325869439640548443667029128846187155856559442002727344260699756008406817202646627201560758820564652422788042337514432280730733383569568978466435602824789209358750942041342016211699144141716502749653866135574492161703136786379814978037741729545582500428396318619693966437969242444544955990898559622525492374467712806457173709662152756488177965881744093638686047072633207391539464845491178223528489309278367172631283854562163381193777598541328148795134931856676052549963879575012257116483473667039642560990023845187755545757878630026770703032363020646871722797344851321123278036722131242063365097413811268615223032359433131944059737576825975286838142809049150957083198667461706628892327592629452389529091222764255313394315712388832258039486850959366291144041980595742487588104340651722925092463120198350732537285796915945301281296229544166808424548613197274142761624459140738894941681454959149549620044027395800013664674552781480177373249207131229513015293974014373198240684564475636550093833646320032920969826580134489059536187251008607998947068765695078414830254498834846659832201377624128162124590367235949299146065462477376918439639556158568066528895901357131679037763936212705834195948856245876385878119313719883996331837083248271689896237495946306227577791772260054090659012375498949356357052656266028161514491801918864118770760531850887327098820625001468091284529193325282467249245872370026783140825254990645044446471326997509328942547936285579081168050991915835272574726407153888490793808854882002099302281773498887277819557721356363601752560409310591741996810230927651531058693420932045539569790023845729016984617031913453948950825894205006339121604763135134506669848549354393982174050311158250043992249926806670980787427168422839995129516558207450334335650216564069590522798336883622260554689151327617374405058171771998607827411555002860625934633323642952471042821448268257526732224866132246588071170254385723452370391526964977806736633194368072041900669851555121051650001964653382862119673622610715312682165272092899887793894240880286372118273150885883176738398744569243933495871625467368444946361812453623322555649830529275291831061597687254482155741878257880620948547702069767575582186522198032216515485622752775941610289580093594512948881017473875486950041646894318657853163652210386789296335608049029050968347268219529080134231922701567030772334826446262544485000231255240741037662220002036632470807402835959168164066271930503897170752342602319479702001324839978748799987444058485336294457668572661496616958303265575659378550150859761721974078353324706369834922624890200201449119695724545333762289801248346505013975230080062165966361837740402727815816735133035777064761253160239559382386440931395284071234309168729116157279241907345252493302265848255268563444385123522891184928935490700412873441919523782040111189308340920909685944708829674249640339877346111929762901718043802494606165190628425699976621705598352203138256100612581414596016104871990295189517213129769249649247244713011040069879297634020822353073472894507190693009750491470043648591816621724335348886898906890346337341599905809972604679689514512090023100862782705478339465912740119227440756408653510170064869444326269820076902168873907285976331937681656681247007016398679865270416375231756618751632065529430281988843472940583086964696310906298590631968021661537842067407689891753817468095359752798451095007534095738562107376827357367595467802274007168826148931806385250138094164791057553335860975616741137079857486020269397345557710365615214643847972044486377613588120458791644286412402460645527086588860025607450193342918389583512997158121609748832379318964415819674650635258853137561503452945600703319006890504907762336675804168786973226561593163319603880253694468734952190467122108651304429857631018297989921336587025612200010439203441706348890427820325477119230351385408638422267656756512500415573924529435238691972358150267634533237640095111018193403641013328542132301236490052266494175752440406622657620631268623806470333780810254751821304646020571064528711182872589062508518091722616708603152318437983089124538290265703052025823521565758061788954434153721652344646056054952077983272624391797219929793096277185422302829015026967418527260391402865884129183199091201300951123024987563193912426935068690649472489114487099499501347233456087836437700278684990122232915018697285161080417160528547378439457081571108912329910696795145159793073939796741091178749575712498436684696141579581423607586567529192919169611705379392954873649017175138004217117543576473552200963499267297007025306173630921398282696603778897184162633541734151451084956017833405244439340377779047615658154790323266904065793574757035796376569081254699375307251692789588360426292022856372989477405095390183559507229906397389901308172769654290608616339325677857931520852411876871745094801729008593952578206557390244354393751120660098493705797939792378474924728984790213716012953088798538366557032190731955324674075166741504972662578051234381114811241094987067500907460892311655080694299272041252372254678689128699150759264357413965975398417444412397227731180579358841407656335859793743911223637196359638875591564093775293219117776628042606281427277244710137521440711357561672180684713463849615569564738489707588924780996754838130591385021212185060438105904340335478887062708350190861489259963415777556700355441672140173005438713871726944819267768893880280265367196424721308205875128459129124502898176559186772152157926732184691859543491778240433725411048020576569384861982126454955598176888444449642176113666173840622429692379151502323916351018259595338959143065229476846538770590521517484425984643878027293029597200500470621223407537109461366711800755574332151354631730422439584651932673302390422694583944658583308591693278061666282414246614576027298017870698225245319087756519682713904664718803570680913238985993175528162954440506157029208003255825600970644696757176285708290578630627224278097368192725059487799401724259778847447409789484339138914096194007224261400464078548229791588026683693257412028968734072538755009857476548641848790231191852164397451897649622048664193938272388564046738403488888960963997548478294179018502176065662713995661763872507098244605202029294225027724880477484590709639883680931739401791657972318410938213581253338079053611447493257129621759174239261952284818603043492842673908785023042879189279291048146931144065049908336776780473772630556381180983789483948334944960042634522288770164946148889340467214397360813955478429911740761103600393531030059202431984952568730383226708489169601952388976014484673010522891729048698089828528398512204206644526435225313580105156793283557665265874625813175196724875377619858699714601380806237350875826122947178584486938111247475415271558857397066594884780392927293062857944552768743378154311383658921127728905579857681449581429971130730795194580985618744253859034406494736231458794183806653906298283749646580151652502359451166939389360075031677163140297348470616429592090310741825582928252025635037614062535736263376891984078820836487463810436251601558560509221747368487092459062982223602619609934474663079188303302828383725694598683633626523254970618452214265884658811716966899341788847037177205106058737261191879954476544806730982044891197190784669431997765972815973688958200051654530381555594560696929537128245055086388092024229697166293137463750221355256110988015928570970967242293246603156188249221750266037163914445847469509109541384075943020729523393183958907393390665911465347703591702349041116273025931154799283478684236815940032708023682609011172323291118834439447278130283108818339589454128492472129017228588178536218324756467592185623153569433940611535280095000642743055595904173350685706409754341073163611432330584059517907330815009026618167790125576872603580692626242824989645717794664135331186802885560158577544843110805678789370177210931741640732577150061873292779990851870989480082026702433019130432086635516412236973521233161059276064821678470311057453136876194925738968680086049351055292021274796499296306575192107435400754242082273792498013114328432518531749522266362774881614754123370337034812373586453150863587403726984085022588468766780181965378480431120395762194373861982617145902792117503727619805265791822389566846951543359766679576863462088475428995151521955468205692908334645781278326035358275243197342212138846511182533766693871421789289599086348452135124602662666290428650922921614977664216591338816679934299087452708899660954629102716512753184688050169774537102503726271701394540932389431091236214124376720646285774199902883565872422550199646281623478791641256704479843323824252628574814808567073836722655868573235979626384650269158296897891540871456315428710842829698926155592251568960753612232185539794244074730362912876406067093213608522957083813138780958468579113584466316335149728296981224027029869833885272848084425189686302167547597767106506183462046218877368570245712651303731841948061338776776316800064633942350837735261749611957840663403356787348497082772062871629504469419964805486652906096541597407002368886978488251059589539231140365122064332262893285485026003942683238101388561463424046676464526453930400431162791010533075253796520040394421902678103142980075244368015515877637405489675563125178741784325709378910454007679692072721486115897346798005910458013839870150245081882687861194684853513815650711546783665143341545047421542084133094673509337734266926169554640192554169349322065236310041982651310277514630800025278363772191812472668074931321871819983800843726312626144160868648479086504853199858174849155358052627395785096302254538653260845495454241393883497717316140109724156778450265743639396135547471860253231380867907845032835440179874069377300919028251797917922521546652824463527892030105065506758482810884140482153116651119672307778638274146879715583873132397923754678853266472677532191300767256214413720542924057556334133981556002284516927972276867957114994852550786160671928958054622654861211173110820279092698876196294755272945253358381300084787294427176778078422768833919862182868793567661721590476358030567961060692425861562443488701604199282264884115355155680391267742263853781857689544634352449388664463097411417680152037619641373964765902767035378915015790669370142837577344715309640404795476125808467088643022245568521329401625057303998117532452390471946721186743869090403291210455453058196472456542418628463429998581809479976949475183864390721034944352190522567594668178191653597269706570735365875435205147808738944520441939415431645512049134077411906069063359467886236815494316333638500725960036914432043407339414083419990133032566669852689308240890581505971256389308935744516409826486920839724805886062210806267716532126393533656046146409788944360090653778935315221079973946633622808819056485609780053528405301675464948819146032866799453543783796164818451080109658470374100728758296590891117551235756792150445739586243635059789081782557065865014466100958477917230292052966360027961050357084811373923066966261236185228154949861971671665384173822670150932367510267751102959483551345289347523128807674623097736178525587222188911317044104308184231415937551333991585886148538239390650976308209967022686349118884925671683103159664242154480870267952949530964241151850275696567755305675720230406435554096468742371235451842201952270018678497680426933107272273677788975582985796066886362582650045731538162903605542352874397687753756625968870453533002448157073633283094216575137746035653038771533530885246453536672455909111629607849289351113854731963634128490436214990940126207099129661881287732274986115853131569551293850143497630432665958879828856363543631012148231612240526814971581892361768829229914109155174683579421542569607450982954312354099228933735392519232352504695815679319915688518405739453842336261138871233873097385164104359757249165482088589930675153833745847254018099978697115328043531229180642478622587136188474901143458777490554234316267541449722911299003966659906587185167110044579304374732877522096888628134912021381699636568672748621024441397487134159587218313509913370968954613230724950790407575764525256688861937236273745851018010608084991895646975010474662858888772604873768910021919670414669491283869629269230931476398633510177807586512282432708145883947432981813331445456186938500142001468373486455305766792931328082498736147774638492639334682754381290026796269637698947143401247226223732412796885556740701664159203767363110923334575259541571083962515742022913665977151074496863347717750452989438752527244638336250847125672491981875592979842900136380621771445180560750986327066883141041468266144759395260146840849397707317717172421904920682846867014885497461275008257441042366778336247933581763623165296782787590294438848712361479808133382270939760662742185838536476701745096708346681285097199086810221778905592146888165495107372623373973899831207120114765873629059032806134013144399831567610391659369306370722436052568325121324625259404729178299072854114896364126571825866687056554246267393099115600881970416866853465071387703282309332201257128264633608589466510879553866576386337771770256106198183471844764848360433254625804172513541374895353360963547510407977961583359077806876334978408792297582448969530328422141226178338227629894644712659845088843687737853371027017472959179116487768237817434509065755160361621264178777649298807764198400398478549925460820923339624956506255418404670421542031538552544874313918590435171372007395103542084211461035193203938827840674904223137618666941085070683175303283799166380494522609454422427680959673600988819724249657731249302885289801519729019010139325403182898297125209836614372799414600125224962674112452292901066222588495581575413787754316473455346217363836905758737565438403479390927742194399559435342129816137995280816772012620412723015965988857255283084780641432318835137313630542487636642312081730243527793385002851408222227359695346474913244800438551970542705766207418282856848141506885841876652624357702787888348804321631130985908906174778163780371560699274235977036586825259820669730929453950042077829528448635414571941159634701743206362539898511747363982314628780200797298554439538290818318429777531526185001687769687377188165872392018996686553131631701426708983293631664063829647625242134529933707802480089363834433823968243644205583879888566408598615914942870426654415727551107252022658861378870591683416006135929610587665344733948134609713762907964523377812419396877177313562508225532325929061591837963901499150413420735713603968118963247220616042516299974028082473775895734143518081286453706678050054466311863641747786193803685395935864492138729077530688778100133080105887976796323406343883608258950895678209100105586760379837226196602696640819244468641591425047250581191142451458621966256244583475926491359611803967404041127883327420796307564415682810533864577329192684004779592660369840135887425693663632994763593555946934954700246994753049146977271370462823731959063355984764012879949958063937603913845440083865850171096335257152735614080820916868076559179087701679961596701318461062993892751361168034096784769998539751226784030658648374476154073210855417665573745575866425733785834959881019004337299036851379970975886876398807123338856530044023249972279520043950688954028568037831388617371237430049050444560990569239160832545320080396110233258964606971495838271902335045459082636457089745732960466093252574373390911552519729962908747454381987009371061024095317585922276313099772145930443991514881063741790546139443101003565828668477345359545157855604796654209399998120413318660208554156322529154921731239151622322360241185758637057861240193036114673016683100803089615946384537266453349692140552273864777672474811690351645108225665486709190960074261293689448526085561870943510027077634128347806087434561884246971386679872341877732670713336143352884501417687679719258301563040865812900633662110352741289933257708400321933980034789978485792934023496267770700911545533660458332499605957393029585972624427652432536963032673571003664343795108027569930599988212167639775004101631594655008376657495757365056847912303731536530335655732269940215700269625632158719310836281401860457776042737175064183696456312962663132013423935880364718752489657330707143663142617088475571806410939219799201241294087527784332132410338337179338594977699615088755241124947623392661452422874040549012412437132734776052988463751007333365590410332137008662191774246888119520368939112503335919360559088670603054533332982154723880327205270896057695599229201667711749649539126818000863278369764449818385496010010108281361684720077874035695107525587826903476222452284617691939865582469744508249956662368735774377627650993512666967587300833614174155386046221136746114642875169505330078954125951111304211487151635015775723651446587478832888798197916045088897445631384576914356163590412610155333189825660040549780213000639603740979237275149123149685120482854379529689886332361240793444487826194025510470030428496435023962639363196341020415165839469442542924491424759488872869253024716372671237773484050938557163712506948719148704132239218594607130210520197356936202281139345913447187200019819288275948755916890888514779523069726730880554782206967069460475221259499660787962677753821902566318145506072283686119753500422348775897961297905403180744667433388244584898600589166251807707277157429066196942560320760524431480312106150182464556155967015810623983295051810030334462272494430489072997722555952818270541336715327017785524630569717529882572640204131094248930239289803893854335502856884818889935779864596242743350356625180272556337536562514148710189799435678100208249402050379996836711150104866857535208826533474565004794401685299839566522982459245881540692502175113088507437635577089055711769332251528927772193235713829583953295654887849182563382310072636127619212201374940289343991626026978930925569472920100132744386196518659131900049142221083674667526461254190266957205302810951098104589066968073101741626937884141968533113182769388816094931409952990650180206174315318357718550355306257929893160467960039226745215284100786460767704188465039643876670213896863363382302288419825511763126359638461952801752272125933817025153605651093558853501319254262967670216578521871862446095729828467034005974028312309862564819253944009970726478355788897280103524526292252766360648561954096518884101953395150733671619357564457460106529871788057403697454813935224150346590844186595564697642630926180271186587598660962374730099603678698823918678567815560093660453909459579490597346830466046041472210771537409793058664007067222062945687058225820659505985674398752275038641006894458711141934973753772600789911698721743377379470584011892219213811077993664817230835570364994021273145651062106741133016673736389472180116844036874557357050786773086825363840310278270812817956845065248308755057880858752546725312320667547951471712196940434147822781356460186733874944848531529058317399645860241665879751110816040844718264244203008638103876996020529705423678202191304531842967003324439065329190461455829585652132223610813847246324033646543993999753221014143294606871747001038853570674440989182856354755596477040188751090721065540536529577358466564101043609423163190947003610062763329086295182455450883601219505157842285000543402940570065652956984834002958755612510961866079018765102306298574488264390353530217490838049177054836530215856553083933583506742632999134426949673933253205568308840180674321752855957944581443388098318712041008039071885706571872530431766580342682075554198422837913125240950641594949478647838092232701287468964745443260309823368549222803733298013041081920204052183622246028943925644008603712766529216938962561027313503783754190047388077520805460911893676645286143489791883852245150855436569145572123063148887021466775562149336791759936102038515579269875092000723033271507443962101710203568636241865082523341891575083538712288181410312864344846027875809044976406971524809038019767975420811827141741200439484037698968488353859755834499296275052251567209329652665671731467847382793408866784155793447770429409923018852799095460986059179940254140766850741568172049967682814410662067931675913604095739396213000667977937337540389500978350775647544538103798922652539050415382078653445121552911782590009153305732155939786223953418966718656301166980200644284217607885875880579919701731620330898425167004862311056367019221512668079866710694397175512979059291689452247134434310374881239166632773540627449887777663561661793758455562427976198875936331216012783242766907766819444277598823585872040580673294312518986245095465305915843102233041555004514055288987222883626209643636059778049160875771727661265063558437983877582765145105318984635401923169960770131389186692547219424147671953904799925796069324346104411558036800481695461126675893223108415992897495522813287330255278472765511471591874562389554924832343919924796076848398071069376222411377972704205212286192874754792643984324906741474118187285338721598188886114452896531627065050809344865440217267774129386935880849367936464739381157361840576729803589883443264610953878823852722344528298843517812663717172773565150867451284030626182381734678380850019642689382252864884400181365599068343251763665918891418728358349438885210290714685846747902299978604674916350299579679943083212011799750150662567816839783148598015423655114708080304473158971394829090076053532476231278865414047626129792216172745174151231425159575931776221594341489351272703742620530471777110677938019251388525851925381705038424909735260093650326924877138761725049171967703791738400496181316740708121479598732024457644873918017016994151867723038366629983024053432534913716347370250122576901549479983138135738294747248374067095805347765425137935937095981211481465054298239300583311473300703836565696107428735934719373284585569842601272367721493456066331474108754169873359529684556493941721697341197339024122822372168782137456660683169833371551527827701318596424685612220889357589930152391506156844610851926780861210026727807183460932683078668697461653610815398832280971431687190772247827627223378943834421573843194076209607794035415369558171107398385186049888952969183719111073122144479632766973996499413734720363133612226670782336366043322748618626023581265464456524889010241505060052373839683713842787040693837091053088372152716219107830567027135543935399048941825966477947249280733052395501590653344665876605157017629661651937661689196782549219079786561932984518348750189911779408057579540348583014642993278888362513570910316285322859284753202194366826669746502581711119348469752368083890783396945884805890889854073815563234706679470387121179628595489949801175391692017973912969347426855066539225726754660078620792193661621671575422411338621781077786020604934449146548437801070680418105831831650271762095827794329578132281030285991432414356159632114864666799540691391769224956773217631691564417814024062323576596306415008002391159763199865246967737239942509449583329920194110218526700340585330879339945951305958656098529535128601308907528186503949854638829171018466827761210242934996918528628312950090074420796124037326884711872160263832991492123710404587353792573220668770248992615114662571810619253599660513985015449900897650952031828914250615810665825295369391109902747171472020535864247042532574161305762725047961513245435397188503528033167088504346370812352474023655813721740928742142761545924273384447585724289168892099906379274298135405550073299929566478749181069288763635608614134982227841940156105559151344431190989430168788871743387944138723752848129844970131894293899351753531927545377510074278123079540985621466475190298886788877659140088228833965638504805645752702769176933924181965050475996532525488355460642303125255701410027418743006350938143316563885015415498509274283337521333604494746331125250860992073730173244662064223722990646145966461947576010268487131750003928790493064157689894913761214024919345570875012769954396047018621413371622537943128656428594175239898515402956814138885117145479860765052996182321635045960299288375347336221156375161462396220758409516380569978420218893447859554038799421149775122960761937993855777979429539825214070198095873223622564251539692576513408714670893322205823755507469318627847823945596995757959468900102524296710014648947135789122780997868415629566213905136204584270448638978493803201042077188093114032233805806931382440598824366657687589744882349515549934150836482500051034647909751995491045992900316038532243686583785743452181775792726248083177678081604510095297515369935922326195155564493128826021578886010751291295400732691612307074640277977766066026416386451142949975527268278857638406660558217980497072740317776628984067027926155338231574770836719593837101633523399845161009049849455118264698155089077883188193952080794597785500305404688732359263523144463753326055415446868439760579509910240814974643444422168227914133034667458558866801113384315172549836118671308802533588205174450872488572680663473664262313400302028922108217164905232108172688917313056562699633809041012865747176907938875641645541385239399722760552161667097717048685281031400105239275176526967572734769395853675781326825503348483649793449079943174444653933756439861419144610149598515292920720338034336582133562242336220373906229169121093336879450088202885951518427524037625333297870169450025863126379960760447092348127679019094523653424402690055300307196151162349015286270124204050182716966613967149672086509397700627810450687755909474963320558517859664519862680834091926879727618165439569865473630252344442112314452907562657935235996248301732592193777330367222086002624310705377750597513660578938581300202691059379479388316015281563629612058384481972406305903289451174299091025694495201775306169609113769571411421120645237536261349836484994827654884301932728256368967391797685336411732593855170605572619592519609555390523933150710793522244855615999535563413931830801723376352395839660491934045466358751692870032970892428875159818456040994944552327942930104012110794381710135001539435615553081853634125498805189688707253724830685495411289638190416979284148942655444675477721550926675165510766246906594565746843061226469767026168357087340487337373102248827285706135842904300473417739783244064024624375624848430806740440761217375921168294228878013964395948036162574924457669341922701653960314235319887860598147557762604819705665475653877265172280755445870623251015536780576639030104700660033090293744336057639940446841588811794902951089649249246866092517429080773772649144721629307979713402825177423821385009027594062448963744263707893087148522780494261155174429193746331544261847405521076915517986181458577510306718639964858228605077391084988791600622330709252551666751387187412241590398761857963523895189923030941771545251704549286346314629306234909450478701022930951556071259506377321015572814075835525676203259389149191493973276663877992005715806642376560986963610571316250364462011514798088287847869663933399476432120409409475918837312513298258610620221319927984434076807135509207015452730630630269278629165132470063744119856770711227877005282392047552176270992833378499925298095929790796190138227718663741877893341419486346510299185469456199837388957902646224904115272308836465231482239552742810805446305645914264538989641251801957354007940383103792544626507645996209261396943068787179061609528620818380406647297780422715501588823289792676807261089024431189360236216890040064736967755010297885433620154744766094831076116788913184660156208590014908002654934080329476031158249141373168208926737754587892851424445567117228388582274540606516067173334404170524135151583016751104267679852463068659337582718402196523468770953066809894206068464251489544740530174679819664069969740256345731176867202803956861169094280024886533090196739193171965762519196212384945396995466394973214387364425300454312652437500845098868303716590400999967195262206317334024033218000986506576369212359754006648943440559159919249221176922474507605478328528177093052442094744469049823715481445951751665987625468389378128910389366814931954215088005762619924951585965544594975974134687896231875425585736075435112108128576951475339722479946646906273160310569422887657701404612674655135643472200541297744201187887912103259202654948198878786483563625665612216717058515800022661882003992179555803941727173270970032780309878482816668964130251335477971826651998289899333311417782566133158242725053639618374357043714820418749015952079807100112027880433903391273382947040095211204863875363787740693860116943706256678780735809490132072532381770647538602644324755138900722122627940544002603483940165630728897089317156062239692364620489910268517833821747476327796258099152492331293347927656105306470975509192817553081182236938831352935082369224717577548329713588219524867242032747389619875244536633631439696326716613193979456101361402347131254322933739844934104482505760163248131128145972313985025661115078558431596259425136938540034545844256173649860567686482468768040980822454019459637926989376853330574361263522126916419594741858625592843335214519697473010373761715815346564498536389471631053192975645915404201797244349465208315184991825717653244658505507954389718941897778457880014585286585259290149153239021684711373091278638213579863327412520310682902556377304165564067280862937574131522332390779973433853034236956581755220320051473593957006572557018486012543107793401143843009541855473823950072220807733442898968457150552773093331859033318580075164651559678691070373468154835078119228457949044310353393556537164667396275639780386507359732766581762191661717315355830156275695764630061369503890857414688112177990011573853091824683374675824137773142269112805333529613344452936707640147949891582707258484617092702229200609074231513864868318217523111884575968168042838610960023858702661147396839120764316296462510131827413402835893861866901760205839830853556892149828106060423336967159033960021484061886679681982306579309846324089061185098195528412976720192047944317004833336155368874900655254275628254957843016343387929347958756896200147659482809356447143293654184972726744753648203330285181859356770054651726761961726003768047877300629404652744653354614757166128426604753241388077524204636159695201384027879910150498659129063024589290572147757329526222278374042191255876060950608353799484247968626591400888462384594504160511488740413758425863233662449783881707057233556207136065815404229432423278167941095845234281692192372389369423353688146247931921201076846902062812268836590730019418791218650234408573266803668173836927803701211502180277213405410114555542293540476793109602821268808362870605835069123876633438740025630981834099340910758537238909875672210539570313838827150988284397390539022951094740105709477908614514518614870681196278941248193016953385784531704658196554253580788725575711130275053325637956746486015584851581763126179703610693153840807403454420471068480854671437765544310246430066531094643738808022359934739022328250793071051218934727924139974413315588118349879389184453753529843910397222271227944585931474440702373360888886533458505686459361499908177717409225013198597332790762195924965262020299190723106783079009662324699149611545071011962740879798216905335980098135395000352411654161780922846783280439250642103188427488141613729161745134251200309273488170741079081360449248434427682588451175206362609505711670458632636170872583359935734308563614070117971476612667427671043127934573635303396332888098707621479686364748826398812398740367144095184500343885003483313618052005831209688576092092149030593545813039956247545899816223557428705328841873119681081812858702611632779091095117253336820802517843587401055957829254767382016599602539644198486237616882875289684908227070428910488398806629468604008938328153617077046418324839766758791226478263688076846925082522620151885750756421570898797340008560786979133480447678787087618861194278540120809317386164797589940208933130144923754288514056893334405882172405452242738390506460166483589188089492414021546255304613853175987080479200876577159589599576604695650684620372995501431983131251739718185581476153238455743705692782771783378539228786372569752218141664500130814453634258251817575313676260564552848940696878092716071667480228305104006931431119810180428118894647571019747087476305699899509461179781250749841265644343679204810619165532163566472293281835960980515592008405902687083229851151035746542549344027654636797325241691452437333282260410980924660079482330871333249880185775226499839194445506383240526896357583491806582043596176058811271174704563320649838869972501092313618158318686912459968892253973354432231063504913033965784247119056615555326865043676655460621123396805748153397288725669224643283823628977362255651425083761454271138680850660620685449794233996230956227366868911185887606955721768858416838771483381954774868864369573950839641676850187199510703810417102496719042942848018903341407484227295553329512474561357879921319005749967743417377023932811894764740247293381437481693351924295573705789505944595241413075151051001491438006578966764955799746992340004105662978448537619478932941028828012803811055912383631274225790331328237065014389507309634578971538318022041861186091107963413725347818988517305990042315887819032675414501112413328676089757990878052568996671682462439786724089688162117764522979348324329996563211222095576025417663705104292032402598683527031047598420139375804187530302803017375996367967876472404960802163821343762751900985862554731643648404845680487733952773902740668005184181588700310755803152379288345560709078998129809553032679673567963819651727610728097474333325558292818575569785466451486487564729091401074406995801176822038341772439731957522000066374222435934976441032566948460926271742517950363888536560315896507602470776205213124479142381616057157712266500405936210970306514991718254577326661328728654936764100922179647136512731467073804608269760251575172078430164612328456660313066107785755768584162078567320139763934517107838397595457822507716460982465726565612171513251280922673402373487257310040567619163990661274493548193805988613452463196504911908452286678349771278880709809413737318311911464304145338749197163963431820970802825508213163661333093498419935510146678434318879602966068324620412553064049410248117545814722230981179820888445338332855115550486562604258217133854866343672376620319218363420628565177637387487362018620862238189419672474480926001721770744343036093513734052645785930019554519303433686985735152831273815499584408360952993051890225577728643827369349955013393682842377622198707051556551501229383085550585467924839311019847170049711915610803318250905798311035010400802971076634617285763349256762772920096686185910477346055915349668034486217739327767801704549554748946338665826207546298549671490785686305205320695351566383983836822537944439950846285479272921212385445212167848271952258355476688738798671791030061868593082969034624204709813964381760255120312888239265476112071222301449819209225567285715036641498845260245689719446725529295175397971358410082104004120253351178489862335175884433474073163409452789240902995177262929495655098189473967607751313709487875584147936049802131818602804045461080951895560725756452148138746936522893397379197021768745015697865623679338950951448384180370821694965322734109871635291803052022329985205672106465466480318088452303396770203253891398549088971741500589072060414450025881154151559935146274121276668933065218295873357915534339461113005996368098137043257263825718281843096093847903263606575669919851994284967857685319011572803996325096420724818421979412998696963905986310313317798819820375749724185637424109820620849903101738973477214593447593827398861335981646490642571344614970983475429831028790746410443383967594650258267088082328798310138136737858480359421351468388135075247192991452063132961903937792728648850282097563975326369267948602566454193544811796324330986135727458855324899995105280360994183478027900883530938108959925537499477156206225752541598843514489024783673221251377686323068441138385157037873201941219710359899248403300448221775955162606759277076123349457605923100191340474666837849256496399545892017510380944583688849054494886910333760763842488932490907649698139968148112274464358641387231194317021196293450306630816531979439047368311934627376421390833196987936217864603462086156935430371516489449336996608585344560978552288860299098620536798891895808218830706497082084188558664123385082899323202194602229187552644815770253636938430609827142628074620015929176581041702755084470753227848187523988289514436218479036767429255515465066313328856527514803111249662155098542170094861199669370893895143091997745410548302949364466302636341820637820532530939807431542768926520729614228884891519106602019826748341963557440253522085199063392797757328682051701172630259331009008051707039162263563903135299804403765383561868698760584408831793452301811452032899401555129751913730434535188433984863791612281197089744679670450299599778746641677417519806160027050589052561962466413489781020062814610792168255094307571867898220858085680722374189310016086257162047504477204276805024477666488962838885180199493272595713684729539966423107879873970487090591991015208893833865551716687146652866732946925412055221742300803097313024205464415874834818361740794533306175218176439328818813120360450151784827583057084829489914054655943826522978182953643483527999122094273141620640336566593042104767333670082969281134440280444207403639287862712037319121228827105975715444511977078326001094381021325514628692075235627023657103602490727786743212689610505878869059273516463327889060288096022367048783412747912498314759366906202578094601973008727715938753095035985018012562861479026485592429635926061691798594885221655084965961409078754112737932761931829249081440870648848558934576511854540456026399297922889888848822996362557272534975713292593475823816312656403967598595106373313287661225009629881131932550707173148827432077745926083623568578428940206994931544050104212413369748822583766372106336751449369112220223873383163045408191361954660632314128665415128064492150164134258828882210705438889608047282587942740133435897919397615736747437829505345700063836725659566430524158809186572913736842447934799650289888847229145830924125527149547451711152447285160088058841316946820187598221698674460581313858063467019092975649321734899372788147458089687055700733541221518671890704131056554353760069691256484944919191704504856173837897011242660575416265412961633119516895103446986568366238157601926253705920552009597187422245404378182790190105788083171982380963612248737708107199217481056386617015343835857873679908957107771099278774961925423047704885087215943775006292043940371775870252220989142777451117293813496295122104528235539949483042530430520889429253488651692084524500022469359742389167422374948259131464485053056908990346598591616619984332474607627633876373466708650764577286817364597678937487323859677948694696706121214364841394609045971449557837326489510343286583950665959166804357407829677997506819296578946478641505328521871961642499353722633822967161362614666821591847602030884754816873994468935282196633048444299474737108798845104844469893588072136658544294546542035698599951891622637984321077163363582282432939523024576573631320143784592317710124600996840879469920897542098679764853726882626610520371129817451332440328385882687081416504051575011394313085820709599178127202499717014893567319812706339951842586512177345839181843337929142934115553670725737752848414429936478181207403198235536360988614083861130866645189870490053450010953425404919483847558252583466509331092938056681836058097146286904584653751756971901875802610789952959818010837926557740055600062114974905700892386827516419033216615779762047914099271196660728909753374955766674669303541884403052646929555894582557375365629850577692342086939633819298948010114113369297940334596966864123637378561590724978433525630278861109664294149920081323777361676864142545101434018352040359556962659305321211261062128843831088330109472605091935373940938944700402912272257396555574315978755186077274835960182613285564012564439266095011243016933372120308403265589917658164276062856149753136975321428351912799271086227677728901636696134890913305291822063747985193921239750299365163486440069665388439026923504756085227304220763125778349267346145269265788949659819491862015522182490597375256326752839443018946909511012119937349261039764704438944955203971500707596378355509775398316799954277163953152934736944956048060762245480025849801889332862806688635026828629669411684716026779595048053767125499860202642627175879901296969315293606897168451671568270283754263891087497562134033262720739410409852418290877746545899566829795378496476657465310722514437827015410709785054119317878790408813134393228318148524651641675663577476957765808307455136892341642684638818073002181146202187193468997122742537332235980461183452344773737830914279933395378654554953739339352098390939496156360816307672595260085578538186954987415312736223743053758374533254190386270961881623080592340863266315634641386748294366321129592818989443173482937622203304593845723966462024769881297656280351828607948406968337605836752513257818019821813891893353358247291191212391653096242697912637854493601795144805565345146496479016782065066091896601282554513589150909038287338301746497511789982566969811618063149260669796772583787570423958806492098406569987143276072221210883294603686487066523891828704791105137982264961879587639856551359480598257223069130454884416072774539500447563661720089631055839513686514642479729075636614678782283481537118129469319808138698506209005550983105018570733004905468625179983414210962771603469768364776083660268133599395100202308378784413663164474751799905311580991629113896549012396277803418903613962695166667026558918922218740311032192954745548028109987973903389527428699061202264817556984131226007850965567276887676878195361185889259030048684394674142722107191878988239516155441876234239410404487744924425268216956965525274907798693534827358778241443512280229981549416313879728257251923262261641208001389330590683526895013070971632156640168422116112082246715908844271657468183784652738920001914059536858354641536565434649607836903190427195426876054228292923644701474479946513714978954577471874704401794112182897471750084409484865370842560403650572414474252599407963918246951538384550722560153404035410364742932808135412601930965107928037022163755877653829169664448262282406921332049812593600369382867953142204116011574993864343678837841637480730152590527305299365878462146243796933666120277846882518562993374144388284414856609430623175355779068977184174573504331830629468822149812543955760412711353037530361093567703593363304644706792525689621670707960339293222393546738195183844897857893227351897411188039955550032332213107271648319169379234231350941026298087063103190973541557253839746967085838170260009166668999322310530692262213762846373450236605504034763061127744803363566040546555957655376987668411328088970356642317362747676391689042559534762771435628749159966890580172414526886723403111548070096029650705416351046145972295584793697027825014724165442372688790439744640544825184059155809784366233360862502289872433626048773760755964199956832864020898719880053706059353723872729102898187954813729962140702200696129958915097338750377399442030015801144711800470333971694045896588654149259920999691639169935697890938303515805020153150908633736021214060673347941562251924605824899938409606171343728614543503277381401529790063028799262103186292959658186291249982494392777847177686980112651309418012093780820349281541276440952692711708271354398276989914243556724406438099696181500488627881925922304757765359135618584214680224804537183091119376400863004944145777195355215522172555639544030258918670717661507336333136288344648577792470822511234058994496021203213119409347252952034955231414125025401961979823011936735535566043017409109928861885498896069587982869420858819119217454096772984429000862692838436313907426693935030291327281811338715075057104021408767639455543408835558463301200581186909110643318189059045475626308735519300740893991669965575441170425948018458980933495146999884800766120314267920359255609249078142459624900744041035125395866254414191869009726212152113822688091930288772165919223662236162423335231044062026727639115671329520653539701579122681144918817958593546527248462131485128159878663569639076613307678450489123996115996802556912140817192663357865139114930833773366394697464379641215384619943477798810781405043597442800565819378358775657127124267358875123206485863833104017029613002104646602923006507152031171724937608062591190568908467048736772413057988055789812924010627161457469437958281443292452895637765829623448245493206519703991396618721671286781049689373653670790502550642590724965932871646575345568941126832718266991395271920304220100105985150385295291844908881571572374480944954470891308360252228294445557655844393273966184664458651497066924236770363010115320528613138794450459300449222075177252650032343773512144237282263277966961465893363634877003911096498160451311246749242993471601187493509550647129526541650017926522031150529559242109200886324568066895062372051519202365019115482446468941291445555867343327287514079385542507805746507250399365208733059368709534993858313824572966195586916910961282302569025709235387831817259508230908317219144278409540964072168799333618646717290899742244399444621011551477182182793228862105003145349402345377301466571049281327696062605832647299704363277145077618873215384763642271142874473180958430010832341092821145469489366400909767671231902583667464433951356621465611912177278219031045204390196740974152955064668864960674057559401701633300401986977637525551498545105402898721833887680163551686133625241778817252987862890156966586176011306298846642619107813964140514036227200971421842086136640098912817765939632590674438630725037440082149748845782684300250575716940176964839456669457723444284545102794475214821499019952421609540565896939902438223854458522537138710593212766724546168686538884795379334882387228759743442897308085264931607632094570927991486884922818169123115112555316778214980296621983897362132795888255235348625601983213561231263093858751688517264533100077021331672177364507679396000429761070695825080958527203577394749827974817211972285540184063695430423939823669353320578323721492939964384876092397815779516620124726077500656763502975110865304132755462665129133655449157904861248211310799788596881236343434456445449737006944800252912418061462762116795737558795889167062187952755852216527610028289253112121138938502555993304622997167424395537102037877345200263285032760332621346774526431251393259207433616718222056782258126213121003293758570387190210258277230932702181617969833384856394150628105775528563141447420644225779327588808426425919549737186746380421645889770127561359663446493909784704417634101805140332991492213398331870792597523859079009760111780273988590384643242451910079670624430548802536027540263608284486181229482763616994110675315761128089104444102521849786220506693886557025962680650658579817212702854519792292909007040589316512243011167590969524077617235078831197572210293268690753800816822113314557368639868986741793801462226117326879905799671939838163426243473545854566870967243871250091913332677149590687797031863066744948445535339667236448800256380639990746865985575033617677573001685118665577627861921908116185751252901704803729091289146241448856043666823893643335274996766864086228029979352341990788350802417234603892066613199867863839458752771553314577128383708458512222489367942753346378147129515023054614258169480685487476537669976500780494331862847480556815286133921616153913852796423242048733524619958643902454474584167671301282980781032180286101122553486086632459642657077543235600114868352348293193620601624290040547155868996086889080381239706481873109447615148709309119510988894726124976309347615256293492858174881135809098541087416017121934816338037643269468695977924109787387096813181271241946784327800563492004530596220757417891242303884616853438320609197026737866358228742635457361170798635743686961024579172625218345071666468829869441961135134036787597618634381516589411750082281623520758957027358445558690986749958479058980283994533720876033277882653562609751269589482703626249204763326802135426021401157089849305220719474297036930741138211223909410903151766486738129207328929742457065690981857735927838467042999356257516018617331849469114233121843321180694536116958464770840267761119794027002595889786215615471859305203101976204284659470283874985172063897318825378954719439877738928622315043725171062853007928984854625103296177746465443566486655550432739012177595816950707791593586292854837234482010858538779566032411771176292354532603661694034729435562506916221477117545453523024608611956259158809094566436456518338225338330632907063263934016102137481449169089420947199392170504292990985427641245583483790524326433662026231354800851014934166165577408669013295321230174352906057335573256930792960103563978375897132702479275521216463541864013381432190277510650623968408360177200352320329848033047111327354317420067506269769080627710544847121566736811315734711685801663197276218054731211555644527687436121881201249517675067272950202525772188142069827570896506799471240681233999256725658410325060753454992892574675803951993500427564162924497716783663851303617715120979778662776342852003229824920062939588281958702221448343264702800724392220608806582819146845036189567823469525901092282114314848933380124623684513137766755593745006881704460287094622393912976984459360801355666198829716901675785413754196985643837663793959672097878785135409068053560944639878630688067787671546435317778023420044925039914176819776323696945072981204300371996423342250806925091181258129106447818223622391241154459548739295621943710713226990709867946715164674779453279220458503403342401729183687663676640524192685318131458643044044070342030258224494294625664101821785590031327618855228925686567849048902354231944527064791488148222427576193568238084220356985995645832716626445815271514516742935934142331842183213300761059176751944866593799456271726290271253317693326397503660109617223573940452831880440295605941530942575071466635533219045075711906417510405184693675606353494200470500999403405701282308628822741757902253024997116408522839891747786864812893682087822415892961656667673417440059369630681482379762818704518350316045408847404248187656916191007425875076000034633873028220324505394252587013279499801726856448065381196164225438003082316546643932459787508029731825982358788790862363058769241242052592812012491810221789239262716617987276983332827478273308022138909797106504541452604097045715252709708024918432513294845185848329647571697821023945233684767161997203274803561483436810894368156147315294614892739485055275097977684137196083722393043384160570472326422828105057690377321144311058430021418655633874292853646283406938152373157237886313626949639403175352621619799747224768879101392665526110982934289672509215189627947096196127928908975798502176693654400847881756115387936528121562753506069001611488207511976600742638973966165930066827307554105840361754541874802351423479140916677594897325420840256790622334903052528957093718558464287608790074376755159885692619073931359910696847727721295747056840961696778436838421888135091969346590849615589897965848450500640926488079620656188102795878008739388149349285299019092734339417346118471074482680709315864833289681329828514811145112025779079443269986124217112963808885081617988932486041080568068639979133799699898542413720447097956926257792514465961721894262322711279436225209514322523241571509835918852327885370304083453913110592227420926814458722219398690670726728306805426432174174219177674429492220436922407525467314330304725207558648425816998677798185500991605046022961841917957235837487569429692969889074910623703017813257537857094839147383577745699406613531791818062759340348862571107221860590256794253011584430009464006804933548973843698945792881909095205903391468447794243631045287315844728491485788024536909375793393049013620604268555075020735789729343587680098723336292706668443318250482987970514605929876290832286961984499269186336045723986292976531806643048448853504461841730778029991116091424086397521262302128262839393350911438719407865175397352884078136746776927973399064570364064702788810182553790741659189053802014251248691936849814213713472819159125629755676046102035055722414400087841429080555251488073671612491330517180987054070223099652362149866146680300818179898356314068355578765541027984692518198209342524647243506225298885263699540181907495120466651840077480140353712307151623748210362627038083555078748843018229800990444731925384347015738142797630286214489055157522421302929951485296395552413505680011711720906311278609492089019714249693233656055106253252327792923245288134348084536707907697117701133476484859262022550663519978636182380862907031798322008309967737376552479739351085876558882293190568514164360853994169540226020848771585670493954125247179692317396557700287938568267265649934926288452584706928376298560529747113611946224262416326758168188946577882673115183693705475314966440276198440045583523995591773561963198609478229604361988759030650505745880039463365509413009767271372867434049656186467279040772258566414663763984633198330098667133263474157676759923780201897824866044733002801338615421775978420869212202343358887732393701148661015066525037206820422876556106375879148816805565763077803344906402396321973808374728368613794557357566949981024813655971588862610815646644310089594720562969099896406673735064321928856246935621885062789221602555521669337937208870352074733347098696204249640528108192957699858518350609474431093581500497425129088966242325951899865088545375403828997151259193059074962006769262847612241844227465288451230594000190815619692078619928642326049586807760683283455228989649682030497136309015924008880527808591575021022885502242212812837728844121152589026248775662886734206710276222560363894600239099211851816551066586671142486742911864195496897938652650962083042705833326677426369867636840978910828711899295358454525734265820535627324137287404136394577514686658799691597748544816483816652760572161025188568000321814878036096829784386515540857768651871063551207396576265709159771886699942793082251515028895582461310029765719105578268837230138586543260309713377657561896243810103317108032384460469020935893872841293392081540944173005242259744993563023052737389152101939810641769422430585054921531933491864139861435648558777919040585305348517832664579434174743941959095560274837260209335783082887267886803764722693485617670268707970359674767485110416429251238532804482742608885761473652244597866431033300057030238613941162197162550268755686575097000815780959336937434068702930841979822339484550816657297744982120430355499739912726213649877927374572160043562415367280945541204372205124189795246497570981156135602880344223962161306469359339922496564872804944494601133508225657437050971646653065109879173342807645211123705001584697783002804970114495252282016193639097008828966090519138806123937304471453401398577824953218098681292019350485552771377071085664400643755512517673327778793685384467472483953266085366503462658724040756771527958148540529675728297429883151137516958771841425297296279426570408656200846562117023369030326266602686913462790487988996537868898379302187788631101047290183750750240455539109647686545427632818702105382189038249666266121111283556975121355112940920080931354917311803896055977425536264339103413179581069486521215921025930890438348128599797783579064163734336449052134674580332546451808360247939375912542397162852787760115572699256024148092500615312783313905573906073058592958375155385877557709974802869919366259761556578051351116210612122506631404108603560457175051512122322449827375468820677298460070377167126011691351362678767741024546188793556009888447928939983453136242801808408251135982197213807728938488220070051271911030671077478956263962807368468257197613181825586104754476089344524782815021873574176865630003097589807040431495560653871694986612071584666353306595539328928148048223950925734859477433706935413645029544968700697469906342816326668326866597092110512950804635223107160049805799562661520390666943458171020356900976738735175270585997595035899021109614390436845553607577930744613673816096529737297394550485454143327192495947454627432746168935738749686815277098403513659582622070770229135768246840875509106742917346626259251278285413077500014996361489316349062501532709050454357564586099891853696239420549374961531136200926735914255906497878104196630440332580744865769409841134197482569465093205662686951546954736168445144940343087837936518765796844894521416402226525037126848160039508066419524174202343836392012263937439690093997504128842020074480552296145379484364460568409895673802862130582731800540769429760380417509401165545929593590609109708314425268610267869223146746101626350818062947344991510149534319439707059957916737920766300590999209269466423341664896478874857911673033496688298694372615728367123432926456499119668100284801458847603177157003635773826209864702452151193802121417028606284974044621161736735193268075944006935086732518253056972137474156112928403006115995941228096162003705177881633438762137228391077417410738485814959544423122993536031831428876754705482939851124204119687690938199855755468767446148933874410808680687334062072111962645317903593847815440212452803554759372211142120886894793499863978167051599346905620489156535785943435521248797278816370588288258519788942199590361882209215267121722488031975469913507884892780766546759426561044844549769211514408547309843282907079775067793570120257750585309084845921864043858931978769502532487677022285578143881815131401962200444811429590208830939921664031059726331172339638230729092787791195365480111096059537986939890446642071757064567098820025076248834576514844035785489468505469775603029142055930292151626832512498588972315372775618973935294105404235093502963049014444061240740115582186498070886576077060506139355174221100137239915251308648934605922463035089648672803641412062585643966410343062340828357811961479478744344561861855009731620265489157765200499219500902091039091001143369934931376694879893352486981914754440429417397563614899528545951911536811497365643364514224131926161278448477207033674868367401621434226945399281759271489883623983017278254734611275494493630334685455029077613577052066261950097387354894559179609576708282811378595820096284163857047838329453120433915650827820830147193159169042883022141506800213167246047747867785478603365102614836976329861223806016109843441468389589607816476813932310482018426139355769789481056202714266172820343793884959833739885101257573983370795367066587222273560350157721548557052641241168183067485672594826084967098624420645729852880552005674260934345130601060960986073559531139343757416235190137100218239487363497038077185631998540917875572279352624685564408370374176938740279320479711874097595638685503415545956996850421464952052404947416299855322757710417108646235938887882778297711686260802156948236048491942414857883983893154882513003896414844025216773951908759004487769596669099154044468608896117222650691263303221128670104310636295959670620003515735758279078391011576566457259156792887129819229715903202577024030810948434367968143074734250009513766189919638454765087605022237923336139030127826867188201119688435494753619201356131016618666822944848322544291617651918003428211209974746735341873327398647932948425738158377412419428258868898399749540731773391608345460970940811591239225217552039562787717713905566481473701380926423935654536245707390267813254135027404439477654088545647887200996132139777086315477766733428093870441024565762005376297443207047476232418832197046271774164798395596927881171344706292552371638806226842752562688395287458987308793479148064343978841165392523383426790747885098781443830771201865691501677376551136633307375208269239249847309086517902228340225753377024683553916928022167611364396300256584104478828619837365917335090515325949139942839708644068096991225054979082739583600088036867140868996320905859319416718444920812781804322749867800334541818517288933105102084846758565129835390727746498497586033281782937821031257535716663654813435187155975247433482514836474142073219011913153449903250133404843498626848151521709228104276938900612804325487277080917808133195154290033834250892910481941998801537939063513502082054293238109331974292126835501208588994578623798747435258977323098902897370367057373581316963641601248509915511883861832250359862656437478174047093412765660592402479940511146214892071305280313746589927550239833031527915138224996596922060920817194033358630660888560898885643902012923307753105151058807392429339146822495506883896750744244076226394838661097950959741915563457611871081759400948500454444273835033042395618800789617268657189357618998883209870087422389272546285466614091497895085398277620214786230189015577169212766769925152313974849536300754053913119749823799578171584082674990096767028361627099685639396306787578305917073449635417685595063206602953823368509057261712720057305744303246353697868131216844767277287809216892734390066094595479480710627135688852267848292882603037897870515483371684723683381044186491901694750932369891478963877762039435402965270194811799190680370881212160775056267735408375171168818308246901336709600907549260723646834580491410397277261158819913406688255042447735991568311317028111449554929738840278570341836950106620677503082923509140241630754338924429880073299165575796084111139843687165017415568375524484057318458235116557588081611239791746548086740360185279439728906652709624093359094329080245715781869925729090592368236166439442984836884155845462595569568591747336660942330384707050477518001907533250237349776145557980574457338343856163559764149173091559908652457307391729900835109400694088214486019001494051470206235919417674069576727534238251299691423969976729940936325322306020530759469112288786743173737769992377430228086775221228838889170614771891896043743780113241478395204879608759963369395145561990402146541011892725076891494813634397013853207284419207637639087947015140341850599736555131131459476432106999939764867519527085779204751574787433430918748828858826732295391073828192451456386208814959573741937255772031992835223557768445714130150421232757709473810629304199516015866761403999666172538114037409889338688170971799883519308429995004700057086646847290402754062940934951555468494499000649795091310224313545249242581991278235424316124211444762517474016721013389810741419843148079953203373079636538132878568246520929854133149500939276926242374135732634676775372055388856584143630524418599335966052228915484385413034009961147961253500851644949662801640536528686424297874790952394578062558234210307949394322999889405778027192198252962974474352502369465906169558368753629743936517210906310114864042187918834471151051310497004114492376838891724088430295305896305889331001717217091759291513185343935665699473321174388494420814621675917213600865880455558768616987886682605788957400120324786635117833601919860146883684183525896879720782547277397172701701087304934391840380084633711017466090402305652621007907653904911872114636484317616346975606525695869007350032253693737505788344314040234978259805173723503805433133739016750927416748604434021999890141174431507033467603888355791697109916601127898876288831734424963051717209609000715527811836265564133103001140711848859766845711306773135092378016924447385852483936938810394752244269858003185471621663598077095031251157613175833250463864992746373310212306341319690791233414133196194039111611713130192918254071502305023239298518971280962385626474555522077074439845760268813344627819986817925019680760638144259094744548272860745778894049092282256254231131074487038465344868149186999026852098552441124127487342817179008139812465981955878494488301482603877416785623640157759295779346007722953850613822974158805450097194977069056269091935112215789364088848266881492453243486252269653328503394469763393021239758179775350814028452821152748175571929485831823170066160160486577984483718369011163749221054612984253962212051245976253594516020775760218594108430620485434449976379438648651306349481413929852365436846401438100205091678815560651386393252149578784347596173742070704539798230583786399707512511294311578319279660845233164513327911786339266875134189125048608428370259545106841126906537799123831172879069995739885227391084321810713168622487951969452032991748859327713635654442344826806761220145233836435766089741168488768905541891936838327869198402643324207605096005812964112196363445250595947642946615408007202400227426490587129096171909027368704449494956644322364820693118229377933070870505423486721981159197233995248594670764128896031431771896059246603535153870614390689869234051876578529049144035471950277010826047741836102254572568877756851052514565962165494834892466087763400161357584463047403092111130538386914811534475852112035121057315607981620147277724833155490208108259143159406309766066818353494750503487302903937455178192394598549034064850533437383667850798816844616729762651444152982000944095517959038304655174491193266356554901700222661804649744978682112506770635491759257356445470595753319513625727852551622165627637834847156937255189547626180449012815133600558120871390753142464012424975644506611663591866129271392182339321158060351073707449670876658727680976515997391985120824096538695785999969057657301895186831011517072646393235468651643868517827891373985199152115867518217075154795227351841711354121494445377529050703521078545312939573505900939443829217921744289746516875591262234306773890909564211987711414417518417085313320620040955021008831289375918869372893324763110949485817803680545282654081406551293282250781843172207800428255239064246615578840850547446201768474088169405676725862435032483584497936152615528526800446839512862659574695309171278511063152135552728945696284691919305606947000974808656052577557017335761685632933105481193901880147052715042114310732902997122635235467199215251075371553621320517072144947283461578952351887868585173909437150439496686484639910754306090104425766301612925437485773205293514466557533908799715998001962767677812701802895029862732847036171387200903731465913533882682144763668698158094561597559922682188087343997036185003459889668703455292893952209733896551132458705203642368518334809324655999548815925374938256622277435918629834510769426449192234781990602015335968807202912981516901513786875622210202798449175663873129561422594898307764988716305972398397745307235494709930896585722373430590373317413559874500693468351645159816924572588369059899778972242633568863907859720289019125056977068713020188241717588293248929150295599293036491920215984117144858611098449322666778681287936852882073412158197959855332777586278386521240130371736050893548794010864368960791436677433349793296623667966512303472727771820866339956778330344712611885729345840296860261735499981284953724948246399595110895151678731112744001113415917884768406882714819831409956817691946577058766582445114259691876124773477850917666810809491283603069680048971799131759508306479684720512034377515967195758429015545854270095833291220047633041675229112600527070465412946050484419552102025752637406520160303248070084441900365407839668407490422227351906484445713571072126604847661881005484846196329711187313551604555907702175120284174180511060943627261816278853647495394619298893879555690626948456374308235199955032455157955370490599384177615465362368102320465893453559733363542846716636622148373693591561673326072300696052391772970792019352528595806886580453327589504740854016295004398679720724540032791283545386283040727195130865534309258296177933311331286422245566164548411328632647489143658789630751476586252433603836654980132298521102071216935155386476350290879767457745005099830797524321599871601370049486701557079870989898088129464340199497262082753210401313087412312375489696168237478183476760969062152480640941425443084923233697446660048074731557528562097105875778497120155611532509782648601640100138223498433314458624980983287250293103935581450738852163437592382469207002352249469644994176877752309318335592064493050237848189433028200867245938320104634194784049900441374091542685414805209744951730707021097079774951877159351789373125855864754241522006101920304448194385491490112454056665347743146990635436153265215892401239934161718035544275190742305987202701338874133095885454973248825742030715515231260184057880933364778409106429656552166793878572348491607552768302917388059998444062985357887032651822460211347155898810330802283563181218544289065996089106975014507984079287044538043818393015047466655255879301147214353788621372521304503792346247613374376584543188869278200602667478689011106838032922919264974752709511942338291764497603375733864916624650203745973201315611241806912672370697989522246467765620149458440600194583424827046818746849906323478146604368358081856122337306014986027767281669944913489402275264987722366296026610911212696878025854294605434034347080688518699628876320628562258358911918960860609906967131331667003814667461014326042008137928965840845251511571987839858679894752574722623587374933768368286376154038637566505816317345065227829009972540006607497241502208402413808889007612589641321683063266842486937772676901003942076716844949259455600330700707494757771772001489446920755038282937015673072139929164543256092312074116926169441364996601140081704909172631694999271184095065089536384666426164725618909357199570662985779519428980303185124045025919680036485481121495953139500069519227457510442269624371155816095948379497038503402975517723154051514513447690425976891258080806184208798895734577669904224732886409249818609784615271409816245837588086945283262826732539068631063094817872905164037071479201237464753987565240672813281771922046387825002348494260631957410701487481185412184108754855055675630508991923625225349513457230771822782679583017952294122461200982204866997485053014257191756323906968995911984131147436255145632824486591729337872663687212715587967263244660413727281183667593388627698432155791574936183668588817309516058291053040139837634822447376755431413514767706398500668624496018205330449304868948259794361093585904454318635339666594983850020168142548700047959939898153821451327728440999483869623843265824209679552114201491332341128696279763500911620105230139600797897302736898959601922840034099351512616978716198357044039678126435413918270403468455827754626728984791001089070723990833167734673621232124478708280857315706763879626531695582962226572478126074502453135997880857379574461841305236012150784591563432910736653378770783217525704451795320503835505900234026689952350510122358656336430472330502873256911511354369542049784575641228276890670116642811697298357814580879591257000612159129208767140905240523337131417810698707903996506707850390239999221790237326674881930694496565700259496682807538821051705864122290339116955445790747228825205303005026182512828884197035881788282331757466491604373398494120480927494513390108432980855357625384974793814656631854188329896854180132435173984155164917432289403608826382768964581976296985231829174953594291299640417969411732345516803689765494193419487238567267458482499738589539191070017216618911862931677692717023319888148956731341095824555331713199057563304559282974989109316011300373162400917742390393859216306009037353475530384344252189252933708367321265323675657056979124027998207906332013701374596673292222980484720153215758212096431117737147088869511085919458288167198853086530453701526672185340366423898590812075188944327082899120139390228928188157372327803672606888715506902697026961209738507109843906175796700741541341795191677286875670455767769175774703636114279789203481144396439276249242074374151977836425137411331036045527228372795629461201784813534194551474749292156142461003180008195535412431911470459399153229531201394200511983043213132202419615534166828378981332886699270869651887873871887246952146369075804471627022952058592876962367285074384445089297816168398180045944971562260129244581581646456123947049171147329028887693317420502374930068687705022942228009357180054256220423435569284242282313833235495629211376569308414171841898996891140158230522369123521317614675898880813745768686636413660319994259817542725543288866167749127310937410313207265285464252006241050767840569298463009117226904005537067499620974010617187338964065233451242269685764122443324629705701666739139582061729419945493712842122643176749703215093326388881413001842205026086328863457741009583533744191918829951567882094515426492905699717592346741168020226751707396916687267304956803065752872714629353864816679362789035608352232091410973022412458862803091403043316161926192719207129846977700609617619107810593680517788969235486021358763935252788455320980326898704022014695605767658348011914773756889581361126151623069475621867363630500590383295343156244608155480235201552633391641309857706223129837372380331455911436643919252618397415192452581825186651123115265535751737140444365477609373061302184751840587846340377354934512421849156530623529814853297277608741364375466330852390040890906729889656469033574184003251087031357744380180858500919806661600084532793323627978212295109968538466617314604278802443473249316526096788144595590227509055195975536635889693237031744318083449939222897848844305511877551847420100059602500887158922340219352248933519161854111129517102955083401852533314709751500888042672344284620371073628402023855240618548144623803008670852352830554171433252396316203756706883590386829499505562222683596306100188021921429415878984811954832568195275575952371590511450333225243747527917545675072600736103483820651741910093753786487143135487659024007423036125706316963348083899431229489152679322927465948964723138589807102400592036041953997740459304721308475642681114297363742008530262991851496223520364690394019380018095396109922869828519353552694792284629003221828829196041387138268659459216680578238672023392571137217065567038659353977476080471860791820906075933954692207690580034771567881274882181985836930162972584165081007118454625156539613257952149521638519302083244284758187062300648605958158795938685493616288798304017775396551523262205087310927988849690908481080341479680041360229897246293997263213865301731612750873412716423374135292386533412238461552583667327533847589397292111041630928690920406138028336601134673144350628112822684608428787885140396004100757115767721156444578872577704664403461277552714643222947852014120812713513743287186444806944830458526313820446243003469211686738120457010849641795314485250382535425147657469724186525310059350830326354031476963400486502686247240941882533360833065640252610253739410855459191527782771965562059137926939878095267799738286337980029164288520367459636147114869897911448008591532480840126881332213542751723831589043829430970210309637863156209436905754137657972771243216542665481673746339782937265939405391572943128757853411104885000585470842450206344707256342702690142284725265036379685167507820490682833830571898546390560377409167845392292710087914585470490097751248532592248855459437789709728681830001610972244619418543515862570838239955427730434131862420882250951135560206247133982617995890427188602879034126057912044716569372220648196962177740249878986506485176579555944106856172290262607228337510477585401906306024271399469391094284555648633200264753845901240218841478773039621188930867726178173383181842716762551548617544950894854876919616628248182663246235402678430885457432525029334848418951118115092153527010430597338562681324410961267007719303071377889307722153592231601820545562184164262326731305680951701637189348041485379043217746728050685142522933380762586929061274352148919102106900494502723212932361986077494718924809617328243219096866439211958454757329097778984483386513510430666041011484802312385271516160019772547231394909058225860526713600181804924247786319999572325432952378614246701682073035642048996692419032422628160477491964583638310714980248185731835722858507199996966876924001900145007137278128645717977316554892965065285621487052165827495787143244495059367645287176507569008176894727467247402572469453651437337619419228337801009369258517053680980134307199989483121520736262081573862261471719731491260130527840481888262225801713490806181177804262507025001376324605980345149770618489575672572923498688978362610201136368129166020818068714865208168528158224547920095408100127804682362265484374110797551331674958310565090211274856656227393781204717684244275138569075484048648558505735702899032356557620593135927364506443170470178997725659392521852140172309548024699468530255115548231559903207315591057261714455960693942747637530540798153507478304881749074075893657412510064226282041673879863579293061279711444600588296807006181895416805935577808573432128714500861291588217326611047852094904288460327539104561863755888281114775336298271700338053103331825711162942262514604791123736953268976225015313873562108158851414869281343957014663693413451160339693117620214347842429863395228050303417474432021517892723580806655524848129594736681872499242450987152287824448856327788928864906821908010071417744415545557366874649310664658055033182757705210559603580244335171801474307427500925636416117448894657003902426092099001614049227751579702847791660123649665411925421908276145448372772085812151898686854839777744773766518360078151464517924348144740554292278355012155530888771435775905675972633955146755479968372991087858556155764359865951980967103199502272727289774053121545941260582581700132187990818199603292499570533003958266974710204359623114533823330757189879818084210859060491379745284546420062914531487382035610430383181781294340893656603997712336255785255897647055307130514468219694358720740201228120237275588639726171881680414497617284078742867662799086820489460405242972595229765248662766291887667538807526654175847368411382656874593575570638866256086293820566150145119947036549494673273055175213438810901977149893469006661376385595771301302645196812825528561277516460465613632850229017378090656828531192505980497506409471189245541681471530445470757471431466306772366023716789678733713840562137524929360618246127433266277113844368395547997430048416415321230195893834595317979495299135355390688598753336286355172418817728401601595312501295062816330367573294010424552133873270854682264376695472841495271578454081533997007683727956300307362715891057366834911760207789020638954770971703801127693392160634923627547493500410254230808660161026335483594260408349095626761028659897628068382415479842275235659800655248920770769075716424768595387115755949052908956630305495789471479663247465199822670710642705345845470941387219936316712660777593630646472069555663041385120620985580957751653618653787673768585143293790117313632178226183474402099224556458509026845436224909865218969807451383612158372676947263258419677131019639474238278561459091026583648109823997724863875211882495053460753957021674586209864624694397296335880428984952877823298947969240752558757603281181117183519365016579958101289084108899404477914925011278834690035206359619132212661152277564042118837792624945116494230834931689688740722856824781454964096976747975568657879599231930098312143209638189496097865947039791280146498469657420696801253227752204779511391007891313168864350745591172173973553443797468768577128191819806695925169482371167956952497176935102095702187156906332845130733555743825522452790521592537116857164106906926722652805669384563566409949152337631333038628539399685775977135855825590752603226973104946704091228609577248840127970614875997589672373879111641241139987602869987658969764102336082897141883878060391798523228606265236703038876180407867594246981746398233382019139925518816536919109026506823761540247790470487369269328741137638119634279877434230298169805845258624898560399250510984038493398583807096920116460079256975706883452767887962195225099443761981380003987248338811580204944272937835515584036753784521761114566885060937219296439755258604081575791546118846936717310776419343705676871784058832475150036517713653229345116477338267913065326548560200213297880715878313565737000268318711750150249871295606506822208491445028067928264782943570743375937155183151283017867812488079634857004273337962154963286545470051277198191116715456890817317776513143367080911249473959913379386686668887528409972483991461320380024880653813722262005540070678479214083893304420028457505793143235708848558329726976025127987660801993830082934205501582385811792532932009834789942695013043012951434080649752155401855129989489838295602189010766327737773399500260828608583573900183435766256675575261586551020603338849685766853229036099572687183553346772881618849335047648465896614990071925643737086334324964423281066943206049311198795948202720187595147424950801122380555725062057107470333588309210940810734633947274388189620720645311309313908461735698774404642097845243247296661426396553875838440620047462672916874138435110755595399554394740979687061551317651742842835388478496969927554009271524406488384227871060750178159978570392276223307077211267228014685053439752876486416552728198306669113198496851170242629600605160431197110036618392648775275631457867895837449305328772017418297722581818232542403216099018394560558669685602260603238911074847153330104997118966212221388817803472807097748878068863451054085005711430146000053068075750862909962457935412520370302694163957864473299338537185894895299583834346622074201970252395874341201940394083810682588908122452237474787900955659000282513329430086422830640732271555903212293371977271949414380667395057644126653799462747471862726572343573703726676554638418599858750537911932042602284700080229426287696953470361533365847911483281159860947759734923470943877333511329733380540722488361869709789620405353167777509711442245165281178232804501962815557962826561526266158323321991995035229557129700562950862816820891896766204575198222523040515766033098502876727084758448752857921983304270989284513880257836401905524097058115605471159968981129880067128293067172202619991314181083795562356369088322196177526697103510429562461353808254714217984044639934457327347416944702922300524989872260645506368275236188918491744930540315077127294076031543458139878167585087077580154913277721720549174472553210278184324136796404178279850150544305167783058223895042970968202573303442710373703447035158286592580937922425031113500419947240775799164142252165882924076127782534806452107145930944003190143677287284296719500708619794608090480056176207053695202173730689934345782525852403901336569468523777013755031193016936829535577306848027964827513766886506290206686475482962279972736686080593759273199045356031622894437975073999242726672887718801174593826281995396000163015589253859603480951680488715127126561056786083277995816257903750108496858475861520898790220492403956616604555216479049024291464962212192291078476347192212432763449548635276610339486715279114139921786328168114806908690978066455772705135914111588684146920454006796559315786852994225620806008691458735960591220462634835415961370202935150886252949854226250142524466319385352216559825894201685664728224619604224690893682098010053632418362976946023474889709851774492771433622933482425272275069124658506624105585747956157902239603839616218586977502734882425833400037527424886920510511856097792307914284460507144646767540176714835451187272433662428706279509370867249415738395664252635011751823323456728664679011814643380785282019952348313770172811887956077306518225009097933564760958109895997343500446990516225097767285059750121582047894866685285272824995343673068871128604556629135459591136203893563779915035071506184332675774425428343740247874225562305001857370904296759062971169776258105931275157270026050088408938599466497237546293313419434743112791644362720073445248023624246403264685411928446964274343893226431504228123362398494030823127844709753905691077496979891889326125612990290324788723283692940347787140145753211579332012427963038181544084699562924354793762412965075638662290380398202136130118836687240841111062471327572717532492054586797789815785615540243655892501801219863282395040638420127580586033386127724811881303454209180414885177094458906005627925285143828587032104136223480266060878493388375815386389833935727214239060779497402719768791475956347861476963906169738666424343509720345565696380910502324154375738057576067857491447380265617295579860901445894575988712088189602069017067596485011933242384159318790513254173690452054668537748168952738053755313753718743413492884628791069080948041392353009799953823086381645343093392049909122576431591244683914533400927852524007035522281105387480256237000600023148328394073832423305731482468644351955880099270977491657838698675936519155288847778267155155734968602740844985781234994873090125291254935407318294445565433750387084546869293211479728073677093663327371505809497654866845964847952607780243022940649570289787031277062073826239318687383250827622954705862081154631755150231726364651517164310335456402870871797709274314456333861597140119011886792700611375406988163804011073202786079172078242809028462948638607715009723883227528567794014712836364991110021737152409703878985302500494510650864052143521403301149511568776228211355408863205995105331106919572417066800799383012989659252931010700849555519199943213524384096719979414825476879337573190894965170258419655059878392742511005649573013622024357971639327441341891509515887418982203517471365867260433299267826148106817918162444347582672897055028741037288262973118546896711617867853948288271053180046150720435219132419607090533486982357916825210209808150570232665239774578089205577450792655157148915657327741976266510236327944853195201334191763047683574674056235704036054551140620836539438760391627841235351336003964535912453423213090008725844554792492383340753614795899438220353397218972035560247048583176416173031376640869765575262462841866850389840061858476261073028440354342056461573887119623993925039462032719340542984515680492357544959193559653761471592262689272272373232149024389810605618033064529552366890221869321236103963952699449175587089965697068524625563775218311202557866500739678419439696089318737324404740036693294027058158013445396212920167375701737049581872053560419400714739110766876889599871462315543421211595904501968002632319389376304066849156385666409606110828847833787594200140481105383595390192634017414923935720709062334969393962997408302127674411763622978222123450555965963966452104769761687317828088207222920232513987687755812773763135661829857868125453358618226544529156447546695218953986531117425709018615724778452390327056921988556087039015069382367329786184254952316119271213750908713404011074779895963773734932162199998234724194153055898024740087382934396599130724274734565444863181110521296341072909413346678643736498491504774141086175643694033958065388611816359896478592569718159705470982078991937243647236585307509307571328146993587119188413832197990596980436162724132562778855819500603054300183743813941317031745680288869871858627343393930887968248199523192537343153637348890501054887726871065648182353219074952266435324853440450903931403394017269284112874304043900212242192257249847493307438642290703747414932793652349511887435618293848119430129749698707272898942788039089327447943163769377924799615206659543642514142069438487972511146122505722437279419164095485466907742934114921187356443370893382550045665474363943013754972484049208523762932967970725010914638058021461070127940686315551905480858322908316098420708430705784029741649320061056198862686777703969660209500262457225535341376926668598597505349838631700008114663488679608237176356793233419279359322341926825632871273933450220902536744467455187459128666296532193991681434009132253783264037225476329232080364813308538863846570148082449465483416453802813597946785235495497259034944866503338593820617790746954068259684172532143075452926835952482827821992677401420761340401854991238656706554272311664147358280595887113459608910906522910379676713518981050162703354770867869993002462056139182159823918868185311684799571051782779183956708875769800552039237580201603352150700298013709625910017380316764758870932459479559229916536112679939474107465506376123908774707060927414451217142401326005110850425080784201384538160222077248648507149604822550624671184075920257258840983088117024700705182931975084865108804094332053600343855517308410068600776710113396048398512642810499536600751090788080564007387416863643531826528403311809521749765434281791512416101873877594974343294365130079841094969092454378475601144066833876214823299978805719628610489077199662646906968246662009648445920521169813407195261972876125684118824983301438983677680036611372512115719027668116705077962061039545505221576801849435880114358698177941470838956269396615953069237444980553777045260628028262222571150493146555968011422690933185184879599276395654240375488705413693977247563286246088500648370346960584830043877460296353218465536291727293838044718976981497425581003427951460948721231331019710462642751341559233394271544873053972882929083208989121374979820782264384180182682632099801597583417470089809845123898841840282055566044575443420766812509405384452280940357660815285986318981892536498403912881750817552565084835092788798487874212587646049147427399618220505516921841371099627010084076540816267171239937540891976123813182797496989731839015388611886905662884935794728278204827995553749945669588330372314406604064218117129442904505062341148777452549511962667536849994442405497526674575136932566233956638006395445160854183826613464379356423977396749108684736483115385885231210088281153017191292428469286550528972862852202359077643505792503652195574771576910912646862890392678021566969051193255690762360938117037529864851470525950783968331742271909801871799695376738783134054010138835721953836233810620508637781204423501829586444898206035218918372177301993824433295961932649648663047270780002038160909493694701493320979753415727861797998804381316917683394892579514477605550294620207278268272162647109419125665968099791507099940912877189029055217569202265362217806869374329255383507994090083821484672226710571682350912467096548406002133463177016895246880865072023062510902520986819960182029121918506868472264250752500429484514436583501166726233290887754931278447108136285963467271439263574472487017793489693384843665262378200994865748355733208314019928002951529265302080661272959130514252490462852150141208735432178947013061161239942517247321105819016907839930179490687172136022367329932706800001534589890815364077975182976708793386662086976064494147567730165379205242013747992799717606430386563370451921073275200729690449190286236204191186637867620984953588391618410157171170492435124036363051698605045361440787487731509625181029170940162422309417254222973392747473276911415161918952760444069994031276122128973803924819944689864857694899040904898711417310332268212335688892187831030236542777024529288863453792923683328450107153380517093611418561622849514323785902632130010752094244561786435292865888953323647948085589718608483716535149704753204005463780805293236278658383823932458550180975853914516831514805060053386841470232743420422708425767274984590164288185414351264014704904308032487642558886080721211491586287026621956065610753070126181943235573859216114362792364113212058868272935361664758443826802874897405489395778942654187603817838622805818523425326567436716125008041240941986100437544938738355537910589434477131504704467917716142942778646110748856388352185036709108628674784855176596386719325353659704933045025453757308882528958103414992122266070277784785850139067552619082463227908155613147603716814919125072764697363162374637815313996880574827956466132264163081561383506878533754247138648753504863375654865874832617210209714606809914307414332465462400091783833779918453779280531034280990041347970210505154762159322538546186878679320164823124945513118496373469862848181428635642301044539050439382886362064072837078693233927830463585567116344550858431998297923851729464776434154785019323545107315647637760535089427786077880701159155508202779485330807551006693432906852542727323579806023302675518635500064125968204486163090248957078004759093615326023398580264477698974852117886713309285220681823595620519960417190881908003332053160022411611674852113613466121489205216899783416048643878625969661318241991005621290070978071781949877488255739145225209584198651337432821001494478989530719386690727159654426122850384661806877776420858334215040799814573286296504392820325037724424736554027514859334205901161311085489365714030192915848669634124649391714684393990717853030240495209601333670878258631712677687007476065422598503107184901951636163124919098165861704087690595614611480424643287917302922855991601317760775904358503882051343820200791406141063990312063663326919467760159596877470379914725268727301601111708951002762075121349144415619013100265092961429622950758512062965074534704829849616874550317893769626291430432260083885900938242799218700627557345245944928302053024143137132733762013530164359214309860789792450150413067687986797005175442034868309767876500351043376401970427373624247533463423726024974918092428965111880133766960875775771406275063517262457026903262597668791101050141674842643054436794763795730101854324916719291535012689420729873214151084566943039050033992917236420614770582413986438654340754139637207735888716710535382656015299678343749091005697525540575296726979434346681996981874540660164833711469166477246408394589942671659587784795699290818138528290546756700259180256691591796031765434631161058215300248902550052528294637313472290044785997739061848327414772915246986960304971173485466716365898176721524028802750737860054493675022839878625270947687801315988767802611838920355215657470224986041227084854906477280953411334558085900185004535701866776720515455753120625317063672112314744097826599475415343633949642977342902425971736744125851405500921724710250336226540574841048934490642298244377875837113390953592872844203134892334208710640081184836339160991109896169685553511687049908066797081548580992053383994791609216157485468055991520494013675550951969943644074160113254208654195032798172140322535615776992780069479503134976645023729092653301305595351839219647355577520129287280031815284715529563295988152109643419239223348086780389093893458694565898332754330057460275221683879217203278185921834906168132213558567307023454925756390157447414705351184268979897229814845319734876599521189698984668870258304329473509799318780688480747935347061025177699057719070604092190778507914064223097730929249134616640450431315879766366728588549291789532504502255010735464562147594215053460206287198277510534655893864647093901657162528808013424134709547501073070168959274663628803354210194667447952229834379274154634985413695531530447311866589882831712335453057359872488923622386387698759304962666926444854148098161598285199918849154593762300273388974185227310043014584148852106734708678083844437087598465920902064557039688925876912851706162982285464069579249926702513130708130731292165164295191795139269241234543362454112744946711622559761246266337250486956253131985441708459858969439074769696454694711065336764204417807228296615299067802075474861808396001506971935569525883286490784769596458320779309733894642455672697972867479969055414501308182579209249141205699679161783205213842798858276111395077187834192732307438842351586841595045925153562859875643426042355521509185965478439702788554678512426259087322687961486031449274300583870852216095530033953845862768667001442732736882394879479293842334400084791419681965189069427150876340444313690386661072662587000761992213691911725395757351716901524854212079069511975531749672657752940790824012192101150138778294897719119595341411184156827286120409935353571900191194758280526068355257471204444218274870341863122212410363021162511664158353054002692655307713715306683943408703330063004062480709587295208103352612494369133496807684634345455393940467823838499095737217224048035030271938566601552105067002606675183074995336953411502594325788724318999410145717461581460286183625295562811139821570203720977749464107645643907714314467658896235168015555605369163159269969738526692130495762552115035612840315868762740276307174806974254583001614790264001357125905152190120167069203675222657715357997423536172685993589941758285685161862516258281812224717209968802660341162994773127282292899272627189722514447628459576931654937688538230077998375925211580114236989443738529587617620584029471172981404994823085094210105728356295147116556028968639822372279585976080634133218415836474330011716032050660239764887895217090958575608340486727452518061355557350467241385527772067658704228651632806972302392703640987099180174588710179607324382122282278806109226837879051796696571389027422719394674965400221652568808612638784172533966687731646603739041672423272804161207109507036841237233836600930976321731627171210968126373540948794474812206976178622647223044285448681781078634433848725442794050902192667074430859339631021062102565052412755977643512839347879245206681577167627918623741394886724849959345242123699688820243202164768982489551839710330308518855305446582209184994689821915205804073358864293933915518032181416455247350823732121068226539064202819216014775772248166186212556146264994378461159372394641544570151543517117131586845648750211571470924544557415092010867629178545264200725520054511527384464444973423516371288802890560748765015613181120160806266992234874194919938943995696913909844672644919666299173376345178433388645238560753162634588902619749192882571652122946290437967301908150934134346837014822397956781468486558574754612664741334642061824244541943825526965472535926600053510019178092137951700365163620568257860021647878144647860898951987998167770076334138192697894199343441031742222889943665748197756178461943330326272350043442386607312922441534459601090962271856908909112097865110172582830968649443083752208930816503365248978279215774118321192298955914629077881827004431663227636903759943538393989288248436490890797183880479558177204363289529058750730168404103380543465799100328688846830982924435003748050724616494687673197257097765418745743064622824274747259987297012732755083250456537404794540910865716264292310376346334368551344369331054118261929084919374212788051379393938648185206418277871017704371190576332568688641538647256901683405255608868867866533472133294335615029971854641304510733232717963576811425878326991306644295839977318797424521093998996430510372313021525469202473923341378048879127767840172248875177111669056944292409234295887052942950265285451769853545444778492542142644182456755276216647844478837150938923589106975298215853740474282309656307966215814738689984446175518349414918794613000379412164936408600356132247160449549391649285213567648795231221890175100744023464222629551099685229348528550788560439039544008880593771920870373466843802266234539164059039039806845891367476604332570613058732338332660198146521551968545024582507706334185902593790978741709328812044271736700091450816982262070122707431836539176887552519521458324615245748147512745082049547630843428760499199152816747606176467460683874058937200557223820015705077791122062133421469051309467338987801063956502470416159911768447039508782895396679347275440676175214386982283039253824260896197489134865083062747644685324709611476988568385824243583725256155246032417280406328085514701331758925655143415828155222251391578417323638515343392276779901784495562182906782958534049232664581086903723597270308726621341993802375915639123412195620835259653917705991803483624790731378113547028267842554274106382377957461240070225183912762926513068473294101033749799125726538332849224505929311619419262233289464605515428398304869655203587752750723161010064867743938675055561295673530048058228531634655374042388260181125733821618937634060089753381032597004193131599653587163981032791104775331772398359640803748207981190314183127741456372501215989473032283258140831262284106632851552848939180451510098457444408290178363870499858497366739777953538857926372690487199790349219218910020952253608023289236292999639867651730643510515234909861926936831273751181338637627164157473554890405037119918898976457217008729777831999749825780469749696708693095429115635480749235597561376348384583428788899184215824396538105332930629105222840324515246068224991241266784452734433703806908572081781167711004811434206356094483781336549855992944289023747829020149562086933574062587113498838402151119167270435798943788965765852922656070687254022899002867356072071268411615870237057661821177186306116962415722187427531335100118737388403678947590737402760635842234577466067232726799110526199788055798544490653770986328215076676635752458844955181840945737725042953133282176849375567271613893441161073308345594674233809481385007982973144385435637653763960135328731320414635436989306832807027440010887295854261377648641731249547285055613868689958353205417234073101667740347598309303313989805279594817168577675953452407799328320437678921013898211188991096768376157575682358746176211162646339499085583832141734489428507195136811062227311176130579460570554776249214840194552044850511678423239920057817567945107256500384702240673244904508387383071151992578568638965096931017578793191274985390903573187197690040176457507558205791171283290966769431709288422525913324525905289169867723637659014361575237178112370210048746650704786446532795385124108528723186010901275984125956675008748477907985331993726827463469321334478920065445463479088574307106687269062185520443564017783390800903324446728828517568428813806035012884228686879329545110801699751572618826555076167037313924958075772022726212437710101222675083170615529082143491896200755644164253498412722409485136132871282805949558691996108049186084102413620479078176502697908419309476545937281619256887884384501192169315063520528822070949897697066173505401079162648670017975551260774030883168210176063772423232138138079029918746690209364934852112183860438051176781805525658731837834189689978321223433544275708412623709279199775639679292999636894382817487567201639596176752704208471359248267763848908396347429494596105479181778807315709418066124303483848189069211431097003592523933229937930426907604987617938217387541114094535298282510298725436041551063248302969240974897176999968085938930123738556683106166176105085489442614582847011524057093489898387049111663283255354890765485843340989403128061804784170902031391613233042109668062695278351842225904798788945214509012213920418884620270851405974451495198871474924519495126541531107423215238605131333624350149201842101951681626405702354077509077239592318312695815970909389982763519173435234490837604235106393864179467602164323325834761749273149379976742064067896843484829708416840407908753814538996628526255290343445959091511819278025901249801609570254420074529007091425564604536068163798877353893785783584461790494765300315243551621518415061777832426816934915619965842589558009959823948624639269765622879507440082929934582996498658777949109576404879873538017015790073880108804808143921256587564077405501748602908816558190436866972057039674193976587221851808307296527405792214236722309531092950871007133981381576617694390141759804463347060510821113071257229854612905225520961271734149500922667463023858784370875289080035144553216711373148002905908476258393039306605129607825694293085339984567074248823133116516019231183893335670652129520392332024917669011904864460426538411948810805380271134579348185352776503763807329850132956428746574719686474354425152191065344513311578929603218383029013604510857189005298629626676611683117253794499390279909220566965554730335978914089528311666694921408708585931868365503890029278551120474972631232321042583186315945908819578440381598446666511812582471898293883565137827473495167737772425467975195189206660419314664208210604418378224656272462356535852653919000526455186326191961239958191949687844740212767937747849924700428935306300504455747210678885866307486494077217275609569014552691903521920891036033542378529853275547807909046381545516751019516359593093506381842437448379502482351649301448943184323117848715758696058556971729201835385851127584118908016433759773838030479280162947450043230610961901099337963078710156603724129312704155684990433566731741106276776802043210803260258289540330174152477258850157669380453964830590811310621915452140617091188828684033957883130981081353241265978017364403181180676536724225931338715682790483417568128085852826692848306521253221418746376058731834370654371773646064146593100151467546134857427119039762831065714269613167364886821421851357828805944230866273232659121589964922075125733454284921145895901752569204132728966948821311082561072467732217142579073122490072063680960606132206692186663506597668090549937234238485786925682703784254786487991654360650626116348234654690880318236439947259847944262414723978699993977019973548413022803801118009706569752833413091490271788103456230022504740028386839961598284093337955244222657207632686899309958769982604741309530428941926245798741712447981748109446728709693926319748596600371040368762009818372719913402173751070495492688942758576763802674890148671443596651446543832054283144074009535139921374396861869352489611166130713194625167041406943948887814220714499010502392408641074996561013381966996625223815597401466864851445877680314769916609699046012711680786637285760745952363486435916112519049609733971461565020865905707087880847037772048349144013268909448876214397944371450885148415932105585812553898926967328588378758248241531514593615644210924946051250848868432245796348788718193396270989859678479160003942407606944856006583314950609499355482583132191801259186347220995779150475047069602428747398331329845986620161981270757051366494332179005965971116437415255027291779083440301605598043974567202150769232474708044572506203485591547895048354177163248648887856002196410198521897505486031745478070361214921915547295535995127563949104206018379215849252925283615115984490299442989327397144437841120905659366231596467561819348779985829600678115096577624629435552108551771313257675828320516710998368953916584175273936832157675570487680023733209462167745921975627212663317107813265990156395312981213084962066179921864220135234561352245663858018376744705075716372112867385668562914337769285016602528850457578243791125207752487239173060140651307569252983607867422912055002356193997631558058573080900261565920472685854885986164010893813385819102259538075936609958260755613114316894500078872848365974309642883141346564405651415450850860975359787067651227309081067420324313959994465335851586949118394536778866750551611035881487451788911273947001842609451581017228124834109094406006387705315790675870367909513597836204621630135563348507042808727255668343222270934048225566033885153988532356678908897185028541020285243748402417865414645341099929228157085903207558788573815517927458134819041565276591224788177544915809028084052366636273292744462587722716413853688419238539577295907547255241098226277582141683819894372078258450148177578340805222777061363359849363496858627496232435515471097211493721263298465547890832356978145044819841120792028105446879748372742131094154115260424345953995247796256676108963295389464606157369901281271824362546051493323091688984380397005551880142468448299437312900951196799322929774620529336186394872692089474720448749520250825044249411897002425410117467019560067914539581233932102137926530041538430534426354467096200469142388071730692857276502663313681108748830721625425138583132764376098666244064690776173669327807695831195737797682218741314337964370055268418022702091030637908892857671962029154754340073369686071335986606774752500335187100954122795665250150508511849289389378931430027515970285942060413903908215219363746313430624871571175829077862470250497521504359215668268892018311392508388874411490664507969046596395551395859021160032540008308181287700696328390353457126733799145113292977957516120876894479755421454891618936701636700214692262075770356809295967088998089434500460578463054582619458421835788894087075381962482434176965355544893330337423658026941061882263021976298942635176932548344293571072785277322733679504482779942823127797822444089316293100313999974326116069418743018220462053060153600865776741384797620410971488983306861784960406595802431435815027171001686880220224403538360736481676024426410679548239995608687136889819374311257210539766817911667885621765380634375058323720498742479609082878137065756289685370007001411833028317330112371550895480907828135818795175054182755886852453218912402709863042921308690381271195032951400057975724676227644570459633814153440352566628086887262428921052248988818617278567732917840087416252058389314462348129334930701822359291026080996338232490053802938367759595241277186335691227495668136019480792251412544118399631723112290736290499881703985837729664745018956627380472791059351515689161366349175898229135004398285493613003784446588636285591968992854403253298955278228031252162276764433557374852437050805248909171456156050836985709621590453890474723546755668964687362735162179456751684300336682982286377633386050728614882100990257112154864875553005035169023079946500406711515187912345235540654943346546154972283649890678335116124078386402407533950394526136001149602607452580304642946557787534232883678305578989970539551585109010873284394309161021124916977292654419086257159317453659164282713976647175722014561261885555023776046344505764677993329691960822711721171666780106556024122873660204716160444831052758619892501764278688493324227748071236042650181609018073100360388573236572962925830797234177396969837577227112171336267013711202387582417895757456728405511003824794192229578836068875197298923898951489842049474608524728867175044596787921372840064970674959728287649468804870015789838152921818761188555206406562814637846531786538602044263211732616982063984090519665044504391699303776515540711722529051073354696692190610810765650895667514038167843197874892826932083391282665271518111003186729945922533395541016518823805097963786543573654166687504734233430794068743841739041773428250061493666856071217585325611497691491099569748589091273880874109157241145868920322275880969306676737822772359224412877016871720413620420764323305981834823369053999162338343596771746039850729753260042740411234397439747871151542872130613974387652422284034225323657279977766146496790466526585643315620623761033650340077950267824051504763911950520181844171327531564088244150344604655714256627750945483500552381594772156672692931567079223070169633633035960213756429567577643050455756751553421170056008956552691005546644328657668413094756967365632524845093494495332193460945535783021828348697824034410594418666669004896396613818254271825404987104203366664870915863039520016431956552984695615138241819945340790036689280007427228406097751162327636196181768013509983913403880000618638219404713591507664877126534416219914605365788000323357644266619143478343738986754148551338425428941263422895281373159752437831418375243053076484250204263929802598163319958776470695693446722074287404059365821309688102482582189625861556703045836652379368347290123503085595790751827777275832520600954477082114220612209221146342231057288748340085036706157427080991743263258230549741242709589350991152898516189020727579825328529219092046857594127196716035291393570716229561447647584751406841533693053688295132532341891101880939970570260174887239637004232623133909080977679744756759765812949973953327856916448352094527009279421527407274887454028705396842244806024258556231496643999950441945901308504602073054469709641860655366537321849568806117241923434736963777153665434678352319524892528246187780588142470275714675523654702978799138204088400618607248941099126764974301853856917973626585295274911638306090070186285120719325153240339137408625182397726704503154354223343984334907877020577059536483308642736150097119861234619490408864122332915358261795138239430000906596060573136539705956150552865025076614539350571121759342562857391906408040970267435483143067462964663331235598422933471820504409735542615098466398051123430344003984757782902758781404300058817407331448129777574588428264420023206363187310098433964024372668081528922381090511985799070254022099877611909701148294329140463268319115139075798342347114664829362345877237345040789786535629449669588272445096026881300343112255115716488179870411758090205129091154496213592238464438690459819720333043054325818636659776928440246006295556672260898294070493836673580244511974075226504177177910634773685183575979219559674240856831172999602055872636770703181679101057963427516470927752008352537607282065949244496862656518773271893734197093932916665463779632388584267116967137073401162608292035623942804797244037721221139292129269534548585007440127768669566960115188502033355539298303542615110349428030767766360070744392070876634905008368569546474579873931496648228783395692907848734455203348171216179483292421127840303642960364890875143265805133654515177892435949735476283595277639729240984748999024243209381846237650513772681639643570513354918863812584626703558531576053791520112047778516035699864609938148955013574795909077297702544121559051645982563655495612314794999041760129328267639321724340531399959269308078354782039796817708313442509986495053948759154999119688423028840782930477810368024680617056233920479496551609943001302224169975822846732185518596668429743321769435478082006572660008319586380198992477900728532893259110334112014022566032772205555599682136871752452836124572929033931145270035454064540239009310638449876831275879219492187502779267429785405907145462270685634828649922324604967695913916829109035659822065430221319943820157529835988308881382309875847947887597669658731648796390427683033505397403568448348761222064827411627318754298963276788401663004688126271690660737707714076154473749172048038976639749024126509440935933159449797735147155321238454643852125874528200471337600629971996590164732061169736760368130225231484165916167380389300845765799996319827943230659134408831145915830542515016880595820458682841195565524865521538941512685877855037073894814039380805378821053441577547216099181754632422024056794002598886763487931466895472893671078337317826152279673133089798185139986786637155683580267104569911465205648434574444362395550212360219912010686769514709640210159637523431225683747134040284858319477081001107252417472683628131448734672816845014846446373330528120210047250215892820052943770899280089508398923096064673463519330750591837608467604457131908944636911772651282378543804786151246231662610873026107469828152487538325809433057576059879806601332276689178234326420593758124568649084170327872066722345336918671117472813319339852570989109329734144512253009770339340974993607207147780609517734754033294038095266592285183847917007085137773495435412168895317292638503553377481191086915888665046276523215799678938711385893579128865995362636588615099087616237640452674820859795769775430752043248345848969685632154612042792229916068086420182016484613656267740622361615745114462294080366344150377753724556024233512702616287082762531282949281386044520470268769072614964860203200594463028595600903541658822016299430517597982173393348452882118053073915671665917206374091358854280877103210497966947936379543099677062538900140057989913425940401315525630341057076421643719978361404177285921076730256238419274960924680096855523676513687320054503243842213565288730054708992909298217406238822402583698025990993849012408930308966438477578218983616380672726749493089443093157316488998951086420589613213447227038774115649038982482773819685623294017092983110496502407627252009752730510215931256573511844304512115320740681150233795013506879627014729458138316778046216872396605656611344095532927438090320723700689462998502506561485536149253158159743805854210987300180676675581591818992125687214047494408497991833010680343129436864840677956004017200438565602776138128217748397414950950096470891281434040079946365821022996165213826702557907533675368121947768646772305093791646836374595597214355030846522112119372050723576025789965350871338802258998208809009965424233440674639477927928148715909016542707848502398076736831108283821877898165834630211909531093684139994457450986202548118995302442539987708638580139479269747436219991900174590258205302407310990075541122127234417394186167121625629336343278615541395021775539319255032565081191080854893490636719937642913023379679597411970241700614402082759065427514400864103400906679408541570673908024738698521713240286394807759342764210345859161181726944846065663280557644550800355011436493263015310274265307929291704960414797995804718877979320972706986656303843025856310990393463274545658882705369309212048579483722034241297939840312617727140865497179393399982694203449481148818966895188262311809695153900448920833353498947391607030684326649848481578693215994267629438887891688790401869293052644750991847485067228929941106257084447360562914128295543159117986683501263125252870804305531809779104158193035187830037785243311059377113822666514010223654123451300069397474283257923531787576258031155716734704907640764462712146953077284515236081031877551070976358007055476514025944313101289844339274400525603640492817313001717339862838581394605349399017545126400088281507007560776498287773036111996051174649514910204894753526198364514647645627348561677929353840238544468699426474188278797166646424783256719642777189584729947953979990306581139171992309155624665758660561371974950288295323513673375595606064091364095519028347940565992076175951325964508528944623280835660116395321524973889687337144603728757901932933404899785347345292065777612575024580642042842647389769907901059762749490132151061160806677999755262228826603303970941523869064390473852759657949918247751561409456468751524783648048377777183761483347751511083849493533598176707981729377248624644792880226506974595987723219764749663577632708992113394031782346074086587148204352466185281312958740342149129202886456259931847552062198807536841617044697594757770190796668138318626030131753736770520887723459733624792870668668256237615709885512904428192786769985399018521726017179131701084574359419101650538636515354832351483823897908116532320392347513413743168327514110179753881836337778041652649149524681702833293457866700257622959168482002149072261102039177179983453215887850076607842810547442298737193516557389248177782339011103811971196653236935989537877990023880002857745127235755923976502271491245822478915209653367679295574395160904822021460278805473004917385282774717121765787164574604122887212163765080000122423223176738726797053780744391218787704788620971297084058871042802614312980740390661978009994448403732913572982534569522976369145438359986730024315861341321587365286893413252155434125029625543734231475433448814181229439342018329098799289210653878984726913227510675896816199950816496209650973862279564356306536489618846633570108547416092442061534144829764245364716850672613241184207500431440394761163185071706188896042026439381019800763684838927939267077500132849227434593521415891375232207039239110032404131466745780508676939037600066273825874777397316503102975893766284111522366840599959150901313180824613153604916510321310367631464639510043777888047278489134199161624226156904409655590729932953734979570520525206844131571272323631907945690346322384501125505552801105263938266087119118934147156093077750309189733140348403706672984936379826647599245496676391962437100451894317208498008080916773464966091438620641351441350046789625682200749497724577219669213301876630302366473286612488768844076790400758925530677193504093565628748351566204852583116890937954850209390785607465540555893867955962650828933827087068469455472855748446628342148906748468789118012312460930094158612696186943028786949660378256725646809191015385516733273258299648538869698430494724061872779334179047640235341096906214582427782148646914370101006293573479121187280425081401143546656026301204471396751790723177611301183472958619054062062246083755607021499161839369858440078245032191215375718322379903414726107904542640983351246475540348253567392277377105197318810568731399779635815754948999618099738872112703815910300524873111893072388892836281997355806224839887333618180620162557206328755301568096589163230714661059939130089183760819492103782730214795737216508926619392736554013751613560918077641644781239211669138603034680849846653675965909935154386273255339695697401755141151175203864884065002758478197797300793386757554832941742969250865300788979258059078862454005214122473215254281056100214497327591982136358317666688677328493017641545750970292535160301191735771590447187538241424220986709327098928022344676940650321600553553579682064278207829201016964692823240726428670577537692421516708557007484839198711988952306451249816109264268102543126014542190679134686389895719510047797993743997696282852649821898495784499059447768863461082708764962370031216610091888136164344719743330736008843406926763696527192951248257925058433414417378861522289204199935134409499715057616470765124254982756593458945348317932551960177823764244023063049775460923080926598514772873782101707296476022890959921366939912414561558022655485127947687143573845233557727947777592312966994860742784755271081172388507145007214486403928248953719954655473852848672656097683159431024899369603825799884085875139081825648839901897633062253619369922794172044423446643293320456597775795561545240485707010504291894149616713761199331971922515728399522343759045401937669216891410124752433173020622966414563641682287541912507305727544651003963605548669429249471532713830803782222047374131747470000572263239899082305950109219815348379767800598726999965696522068833545969324428688708260599001051038832790718410968416576650254064726784389814173512875628671630038707209448892092437700564883522024860887163945338357671934323826285828030641303963258726231307413475017652969259681507313471576011457616877064112384743122275881250398267099253931876837465214731803644649949405361805909908072745237288126388126593666024519596253135272601890041013246818490380794339663878417094275679501456679610884001921815920279121322003358410716453131828956295859089408312927136873155836634556029972222681278678146333726634331472134547970796571668220458677531093048166817841096908242243634487285972147109528393213738757455572667079806260434107748637744995282067560849899967569114352525157576805973112564079939096113195092709724618042348675182321025378222271782799932234303635151767209928203973149429804281447698598403842037415605213996250972308398792818781004424040649579284614196344116911318972790942110644115430464761988997920469603293675495599767885887353831758009191890799266313129080298495968802951690715035710872109894155760588411938693849629358827905476746867484781296123188489380408601683320948765173077692027590447736003115918865350174192026330297210297541525373730510348494019107161698627612776219140919649036321335043825691673768283903295292044133595237053123423274889112248864066016055985910008041371955095986769412448445503599301084273521782154947976257182901606511802161358642934802626521780239343763512985726465111723127943794456454480001487935852037837546806934972403785162490136245277709690578857628779418735254576723336086859124843813423832131896362249027115007698466023195232631782658725136941394448641906775599373280311184989258483095569456041446976470668571585339244543383751957680596651708849718225305611159205241359246897535479499033200265492412435201549549645697136888398433255847628726543534991149943359548911434626482751927515612242676153882394967023445717898602791884580620006692667854944163597960387691640330482380841594175302683028749354048562075793882002454112193551182921741796342126494818698615075646021866826857226400929096449752411597180973784127990296649487179308369983316721721469010124947763077885632724829573146500203593010368716659716975183352223660445850783719204157412002431021848889186413953852574528207091241472457023663277696012944287282090872231890917781954695810745750971659702754477471054917613120985238858701786375566449630687208961614190874761247463696370145708072070143178105013954234380950886616719304866505276232293270755528164551310601549829704551029430563547955226729818481060414608544533099025995503399919749963293190260208749029037618118782088597149574010065769252818083377740595870746372264215803974012406284028975649799755205746775247433406331853070736928381912841107378639025658082877538988003102843705824304459903773718977998397688264531092382258194587905217854168065167708432546835124821547363130157723930270534092288299851629476278506128308104020784002620701099806483782688525580994756924963886630339679827826461231287217140397149255315477230028978293993992492497522497324302421886247796560982486533944140374100885403992111517060285239234650518682303815724242421089430357302109608459462609800768121169206874003549621913420097417032427904684111907666205127257263551575323433100396952794059941174413156610828481448368252334148781104421985739724632583511312912588530220768075657869835144781305997784437037492077960965687257544581972094999275906005862050507960480347990992934706722595291389810167520877073498469812460789394762126982312712242965679374653422423220499184764989061302375138021570126390236836966414546078488810683055234637091591429564659351972813956490917102108495778362668877948671893525861727386469678206284116029205184470513206199226761726878654890366619706594476097035872956391688012095044117910299017082499392600343309488111836392025993015246304392678624242407672095523081748973467326187954813195494040807345795130301814593002114278745911785971200919256604950958913870033596509146915695761813929262045439157071976288724058036245459283199635164779868496318007047647705118023051286278671145883209542184125077591304132391182695519500951904087221540809674612090807208443278863855317519597183295400478083038273008120777534775463910067503898179876945351218720580836490517896657740720210956451017305574707710922806980326157342021159763882572720614676375697051735974037460650656938535869775367757729747784307272822392197329893907545603704915294565407087972733386387739774030439885484099715656611733047976846601758705477961059907242801505897847717132973609726307830009692084787143034849364723265224325467546504703088354959079274986247383480000102855247723678696620964710605214491458699780046042495911838269317677451140977180077303795084771647145729013952407708322873403905966256847988738255590683493454923644848311572955101788235917948582611192265795155534105499585512839839321720808257776096300824278077175163888798420041100462209152659312245304077733987005878118147168453288043266653356646924847269038320065153760816773089431843427932143693373222195543817325117959473960533740046167081185203631054629005894242523053661542050995511372891427737637624788232848820077274229859681847681980188310431700692084572550506364950283938296885427060475109080777815063517071613550440593570888058742731328055909639542041536807074272069146163211541942617607970043851233516371648187971258433536102563934701877998237974033233060156167934105780942767336154400374855904518683753556629840375464830622260859269360113621334684294415588087812721790977765963595123292533307863891074084501992038748678750839638702824235268446115666728707710806758366334472008291130855895495032399225112091962196132046198214771285740543605836621569167218689309682521770924035725545224698506589871534909681944756993279015755016041328839751287756875676023217050908213435934570560337833174063915033935350912229763144281648114242482814615428913924733681052768789794963113707368018516268506795803221527915033760679963837784910777571717447781197336435835492576827929921499643494067128025775890740571382250731417175324178707909088512948518912329745072619703659975960022731008427443587905421164339032774439303989433871256467856131507990690927727646967464352662498794030514969547528790141018549312650150009131528146483873451716717598411215558960681519216933281725531248523233715988730778918083791212249870651713155434412412890688525793560219054224627380586328093592358737488206965204322396929839268413774289405786299185700064006068731397655949505552391208668989765291473672286098434380276316286516252002488907973254727474625263123435164913811250704726043374580791540488188566399691976378708581195178708004155553545603199659996501540813892627172630658675456446735048175051250956764124109146592969231471501280141731793382805675596908872652084480976131348068541008654018913869836539832069901492174133565750054993916830594291635553935473967306366763798927923643333196210743355165388163229995129217123743319179205992657759955784154883599924351366792196281414371365630356888605052368220187023857948080116240805304035836077202236392590146870309989584020036957728333308882531918903651447650715653425165809699454857243701277359468195578445986807630585103834357016296331898143644347493521295781385771131117693275101409333211881544487576625849997656588941759850513416311221518521818245769217033354506194082255551798555592491282642561619989166261949292599635401923231038441568110201963422895509962793523388382268109769944503563137701053677269107650754110570509518054341460523853586772874807485589709901089873609344180663545905186791515753038038024051454827841934201248539467493533886476792102384120381025171034137859814342215504888011073315619821889579421878405766504881657990207481423343146536384105098159797934965821298723104554173055689761691009637663234206022819232635468030344877196521682025750574806741102899777788326010972522398732730094173001681957599381436915150142347370334390510151866148423867783700192648498590990574705460877858815455027904222503769434823118823567306691345518157616227486355778998290612595270575519846497975191964295116003767107676756042916065606951084848679976588084604228259250561974092117331951442228032322458646349907395661611336374065241738346327701929092564340407809017268678326982972482897171751143747816129031300936667700333860229107505949130391512545800582074220114971882047896199097746617015475282229742948051766718126233364760928039964955855887727804470334690110628875587797502460022181056725005184172461542554442332413373140280920280477358832546502181496515499130980447341451468138894554179792619845918472232262793660453554805266544650527983599735614250963600494062081910835195740317248374264468317850414378286296678317510581987630421392675147973722311080908149783740785447996885779321203091658608628909487083316240734839624433888510251022453538364722225022808260847052368741609780304504761166628759224881056972820713218589054002504512889173361751751881310238206400382354298761407321278513854738681663679644172316127245833499085324752925968309334159187980415560219292074903296699717389864784090521555826050364320021707281093158828178656140403584565194383437392979355372611917228309587371541636671036859281642842712211133886948888512382023310103668159103318003873502109320462636547273266045385731938586187404132982794013590910704241336124839144617699485525268450213475271681213769777909503549168095915055252941086765548009764654053090704724451642392245192521014246927300106693096211792755626295174783736836526979976933646773903196108383284765392791695982317922709867754880819949151859798424200544613255529344235393816648214421570569387422346318883074017600625780681600397748939984051994804421990276472641526645400345090637524490230309809742323119186713235699620095400635901899353505958223439409859868810697890955846752783132680672246527581741107672455763115403589935084103515783909914726187897406047559427783182413133951133217720977754875116539669014125551609519815369791163758623243611170936591680680623280750982786078687659125284215401826710055536428788217517953273175479735573707364914156365340729676769115511945601874362331239805010335681872030765883818892333679658017899553755970473510185576404155747714731555568124038081445679546685240304548764414994819972756183975759035301425372233276331170261777112332264940101167540593494892352391202300310979076745414377406275445393615475390339905396796226205510030034336790860535431177830730321767617502669615224527962513034586914988204767133350879266654660980802440599886455619944831883427013980636918639435828548005182452821873687841969596387094233482004715615604464145468295253640758581637484578407235788680424009838715554185105313832300857536548081638796319176753800793433580457173105540999712504229933131325295764696344821974262211942015467204616926805004369657911399641683111983509253272118100141059407475380543478987486698871914781313040778133231402415561385632059635644030103948352496012534505740438762659838580653065768498322231237939051188436933912328760952268692223691457260482745430750289602570914127110614142677500224612621889698510479782438800022091238048121694224456372705531569627247161340789002754041882819613244415269280923340236168089095340300284073775122591716324388381035550008271484461166577669070207301587516303388233358202468941615341733974414147016241162382971553471320668399983783896607194926871201285581922286526225839897092387183925268468151843719564653375936326979930535611645015993533411952716820153365621829442339634760795102461185916375141333558264309812772633317139528057477535302721423636255891131995676498488550246944981182015387615008638884421073143726245955274334442010811872574833346250602226032571174738698679844310667360782578240186960715585551918429736598372942782773500094726806108654382764212557128043068968652545479579825699020724565414655842521129624706451939681320300526849885959731318869248177658337993311827328511268090669024502425155792472941118085136162977545907563460146010343580487199888019920540385262596467270001670864634197855605891564268205271640308500449382243752485602931966088832543265460455095333654582300327377124484476745686606085036647060862363183884663086484735865501620861821543080268055367024830465171703194488467063083868880537175403874507610408359629425952637095241047671640070055125828844416965389677892193224782437049781354382559744320437337343578777851640892035546446471539346026621194835787454069333277815078433048646779083318797686373411591648591424186258075436336743155589752924643264190800514445930468487943936517174317030752265823420143133251029105864133349831137152820723752073512486601875144063651750873625012604262211441389995603648188773177241830204811367068139239392550716657643544307020810157806775660880977405210894191527014647300284451199961432634659610556473364754530097960263669641332546621775310230262300545630831581389194669832399574193032754423605536939818466087861771993676573008563416894142182420044259195215793276672927465144769048383345015242767155923638709869375407905278102242624409454095239340428933465672777383677718337257788931602844152102047222753431436514549743620757120545105394903026170880148416804805490033672850698281603428475378227787507986123312626888350551914611950648958924036335429152258018543222800222994189451234149540377443914927179855945875380846590416087112735893547553582896163534349153173180264565437667935120826263133594081003442725040396449235478020640746569935936872360011315361225214331625453310593667754020321205048897973532931391576276942922714329352699821300877575749197193452187031445038364895848062253833820759312575412700534709282737601017076761042531363284444739211225584897272950777731723574312592728877443923704124706317680030507592800822507860380349650682537346903733626533200082099466549807820693591699959640568561507262952304472393922642157176795375017301985418281624337302183516438791580086991722449191197106623249065741549214521936872656425538021861411178204697468707458797160298813429096744775442603453594054277318214562213416986973043414736162195841990914703957218111149918815338750515219060110119063568343665235515855626431701075770125905499169962008761132945084160224625775362712368966041284787360507916079049918362921760238622847719761138451122598939210888850746308032721343415816384510295385634436873623135200312563603044344405674543852293077691897848095664218975247085505752894813749974817607783913423830068025059073071051322407017778841145085030365302491254086656712353563740516870155893457870457351947741414952138914711501829857822916746994171373141727374925683703406342067241367023398404750748234241762211527327950458543846673460627977173628909227898317523528678655245289801212259096558086259260161825361452186882571792701960098798231133962289731749683127774289083011058232262425422157580980054397890525419324080065565321100658239350880061630222795075774663790880271048535248356497925080133611854239161925775073450655259198928473437167188210286610369567394421879893188630482252090703124349522472499235414854626326559168282891427666079153140272934519884576423966830916235968474375917000591731362064612954868800017959624035141818041861984238134901923500984821121629600434626991542783654207982143950202060865466821005927839464645634919125857178662684837057942380046885593401347124430541540454553341582569852051911102260874084561504565897166265075842182610759753115488965137043970024166761797640043084946609997053089620847424974248918377842591661259356427953175190840763863294389831970263892614201191019774189627031767011118023380356796241367191706377488788432340759086055644162186747939610524894421544749350000510881442514609783260880449900580852049171181670543875499710744694541695589137325629848775756391775822825626386642253266730689480792800433654624750571267628404807846588462145697619241047387509985912217935139810101621205830818276280409649056460814850953275231046896875163782931043459096164920070610509341336873734836666092370956288643736102835365823364372738128723002435867647285841310057655305136717833419426511900910947875415528018504772803137910824155671027857351049040298834628273622875255096327992061832740297861070502389876227650062568104261979263416193672496565072983182664354332893217091481632572586056977303053830717911271103813553660754453823126482964424361807450989167848140088051049252397001760789028073493750501828135469092960730720182694016272537618785329210071041337544730026186551019505833115031122567375154288325902953026409142623902088031307309981055119072243420576185928710597874550056784405822151460817070118204326207704737646581694843131287342896070280111751158076997026300214641981799246143048271165201673438721138283082961810947107235833585720629157669097929133703264014958708855653224627298351708085940798994196070163662691090894233510497962134984110907226712732629137015766216384243408827827567578321654176508418920869167261173396026624049293478439172412238583987960669515906746112730130088067701678750471848909178505238357406099399864140160312089761544472801354811420515693496691251612409500489992772269645592087630514697652038605670110598184673383554625169660354097293772052480512417780252132992285941556035822860886958019808734246369430584986836099379088144032573257573226125212832615539893995254529974393516886678500117953354394331680466501429378423708280845853384252313538647882675185909847540179124688507758273099022661123209648253329168905390244644822946517471485817130015064986755209842096115880037323630757241944055304580524355747490540007720380105977783309750060784832127921463999391200301704257089545928698908375571933910897044731148049005319406495030035679331087168270932121156149226713773301824890642430885399430238718330475050150340697868665695820927311772138421362309484291098251868672170586291243981777129674654645295639923969910253684767058648980101856240056508262939482764835822956764207906168995350248332643779197761644759305317160782460307694216401034619584699177231130997556807331330616997161457520079292558185598963138351854919105099026785731238681012202953701093258966572741752911579688344635635000994634058673093436697458642818316235133271958546041209165603020866279976485592843638949086165998765357431066056911501748991129403605139135836154470259513356045316457663358721675621535556226821532282816075385985356224938257611862740941365011410158601314892623222422008139488257099327436078079783746665209883692146277219855102616576455044793065768252490158626706748155580176695615541841215490488398187617772979406608392064985221051414169390173838435224223392570195707265767571760028413612609614807739262654864336119984081171095667312098250061956242840738086900060246924315128110842450775573085368386908076861821911507763054673338861668775150981277000529890313712280502088660854689029312215468231128415938537931378866840680355217407084291902244774095471435841411789556965320570263020322849697193321273684662048388598876405542975619276019241658064565707641290387665024000072979571566705416353211855919167965050030032614135149468682888927135599190954512020753537964786307390855352566118525292212282697475793020612656722530120489327266312150482798831016390210244716046008285813521099941968741532551574618107058002033842482883939380492726238025010603175633429259027731598738716616846382002678804700995945486089354664683421698942944913317075668870545143584716414196285093898076175688671153726109632273409822396220728057241860263206293437649689076836818638906305858436607148845798313696402087593900765632914086933201239458148629857911680048605005652141828769453770876647657488335009681705098793090202717536087195647956728957638601050547124086502163624747434937605518791755456552372920013401713233886543364867504313833607617957159149742740546237016041794568944339348619021486545565513453547525877672566408798741111424258438674644642632470719085988695733079732746776187671965228241301270385904262548481115517676985142090728376198107830315264167157030657709564446292940828106712088164962912633443208909740194526848952431859621315348895250089971853667040066485691156477193964547974746498031950332277251166914806962358855870304463571058762996748690931777402293644097402691618860729306988386681363410838507782475142074592508023033586999071405594342803220881214292169015305838389853307151924752440618110146864589639506887888924935085188692646823198222185940060863074788896040401589046148572750143316231184700977786319729119229534601233256982411741842140034300269274741768309390425961429087704456049945841446091702344735756344552480900705241727288782899832489341994232000425422867860079945896914729125020133398551250070361013832856445600943792052020239763114226536658668303857384741201576442558431816444520974407220121127253269262651568974286960514030470687504021406463555363777604820023519016685610008591999082714349486767541683849806995586231787484854113584131066192669337765608312842904199838053972276316528042606503670541501132552853862467111218402909066309120217949735253458033508247288708412707977118569985088944788320236217629404803266896552715593543181083465659503652206937701926056208109948220190793567603595701175622142482923200633342810933920485494906071753583540776763127409543801183043802504471974172217672279573128007232760144069257438530201484472628304604474052178633646428385659495735582986768389384780737493269649734733674568296040462795871862080903905249676075982701883208141387088920126289881189809974206044349795500721600300147324857144939734731959363939971052074627592945448051994983380624539688814524185675649344576437696125251702957360826902353089279912721152002052250246749491012152910192291775763927623200923956426294331878476250743611344227791032943355545877885430724917367883876526727989065544570431519992762733378654649623242033529536096789941419133921005265002727166151181914986804402970019893519479668280102814162336233118348738656653621568562723370034611711733372445717580978188577386148685713370938238210734381141536963566987582286031097755397358735558729463839124474303602805391326020597244722185486502113400949438239769268081161349486265436573291324173317230295639544177694410739194879837101917608506457023710677311274473473323908029573598004070179441817317813594816725786375306577168003937922430105720668569740045612805191790537689013333815923247513392970456149991336288588856894202808928754631381720211951289574683138277706478231388017570307914179230913754141965980154798148765752711165883617125339111129210110755325734019616327673080653606570355976521116237861517430747386385633383998350224380948077248483498840042827833333382379923964470037069275918170288472844436239881881035948619147286406133426659868433129684182958174969902080768452088493014600388346138846005897753538469666055881511179594100989416636770218938126135893846631283112797055124288481886918336008320509305821512144512715387196544020928340939121731517502022895867008062328486469287249633100604920857739678997769714195196417230940128844936397932995016542077249443666654211282048629396599312909585504445076758630154472196106105388267099635520872898411719682390622940582562339449958454299318715942882540667663433134225223645179768822855655350550306103912577110209250130272680112188694295164279330539181127286406597410902125250871087231287071965828276756839738433119008153301093637529207793354051056138767868864449898485425140040838756127956202371939388178012159557500255988603551427756821306129308532847476730539293184097083308627270416053634602744497935313014278888720800014212682772233596438361851298410931736540572634765725753437988218381265980570474459219364624179221938887451556035637128837059365821301963249511249351622493849503418595529601507632690405896669223853573080200656819797687134268085390736550312623321900952242311237982984755153370394557298839460755189742018979258882932137235751334443954938386967358224359302738229860622336364999771591559784875977810744546523461989390324274026855243046186450817734909128608465492314113465524991385410474679746027055188094047255692235213907241967517223843410444037868638415006081815606891055159458635604470782176592558665543984746597400624268358432063081012645507707754622598477373258963820836917579302862284937432468470432933907744457045689255666636932055238487104405383181656148939266374717713939563922933151484285968233405624347021718132338449559410564159676013002548510622799028037562413764416453183303613267152755150078963983057199330455909285815741459761836313916535494579437438388009731241934157814958168667304341082262992844517672137725211408026876674668995090326814571968588990919826043797388651202395564373449902331085672860815060938665974814388888548925904688988518916807017431023902979741877438257225545838298338628346424108284471298557580255912872786936239329834760151729381636394902941229956601498931311482508782880697010621672902760878228082327041131611877451178886587051978606484610858052030168076677064042964442390081617723406005630905451068384302196472140582498583067939666904871092933003395149658105530305652399802472149409890732597797336707726723462570219647248267941307559516078633451097469885447282826540450120621847071433824467250332631398724553912042169732397935003907294916857019241026492046875119884318169855192807706160899628390797312606537020200819109665778140915182061239308214379557488447150568008754977931337373701323910594074179676126562009658751205709332286720419458868321369095490942748432274450664012894991016636580298619314656616530269440605912774998636878094599934613084577573393730087987151002477206180014235514590250988485159175812426599157150748610988499002362585250810369640866746635872333026428141629634726794058931593257380955825858335590689595966736178333575658213029782339371002061695066345676218003080331995480741489407811038749412551811691237037140521917302923428663403664342680989162570253727180234960455926472125643967274933444997483015915911346739056823795766798512885333812265897682838319203973996362766876333629837570554701937031526204736239963124309062886816959386818672923295280486075964523219591106654837462918050330433484590161584321930502177481839121144983116634040627032593999182850499244035318017024815439461079281805918982943858689120556396388650755892491440095493998484354633793859180203008588188339932900102555699824033779463723815090527620886689333765030599893249976359083157487237083650570913380572488820448174476911729451999088348151635854692302397377918384111869077611840085583931534164023034494714290589454769944697356249599573087971574688363972150126823555493315158884426993380105458144826415812253014047686585261270602112152644831357849723610154693575534617747404004505947992900557241818886498649342908078821640709096784267060579662962347506725811582642855456142691398599682010338912932758844174038788293276917418501733718833751849226090137278285207421604847518812324093054348569973709586868588550882691982680822548314161056421546786187124540613535004027548165328733070001106375717779120263612160221037753560938773961272373524358466865273425363061881566303380117955864044078354345462149876098321995269113407510311088297275661119391159991313530792609793744326455744129676583455665445702286992021616637981647828257402198953948348750937285353507368206517392225130198406797255282823162650549809647752976561592139239192806046857279416433152430288144998440655732031992816365694153283146326510734298431368647685058747845456309396179683841200804661826221596575380556501982512275654027997469719969025502152637115299114279810744891309461399284769717966266659456357027102829185930524112586420918516429546596949876844506816824063252999310574920911884526283397193120640799368827120548647495644711337276069336094181239640614770623342019724689394908513191712531495961627867229265632550458046669875114986733469581000334033511309390991177310932802636054658311083475731956411333512363035803764461471545727861723892698732867181369715917220342829680524796705855805476073758003022422888838751528142399807969393383452500963260066834003068548300372597254744195293502923855527441271343569302664745738053175433078156713428313677020425985521896624042133410778701931105080624044631490300107549244300089769793739449905288668752032376068877811000346371884696914228472574034603654898352334282312623484866571077225076832259554073810060444822744488910155934525144092456888813383147739826572223430484792901058055450427921903375494734167442840824476450223256253540167797916486644714475437136852543518555852796728892915664356228396110354579854429077158790597233942348356922335603578739015276097212096363050600499302223074998215363501953695202046171939062223403700555888126613925357409907179992791036752295601684115753307195868355700680689086164560886200561215151459245916809727114790207407870165113571574637329232013201757620863779387620064049475340797306447980101597221313952275316679679293494977182229808908028262879984970049834766102874037335872095557651355985236465961561558247012226930285505836585701804373839489646253284831881510429224095020377315696318237628799995839167003850719444838113979491860720557060638386242233960055450396552110620275622836552750422197803563876863905557894750605613063124798365799943758272493449245332687343286010665789035369799657716481315572120103211672102372095537966513947521465934727271623929226886749609536689796368513095344345542901311210353125857886265792364121835853715723373352418400589587233396027815436093708758613623623936326903882251850322039708760255658805255874908623630448491365012571417219928999198033013757094048673679613700230302499026508105961788976383082670925074325368639291956089575695025788823582467569214618178478351695794623637344815656721319387311663587206924511020370554309786703685227878293027945116698065953638372315935864044874302080072044548397984318820849832749909195973090742079812611063828862162539849230082781775853530417455285993318166006313730776925673469072713405170179695848095104975239870215387445119986567170826336209045315922629810674627252928781449310917342470764572357964154916242162126134420122854788037926853827179052152072870721955688851410081200046058761640366874820627910917933259092777706528042223525410233866981552604523188429004540477900627286472802861577076016510208558467729453260037253547946216596777126723449611374321059166278787527148285013843037926537262759931267042201800776920865950067546377057186965127568428167103508105838128135036269571055867250270991365817228572478366108555636052535541740683006968591550156441059268242944829937329255737758377931962837582986417546405539751738077512945013870791252691284424862231174698409074743908389809092770852646059555210608151591588022534053042576252992817391194722589841774041318883189926057728651141934122640952576462245050470330618636446282579050451210534767398746373395286435909589237421939881136163824835558973635717611673419178177494383983162160004548941187888484789258305657843703950816231851123919082035063211629462861024340056469785442582704603554565598683979042265871791910717299288594966497608274011511100900796629223006693708321406242395368967620495487912126668347688844088839228741888073221143057214368255832520377529730147408807098278712473955608932072147776577861300185675421881895781489574838428747586199903417142958446362900313369957641429959707413255619627956377819160055470850150782568229606557837243570581044414591224981788543215489636658602301849129947527448504396938872038947136241153097742459731446293637166055895027629057171048666465190045275352756120974521411654333102892813744170989370691392834553952958571483619735172555804656177525985099287396521834145326283439999182907253765755623226268591721044159670908405401649927954503954950746753846652028777041769303848569697928012392838078315974557025665116905326030293911156229844348709478876765369450146041064225092195317899897627681237888460026470312849888661485683797743146899626031246125466552731475298136357391794716858921442777921613822237525600534291556459354324880521412207659778067490779663526234837439564570714829757167709294597714415149566346478410813963826552832406418410918460134501106435485794978798155087612707683939377979901820693567081985084715991391227423032161870659695097002311632586863358437629482594069018144945670913041880643600363419062912253491695598084898462087032250782794395386364118405203069504205173409046032221511433599193722854792552235613240806345632110733435051817726601579037273259601735470576574495449605211816067011983761823145494265552037486312704887124611658251435658149197559315029691169188368000879295259961833332471914703544767280862990671427520986177007860404885424411303377286822929253270874564373048829516032463947269644033387583568367327038188011203650954538174878215283052481241421701423463522334590952675387800983913682523885581664151792167900538728424106164665863840600687047305657659042808651809646294696255036022805010107847079124767096529751796113944771340392523008139797972019034169217987823365926838561742832605256641582465160199687055585615358193698567195152844961598000052335783332396104526886857929590231180808603005206846929588768241084262847020506391168704747889232305329423345238809457817359351873217300852879155028299607615391714318462210703422542402161220167949403612542447119372903953405464222593387183163924594525520266735176442791263954214007225952502319092668106218787714121043897733884335296214931087460882877591356315343300401407012065767037115875453767945459523133205245726368075070431223000217866526229775200078704543999284712006071593977382313649408726154276751522041863254119427313155570141671004942941988398899126950160268517433060636216492463432227348734748884819809733627070460186619642614337425697186280603683315942101976254082827713826874525673120463078816292345727539196057080942108136785408694816161902151600670162031045736058865931637154246080394922663338674604684270552174795633426138665533806191112903853388304068257185899769675026928157078122274756433327869405186873014189561069256764220538508825118869685350570341580898029366118825011887483743564528410095306402696784057121762653721779684724773690469757150647781908778163110214188480982157520591626499974560591321702024284410592471439092643153516510850142310651268087927237073823064090633314773457798610114843051221563109964538379312013414894179165700659246863186856782516905920511901872880513337975732357295839965633074651975858349671014458831546224795514837139430985594374464568983570149950669369345049130923360459920807141727006211096400993814652689912373440102574998549418148984462193394152427894786699305330445904811159382566824708153900629461666894893290660696441758724714462950908582646269003995903355707359157658801228602905894921505512911422396226987183218589031511249369922657302460463124950902794856720673263785408497432066308393649069435520593757191476404498743388035612290218603099273822244110359035010302988052189836415546771968925567804723114528329166718530730831916907145648897042311545262974211342355975425527466349313607354418222870197972112633023001583423114944479491546810661655555412747123195919849838106273156560483747025372561632125838992579170892489285482710822611643474173607350014445795101800072176439174696296356064321685570015064987575522846216008532277824928607837813075697236615131770682130461032841785340745972577741184319966852247802494208776191202413481593912098210817616015786103455064930431045000890444117041062599097735188429634396646236483001513688865501914540739834687943234071415455064598845986453707522681979655846701869947463886379508588841668246946724784423605543564606735827449802404515320656712844301950682164023531153980995255992626042466976762739275716175830972165405131214884786101441429461947199752159784391948561904459634494096315138897506108595311940146009121217732000664780079295707242139300023356428737395937205743074703091193277922758798657076068399184173641831464111505217617988627343215836428358004187642042997420932711312710160705767166293249005830500806253621974228953370191074836437910917534412528629663620997620363053425601253476509464502009227711625896060173260436581937349086395202319112821754769417182295203439759878996147434714441018980572005852970565738264859187079107617330795844898962328522678327043714897345636664734097051475326126665258242382422475825139538801327371982530982159005001788118942882524746525154685377070861828816519244481760710837676474909353408186631970253856962431109179438640949109843943954534469799629048086643050929685333613885735707141374147016200161819835552563074769023623246900313261404442486731629790202882590938724664855971333596872929470729226327195591752760541062918676478603194760774254367103718725244131701470854562037985484298483751180556673805685156156222378745841884767144565703749218552192407771936018068089427751081877385529651502377726031459551144825261700587699397304456282029354415679358449192202838889617324889078085473706646199615344434748932982324749718966300558819737166488774678840461604804991140635860596935587900397108041639815674102697874888159260945540075345211342598702322223073989991761132027388241042599628234188599202719693488170785019270682774387249429786801895622380605552436982493400804980492138321253873631576530117622219543626698840363533731484110468979888317805727589256316808700384886422846100969547928469504996106150843610662990649485233884453355216959826382506589122884195733410669137867638588433013906195794919676039559668697832239238013651557293594607737492344298335987963936999859519427232742518365849989459867183324357623557650641653267106136957576908598588102457324840151838795988972631680755958404405449630859268018048699038784102616787318086989066015945458647932590071973022288261772311672330476703295732029175574962712403731180428297283969135265862659408539735620474605473611747499592440722966301779595247456316443425056577151752326558090095235582493834571775464731618734401025646825212030692981694793135803162555208362911478656770310506637001357757567276867715744693153503084795177752732944503392488163610445400698368536034702617783974015990697590927315042502057228093345591688752170529618889028826228208012597450365051962910688935872488953677463750049696636468827333934794761915414098363763008474585596407373211713253032438912790843590995879022696537016318087211077222182081379447928339126073710094535402512764294749455772143324214268270889070602952973413810193173223593999953784475390364457578499159390441226497441227446626666657569464576340977443616562308349854050275010020330253975141536458696446366128520490793656009399657693846723563260521696227757019132844518488330038559223763490402519997115862876764475049003325112667848201900154216707993903145001051103310095085506404417557067570191470451620333820248261420457159543971965025867179506997898875071410727999929506787651977150113655142743415440820837639728538336234351706163918148424908659669285241850978152493311988999467440814170106647710161413867545717185771832250212888163021334795794005942109887959950269104551425231995617979814664947037083616567727123118230533583194671551111215746282297615629654620741307332232718339147488067908607347605309045647531061934711469617429315379630362903913893569792869369905120001107376964487502223119037876601278457317945189840424245572574262421810491204411107553610868292390618771380365890000139532554865295937609776953439666781273761319282150163036770892372921945080035776121107944045313711417554103008973457708441098880599040248841737003528163655384578724431301911366043239424819674747698577859162594804678288923914181289067245437095033233137602614729151362277834355608049128804509105778555601370826786894931171883772236626284927994587120530720790818713434815583015685568019312240820060789324821568002849005032530328650457859491342741850951275499648082163123349031367443169835449593267685597770924550232268927518970004941038704745038735806898666025135720045436502438346066899537649466620399170364794886101675325748162989193359036145895371110132411457836867876810572347186316365925477369390493941295921616501239485205892994639208328645550162447006037676157535703694316437539384035563813901825443544174030806853577262603988541648799098704575069852760254532456512255827247537208856928086325408069151621162763501775138745888896889060375845471988286647512240968161301932109728104787615999466356577064580236639647699969829470195481573770093929311409977265269275913643036766594621930630732176106319117738980870712864191109573427288562098961490797131037021871883048431719136849468303182721261076001457738016124372943231477452611812839661156080343380216327088289770838478167706293814360709718259928861564693075074655741865619126589819296094281084583300101439261023629716526359395448729716807351959808650873618505019346597146061705531086602774199664022079012059918026624378857938772068512835134286872317223518554140979008318828581987470148103518759327684493658679685080806549935166153326738280559437938940256995514603514567598609434758604219298272109238526320679367533055626789622622791504610076080739529986710309404725090352106397631670011574333409461924573441165067536566745003067864507054324204017236882249683529482328768880504640132403824671795408331097061094227464241138071951000522528212787768726847746569732446982887541772536103891009472730248247891719426234792737238035526481862617875439272785595271927429120741721003517947398400333836107796994228342442431399927721940053514710762448326954110460612666055171977881926407256375762462662553757908612946778283848947103923461327105962421828278285278213737081818227229202745304074270886765402491654229362517263487791599605833310098548003611358333994134399057562456846934260538756113149371690940450405881287592567853649573569162228362213322525996984254526136209989150918825904070862237310846825017358148642090026940955396454348315047589972315865345896939889400670859267766607000602200955812880980475219399205103699686314627969480904113810433674192439738845659431586481197532004350179554015741980038701848144967951003658288158088053574791538998076966948154926789571976677937714555816977629451791524384848145387047623505006984435836282944469300705015536711481487145502015986996284332745804688751686797028139285511278671733033189762288679540123467759054008196953466568977157870241225162808990978603923803781559885321885242774062978020739445024538365759056172826638479453756312428738858555103381302411378495757985501610264539631060373695021342991742076117070128371951745647723640872514438203911064554302821334843854480133476547259484950677177101741713951938398136706571754464549360691540111167131870136169661959755497692385282921188924300178658645823277871655347142441592368613051302693684492623380197847986089429676132540257312852569540924924164690001377035537522131411928555735992934351993884664644466660603215949072689590152352661597660934822547839792191651960998219892836070288500764273336665343489144716172800790689681311911198962181844299976041182011169444694705954238514928160508320109338355395424067512482648246460659630717529049874443701577741967878607227083026920620565115573135701702153684218896483317916993333817680319437656603026098446128510835375602088615102584248267734997001457911511583615214115389158196699498847933413228595509469193776625067365275809939392723398832804941131107432748207958660616131674758053028442119166647428694278793555748977764420119861130949860224327100020749934885834256265175907859217409007148098355315053556108626412317909147557160544968622052771793257709509273912877166036912897332549897586192662554965772939631001071289025986483737566528674104256729716905233225854522579177186222803995735327141529100991360338070308867008571761671195573254831759970984636943801578483738806460563832405264795434444887200352824262661157409129535947078643351420782225749236404237033999204053207367271250061535301996448880940224297958565497374899463726165510342811345371309202008443644002142589807292657516799969452602889921342285358226523495432276030163433924745748162222322964912663358223283089939063428295084799233759308946473567259376072032095388317049550593127564953415749853724616574436913143400216880442136936661865071267003021271229227328479351812387146717396945729382888886193933167221065815487023470313634826504519710384669307116553102191892076790375205512336229191441895914568086757247068698191798728684718310520887604505643096163168257345516536102173314869782661470978915005036738885194259176254733518488383666097302929127016878611823613754080506257988829654577080403280014179697772342098411759613616326945238341142627652405170540489243537063442412531290784104246009698967854228523462095023304110351108268031796789421545027260653507608328594562995829353634746027804033905791609680514523542308695187598363296648446664383903444744691310346009404731027932386002480992324373588385240279385504495129747142275038952572127571148504641862742135101737885280495295886050346353229093733367418374389184410484919975406830546640975526010556688772925603779395903340542440298493477338808009323037853908274937353200626939591252736703698005762705796750894064645865098926223650799506842629014766831944166753863535548399032387072418005488132189816162262523319549853890694164935964359117851450108088913872821901836687509241073122406598947049354765122086858872999495494198230156355885949772229196423992216713757861706919852010462100490213973301115898551461042841005453027341397013068295539983619613261098099587565365146782973741145296206827267464883470255608894931264429208187740966478182144470016051155758336497402555279040547878296279582192731756765092292678403585297864159317054627280664240356045046227771778296039931317742870408667300275390076651449474581097352707882406253538144023066463442727136508939610703505444403012889509246246867578794038272212974397805062035088889589134568985801552017027703896125572439442438075295753338586550674501958741119309640663209864719181522167852541761898813761163939533908722506889414789750712030562992047172226668078678939422639929691979399998254158318870151497617066611447517489412157363988649717249840479787394260020386247108216793742466849001515735981308258557612817938749068025929678343791867722853897436800232840503919098972902683006127579655070449569663221189412055965453747573123740463640782142810031931919209521090214523371617906774500050861564387834697904165703788148555872738220216223254495592257493874130266051381055319718719077694802666610728002076430150162546136979062206958144773016645476367679829093765108978491946761562089237509852109800868414071035611736703719538913110197870459418083392084504045856761007841275774245837657239890308280499645773307012340094399109942454757954342635142823719848007826093221120686641362372851509622769935176989360323384943684401875728127773472686329870958077416445460206591003300905027950659116741494038686847916952764248219529130433959856376708963637787268641760612698403940723512623732194932215119039974558883291816405228826045981699370742624804963498867341215310304152091398011879111411710698270393549903758102043724914018106396106095309983050388765749951410512948128146285875372932492797127162328333141135200684838694642300343568408081763513185490637333709570854364437813965409210830904440271570634010960352451955865079708228374641325218717042976651847265178052117952103697551500842913678978420326739758405551723263411609071588411938039598378266666871238181015439294670901208746434017995394354040914368267455567636207753676854425635796226123438443996958712975946445402490129299155410277118065811891974662972620277429474332235590129740334429881030623307868814866088969561439767435817538701505078585020789634447137140762916321928894560645879410349366006767240066500889230326573692593257217728517866474671132271647656590655757339948131125765225875729252629135746841101664988666494102766894273502551050777424119001627128854924164667170346015738395058585767971692537123428419460171218166996954609685028610027570571955361130521258597135376956623979598315460320539134505136682029042619087476675248134834727171725070320209649669857348257068343485538190138294193342165032993627432833583639311884950510362412234132119863070070808781359660868084339422345580730105216402014125123155821504191929866383474302549522471875929175327688759944420128674798644263285104816759674249037643370055194690241333357796116857129454204013246761271858647676958696936396021442971896860257657210715539033514572273352962646441989755786693342652711332438956249330759254619347121504865034987395944432752625049370532293689101656914802787686726926052590171484714157898876238179718518614971242653483230329441265523917586874107261001584279940793968313154873936180210710750630421888686142456113229814610094529626523168417170860041306728772235273923532969487151029870306564776519371392218385285526281273977982282155184300162808623525048807713616207467645877421089277165625416928741289015415596946463025833288350055689996963422705216708292094972882786420793002859567505598368897576944784225178924943304415284113832242900400569592318052343342690089040480749543942628366788129566748249227911999283707711209616867334287934811945823363859561884718878736648355213371573359894623949190936891988002481904716332787154972694815320468444102797347128944491405281311130127411000038564334059261403256944521115051022318971189828173307238870421428403745460602765212519061632724553885080797490930743939761453150078948094702650853718390176547209977721070702033505033197097597352265999919048868980850155369630057555800159662218465552636285006378691735517651939818246352111906374914221171542496912669586068841587636611282441959855675544521161131092882285413954660339181362401505462689168307951372919328920576265084082464442650210510285211189860020586633509011955274722523839299735386592328362397486225291453102222658525516490422630969848940989980659830139698923542539296194535217600071772012646419026604619891074205303574214252852090364478648198327723668701256238613627507693116691946914279595441970256378122437420540303567344996733190483218252668663421263218303948114982370545893671217180611371808382232788679453189559145019389974425389953448924435849003702336103538118971402676600535985980244479759309122993169953029326527132279319429281499605730558766729107788273263523258864905760920525451847388798281288901299195160103286847583025409022837114249080253366515916123672451364537596080928781109458640015112963946155767124639299855151170203807919014935739843982151579256401611709966111961047004867040278626437099303557479998765432834923990132904747507936086716040333920159130947860957156635018031409618380007520355337148689216799192348451403286726741325602715423094887517450693804675849575568206755729793718611063252554389308228831234944425906820697756288964944914278754663677461481489788531677096042807950502048278187017368094616305252213201219102121309156821256137172974381293327325712411486105759725038621672638018831259789460513673265579603709608491247255372489580679496253393624075218834341881232092923667197860567191077161742326236487839591906433225096976590919155644255089421092210256316633445509323354342421190979887530084232065049868466139088438736599723929904907190239332942883655785648491061989946842685740054271239330749987078645608277770540297998287384635337320312294320209552154886268632495614910582422375913049265085028263972728867997480956481858010101886110253601366882048366615854606874837325893314951683685097205156555546564126197123412769870633460598551856391445892733009206541361809998997508189513025517664189965061885649419142001240563508350477114965202051008533992176284557997092019608881587948574261099249241874994717402667809054043497827320922684345267618805222938713769528681202677466469296548444730519792396567944263739190482952567957384162928898469895463476339118146173472322121140975578488072172085716148051228440897265303458521426625229679757450133627044634138993687985036480063979977341273713405946914375014164826869500430174096823288648714551408770595391298818194585924267763701927247420417286195914932206612308456015622746467025179861894438825205757005282415053541895528246907854959405463018981824278162102039455357224220446926027244119425472149202844686059087919454017709927610293507500374435526502833963006627483753919129138672259381426257629458292004588751497590812156053470736542674154591891092213377705039612703805801157570866582419810611423109612450734536513736541895572871717021235070360888632447201257906766134150147443287654810474224617122194825316055650475958175153947486413156634295039772293661635554349602594335880843554705567065117881383715939885296619487391988764069515643612369652169519807927236495718117551646148117763676432707589638259608825063181771918953518461995180609854278290332831106990697204441693411880817288552911314479813115087335268570272052677622766793657855166390036417113890612518937249948933549119070409859816342420394177620571965484340630258994059759917609505953800522801855125844166857898974094572637080196429667281300346187199649345599354471308540903131748485393051964076197464821374763728258586002390930793665837988401864931929808412147009144547877181675050248007901195334799172095706708981636353921101047899143197941674057076289570198331080776223613080849010718624138435498539055748381377833094193203440111807735775343542635468958228483070998748378573954521593152625056156311700103311184906937609777263526306675210970395671385353656912916757746974652722705402876027334541610971357137720888892773641547716907768756258932805964245200898459502892184688182591456423114510074912853443530268117519534346159126556875227668756676670244797186255397388471191219360403423161166104502787655121936793597496923699055632805680293900114307521111521304252950077178939649474606677474580073107145669080385432503057554557269726525863274354577368092864933260974377459684258570160728405849215804766120337982169570751566482380669541736604926172244047641094181344906040590549507409013284939511771626973595702006461727012147527324751147977647194109341578174347172963371885420998904118827068879292545404825300544136430985633711104003089472136976403462119426735647314889010968730182822386199140301490269459633706390478551744325453126882930952950174908357735149305018143631353365817252522761059362856606721916646572630712085462203252588567975526388547722170901758842976419154463183981579477806996555259222650181008839169602519633605642847143485898490645630179488390277951580618672132466682323981117986894736020066954961886456303292295687006020868224344959317659390966157372024103121508047668817672008878154942399513441740575182364949775941284656892421521144244201774825332862722043864290336080986726549146556729891407652644005289426821987902783196498314293737869979542056800655212582817952420188912987726693871321010699424263023691760802763380890630158949822918979067479774658001282396612959175553364104715642793782315165667794699993737117627539719247409910553042396391078486382344364101128421680039103546881795233715036908041993282976209474632626611768435193426364835776769053678459447378492209128508729152067508717657997496316699096860858349812380147210427967058895042586352506979730653348391864025926496890017984380231271993492364223338354052407953649208295361223708850755167601363052951513124134391435204379755872885686901369358673250062657958425227787214264317298467678704301263033460634885699160817810210267123184951460919444734535717944970719678992745096561101849997673769975941767286207432211456664235731112320153106677741691482220123244801500084259188279556582859871045891750470062545193896315792041113198456016589245741861912144934491994455865000224340140642907279157418628597110698168255012423778063572562142241433434249880103495775240645407825044941543610466120030359671448577971199112143191058725123199845248812116613868120118967844972666127104675903724593895576935999706867034475728917326318192943131861601163194790702239528096669406763410663915821526236477177126716175662180401989145880208144061379343857801722821886281957882226947637540838142722682713517117893745723369896714240578361991209586229485745000084229810905112546406684362622679614357464279924633297849596619918981772065760470165378994338836153482047757836558351122562339898392611380445899309906982591696359710626306572278538102732462868277550226589529618727021695099443010568316049903600317627945073164496388665267522720153517106175034957618289719133676351773030142783634000075546811252191873649101769326059774811216583663449395749585811671309800325972267216730554038550635089875977218226423194456362516617208464238518727105143162479295994523294035000997968678148115284724175051249695814266822162392331661116054437624101405853910599802622899644539769797068735820114781466491737565374729546900644335224026468291899526954029226362720654847967709338744147579377423198020302435857195470175522503441864301142848860725063534400623907555396265716482941800608573136048540671898342350591701997637677646921326008679535793480685497050893027471260540096132930649043630663910173509040695717069053578204165829637619981816853193141299286363678569646041447200233888648346334202871045065502122333667726481079841516469482597847106687093278800619862867455313002315447857829241399026136402743687442937345768064271043806752184139533695555680084694818187681568640148307255804107211860781884260572650048063812485682041512551373728587619138582138481089661308198140881407061054721310782288865613004331510174394003890213436140354581422246086088894262658222159931038635535616145098853071418284704874340744939990168756600936649225493927794820185376286060023971628421153112361435067294526014014285450450467551101274390123684358963066055588772479187626391494057948820083382371674996987864483108601000056006783573358134777699477943963610462535334518795809800565687342211244412020426320803336692362148170621781779927617961668963817626255981341226780479785888896138013357596122845090593776550626047060974098865401768116724798759314165142768684209964519392461283609445190311603024462009671523152199774120869671051004832718321868789187514155733047805781097760046241376734977088784208140793987732510614193296583001165812904339084539852589904636697533584298516666828166349874704366141488513821935066486553017676213253582921756522623534009649871464254364171265009914069162252131485248567745665741548750586025930439451798673588273208320899821122920044359957728138593781240241010047604053343712939241082984308061831115185963859645225335026907657761116294502771347580971124133116067912884391628015341764256287640272676872813047011469077016302193677997950815148307042124572776372179207859954629801378883164866480589857392944702690051990759022429965247584898909641019283526006275524433771722272337711153817984739222472527361564313554410453268630440935144951183248305022920289381804704131301469984999474624369423215098885476271776822835120288181019856963855318801971119959902077281654055933432447867613622251314110285038021842776687246432704871244552299961979874733766277058992983546701820164639877552018179377452606729804228667874745107465972894499406698840998079325562926018672670339013529377658647768492871842089639615666835063641005364113749660425353033472687459001410293175161522042191435444705060732089948626398749818057374105874531664145122762963461589464818951542593617999478903492571729493285072866567865276463897624991238857754719907244578972846620209026735805747104352442883203091177955463319459765521808599144204269691041509078030022435267599176140554716293525584961525463724999768232778156533655163978855914246443832368328781143038424089387414675357798277911118106303129426225876756837734038500964456439847947468955973381416894350735265027851241369458891720971885321767291675651638552470061017187712193545250276098825947571641953523868820629251229567576903275988035259054766674142063341154590597985440542605748649213808992824186660579524892799267616321069591184010888216141092462864507018117195456834336267388122514624053922949121118323726757781821152043645521067752007267861070891391293758838878385546106224755263295993939576830911941803240110781612986924183454153531623123485888459599793653821476305403835733574039617861828921692241959541022337784647836495930791227060506395649484030381305886841854289965530418421220575852164520669472582231898646183386359078252496023115128893902757877601015819530141626584040034230638710841440810095335175339853726972960375960245857177086710397408893830771837687665204228004531943382806742971258334238308559653390934438958436288941805288763565646474467163855463133840799256983404279909591145459755247948974187692926144298301332699824787261252669790891808421364547404797513453828817917947145692132368883075175310696614676042187896146920163010336529409978130769349424818624064479445137119862090430222642184354815399236149514708945063388341035939289425581277552257989144673658617557776941153918317008591585496447148815423705222558798188145331811457952651078156041544544627855259272282481690186727228551848642897806709265632096022035422555231991707158407040213774264112424204203476015675782585197360255587323989282856180477655535575525258967435109172781151714480571051093674619980142015190142403549087523662485333597618003868414354625567863408295154591361320370976539689021363070965324712295558074188996472443506790760562682730270512164761391910963281957224096100953537703068904175827091669134384961046604949005591674727875295734542752490496076963670525599913342921354283679698879055505312170468464635017031304805626404221364008615573463728075793980708625028615661966489119532234039272624486611734008585198436021834311779977672095535447307960672305654749561541426223600990576207442314376262224207032986685718101609176056958244689599861401802424313184439351709069932678254139086376046372182546043315132390773259496091031626852679249497160804802853982265663519082325353962126017584603274275670759839876510413618517284403930565033568595395027649516947057335293414380516973573601087354700331739128074904509027688915337222002800668197029511713990501185533636698652740294092730055389079274323051462682221350454351496681774246782173220024104626080579304734695930838695887917079794925049911553565106156208375293769920125252912778787554047597016962344050430534825818336285018670091173928088438067916776881477062295126306085057165405415415151854180097050899865563492294895694182649890060961348484898987330157177634232897068848815619691426674089838568844258172472841960347896627887243132025473386326601189562202722374740885670574636930127499357318714519336025191796445338436411770161078697415802769831399186248044197592197827044509538094080125333989355385769081568350230321249679602401723175476635531092761900187457525032366607304970818423408608723363575544368493200773724770487864433601777992590316407240763390841666319119909182077816408073661004579710133572831790536388057375007118578822049013073416420144245042161993024496096575584117071832929677849920445917949329242109318444671677281532668498238026107277226428984941427779987190379667567753083141313493335652817322745792502697086683699830309310427721590601923950254869721183486855036847432719455229260324383634751037755307250411208800633574990679370127389338775753035705618701936103377161123611374184608005639089221503155667833134269610855367231758023982359129567165594766748942497262043563588631392474904035616470166692736142117124354119023201865846314349806640183557451862331588646250674507323471551782883355992125954940842603900210460108026978883797828097608795858290736343931341052047947635911426190573450338538464023158686954398438501704324573891817261306892963762951950505910406012563670631421401597592525360896399119615644181620705312102505433013686118954068327299242742774633949688549049988286140459760213573457092525227708362313572144100651211597734836126483559652299726388778761856881083031245953211226278328189463167747668081894450041933028929783832615296315218259566308958445475279814376229846522733155212532259439554005070509925645183951596708879325203160642240789620116318496684273638758162781702090454375050803006354676587342066647284420297431881542714226920564414358878841443004347056454271735967637580583542948962060486355870082390312866551874006876040767736377699518338346440554408523551091320085496466829088889492053963496382052956350045752471153335371629481644675145182835045496803872093918397007482106406549045954703930533411492500218934520802955717740257547986437587080640216597398104573362157463041736706128851178591455232729921211234455646817901202736169698717305325089840474162111593542303368467549576708996324289068221735263697731558547082403932594666489339908951663575308043884033455914832449524954225896458730236217849250920067337610630761046268374526174508436013902033007090296724098141700317901822719045896926512378641965956056868710193329667234265542001736902339351802181227716547501047752458473984912916369519509193764437953677410871524371310810076140412934969650811138168954333895381782595503633075573729033803677283013972014970338278998228554425364221149643393474549068091105705513568492979113069696764096573306951879256834428190462030640021913122535586484880168429651358122950286831531984963806340768267768990146959316070620007796520202056739152385138295727054237015841257668849554829696629465807007589301329740924462076895376870594332068811894599835911168533742431716453458351553167954248469386372672612289933805255262283316354944388107459545849111682440893248161726064645437672892149266189319012737421744077329110357012703503701586938856103889142769167297250443553887222777501822652591418500040019385689010246213183811331932047971344121016147712973471110884131345501363708026624643836842645987747356870180128735927820671571713444389723122980448327918061066341633802648146030162724477266288194925472553415020827373814611253362962729445428478308095405825220673844564638722100177677657873257273197347129860439457124470519144097462852453510446934240756877462133004635948123571935221185199841030287925375641837261797517152914086396806112696300860987501360271452937589819074626335159021768965752516739607563081107590576743938465268369380940208957458041607059880692813338575201719619780028190447656217591189624787756444189319942100706978173994093844368735037896496788578435455340404242830916464270002605230880721035396604820069049615577434808451830783503583696134971995580791477480771997514142857175624263448941532373355906640680510239499552228350718232690302578552974785102334858693397578558849689924630491945088017767818580233677212986424293390425378133442840586944367895354021327566265123399755094481734679460355867438538070934976636061333052822966711191179918200721818843607508697063847947055022507717767562689810969848841729192609169288192627419125041719813225219752358753247791740706075576956845086996878609807407292862381865102078416326076408473448656209470352485578645596569654732552886390650321223213956078394090019780146840912156859760633594797809211340773196946265026068054189355301774125263939284968307597033339941211162008923555828210896866145616200802842198339603292900288509560050952859002290902629559357923316024690350892049629686947087122971952938572645324212982215906496207956193053012503846063738980781939293942462871658759616667911975394274742933200643781342400727507918455210707403569004327336022692489986062362806193002840017226555775194508312467131215753744629717866386030148239427427353263137886606111423244390054152843826278899540568954693049926529007442727276397475934286788547980782543390714694843199425865213377724189378785357477587889295584997816211383542086032974671352290285957661801880215450113817609441436449758825659741646048731147976372224403651488630956567024009303145584214137489858798719640754842984073774565717455233278695135474934692178997227866257771910822216032429249384890623826860520927573210672459596242478155516380755015363864116196468700947339168528924925683364555870228190773003291623556788108281742062794061915373389572151440570867794327470466478573941143600672565420781007832410985431265050081864088978796568774616150539322719672148588453730014099750245362469238027013045622706015448267933900981438446488002516174306348828534388630915882869840268524174852997791443706161908855110615980827560406211376430958197300586018849374350116766124363004886062679290752245368035941581064865109568422898958407169427227990380917795644551071012451832483118533890871174768296446421748768562275321780592172000460800552870422751293781890027205117716735241254184250143832081551351746157696242425707675004164906004586341162181292546576112267378036505553471954675289772284113558841477472677372819865481225834645727840203945935940413797286451630563459943407138969937247014337261163140317446845205842453321108584224376780793299660580281181264976363199008996705761780646121435398127579848718878337636338010179412364649546372153329956810426127233233206061113168054086481286385791028360114735410354582324997279007534471392615865184901683520606330355271655165853281996959384478840864109574691452350185637679907627930397397317483685444979569634033492274739227501658553512134888582089477770501874798917271707269646308755294297941439139470810898291089995756104683564741414951368922828987774437094859972775149572222160057205457780101032318665629116605331455552996199561470517541263655680718879177640642299378017065019355720493103619858908221902327334648272141305574374711702079571676997745110344030953000459814715592040144259835451808289537052427819078870764679335929866823373217174898493806367652883700661467431906647240227966440411851939287892779782924447389230866105097311538484161761835608585584752677772270654313230177265972512754912750705998945855189830952280541392467274621021812351232370381462818401608543792272133949755631817026824719315209538593012102922707081884791083862564740612671772492460868849412210861797234388006059422604969035795733689870558668241607983438174477508969234706976222272759149453497596626966471480567619985187566985540550649739845967705591362044131948068238485869240417092266783973800820038791939554541317274551131711376653165228611107486760420974208599477002032893473944672563353560459473501191836886584706249769440039057575024896263187011912468116095125077271956771679579840624743089586157186878256348685448987635561310208249869465112439642277269775400416212328960067259013759254525939211171038402617833072760446906099818539122043049820644124698464425680025653697481399699086127784750195927072033666318226188329663496266419956204470604257007146931551928463021633763707595697227435001370568678316669947528422451624673256884143370644086019256209743991604112362455250643064879629489347816897327471928398733745782953335323885292641124204082432690595769924127912787078556353162096157751526610429745185592235333741790130131699917732059214906905656170115032888162352220668205468664117652991310474840393134410153185382464183881296818515156026312974586136188219295284670953293184509394439263101858326282065486766562375853845872381619769929478533547836021476457019778994691713230538904127837947921727532960146038048881444038728687347240982352648939933038473277376522907251502890565118425842005949982610466141708647158364106306878318512731955590719193195055641762191821634946099904478360891621631311610898692392006110631937816611229160260916254325570182149903783649227485088135031888738629720099882895855584979589956567293793685392174410885679622407535761198376388191398388770223019625671373511957006795222797286014022709661454405114426796904439576135619063163268202455748094132554670183070173187034318395536875557244645186219190176799489939208938659676307434577510045645660867657928574836352035722992950900993422253066329917662822433358815683203519174470255396012582908266052288612204887416845452717499403145416657104732510539391611299518809638465552029375566339434837491765654013232205483625227574740452543913450934201104973240526866130867117849731254039128228282981349465912759933132699377649018527680907728624174352190200514260424356856525980707122316847840961805948099868850001148253854527730629958816483104678964482280258416969322248235545875696367209254387451735582948795571409732772090189879373990751218604186588538789982148514554092252618773565496600030993723856208695493717819818395900153755822334535715336290422238155618738379359545700121375962695441552773468507460431463698443470506737221690285901832247743090142376369730433519787598797044262748578339004369368106868021231623182497102912927748399454297532350657262398146805509104317906978691570987156357037457886549179756298260393485162076937769717921892475986618772032873583794706562921575683083180492019000576569704550115067599056537964314538258935690108942045044473175137080073903391298216895887545172561454130333086796738497083805202603677059445225632419154337101429740729979910229690437352938482274043562587085988474559388415913299505299497320212207760354341448254230583896964047911732834890165101314506729707327068906784729316996437650495677262482741690121609866619846110836689531696848914294795522333862558724425872147246511576108818077306546028507075282302683247924140653698694145675867593674740460915433040387701366514854290593362114822818398881177704855248485408836250574234023238125088454566120309589250356955940500677677536552839255303637899095658884452950077042327638620165212591805803996896707441820402867299173673761947218178713063704541009936344258189770551462035990190152081106300982413717190275075718987933567929412151205410752532991125711609899845008963681740848272284663108076194092487322269043551471707971484061702153752504300307900027439436985305204850337544373485264667728975214147570453378105681366614766769645172735337680506500312552701445327156478726121997029231522055344857376776961039507193883993419482210009914516030314102413991955680304082031624743812838842066111408332875718449502995963057094219855790943118224098852015278250736135150267102057636693840939195942892430330452877354191161991806878297238689771515890759302025729614177835635138762236624448351805576526633050132747983539638038846321850370724194307776404800965973223594630837705976951386166252493428329134261917498592015040857045663302570728875789837428705936991369002956294805647110282956027753672654931850005732562861535107658846113922909145250213019927944678333995638231432275818004775406247054251798957303163854501936260466027569942869107007638358713678036594858547576760615201994504951464298486078368658620075828270010587448423758702564532794532740758124746222815206676136331291403825149385879180437308746648951750055112199181735141460913618738778790555546318020557171595214986061687982946071960073151332130759363080844245520557441262579910000243299844288042193457957777403913266642927787474185609630757948155569421074387436796671718908288696438269286731271511090148615197718712395654746113948261830291608993888277474564412486721393387639547097346566175962106408106261371985449821956129075700800360934745820119408515889325160494906237756200865075689055116419454707501971847563849798978480485101284309241480254751701024677075824561832204422641695672455551030042041548422647367569973284515764081592629101160067738051622270715959246257993520371057454778638909019423718316884293617191867666869552206459558220597540124774059085979997913452992681155394895952638867096391862755754503885232837157416727092917727830747713166927998746258136491684858791744943911547976699898372368819242605087392192129373779847205826109515788109176447125229179986217513366506088269638262142205009292298586827557209933036073284015680232747832704911694400257184784467324176733962812181684665726936568212118762187657870213399151720600527677036412473740883170674628752847786641972631790886748223035702104156394619563569514040609954537563425058099339023422983438717747097335353514292266411265172787914689661372710444705235715575953017211356025514213921212922553097897527184609775077108493650460018165504953183585956347088738456458403779638141578868914092269970021835315794989301306001771632050679364323625629378482106246794180647369181093994215332153277579332396595317831112436776685403701170255026961047899711195287556942658756669731379642002591092080608869486137714760968654102363243107554117272032281763711989271279649906857752212609194722716461269299271444460073853665878678304956657146778691083875457314579418107357005352648357933070810074833895656045445758927804722582427413737808119076710735444365926412161622564670318721950943526383214384735608305028911350359580309166869478195381447385083031482995684103841526776627370359787816723829972949245185852202216035681124031328456983308570815107740028453419470232078389068489276014629260289892523573789813872476715807223178670704859944475735457949904017286808251787841041406270433834284666768499186493848302259557004451367591052291651445921381914048146474216315952504664795216128345418819957132617174758398880470878041080570202981262958747026439792260240180136259724327265908376021714718011494388680687780354657154454081072308122114593269078854567119758705909600052589227878244365036355051591959599404741664173802393241924504374976083955896192104386871082700519979491558890010939696798744543350291490993024255494154124035264252533088545407011830703598158834412406232219405271804990101703722683793571047809599591186131831708529484943507487297983605766718684344662576780917711223229850560501104120666739206989207683864242134151435008218474076290575529743130459024929323236577435546673445116833481184695731183588112121923919560551333128829023170553917642718037425333874310931885117450784903172880231897544438416119407596846293658611778067816422346801015569463776160260593301198075863394921215906260222319850702109848216017329548006045291027596510502067943587242483220206531149292744502509692746400363309468711526274226321432321383856190339296482024033511008410482228148326896618796582114796685774412472705395087153291691212449290267191004329749138030050202507102326949300638609725698346876790080170986003170893830065155570188467380616810438960360546742389209810660948211461595782270271705271306672851205637664886245226578108115073642139741456828346813386745280186805858042476098171476051296580253379249578652533206662220627241948505175118164167278595994036349967379314605489350777048101954792439964111648035603178267091624887922093632461924797001392476748192564181365507321802077346284887122147919915392330681617803162310668500164852393762603506884884556668291739262928957289972613692508646804808733205487395319297932860535918053053966385470729994126479651647970147411576777927709764081592561084656838166985355889682318368649025751910845503469813810830713284667431801106950128743887343881657886830159843363677890225633582859111190423531523662831823767623155086279111115151199193782424394561950326733431408550681693177236512951888261189490136133129333233153713633481187899519101318293447886108298890812594260409083310824907726330958153727637688974596565941016511542250986967760775569718855990337814985265329714642401862418724304809980992558500156361834907961145399944478940076218985264828854134483945252284887717419159598809312469376475999522600629379096683738495000069115544040118964235490421282438643074535685558102152060041741302310203881909504347229541669228028330616630361551458998427275029362519751476904885742937390103001813345674275915644558283434273421547023937150597137713844488768809497818820886161485877917772781431469295986136059827479404619454245685786947530278641160336135118764330766538964581413482273784456150855584398689575753678796542928497353568296256970224937648391816786785404175189654166251747139843184403522682882456046162638477497083485224511274593669439926897208488106909693640002032262647061095705765118444645425333705389763039939252557509724638602955009990926226072357827649250817369733808645850277680284229238151559243300094064731371152922215014125758552721508529318530994695834669223251848147700295478174046867892300296721734397727628975508767741220316386490912963592519970407117827387826227770611978306248096631100374333416554986492858213866874129789073937392561992147939021460273354414885855287740952131706369118968504801038801927070413854928181212121165301018286368441478074658308541616752711868613894254885065084124244413440665973302087351984076424432361945312889282268682183352017378196680410059394520074476371532392681046951266814758517187551305459711094609716433410556315137160732368515838353236339799102598771227870591700543737544707834231419413004992981543958342624883509643646117770417095328025963855877928522086375917377460529810436058971783342063178232577624990677553132497024996443124777872411428372719058871138287614673228951745670618725140280856632818170457709185904368777991900971239655843963946526581529297634502318559057777524770064585814782943377681245398577265799316132247016487143671493767556910563232650465737891441727747254895830485603881725660417374384545198392205565458545365200568306027423328053186709192104645510150995873889888512447613770593421773751203785058210488942174773113714419766553994290863314084038818919786476663115434255853241733937683176587906567702154482890657724948521802070217071343500615290815139060656653557511094709278265482260373684457105270749345475758684444962424513339437572323580729114341690832033908846806470237721749980970114782024385069900611717869561821269260160831814316987843351532852471092915157962259936296301816245465774503051105087069231542617571620362146416976417198302363803695366381447344128178819698383345107518871475782380253339123558705920258309513390168618545053165599971481846340494234459442480973080158460355211946983294827956425565220510989706696202689999429008243696864316742774265330115792052970153011924162167039430973240232836908897411881968131305581550945880326130362029300630345378249781953046821866241978815255949639682979283161052370582616370125327008458652293819198953005424645756684568446172556874780722314557399817324350643720823609167984640231316536979262005467208202467162369684888095549131878544687318812071718566926772821185074907037625994207521227170007175686628206353433709403251660247927403565120434669775268716866880210513899137965644286713525931629330304385189603165282659787993407543620589509776387702740100185363462586184593817541439426510390504646438238275394188238696539410021789530739858122143467491276300722832860121812592483336530481405683683407183929216229886420248396170673460643919622183751592307276062859347647691654302410716173983920430657248425208478787677501201695402347271298191166513905419811204418661337086368329911178687126456653387531007421985682458779761749109483834294282110095888051830510089963722339017217639934863306802587965811175668219211865780475192907033977427071911195036225404218017302979553030246867297932571282362663604639258995619989504886857747107205353239310374967500316833822888268701310842002133019882790940010389080404252091015681334056044772622682442763121197009464185135756325580483417224491579440655706476640997412443331999904476329438048141050175987337644037193298045297068411820966656951912123269760822537951671961298772941589425967771020124751747659034461984211045743103342648372337762117488628936826557535190118388523706689968963069325675335131235255546796789598260730897290159486415826547838257703564446487452148613520846501667083226981706070868146678368273798647615205177374075503139456003890870153413163728524248232170750502603193971575719675718125534795908979688175332524539259972405265652721614289006494160823721864320319359992576743773171020011705665489279614453047900957235381935894512617359950616654555163580880097031055070533632740008097460575545889863184883061827256411493094614456139433763788720113334112005962822169177982582952840082129046915162404699347370457180629823769232499955547855714709143628913838112529024483373056102066867149985707697683537132991952995857538671406790237068867261208010797687297883560387457054060396392579907531951958793676687956898745640636855136864059512429518048279345101699024805837781584897870085544488593074415995980647324725838779182671420341963634592975353294854342089078064593642189992141160205835845327878639588281704246474897620408469834981703254772379910092506276932781260937305599052275847212334709868488092459124486453765808609753412782278892453611759013228620110715166134758498609031585531395678515260259338142081830816738859814653393565470023078413346964597160278533018565814008127521334186432557625077380349305907295634617655927784531796226469598559761668809272470895706919393092759764139116675841713704949030779432550782369772349284125481158357179559361590866895180570562604241097085589145373790438893713632976939023022337475688513783279235445998389924470202758792310139490744863125410713762602217721123841803522458673827719395817677430303974667598354621561494496269043606768237205423885004347210779107275438602142947195159949212771325860794469528950212393743571684081905902085146432455318958852561162271383557649377190496879533030584639002692892023513437109008915383162583577759224678307960035792549486212379185302020670058520011330830684818116741704169180800614536491658804603653771115749045715907363455055771609932445242621785457075965729645297231209978505132169783791842249958448244289331265884429422637902247466711085839917099017445444398097915947865857938018211116783003605970967203692270851063923396880382986969169755354595175200781833912788482727548377735030732734065428517222825672181699692474960377723252969780457489978727326750375778932068404458813770404527757267077146194800287197633164569248176673802921850104957180766145117318660820772360148159655082441244900138851003416332941368471735767851319209522837699306633096259340724737125223231896866752171058656274559935361785673408560227892943351765950032661579365359410839992600529961750853952223866558323618220934209830868298036661776532818043418005161529457943458920869057007866320961614534973822297636723560382236882636031107536945635112670697136016891273998947217570953776708249158714936195315500000132698171624545016302226877636191740498499562517601542426542887209955048159116719136499543386927236267380857811296988451994886109531817854383933142206810602919168155922982547267477265199913109188604851491921501692483279444103735500320777057608527742707570400447316769785568121667010377511735956157390990818142552719328148731146081455156441765949570522604472736648695096711219888981856568169898403639812668130301755421625502263790465658680412495225764574272369639233017551910249403692444300557500825656880621882417452728108398013882255545837574886215605318735282090759246621739631545288297178238231747938368905060666488222561724205098901786857486609948967275660951625997120744011601723267363056462196169208623508774575900553986621854828047854242192051228845790626717921890188881369106308505756621346766304564679640636691454749641534651476184645718262937187025514442940284847896846277347441498442933745469907941714480814977409758056358317407046357899726063554164726747093399204859111818476520224737783793325719506140864459444816531850898942636337272574291383001687554313739677943358167590049731448625712837198931320630887561274642529924569183156498544413625611297970590205112123650628241390230723796224786924295560141441619919784651571753025864560779767102071624067229609908617949391177166430270479916660690809315370823427402544658384489351116744642232076444005045801048931161958779074066108745919321520269839199232629583133198992183631939926373519857733129324400311431790649125985906276371197531622907463591816961188615742350015190001137170399983462933796749863112621680065442535198944609526032808739673600660524164183113544444150494843903194391600565457330943861515950446125372199663920498950384006205133189823677663803818102199391207244759190520345858755680986823968945602157377473829793583268575134335468875320640564455859414871351231493521754064571740722166755510738932724051598369245744226734820745002205506705099819782683590747697264997561731703056185615322838996604327190657106799703529752357491300005420968036504919553155320443509233715683727781729794887349086069355293110740152547574351325691731937473688060506825911610505357520171752128990880942802292663376150173460567631808707786739228026021835749605297184096973992105307005164778664917017804419916093910400110753222803055719413185653375464465079828902760518188062479303430811442079899764538533913315855689067680082913921931306925761454795960154908260513455332114568130559086020911989876426151228300320737434984168234523475243755665558368749623480011519699057307510043887296584386346524184016278641059904611383286677568120679638226478041316599719328716868833301066788453847925415920728882874945307543973994249264787728899980472060587748276639847820438991758632547594585465309055104561088036841158368056325825780481115254590170012608165860913011184464604361217227168529730210291416716178719782054642783219324350578006621011669374252336671149753497719994807099070630167357087519899862020604378809874948612664427806643514491695661291573187895203221428520618758285536556564577903480591054727350703733464997335327962623486130833600108679509861389674648911972299258082459578849814720116721102481974296308863722082053975056300078671117371095470060277378139025786176801711322509415894548177262442018721159469358800073385190609658242446063491392395993217983428905869622110678550943150731268708102321601914650469270239575539978215928850808908265224538886753090101341066906893149328455471231461405787889138972367564259408693616841652738500024392468542901171956294136973452275151384103744647091316273625856685367163792226173387436270526016801050110228940765405483507360610880129335054367685585998406889253889585674297677551225645784089443019668055896962737028633705472849088145250805522235339113604769472766717461466538613358549353381472356290952433501346156540047848374657689744867049377299901323434537747402162852462661503495192277169343093653853542556899586627323385451219596122755106760632071772926421835277766241605565761269679312372399572949627946935998091410903659953836094284913913621165289745675013136375020284584231894621246095679560535889359411405173425283964644945472098331377037220407988745413953001925972951308615989003403754857953203606502280934941076738863848282244207632003334425420498836962118585960760256834840332004726690133597388002151022119634052097859808178788953289183551506966223160067423870156419319199745342673412011859154620777023359011564888946631805593778736331410357234810270353688652273651136875164629088506317177934137671854702143692087879504241543122140501701701334188006775293951973690482802344272173123260585823624485578750636904694903582057214711444736405426227287336754753302105358730187313572045962652487312372178850190940657573859797381722426610778382946674427649756545424905107665951559338175421315770079933391212563813906986082793793057156659871032481719404046736052182163006583556107673713672535439591157643108144744287240167535650871717405179182848733288083233595908781440889679772260493005960927219619638366407485417276546153732251159683207078607333971053863436399013867471107035191367138429323945374621013176114487689911046600488065940799877535697079988397116616315665786974879531652181357287189009507661920187525589136686463357138020636175655132282544054272695601648635164108901295388917511957840326498871843922363878640493125503750978188534054883416647193034534791968013680399866602165039953693329897794966632287797975809644134592976093015409902791482421770403338071832970491169151359530658249818582157473400057328044780892307373045516252528039512165794836519570509198204768719145502164488764211785830027349670727116790618042418907474520768283023783004016482827366583915501088090200871923722172073872862763921554122373514224964085515303619424733938850729246109018311241393859357596304795960688737985599024880739008232857221268284397044008860137569900487306394522155881662110514754604306417458564738462075020192444380398622288493736044088275833424438961778994209440998717066827965595598764270436209655901980224194780411870584068049802791104783530846796688767087447008382541548574917026677527288513458872244637919206779029211062462987657642852682547554166348156637318709861206262368012102602392498531843350315791781468797515701167933675413757935612803135920909909656874022032885689691595136060149947072677800064328591163092075517275560583089538484479498883113052060712073205365591514008534308521717465250695100455255157542539886072691076460884318578698960388545016848144667068435427242549889588865483747215531847521055629973983238877971345466628734301840706941453132069908875409797130456210896926051370147022632389623646187029285861510331115326313761160631188832738669227113264251171040699355295403677000349492435804328756163323157638847049903423565711549105459823333979519918403750873578539280034401919276332369396369043543048843114147220048890665661425405358096533455076889620005512498553162851628512314681942941638024934639720077976068942491084169285815631308873120541489984598360458894314187198483372270075257538441187389289518331559312860383351656677893447855012211683679036357997141287479872788591862148640003491235880252518788601630929482388594237561112243635653542770049457389386560177891292967814950389459881862280410185611260056701191146185655056587391940241966761197424379077863677650932438945216823420887810521445773895928987715238804315720233909947795357921606482402637470818362486575090847589445147252824750312415217451544225517633810571906907112658496641811434491111977847240772534128972480386897062684656364493010948597433965920263297514221068053868640933706407952015062984932655642856497494438303102569738204123986722389014197666442996038579020346692079227203687774135220040134778473363476938569833513386773627348090319497469509491977119685548849596798448907391196534207682458391472599673353724019193903789420623510251179196158448632845208338688374545917254466815564014840560293611519665711636421528710668138791521710134547884388770357662280997408519026975408840470791173990618022460612073591629666856236229564030107790386111713825000794455601236189665016820803703624489378009759954730331774529080743925228189065808795628871799878078693229417170423489177684092648777095136511101583384348516283352631623971602890954071654040079534485428915519308761801953461237982616980348369815584217871834685783090768097430962678212590723977175788211476066205078760089281059510041534443889214760217406673463138013146938472259954403953701143768952232819204663772678638662257534477987390321400566647209873183716998504987939575437781938080860615775185181273204882842984533251316031437486096869999697757219177570104904668318912180143037123054368416036202821480640142739037747318105801811490270480099908681835690341934463343542183317406560974885399678631629605102869925134777576844928937991545173381865598575451510279628278894900017662813652502639667350611522161908840825199248613658133438496309421738307770917621461746087978419991178879080877088079986717142939491459394794951270965225830491370479119346785023155038263372389816368200602178701485552138935111295559239255728733895547235737903117583667861126613264465048403617323626043558526715529970212657637669441616075349187211641816653787283477556497132195308717021943045530953902640812774693191667896575611953490284498800170652077201101632241433375658895476227457004799561328585785534030124447061291605152459437959104339677006957956633757871871735989536099209476982945595816947859868788787369474328590709179762653802788124645705256493459282801384428655213630088796347531258583453309921403698853523238037938772433290712654446368520657210533923307636356108536638831943100084328566502349384989474944013419649177127668373494217017501739170070471091092452944580278617831504426352398281606596890867268945944379266812440513319655370392482143678347068143545737548321814607578139628751787476874118843178575450531929230968594802103078711953873014017406046162645225082503488956194081570133587124600533530827069557805084406633129210954272554538424664361906274534092002089912251310655425285234406767457874802619357449192954975967181889663163684949932102910372278688282505590283845046448697961210487035190714927253053520017023669771082736667549671761266482417106926930420960549089645292847550812441611866987192113399101575089354746084366610652688163833851044533044636938472866821436764602288122305310290181192866179520109185881147411070758133983829714717816201338028258599056844937505679388881689762345813441956419167896576090764573730747768381142294116040100033567052857822587706622189225227407471822858853547845285690031392064006009916522832518850674651995314876729099091530436634146239855031811809092219244300780894354973254920168298873259874172948269252819051834026625882491613495697254232424237169270697902316012038362728135064702608124932037334087677302937208396107952686485110128962154534412612439354891789301747440926995245540432214935823271557714049124029597471637884582047115835898853655654519319623072785672626000010529346946076509086055747458921209634312949500983698404746538449604447048855005686165446414437055608857290360782317419821626397454772762308296263517523645901912258273517598978108641802670331480637949598956996004212134008687712115578634779731261905602316119160697113583192247636676852776462838192963584937137826277033148544958860616407575769349331579577044581079865973124635221105864549980825564615173845466772559536299920269655900494677423738728825056671941067617669338961363425106347218747192350201609748488570212083679442124576557970924756807080231715438881996129597154211221933893412007374616172372254567068717888595781738264625074864978684910095894648445642651269422937788658961500975514827325648085595302713853406968287722128190932743359368046044086337241567566403253816619149141405492297410636267908252373790198831960843271691841033890280827483128445364896043089593327024469594250115023777538433510393958020909433923565975290811475975448491999352871920960764552783470692746983200218596263024834494801804716483152722108027917046595004614872371209496673318442237632116347373169584822967555862421025640931596653905967620587701484556563883470583582516803992237081672476804350217392317344669747804238768020368683701593738980971483763079971956655592456597413610568836209746237260910336097260703730664756571496198557777782549686052293298779390050288215195966594054759326555030658998667204339982320767863883287510770165940543736134998533880003240973882472148845654269103361793609294077968880598320685157777570980241316765475083663103412730322095522016506072761924454465697251091526258942135467502750086777444535617633470952664051384868283400481262483247045623431922870267565496967487788782427624482918470791485254521393290523743914198993788827251611225252128469060764832157404553728172889261190447064208502809977849987733724612367820911477762398939033286661530605755298376721719764490750544930034994145508521492499361186238315838213760495573818303811480044998092835278350478762445785207261952341922625283401317401818485468301808175759149839694681427137860428362877382655191471359774231326560355290593569276421943247306918414424073085532999954202515375246632721336466164780862382269628015310730800662376643662141009021508654531836064408351197405305505965116241900814214844199294501827615148015774153851160221726550484990109747755748103361445973536227112830354006035819579152427515686102943930974675336133623352944313005882795389577085276745280260567216157387699065228470779246656449844479314596168447242888323817063012829466649746110715669783337524646669502167066113837005899007443277246775552404800882395552542446499245493633710022908957736524068579551002530750312950664823513962647877732475196252383230943589511967281554038934053188272681707983838950943739044814340921195543429350848787990864882078829797233065138126516901374421208900677187866473377252463013292132402683961495093528251636440754965829796975465083682691658834800736827866924959671639619878223845513068863631768710204852796235907120498422325732709028759246234536932725828182341146213049951031711304658672137037308640355555429941587968260088773836514876032229447470738944300622515254835988970472367911552747123928497857862993357140227592722552221976583740567614587725651214723980635142366954174540075760503303672482531397242895682264959499582675367919648632485476260773329774787523356308203141939537599045222300445778125849498353080173298427863039822160716153682483106301364353440669154006008335058688709592961306147555712857304316915324584752820679484274770780850800869877253866397784128431077143485746830717328824901438253180939319419669359938989170546792005536956590297015979375927149595400008414929762179892117926712249128325771501798043564838885703365238462541598732753359955476629981168206129545222888927633237995389882737929677911125073897422125751116541181319880121377778573141207544277802590224976873701472284963898918793247060245925616373064953306434361924525203406554452645889681062926519153558241753580379601810971575260551944240996003546551390542515661584124744491199379046719061609226580769972985176655031956676462646455794197493939854678959092195084780363831804561853510422997206240808254209548150230073200778866407427553564749341576256265835995877669962529760103579482692916248625986300461815272137774346421824518699211935225704453960047713751066835275559814539656592503276265709836964298975461120026050578958150016209257284278680059940857802756452026108451070509417502520025584880191507135284120023105552125858806616075611425000234861938857808649156360070335671123936217964769597838544047260217208067933722528561631889053250176256990719538952348850501838870952718383302979679195499661221691398316945382769980698919401938837581559202576730387554345259920145425266616439551754219230506955363514780574121895079462850574397278057921871564207831600848797102779120874853013241643610265679591543572889063129646583057595197233475108806088235167858991383583789432243191125987531470661527823856834915834141762720609065611022145893990676029182751304469267478726383601060267992029089299572932562875910162512841165229735037008349867958935869166034088215008773403858047278665612700716446249834125725225934327404805085157495612530213503593803467968305645207536147376568658310052531357755974196132201596568274030610161958021755307777136364730281739088447022093364766992827844530643682511316193643774221613913635923228641197211839276440415433795979321599488360054609310787107798431594248940090071071177790067536301608886849090148575323775099961898737885896308671560045164132468625313980476624090972732881756598723429226624177382283967170333826821552374363594388155251390275180820973336745992423597149386930703335637185966842449673125720661686402515586839610353815529877495548328659849278271435329457871832200932905749385789078236533847446965230470632470801457599801476216407671637864605264130935618973175940098497331273561415648150715605418241075777058049508196691658948591287605566209005225181631292137944137696377132835822553776575467180476361504265009398760962337448980988997416587751948101996867214436802939270795782609733424629497608839110466707679118274238244964514662735098475642004904609284617484005699516922191132916829726823790880043341773870490485802046674032935015016291478134188484317960217331823034471632074597427207180270780405735209556537819814420461978323299808952172306237240684579779099398725844857728786518963133895467281592871105181093266967290777277129482777533655209494763287488797550028954810214224948938166069197051278687885809840689651250399860160925868535505859615035544520807846133895250614985045180440919088215328974728819496031412924408856931084901895457041686563370532389090157172824687891898126914424519756366450434421221149694971030641930295009033646236120101679092516666392445735951022564597395452484210422617663127240320710849346728562983396505562024616208249859396361032155454271970956608209318375451406100048359192037637247741828103264415599003234054827286335836784600858948262245133047369137787399410292105709838588753130732459414487350370191311189947512307664224050855159329488828506986215019115197094805595249799331947618572244728419099093583342444474058201878591098730804272278068686642254077284805873407301314288469880195828609464301480224974439677131481917300777954375819141922219075656682796552000139787175368079913245384103316061365494265485705762435636973190658482502039970535808788204400313552932133285762513903863029623631954579047004911042772758838160486092527885957842776436894294595174241737260176055416275030574446992567091369694635482972708142391225986708796825255912776084762929070548027897492477891762662769354196313883168898446745450343382470188895839878711052605574375779389035085619213094647651104137347687887844173516794926578082801163959533304089473115447841466825022101654793000364042323457490045664796665292185603784187660405272662619801670615905913344344739326189969625607290724712896069333877407827929536165869707870942683476968143895816781544774257771971094815171492149616433112149691409340396442144446637233730148010664983669177293227006555229387301850911264289797902097013221451055390515443478094151257986966070222526328607370702892167740780395623414415478572627620993994288355367479221888614227022519921023658142043033107363835203398642792963583890761399380827133533020274736503304478872898048390534123695405059071303554742307460949223714246221779204272270777563054372780549798587216664856656832845115745739873287843295740691055657653522938996915323526243444736245887605591367015431201906329165432675915000194857279955029179039148651192811078260377982654105738368907193278869730470088668730658053461873131079537854219290580790600358468480077181474425398908330274264245805716045077674302296348394575444737844993820324374293781343287908709762578801809202787581415435083019289199246165458170097455048070657923165609598912141818029011395612993025673771379011193816224032630996990827586372493197157455075442138881584703007575348545327300690241853814337198230200028382405690735271199933749210321747900084689263248373598315129746523307227669435583802251127505529122631055331742909727316424605119631479468254630015356378739916786929882682427663374788863001744479819732938760412524624564059492737299544196852256963925456999701157748838689436048899459654781393882003450292150751846948623566563754284563702289229448139641594793492329991444190039185833483436709535360530718350836042731553882834947994571379203467723881562067170717260187536350994354808099637318639249281494727917306747530519362623555859364518478696169778086107645051790010038662411271252613257013761637902349237110501356339415595464793936049965524073964082612765415232149625984166974361583725369712096474138907142062282358905631555962847727125642824216440330004288882995205827401515946810481079385300309116481955991981121737171357857184157811104194283706481064436270543391408549252913668201583600073878086410976685658324665540165480104231474457467975168625628367467932326626105522964372644824556973284224030002719265798844147065247363125409495340556393506003480941283181455065806044591541678297506724044211286718947503606597724890594176750395585399811369661128657234268022432767570393259041762406246404754548697465336987302023761365217279288436757410112590335996900969386390680887346525443020006935944124190765780480178074794223723794896619872681393083906727186893047038476390966646398412773137865431262414760801598970309959132167383505094062639277642559071402567802280826792560887802469649694489903492363744406010623101603948391287037575784293879640530685260661458730979792302573591545963940208232286978414318988026384035871858291893190629550476014057487289484592031452843532873890922145080894163679322842706797152328516269179888946844810000712208507803107359049411199122448069780826098019033772674016479667735717141527222937210354292472478185371322120676785021708413728838212264379788706787730448646429198864449906970583456351124855459459119919050157168874433659604161193337339364614546177367492081280916591266390515443767719785483129067188230754451104904174191506561027746082155951908962912997013159230201136255437523654873448270481946256793029128272213710347028459061441806837500135793090823672077415985491863903007792160218288345951426324713925090997485312069297741657737561315865072452222933735484586441708333143223913999393166420939030023594881263860182973158869178228271821520043537021956056091888886631410614594898721471140299694043892045020161248012522013001743579799180074412692857154581608613584536239799767684607723372780444082630525893461462379993546229574974351532065222181533006538707202808444444058213275379564755950129719705307498578242067769403362929490141217854543058328363369070426033446214417658531637274318846114145231801101658593021408807591475641300252471553791380419488275627571039405031868299348806910366419045953532939026583245677621455903948139742144217553643954913605846599154125575807382205809617104737536417658996882803730063836969046573797862850273030654020748671925183946952984103533129235849005701280335628239501803434590066134806016482263837677156622925065197344989104591701845468501309643294937748544478648316554865717515006374876389926552381764405471009261647096419923422750147689771207821779442442434504075536408915355376792389294856968761234178622794009186024218423719798013377973425530702706905357974670080000355496186561568520736108012961378692088178828757751980960841988575073531030781708847577494505053476767282445718268821885583119467846655655034186381265762300907617531464020203462113148347903102218541419771956929947242527583082725948384769100054182518187815254949343678500573895306969243214820883589735634094545638585075344177029613425833452244952406027319609828937323362793419587241626504545079201719438546885251171248169658328894838623017578423583822088617906147748850852265659379788493959316114228868482185015549332585995845163023632278631837644563979207057799940134283736649793211636035516422411251255607301028226217371761218233538610021201112069350989774188584776200263796436590475071358406384018699536790503886732893010826152611999848919349556641511411922229594056651602387317659508368867304327704031013894748880343734170521495614060196339055998597591549675329344880225743519314582960232851306193055452996199986238806482733598197137540688552759984298651877803361547716045647494302419571026656739639854283849834685003232990249187610568026049437328091406590049933110548947200706060351963587893542568927666538717542631691742976108586039124668707107316372989057095849405730067321186396599623017833134723944097418859212094307859608892544760959111438561362355538336574242084546150536520802214566385384869158957738722409008414093496048694475563458132471940640262123439368785713128847201076008206243061765447910499205182157704880440868615807094062433488402386032985595442275125512344416376255057670683428712069474950689445190460205392998281818382199427609696719661117188416705433080372329983403813209773338671730527182382365650117070605064619918915928430243437137934791617837721189275268732376506387068480490723748223001440753024922415494761336207409702720128811884537516864299806830641388264553579384227545599776694383100520437084196222040697829808056114582789522808092669701841043196118757294543714953063436705301091532113659917454841125431848682726080248821561574295673571629606973522698573075687617990981888343046282351503249078677137677191769923428945345440442927832101459475390730849034994349366715133291668636162026705749041659825371224192497992216076142969799813604063992465308725180390309682546383309849230510924569627738219657107189095730624139301206064855083621700200605799628920099198830869804593268702096421189958234925302489739219865218432554900189080406894932427212439407074044841861778551431057852082292698651098503512524672879776674921764030986956705442303275671195396028850255871275526340320217683406324762595460624280688821370104956228867863644706439892547381319230933058790177858951159201482005094182791195950215693400777915391558579042350454889430266949736365681131446659841303979724711620195788868216553297966128841303169145948306096122971369933938456724904403329919144846204093932235995782780378336446141410804579024683221863854990617073635999671470151576647436116729913494969221864854114257244704917003890126399635777738528212610990832161651476615998567298610014723504517145574269357222942401574607685594491703345216424115241493306584236138476377789057458948982814552482595395485330631592723004306058918364736960316280449648236040955239686261749484644739166794558508712192310449807217509305527468504841461365117035417895214642636470384826689288757037571533323301088454041680577613722529097950304364603210534449857510181919112739605906930430586177043564406883943407561192360002589849815335419513115255475778754945515138019153358250818608567932100428782853969112098300769553641565564078185017929644671368626885672846492931965301030787932161077380836217010222343253615022112534307691684378113058256334267590184882935839275828838127736766134252135534600138982448528323298918179746119138297535610871133534952060132018518271234740232902522346836235940657833717233821282336970262398854893112564752527390304171807593291989957816486906214629591184744195986248525506028259333911817566575686669248923941520558677923636005415040717045818360060672708079331710782507713648496170773090651396268502448541367478935062304387129001338748961312693050632831932419885909695190690391919123392904423153558795972919377850173028497529054667466703030852772335858220321390573457068319634483116133684840658503696178638250337875664286744157777737064232736347915582130690701066597918358005869170982077712745058018918809373199548303703494837257611139458337416017358591571561768910454993014492022946931630123080901208154761426020132243436456545115573481141937773739458822505659779448784956739198835984666073326635476857622516191038310534839792570525542359632809103848943974318297158397639710114026387938945554049075251052971471498542036716679498955612555093578477540859441617975774543271439666538348464884872018329067202584252204739350512647374726226849188609783864335840679841929451308735230241823374420530037623921746006348867692512519856083453743640849123710994868522889493403725111966730914019757480951029804823763609848084859985153546831466860491992164426936005739071950585513896617632602644795483310030609032313638155616859194305629750792996491120348493058936243918588049799882097818628804685506729996461985975264162077805890778077721329336701219841192274704141450404512084523802723605338700432502296092341660430774728596117371545772266251229554622475966539398370273863910734746902945065689705520199217259596691235073341337545534211558209138057929979758289292499493242107571826079196026800175618434590079881879251095676160091438279664660298635192093927443248232339042973521179576525128939300443792689503555822970518558764617612139436681209060020069862312499249134028915735178244255433528112872406766154396095124913815705345179008953635817011678148112748553143201077667202022254300077436971244086781005182276583398355455471816602431971568567789861659424215120219426205453366009864293245565395014976389172232398794902015193622622396358466133711505285444928828487364945965148601023949472388914249827070789054208997555839646104347257867662183613416874360171314545276324468492760545744174842668653908726789696555133661255956479205955289729856972818755861166333722875337871718649635230117115841613519829303347780295669434027550249706368477044457285770888529933823178067928639657383117734135625126882740592721275659529325693261740356863615417949708390641123507342998195159972476054451362110743730748971482154225916652029732496012584526654119736466459528140227072421324697351613314364317623255601924602693870290655972462714137483928139099176645724364002108761779491352084136912174628596069019132499759175450608756087809983819992253520394057444234369002951365968753238162655781160831534966653267211762297686972203406598517121275861364601779715898790881622943313946002903649198390988525650105770509550738454873689068376193789502488619901991544044925164706294685538868641076561773666112989520736671902009799026529002402108778184737104176321106992703277197089513679211307710838202825879058895887959422798221686738683494961482777505940564482458284177588759924780058470175366203376859848643615732771901990271424805373731098483800916248439389944920472336676142411582839398635648785674279589115287059860688887655748007697464624898643291161187307760762212949723109183257601910186375194866244414726745669943888616906133232686499506617081578835967498758831998541058680764850744399155441192384803800940825581615527048992328122796373488410202102867416903269504059125232744048221728395177252278940634328776390469928949532539857163169439645089025321647687647144504802366922350944018511800762152011445853096785263352338999188496088093769184778447929768556790480971462006172598339544101590356596383431811206920660318074895129046096994534596118330840495486050648716750880994668155519569838646374571240500553475022315238034487751912699280690560447694545852759174074835773538120462995535377463416388953933028022783729678438690611479085622061490399739938234072016130903501153193506623063126956981876272109885121615013898069732982930584297565680807388712888347244248228939348978608208999685404147251871212523656991335536562462023934585537561608916055678480535552346508169993974225512130472032005579707367691415790980372708384809405233510966895248131891213128825726435713848811038508865533354624596316763443008347147776007690995392197355702944884061799006775133133718710777460975938508990396421424602136299859702853216442538887763144002999120766099765576201374499318554482690362594544347813632392970642141310688626947811845524485553544355288350632965076049428608142171283593904058503139852961285173165520776641543129057436333903629556831720758964544768433660703111812906792205430520396888809240907679502923502388350842974729994302917537674673189067931231127165096708618173624039158582655985155693593524893163942680723930482378105630116113359495376345236805772428590105225934982546145450182933184477762905478638923625669573561746229624989835832365439451989607839462526169182620432289827799180911592945518796974897094051250412106796830329189404617625348443869126617334850036411318394401228870401187072809438900980481289248394897198270049410943812650816251940545116078611808043023951982762611642888556607233825593431147840461627685399000777608279167581524930520132751706234989557939907297206100555409089873808108176625340469719371880850574824643828321984531686849528827045269297078886396783444581058983302956478158615717136400236841878738191115276674754593743995384489268935090505192933130989570629951872643734935562392183430229847185232657152698715163674374356072349942227326535238610139704186188932873326695269624781244974312492044723056353021839923934653164071284729880955884499877356112495645287085939625410895595392074199846416192612253568288759420925345941004799782407338699456463381314668731715763903210628629500176851663088827789844386050147482958221225337219787316155947638750759804396824263484344663621111667989616894364859717128524833265256049964876610418620803110384922878964514030940114364394073409568620483965447038798593269878398735660995228414477789125191107038044280323703476675613703290370139656047759780551233676165000826172250988598024522540994366616632482205952652091576423917078026044348334713914910179625132027734315843727230433954175070110109249669226501010248836935302739561280817340791348184632026486196637159137651626053953845752199163229095240931807055773936392155928897627598163105422843831944935286599975448374517744773078920058364022930079216413384887256466405746360275722901896033673527094120226141844659281645140303017394507538798240985331807610017215292579307042575555018520127004430024483195552312615549312953456638649743782135267361912799116727176396835915586706928662293824499864887483813070702076798380995652994218998101533841115988011809450010176734636816019781514172208426694149962911337114493896095774287044392956503241538717626221571247475694444530841682626031793788416696232442234751948921079569415762251407462209159083183419407087660378449611437710058781945547920408979102310019633928105551499856743880859399992193009860274870328905213246027489285056104567323082517049625419394946826662289612698617673033306069267034851026819232204679213834012841981721897560780672545127685943849689786013676333496168951503787103401193356855923875033930802459160571629801638267909095492026975518546444529037658956539468782921959600584347771448590272209107634154324900344174317578543524120116307914500175229120280221739068455224420512292850586217492119579583351522781262358052781839751130920418697467431993537480099869646575192640871367770678072990452784098955230532779554536596537719142272288918708362749201467120314098252236326371831349878945331736240036109386125796159794912945936133430354791898855714792405290064745234767713179740964573334774322816214986214032257548104689325380918057912902072864256282408920911701761892140703763328605256754253891498236337843827587095629467836707639705171875061457311755433872800052490365192669629186455761589168063427757414848991599625938301168932862186822363936032213820512538483751044568538476360024039409182964911175139743567308534574963300181952151401782698577412776762791875496475624507095110197736579110375339403365244906016986996823625917337135309407801146155375104586380257572695171298544788103984548537704289703507418880660640560771234120500560099175749912359076301225793272495237317558155825213677602641764892694584233212520173338773467836054048631492736973724102283976508772446336531871997102644510744614380475388037577272969958352043268936847337950690124496732295836953277066566517430746699956644001035702765772608794167046932731149156786584200018923281588687961367293632183471330017282085225453228089402314362783690811291762351874916352515245301896576040626649698911324662497387249327251113401275771917518356210932481192433954240595977490575557986172958654395178828200124974488086302807494226405054516425715081900405955616716662601562709706682951399993571501017820818798500075591353346623333886672053421528310479972994221202950953551150403456005011572777049016546042249241949888034314357692862109513117196028213123278624971499873494459502092402475501374149634027801881587443718170475643090135931098481343557455063240617845317625327922164914161914839101000068689821403523319805793032639173310991097224591941210246797846710256524407839695388882452688436106260061509428075040129662656882985846213823549513647162787971225989109436694251841021450726530118604889247288797138765971435771637175145599593351317882188660032083595621461195410882021692512906061492295219373731943602097243821199045330572552087604619474259612072583139271533992795330632897050391068049392661073217839329605388259387182289316148593661950495093602653387647200901113514385685809262005792949911646943202858459599880236822174615906791177889600220834440329711976734001572523769802299152052635714853949909501443869507051433597958603442227448293820104714511369537307365821659823329492728072182450010805965737996069885489730166341282899024618270988088896205619046835154644384330415258054118326234939022423916437974681832791419313234157500569620977356197723310021513560214681294166729231140933586569891029391107943262992902045798949898596300478246013925718349738449747212040611741921365106501156272097230328256933227947412987264831162004005072121171621697633539785282772751240301834016975776690685334842815845922813376148325440853966731689561879185595787347298166848833772179234742246953952070556799497461915729684195424375550292850025682251911535593605661875329353189170054518824534569537335522446041533798110200936645872021876920143004638929414327452419738704130542559020925241564171632326223776980850785317379687961261629115915190097429242556433545542294215192737222711199265839260991178648372183988717581986363164676522889985083262682225970197497208853428351240145377723259113825078307365661108122730146330530623761163106389453880123256216833766003754502198061494233971266386236248119014000865617512200097372583121900450129700428246921781096610756637855950980015408370683151022424545900266525613844908624538827487389549833134668652466809316033467785253218959783276281950411255571874949846306821081520196846377306140023425809072902693152986250016894447642599130969923462388386843766599436890099763211780465098200398283276528341070050277952115185400960091656092146926124446766110013873798356491975633659593125125274146394145174781386870509413915151115097303573917601863720872967525048264210217355317740242306071597236562225872504179007391916175823989281393400616854673762379775739784082578145439577991962525232116057756048077928143194550325186616747662968927827205415512638718754736353064417625394400683950365416953135685726115083026519373351451557865546831995452743741959134464311365884035565389142807421202271303485957934145253507329850980577844886566685908699364879631049845172068530048067661671600037743758056804252680703151936786415488607906680944078453926608511906521587936092717299706294030232491280726023059800446166530806395809845151843468526581589620519453407800172655446135325170499949361367388700008069608755850713415621494385070273350215295065652071237311370347042208465549267326129989364103226983422940517978222837039704577115147622388489501044706634068834238314973759076938112544585191241584102542594797196103668361142449515113984836626536312074668500349175877576204671750141207139794417372737949714584032032066777386371010702361061829968580772130629555100080774555802500132068071019157210291854443406377790695125192652317131803424885447253233497214823692783226883771315793249304760142819248998206233360527124531331250669329332151115584128120197117551947646134634367877643326322653341292782414028359075533944036303097544736909075910777246773169810918325544995400469972543576177803249380162198363107486249824572470187885008677178034671319827960174387317772970055351723144060178158767620709288045429277777310140478665523093488744470307505037504546800196391314383482645186922541595232122605726456433858822535261519048889418748710920525122932626989376142100230414468944944836088047008839764092978600694964369007506405951869489037722808651322134814106088696299096499010565011459413963403081345744640220979904005398435117123104791694855385782502880388224722444692569066838894834884158287783137417431292496804431580822412670549863261939510882414995684719331491871048225227883348614885438222611183472444618548854084027943158791703884865555462130637743746658535971131948002794796326951361079959733661605076281119344211122351721608567790981775224519236981421949042380157436798925606495852022792447297387207380011539886342947729336100123682166472988883861155847315785651606470565821292870852584446335928833578702579013373128149580556328132501226026601553713267155969056908087073945026717058232236388623807787534611232405628331876037072039366105670326878695556860921979654470469489527134473032776449654012399323235002898373406262298477169007202253746848861677935739495961583422967763426363689752276234687135983962708306816186584989813798709582827517414696694595661850450045885153192479436378533070833368326775707774250661390265097375775411931914092129240546528379392509367560922036335872966550331745051713128673000066859668881986679953858575886363179162326563154542914832310625042088084933984067274906019216428727139958782805211095638314699763151717483012339234891139507810061490926238845870047562031801531387067490513469869274627046836384049458547302362407231457850060819354796312808622687369044899062088370204678708534149179259887443996829365984275063517227052323115409821306420665546348665016993359827159616847770310154580649946150464562189245598935762357369280849428580250064434479063235644240664686950544054998183013301689195134369555335237730696126334044310956689654877564444623612185463496470651261222288197700767802361755550459299338697566941823680579172794730459820768263326425337178120427869632539519588373910531323522389363875561894745227253063572500185399811973314026360715382317781488586387535456608151722315158057950514905401150392705370000642345717815108922294421047092583644192008092035099016518913802046975767999656468709543704287919388191987339445196610902025242095297592661360208942484086783646982472296340948362859669108092920090876712009703954873782027544826069165921179180680200270636006294322251329437617203162055072941718266943493719957273266988295909984606421729832342575255449270863828995866862819817502944253487468156129046273005476717534567706847672368456025820446339667817450085609347635754855428680131389835472232284172670493735206890304230409986569792366837187097599568644168286504856991892774074363148628851614773020432065089699357445321630266658966549623381041368729219222710312176214596122852991101368078437562983461148500427607263525760422388748822134687322390853017423971149061399939875854977616471571004318233210331047851947142911102939709702488817150489826752644009130536873823675583013877538595202472397472052113132108269737087976654291627986407488885418572170981496739666122197636843912065425809486971782613176785059684344847686912557794658160434012987044757372109077672343510909007662215152558025341685299708868463502703798017738865424669058536111620892624315753896829273399724622860123275466376059411184785032786772870409046223128260578857529830473186162461249699964617952056986317700941276245741239202851864183201536361859347244552005445873543380997358906954710476943700559169919080243151074022014432804438339274708576396405130266828868623575719798998711836746867910178033582677721941603317452779001906423903636907042898081453995448583289994622507874904359599456536565465896964007249213312767082347845709483766393088785452344616959534503422626524538685671677515257745075237620665828778980357342843503588555063423953149783069539381049890513974901361730705364531045630223376326082987696221200728847551167768734496391344283703035694762247931464934989894497296694321330430804866826684761056474428738883567865512288510398820098590537456247274237387611804696368504946688951502987924205105464461606838923645950840362595449314050872457129713018629479950233719784891425465688646927604996036008177737681342173309341751876553546744814474509906349692014486396700102888331733899916826488614483634586882697110573266765140502869257606477661375529018590892741054840351544890860355865294276921228685169324319470080537478793837833751702233360966458058303507110790738762432560051930887362055264006444530266996091617205866579379280604027987825525135541691072642496512776788765776718529292401131727685870554234228901786154812937641159438993295769698264894359261494064290899889235862370212953657464749365828827712649932873391897900316496156502411953335545998562395841931056591899949136822412723836584200619586967337187541237335874075131963023081973648702399540042995805183176188555425521414973907033810646270090281062719934447459005932481194451735615435660700354073622120579708203194849011548126622415028496767292955417524547934767691500731301636900681671011370341265936892211615230956893685509481702628786606550730305285754002316115167825981378243132149911146362889562003636417567818233400145445675692558486176506268342985897280415033568610173738588376825322735328086259767914667147244073197431859380308803951134977219753691678871976660010048669630657071235631543480912432288499049036917283998333062737715557610794383701040881115958593331641483056222306412470367203087692509663419118528877049559065896167008004730700433264064330765040328242914290518354230304490663142784423059977724853614237902796045400007526571703764213825212292402018585979800060253871269266836763006164713531351530921641185003702999279816439256984952517955872565746617832185407465998038193772610674774707673681592973224258485905434625187100970657726421334148652443896278584702425511498695658753451139901125041667538506870491412371956158918954585391869328385586866624659034676592035301774555134618796549987688898134796287533841075257251875193906763862102878747528201370701197943398329032431324215512412001324167959599585637406735699504236283714138754757546584660468408014238331063427312583682043665776545338954738754210335677480145237807124747109695197023432318897451885682903355191333660422096087816916810662055972018764534995707240248237443443084079089307130161759048418517230477018770853322066423448577202674155863735206637342592217982796526712879840702198023340372748832635936119369767077189762081487107284277368483044268527546132794878084814728701374726746992527562093497625346963665670943474755653746077113589873914376164787459044401790065203890857232221763191879825193856097886072293900004653444102046789369358784887601626399583171609986680829485623321101127455518022046996305998505649411946054317538980474429399549767595217295892294822713155120229397984836091538638246086924065865050875091054373282956263470383919222181791991669066278272252666083187465528655203844463947967746356117632884353545874845428785064939619861094790472373914339823311543173662272792168661257451138140844133965057637458222358035131571645875198093175763503091579898667113419633249510985418901859147865553935883486187143993259968992227015530818548418697187144623771465998898863487282857927185540770189409639790344388459210762746917474809675329168631669549818288203537961773507908173863079168134083850512302711741272219972968525824841315301319691252452308827841444303976023449238292787561141515992416062333479237438263718528142936929916117256614332067071051346365533269195693949281813656246705267438619380642649997721685463892403311852695083155850812433201010430629948097025570371689537248186662183805992526231377589742957829941998308823040303894992708536685911893550732232510911572697461054834563448001828283704420072076267185025949590364488490579767720858045875715772395071246084334506434953014784185070899953859070683345650476643004954765429657105226839692193865275458257484390614358131188947858727483841440692061393484996813950624746691037598019100910790849540480359960686421430665816235622763688852500720555715543538755914511644381672432290111170608206492730574601623294214782946776385771445223673663188615543363700540075419144378822467781709039740869624088503567855312953256917975829371951040762662887937963248136587842910174371482471724516404752396243505654910622410230448098385304179586084718517232867748662451538921061122576176493561667939566708143228220114930484796515220428070500560897700800594793535517840171500588277075343400413186587538028031711565235988874663317261472921941707931368966959912125704430259043755374141608368570332872192920053958370923975985766905991216199922867349515316816753694748793938345109921485652586008392353251490855735101689096721415616240643651692659176949557181583484490291496794588253760797004912557566238409820892739755846109268909104705683549595269531632165709511256783068021331692449032256286409806015400048962750418309085638259022150885592346970323407039961863978627294746233482010015269336201380003605153964124081724419781365259088718854735722767679040890653543086161745591689512022195515476758806086617559691334897821377533807058231019078313651008261351627535897398733194691684702092979364361001860201791902761099290224173654338504434114213471409112762101276847045317717295138038546747587521094203893263933278325251565716489423499346856659075574497010773389936737883575398057027520668369025740870896095391227259485345798266944120988221754839555203467107322416007022684229575854642743601332677932095496044452330348598985977006914901738383616586679875706620725152061871384323431516619948777532895317184530906125508585298873416563393893371096312554770115461539009364211428264072218561433660292243826482879570037224739515207429962507877884080287148364907037199006036735030113529748829240294200127918234396406474950531013240346321433337820332138255398826785619147106370942225911598560347195508927200337619031318908900607270259861941704971862465993693055523629344027993204135900692107127117361723543442169185249764954731947792408512755733872630901246863855241786230034224650070316929658320457828265440472139612853003238965536318324766544940466606903252656946881656744552217177972442799880296952020349841033222387537517862706730732264339500069894899637764130878787026150668958046159121145324187841731488771017211926724495115253842396586795731869035428813316677795141001774119803052118072311163900806794388389690562859373847726038364013752048733980696854962252787593692749525241374892507231259544316992405172250283117945872356604392738257077303597951831420699470546841345543619816032226863975688920759133747067922738880244853330834065807245732405755190229484344981539568532938051862600736858437679741308900274969620532980446210400392126687222376984915007934989737942121040998827447469572757435038791074715892763102966289269509171453365532790869932259588647341950958161143003989746034638255382597914156806183430211093185596212871575181504615255469794389603843604164066182678448625789318502787903100183830273241223664669663709228114346727705785430143948527931660339926680745839463020630221049248139051462987382263459618280144097038163859908204886539749857519995179932676868772469209380631993969134904421433724977098073742516831467714397447293959293570412512604661165119545339439996316712930915887489191402771779287982301335721417112507987536504183407834980785903408664941658528819055416358891853316816677466096947893700982981267546173863680268602497993340023503821592308074027545616002388627917525759591684316298655042969033332983257450189276627389557106483576905515053835630189038242414042090907006082201967657220217369575122236911691892630685015871932930759633119658738697301997473048081991251932030705557618286622499039724169311511765798866575696165714253503316363527683886514038780261771736735780341567918086855393591552390727979553724086745808264334557802711078035068834195278576173902003007029942208179543630162865572856034813866274814511258327256724861130030562446256130805886943780070930752527031789634529791179254237776240901654065888062996206982434895026861130936479658787308362262905259171104035841023831724597905306450713474577330150761696839737585572084733179382820461786751429508362213563679299392326666296000384251401802973094766921795251849066512938005043228047345851582367926154766018353008691961773943458409719876825981102477651133877420378450633219764183271169564324558905590978468829947323454277757831727989813422923009012343611965575584626108304946184058772184594297441366096014174096710838997472238041122336525582306186755380312583305077125611261214085189616302510139796965688018145186903221094814458480631314925810544483325712604967160752542502296523882839014278068622887967957386835779297920107063628139261512190000366840428728133864651937374013360945613701958319855564018537938212049982602099167160061983028557469847984094156008730395466104635216183852368729957002139301577456785176020413372912585337151543751239494009069547639383133848747353107854122247777551349005115884092574562498610682383546138849947803188914129343029211791252327000664674409684139174276344336418880628027699642286635401190469713548501795247444934078428925862040276556278741749583265461927866367144770634471369734661193682770202745257635612452151182430188630423580909135884766604381065054302181430776336951485737633535224256435454607582214912758004411293947670200999537634019745486168965295485803547444410727578682330508369009652620115879944776680813953226740337545248677705038720023301059277533595689920756124216166693463361205683816266095236090897675081331127104936836310594997902830684528757260987155380030649079581071422560410907648318038856663827546498878672658494868867490988966511280583590492913610628303398929488936356311637800863428029783082978022320983583563091763196875645943515777908047524913977454537687809109199690927704142295252367313263624979519196615764286439215263562572662762952111219135299054471268801227124750214372868781348987198956236345067869965407287274414625166158863986113023540231566407831212164892518587068650239197070992919375016158306857349085843265819345266890749600747825788575723835039647313811877851826319502104000264595117509775698515171687428372650649657760197199265976827217945113125765508299139540316557589910932835845675933067655397806183499736626359469434949761198397831372337744317079387709695742142720341213248558594036259382825041752957114063397009205813367248158119143777456950153377807076522869881311274070695616006728443260451431883614747554488353088100338798423956852268436305887550063439688327499407050018929640374403186859301501116672323870165185257166319162326215223301242523759616108155032441587222421084010460219019173316877569508114146004372428917993334099457721356632243774068153230816671387915399362505095854315424907499898491221006562267844398476175947371136831987859263028945654133853200983932860102997030173550296128737228133504597519728590599634827041071175735087226865773153658895095994820491026407331282423373827624523918966719351440680275313082135489109685359891919951520711459378451428533108667634491138855518911726760221174314234132999368031435991403833313305792183954222677332816732436121212886971701751553643121429982691757895568076036336554301600431297113153991658859784755702614361584206126648622827276173793017517112383904636801183704350795522134339029097515140389423635087766668930277665169579744321497694237015589633627149520184828094258615000417782241227770102244031978078040646104720874286519570027152917517667363528139141200302972665448369925068617285287058848535600256176320872237176722938442374307200704011451938738796821512438553766717529366027602889856629733553888774984318094647043659904931896918126790564141294017863764651007344148512540766835872560630716995737344584717740364984272123266611372451724030139587921796304924695213811451579716899992357506172158376783968149815637442649572105979493152098929893600588579417158027233589856697054736437665135540589899982516177278344873878688354357875480138934197014337495992067583106219381268254828580821113725082028502506095059464160578781504864318128837837739847626673354330505784133874322236920509660944851401888842338059636977625242326719886577612884215904757123895192326392333325080159856774546452224757981440092609118316129498907960117712149986671201797918490134124966149176184430074520465589923917074299490353809350035771245192734785638232851258506491810894806497260944818560398792933406774255154698254733127163098370506467262446564723146763784404661838716521100667058133996167780423692160165295304218944190745932392797606844905973248665937113496170125350601788751760515977086164768389809951362683482496603316715459047321406164642505510406912553922670423405867662209874996144993447617617427973280343033830843874974979726297326759534190097391059824130522912396923499036776142708476343984513362059783037426687077760374725447226476172089300161644403389389597457710563934450790520081505885695095071527908990047276321799847157117440840114308287799053496815501928212178873618641048745476478703539752836204625846197389013241366493324316115219895448408453470039082117575130507202957665276721337137512410093691533645907808507870465705988799200256889405548673228404120490507967938472691764537176734285731409979918788047179926398902057529311987343374518176875599098144605237549371239782534893170578344647713016028311143987557360918970471274344582758591587130273248055411376691723959212731218052818374851158698617813061471010558611787583724353243101133301986823855602237984005482050865497198338577348080815243117725182027424976526149229659329239491827333817209056776371508789284669531645079955174471764207972819106159493364445366671930419955147422041314832541544591382396165509764699006315550142561840982661001738630298004565997159946997997034559584704265321655336876142482821545897836480809833762163593798323305678871753527774854142809087778261702522973862210845893788608330278064524592572006660894533653004308467091355698821743956357169581966631471201732074002444463676227872426853235763642310206869918382719821905020825545480247815654368435477278829480011047388128751069964709134967022489980875473075700312339785130807036194686672037419712744545057137728377541509799872057721243808885527300391880162708147134993480112095492969628489909522759266529426359918843078290661311979976327550969242849874283188138251450986768065300236829711665269798255742793567468402681262478918005177731409282604597251694627502095124654343232058456665441863283554467232869155903249817625756525769838118204269590810517260213611934562793636650140094535968998124500433700429400934907185173615576870672940427572763474469915685167169473278922345156177261198841680894369775937770787614710606781211928165795764333641082792245228234068334681988934027218194989152287136639536218459961796845354781733316979166135700074202127181468155809294541747433691594093861242512471867160629352334909597678682060467398921895555494986146882559590464031378828818644514286407443689841772796893641541451971321191122559515495152020292533646455528504575664527012013271935673503068453494686955459513627462644567610531662254894802530019731800978967599195898101058489786255037831500209732202757658854998338916727727936214146070969225258887259623488477597580218600740406119468548303858379991236174041743314725181131496206464494788912656898382814732728400877933331035224577357618567884391399577244891953398915504275604783243901711283071457275564986827750361934136605467692266558836306846867504587701986677018160523146031722387759665851464382408412321311010330525871476858678679261302547998607167431448579061910314215283643006895372558756863111531309320417967901865630585019773423146996796570029824172951317287360477434813545608793014568486702141581772488706216989345022266459655947581750163691455281800501356975441569258198094615064033728873094456764979610414305798511685713122320053472746588994804571948477432480797045622530519155711923640120330417916926740703321477960079278219617894768740890786851998745246447820496404939270212236398640716687053158919599357050655360204979735500372744841018745317864240234876628678314459268788413681384908483715420222756881080572704353803417348628653420922873516307889723696665814627500783464368609682305667512159765875775993279014917365437736825827209236362402230125901458068996005039137727245267274708033925177713549910401827065387488516384564218740074639767522815626113915469575809284266519937076827401247374999412125469738809814984685485533994571597354191356664896728998094272194352441913885117779119683094776118997450658452700014453172183325832859623207573493744139684852984924856364285428438007178737562185630188254994977044023216040091838221255522407746999824950169521877054807929083093955977502564834250771401130612239119200915027512543415726264465146356901068311909533231788937576099737115598256898547381954904254136833090284888212996599650693611231796371138131345377274583242009764236644882130273619845689606902596111032271877372783556702270502769693914262232149262882789282976109196319356702735729598735599050262086671820143412177107331231839923316755580644804433072149980243497005780851507218615202758821792259128682664849789759825130122386354184064547968066670854798153605519080644239332396890162706197784665944404806467002118296591547767849959656618190639744016499192141031694489397814978028728969337177793202089509073778797053888998553664938968835245640847431085912332972040564195366649043623522577036886690059565615293500027262855847975264688482479895584033094989084098735742251169880745748204776754428258616997774260143503565300363692456277438224524540988951685252045494760835588961807617956521290741949805264011553879275773839389495189276103197705788966377229720119930527043969870589775234360199012923397256233684092338311697650141440067047519883739506170554661763578837429094252864719731506831021354066734943881871181290700050667337178908665928491076171373314581422996198724087572934962586932749724956980612772166642129706492768008983773087234185372726869443050438030457085276849859365471802878953011374558437389127012059141435329509147883642606968010618471028016936693230370570716939595644891605905085084048260273620656687517431903802051157747935294373402415353225473703620623925214313705208945696263548335499593020697883522722627008363361000895571001552352307312201851263270318887799291456092269442415089472763585580442544477616935148891871174958867196256604672215808516401328455366562128821922223153050699958929137263895570841213892183665984385600465166813858705539645580543024651559700104666653837090857094601906317885841946267215564958987879307507969743021609487149076798756873131718635683345408934750431373339013461856992904718348872545978949546299721362581992853220155640524170802321509584798295954367839533246236213407144170737175744779815608509681465177462447304671041856129637514296137819977442963069738893439213040960942429479181238646404254114280400529804728658325874314539600193246754910972453047901482603640101790232569610353300317412174066064901343273582160468919327495551143023226852128688718229015296902478776368444752210534954257301741484497334125112392943134074561214817905825849571516462033815632245726982428857933617252841252335310388711796612609498521696066669292870089376103944628146092420835022051899835977088233287260709420723731165246709090446999747226961246497581014198264654855838633893464573506352430207050569201754652172913433992805433803524969193973341603481212141160572840512894957231753744266667695524606910326469722220176474694997211343235519960231147848837120607353568596349951589713210336554859821627649091458579746562015714864332191315199726838285632921737354881665640603261513130674077267474624063776055029226682146803463117570541540452889299753544993464770115121899741283739657882429529552617445829984034376323985217685538829627665367908540178062122581702723948393665297466363713090184244691777600125544493472801891368550427356390886494066527429433577635978939219251661562984867653616784643088678895103789906083689811720166930165702022514814288107651049422926985549198967575912090097805975614978772482003067918964626493776966111498244787305865169375215117907338152649685621297217456105224376919642597912237611316693554520430743732459913597979689976377538355162717074628906493713411448203724130850786291453091006908401213829624019246142181199601342771788745559221956992562546776120002357003697167412391060234722527889283858208000051245140911791254179404125776657609014089178182404572532347199944075414535444791691066659385307360983670351328611962830971238672086462974313736558009021132536311603735188150265372102576666004753324616884638656008276962867109062007034518668912794421901099950925758002294441124826796210931178465782346823633798097918834025330536361930364098911983888091277567825516268999448603853504835294731002563274693271189633240736199253361962076738842630625114070604612983039825229139512398532328333411820967748442110524306337306541281952541672807309237804344821561745580000577773772636993581690651457771772274445416104301211305776396009393257835199261831014755210053925480608208615650725054895593769204365904733826795846756853122634074837789418274022370191914581738864610317144643903480750925667679309957247524621007405241739828884011331062094116686634306142395990129447316240134964489785233556429391256278869119526123972611212669480008951989958592659127887101401231988558586962492857118637009839440203989571897483900682999957572939784374649051222753371816020898498401575162380724313005263031959502112207756177113916588134919160308975398445075537194674068481376325240376481730079493547362087678060544031459863561450567856516745531738838276089965038950755028492530192083061407994668478908173598412126531995708488514145112897543106435757490337846475435037574679395645614737065984775438300208760687787342881303113847591486989537303865962488111037230242344364270728224012200568999604960602707015489095082988119479252867022021586525163666313621517206730910847511184426912784249109357801635958506456231035541581932379541152810450258838270649693214661256066516925451061177702595698635309512949802948339411454712381611267916918307661619818056444704523052445191396823971325686020337177812297907854600064569189049243490561667167132947301356826558246433837356025074245647981530582469805614256490983165410579889335760423822684574828653653536085843802176271147037186463560915050159668143155919864522654816132187943179443010956661341336973028750281601778427392560935624968371144339479556730867618036373598540479838586679325426110466855124008516482272243847966749547295437920621744711171767938187841530678017294447377490036688006191516651428195932333932013553764787756293242832820368941316231439561366016114006965877082975654128695844690227575805788097334833997193636845116829659392649916216601595512301984128784350788111215878934404191984116759463170918152236454669788546818639098920717050690099710144655782616940237316120392195608360125849579152288417324929180539607615622299193189896694985186037768024672674044867301092875413851401540372074191636414691084200921470021797081867636696115495561868398675791799244961148875874945449366361098193425102754551104059667380882434873867010184688738943011712400740484771249409402665702822011668293960572642089158843634102868578684740721456523557562488432792762703635072093899600964574481775976704952984473702894659482868142565521170107824883456656663867047251209521562367034698738536941090718776252733640139844960376903355966280769222515320592986505288744468873479171300138175829523381680769538454850468596617553266107155227071399895622778901999686376416806101113783787316743750117172386782723252276485423190157124093096366285776177221484875821454859314048823682365271573001400370802509009980831971592614784617904316912414029864101576148325850837632005306503949684841503630744602134982431611968189887746698235091256615419386826757259392571960354251919401617758135028023846268540656791848989764426246888403195263155875769178740494386161015854326716481814786328505518845974049674134797264326018990543643357814462691205672073425293147382888762214553393034071032617931356940156247223068723512871287334299387644163518364037490178912090574686169017053024622841502545159771014816647107516283190246180886058437706485643088911250325435255344101829941420962948116783766067105651081833347365269629736308638737673765852868579539820571124802315386761026725157629882054941451303768705191977141836659384668691387019419300254449296349414348322623609610793448749717985316068637073803198831933534926740246484124400967861715533222856588608332027365109819188764326965733022923996188335342397404271288256665329807471220945355864153815168011272101987309286667091169822338379593958545106065525102246951014810257660455989582610098352793429552335806390795716266013730604207527769007039045927865381604155759291491546499401309054867398547707327709429216939051309861099443739736569008507821114500435045421653894963526066349201109470168414882786865314768535221365750787789908947384526721110191593204354557913388230770488824271634739548872344656592760101249647295885814676359521354916583515282304666422869589770990614960841879678339072911051689984096616648654703828884992664823244745657204060094235175838695683753412447913656259094304691566209071572489402436137158593892784151375984361520203431658121432593966694268037392962856860164867460802072997614370863495728284264159519353601008906193467421107468752197151523307258347645652155469120881923971701666147107714714554727680493920941366570726695540653172651054355032594432009915642576854700917827371448805220486761521568343987689174318157899474739116690607467523444376716558805160502520425659572371464661875867930485786427939854745154406473029988144610259239565663999785626717839237127302906249464286440933694727497487283506087513017900421602584432068039846482275443813242328376313643711240655238303541492665196397036972836068421140731833959130583751757731477124593744201315479233292246790512913249380585378808028930907623790516699744750812936121339644512922850840422569986264243889926771426680386526665212495961616694295713340045995623018419358095969774083319590323014794972491622612252663109414967929758315240091841010281179914325038132880048494395080944523956623329147023821009353122131993592709812170132971877432237925589885820462890298145892638356862170632307675588675246276048605016765055532974972846809358603386761346178396904319331743375077620942797151695293584640470706537825580388032667852265216317101387252177767454523964082291753695251078034081276800995745319850071436768424846410994424167633102156014846240951505539054407527942200168999224013148289931669224978158475963128281336547030101212316963079394731104310599000990312643128449047543608686577287149841735244694734160140522387133630675113549942273577743000685176186213435563214427757774954270394385557626436834183268271225953052207185535491898057802467229409719860923339725200679335100018450745271166872876893006342591444816222891336528155697611084473621809240705471406762936995214629904275147069303683813310965268553236796631755594831143671374316644959757105544911960563442671488468042038813180799896869590914581737332510041512533358640742497420399391665161122794736498088311728957190497444373643432559471119811762039731791345449512510373855400384554484700592587775518464078659330345478417257499766448505000099293238245629651140107057438707799366203974665672357056050020983929778676628082153190549552603350600864433408861784511673032828569979036750123286963098246862620450896662094604560776666745769707780226683778748282340908124859079114615501831985426909814575409610418428500354065180011664337053941748452584455879132890825978871561527189454499648105083892547314510394933814564557983113137783551565961407310305397822350480555818853489810042298723469338863463082327894115473964340312740186487869970262632070199241849055687446244094034885304570169519439767082106851239894816804682882836907813792643845059300573665967692519124500722671244977058510508414517156808219250186892540564388807814136445720067914173735903479287405836055524395912901152341599574928169958110436299750938389258009414498066120128642536073383939750759260756240577929986552438758245853141551745954962725759665216504584618180570406469117404977801222809423852784780677680854632508657412018361414872231107896959071926236957241126072470356900806897503986295116971840115090730777938490603062480857101511217146129572321227068632146241721194203471088290638268996720150158383001032012556678502148035190925888187290382966084408286773655516700269452877051207569741319434699047827077065203318267646179293023984269673467016454687244163967419114262574351486437932546243227600503522527213709858698761347278212771036719056391387132524446984885070114754962671992912278338318039765435788323174523390881395105979347382346462516274800491156070960979076189090668824428335666752261956681610750476456533233296446782222286441239207872506523787278920813267004774359827597050460951267348532950997183434957185914152053011007658538199282182804461493205213932033859673030919713297065629997093325545298043390541212876388449744538264232872977399104901642091476046871557821251800540892386872004379801963720915731931026627444274325681697873147424854220262811469161083584215001292909917306725775642839089028001235880465144376018477332334074470254594654273264032410033073365748528640567116557728435044388458141544741958818026450960244908194219193009409040894619399511811708537837634043249712564467173400166089239367007988801766012611616522048190569618714399710210836159686326716086398203766466733952131865541804123454666135760019863899576491590058553499737677299198971203983671896218248678775300087303023214114981538530140239449500564942476654921692487543451021922961106577819569159470557141611135382496120486728390225182595749674074800245113806708271243754806724179229606141837622711184420290594422753301778742059433779527031186053687594146895180685231694730525786821865356889163919816300800820361745344330838820937571876481034956960563821737135667522770569124281916818598790930082462756457649617669166466117544640393929665425514109581674992766508667754071215092664532517411249477406240440166456253602133644322112762802272203970166055445203828822814230733351682487870998030120104635212548897917904678512011738060160896515933508664413597826883581022682975796497365318132282983037824638409772239068002465938666935779956743166118934288927799116109893877889019997197795504187482308442590113664510476650420090958786228189733886948758000403621820571194556408640758595081152788571474004597609779027816939710225587344165920244201405301045930881169602370921917207832445185122405240630415369283768220186209425153812422065745038298790336297702085895938956204167119071669598970889976598193062320922427563556281780290475864445078519247420170117341840672592660735053360986928757093968020322775149079701757937958426824439089201181635039696039381218409438774027401290544881367398483377861745450975590824649924174999789701385023508985785142972894325646534391616269070172251876890746717142063917327311647713564455499569553285258186209591614867458463749758076727978018906472764388070111426396736119998644436378865829009563322595696580698681692374500045482005276238604531396056044616073880665754142813713400347802833644292397373347179151196717338748014256154168506507389414992062436578590965864582367348003048712832281247371349507784058131121260465511653235247958101754250436510022834659109118555666895691937564407657923049603447916409740115791715519396599660411046300971294632495482374563504399691476456961078112209984240677377889435062332982885220341786499672363103537193559701982691218583856177734927545953550843353970578114772027806675640748359361818394894768868588029782773177012953336117900508866718854231970501538890120729162688838724076666748840503556203117961567460559887624511626695460477374485967803592198269477825992568528363522045531038757725185210257829885748925793575541941601347374292818812837464795053417859399020705678245853518662425853588752541767658225846529227943511620190402737669327784014944631367347980105241174966650911246315723330508376445373445346580433558879529998032460891968902911550037895816031948279193114507162783596088318391132737014080654377222727890040167300221311279882402384126163690528046649980263193989621460638724067463403928217986707414763270729982867119348824915065089628717045275614854715914491971417954837153996829728039640701222103755477243608994739825514345351433448832555791034306176947621271366537744806600489370472488370016401290977970077291356665826365573918961583256843569419840378142258830304605351218188894540463901885598836274077459477801189490632238699036994588424216629840839379755610009459779319548322157268546490001104599036332074594360658583042414803927284323804951399821143609144582727466276532030877251875066351288887259484276444739400055752830400826709561857524097473061638781013731948359142069490708733373761960273049536482706569193822900736644035033155010852385994313776502726280844573384276048442869842616209792757279955031830855911055262288047686370274224535705389974661996808140693398660435172670815250762807916468869913320358769193230921231316507693890962329770474136113766570338124663331753197771229228833166504175355837949430995734112480343254238416202103962265210861879957891613097312454425509007569458228235361818407614668621158792336251665599503665946303703414137515178805890657755821723020200704401097057737820810642181897629969331950103742677669088084293061273481827622364020492604525820072280017052944591315281140246770172307638663218435102972361655911901033603267411203661669967342541980920298356147885153201442856432274797827207190685379501247504714400897467887331206563616388274851100125277232878305923741853460642940753003482097009914536869329422636756044517460080924960060986070818887073472963904762314634895304506731100191013128419378156664949585724694175850637646134026255092622938685632426770684160884568301236472465578995231967617255727853103372410192965370164394802997567604704250118710934287263355065681559952249079038654225854608972333765880163893162701729960432946503900846513166935788220821005831308692848987206536060333155625101185994670357908737699312815288839272957501129538308920850877876857632869970568535138380289608587852510819461664495868628045284899344891866439071729944028821548668423247218860801199630360364231846429090519324344575363028656114436878303316555208178717064815503544615708921047933733380221688523463045776529565670410122341910473130124719666408491251451703658123729917882152701983608809433223485526532977768408410604435708011714194388797337058121616938570878480947257891916477470473830428183592795882043898320970991372535932137045426798148076033603764930563212201293019837474820311392730654910436862957434176155414707895186281306445156668754980003507207728591898713219786685882756656883100743660897870205292237935101066718929923928343532236177387301556552722779161472390528127487192031973471156795599192529356168350457723785977546807321647491992295152357508298816114122132230972688297511518944570630207939154400260659590565731308709387089615746391390000381113937581511207597581242026464135498724471700755396452487353165489545696828376207724636443149208378957424142523351340068500575032665803300383121901305426271709553165384819708797744287644090436176207911297564678748235922916857263602331297747590755768823593760521029147450915640062508839917057855745030585676271808297754823850217882530126086389367891090013216232525036475959507250145011619217680820390542489115032687220230029341083600904278586101005148656648867398412060116019477238461394707798118008590006102687675110820087215080902372112245164768371044344008368107859261125957814575705313763729027597446878966392342904654038263931522575449640426947790707330534973339818006328848326449808389817588403713601019731136243045420118204710625952177046199084640265730413214470270280953530270158378148222373224659998347605225836089772755258854347575136614872002165858161420073717697323973037535571995630957761873201063705578525027676234148928124954263684482128584396697370147309757494673710829386229307164984341618404633677808599052254961060313404466302536680255736116014469366053949644396615784300885939057063777831745431964795051444667137670228631737154184785737853723692949736117373243648912202926953766322100096850293396778111609542745033555462854316678220906409679620198462559893591171968272658849959685731428120923779194088925930386917968177745633536416536769631946364784485928391440270931482865609429504782637595069268469184070416528810063525286458407570355627391763520865206558672882084868694832413575194612041881003171610256483954830628331468267803135845534766394706558935159092865827041305260600094619451432503151757904853633972041805387157270415147567875991674859979514293144626744722997307127897150137364117422827869273885108112273163289299315228771914309022700430749425470625294803418377173382185419850261760440020648842922058400162534786355185021798919761106180911567953121110197996809882319035264653134247168103998044151146443305987585604844500961525213723953144525293912679188607295584383821696353575911602655256813970887896454345151074056150277365525444084977436766981649412808855956429734247831346860749898839085790946153525243172476729317899018904908772262846307822754647312200351890919996842270061130013224562109589814154112438540365898182882906439432493283002634632214338521647488349647789957782679991264210863949976302659956432277893530533197590165992040737376363454989849441100361946984743947394792599753627139069474211925449304060447596676292908141756021259275323240933980496717803728710670025147136033644697201792363658704599336007763365214021297830291379291563543133577576059708503228864183797232724626466771125614977795638132434728807511214827884963009096640191019429464595947602718952920685806943323549202837587333754464115027377647137519704028466674397855521998954000401440364318877574615176033272074354578212363680201208291522097538101855044310672574582117169428191723641235775900742922804772323083072969778454031364410628120591133808158169866448783611200550844097235629747420506066644715648863560767693844797653947481583153074054215233534956208336611789180325209087135494701309715250504608161558826284245870589230275089878020237763154187942353924307573732169120103657398576737785868606305726786873669610215558935209130800478188779064903099600591760810830453896580538104654975699544558706113579234209971134753161088485335837027885045648382228272763792840901762142998647020917892901702774272084103226520251371656086775914735066279892520036559365597468605318389547885115720069839071281382322651154224770764646893698071638671229435895129389761818827075404568288824678126923548512518924995138763227138037045623450787434805557842678504200979392846824824504483279375056749732701808275822914394755188734910423290357110410006353611089864865398519706159015654118344264937801799964730199733865595249514337128964501387306947545507498062039058732604242408436501999097675828711918353475665599557438936082424074116658058326339981639656406691258154423461724527605863649601293785308218102384518407495157381759283167439442561913637933018682303359081240192706795015032275824873266987242258658121105430679554501891940008728375748513053442701515845669195357298576200491168839737377875185385152941510609502086991554539836113432910140860858257535129293976195143250949191061822110267574387753430205845420088606803009660556922493472908726853303552495764705750580158331868724350333642162798523105247589800806299362288035461516296003640179719638475896195787696179579323394832888973295613248077152586028590532046094387185005204814146462096715903781176476150147004353934634016961179871281470068233968972239267425139064521104741389836795920288336972715610308668725569503306495141964730137170050616273926184464780247971102982209548780609298807862094410287503467711729422774576444528454591924985619568086636899515012937980910123986632871041283534006827562092156969028085727669984273436877614873918539041909077193121819219508374488764537577103204966452931343431619241173006398607128457173903532863196872930363382946745116308279130490114722449813882467368904891564723500555668969415066639954529812659912767618585738735920240682122685685749245282756133179589693648693496006449414064275712931773359361437266233979980753255446130105213647625688958397030854999456308246999767456714955864367812507440079221800681067360262912814210988842716753507897573981824455505924915895312249188940993492955305396213435562971411938833514895533924662553810673395490886268150924409493866759335794228166982651738845565769746401164199289440778007145895318412651022116958408164161719193791505626142997841987699147373504039033013917595498180029266574349967708410318584687102200864081174481801342454642982868697194647679060579226073076477099564355283495830536055185287530469014832037361009597120541223592585907910923548778772875988315316920788690643275174822137889334768518056239524395857667548282846248431746921971065100785213361240339216462875467995117923037406644787288085427074304669639786142860119162359403959723116918457478897687400761570054090291633248197620231116016802543217735932125931012085228046758890365495574527451665334328536133249905147892571879176810170744569654262076903720973837591698656716313637795263976601345292906912487592338144006825630562376405336311831159133228508565242404477836655709561851555654852396749819450865398714020235998785864119369655685256181865536592242381709537506031390769160706734346313218866635229217060627058135465105238704475813403264286718795053648563399152972218019880423060584095653658719532723908007902764865819066875548127533553072127379300031300977309600079152537240114059384146391474404450916875810338171611816732696253872867827267281489626670064840948546193598072833627948300172593801850729173229455432261972542972514498987136474509292933242064954804724003262587066294365421052251751114785834666422140510504702474651438433530515452418410250236929445034039152414609919865878933918228441716460651303117893826494440863282287249292026157859334326848413972526602924329228079258917981805748392976938997162354414062922111324604994774861697820394320810742256863869829490754827056003751321046732559914128077486645188861285899949193719514814338870223104915811731962268596770226215306192529570577246629603710601286124799148999429565802484245926986974085989440308920319013020478600261269366750749933221039584338994665789071804837634810824146193015896656833806767349904463399247450237849742629282946879764054982142986463485626997576840722985333839047510020510138816035538767237209648797856020400049571762557354607515895635039333519674071683167130860437964228150602087140796555019289402466055658835386503771134282256364718301640877482967230020520673982510352312552116159780259946537690625289615675115296582936678098591302836967782016429920500347306362597160821743488428627771539019277513978888787642562699259087088469640353522910958143618097310555058401134490263207540057172351901699332009668431053345804422410561899719055428979892267165353021596523533761619410959047467105220038946601390710068169178966793107324595855273005579993131621990960779095364201037777610676422433826664768268985621673001623423150735432951829320721596678284002859679967157464462697304914715381245472128868999156945666773227549256956474727754888551265589263148999466555051777977218183924007495061975509052098034685902284218198642078654572119591541980302687807445220150581502610415255612222184953171596632235614555404801938824885552490629327273835096748210909740394534906394353551142630952424638072962031420592069333290298125614773202522173466159792982453327396524935434811867269412309594675833908922355143940753317901600511419030057901893782855819058668902490271018838259027247499178749502945607866721345597002668593285872503024842606673250408876835171836982489267103993619224358285392324168876970185191509715651997217597513204996577326086939324623379995318047773678140444389511111922102788654910254378264832750813656258115352530958215356893758102307323194629281262233695613411331903644586089103060899092066416149301686344142597389137139236188356683885564935181445139853885716446960669163943480939409538313860429535776722205043588159623343193929590298735608885658380241381529917780251198108582830365887577766180012326507331682687572244556513782559894494886571201449600514229751801329931116905591366026960239797885228705882069492832605637290301610455094375596267757513983384848949168702153218552185413719704866038696536709542650097253735189799000265477058067710794847450800436671133591968044629105854698093664870259831501052061777475869532715189559429530636686975488276764577087757717906954537890092143617172947614397217489680247795490574344934760899599149129207012786184304101477119751027578896668952593101073508849529081966772414440551644811203109451368386850124716670812350272939943075559101733540859655385264930243215470636449460140836130116459499994930864805743552303789097612795164464249315743380713549657854219045824919349427073876988630334854518227153306907440453743316031769064636664976235672086888820931839856025389087624190105667103439166982271711340091467892503331526721340629293468272668558719057258670990264339709512930044783085643586320653060005217613420792475440525681529289489138301780598689471546878990255815149781737114747710240411557502135155168223552403639426943694091948448429434007034912524940617312386172526093788445931133457132241667022906114283886080316610815140461038596837410336283754974977975749270159479884716966645033124003040886458251068218318989430056359355226541003578191659373959891753470569817267123015288441370883718881277992500463397433085552685205252688742796265111101022630438537377802265145283332083586337135754056787930663590719977599667288879087273620439464168814455720103265828127410019325992447362324553572385191082524198991324524910132190970919284343741306705369638164214864289522951308815662654037320271425867025057458930017959400126242939555855375308326479469794168529202643877455396236864408377879264416650708327183079712238295722636601047057648362329603106393375109867234202974392196745596697643221421996311186506105796907357678076260332699056336850577634178811553629359484950350032631299420677578732408472133897261075130450749868398270387711592303942463282199423517909738432154615762592083891814169180540653437576844093947994343374424797188846234494010830023572502276166032615455574571627247567337182542241859730350078597855369375639308243429495896287987533820581845190101423873621461225996303403144406585776244968443089324764366994744079037141656716765255592200037339501018617734360886767934515005493295428331923741374318804992205867476713440812333858752065754075425932089881654274472964904385811727218163731738690313234734128257468679076998240998405465614531796110390682963082897779390812021775377527388339693182462933547926250648522280233079444361166432789094125426382528554350293572605000775364029505840618810930041795761210058955754789511286728555612294294685746557240419770427131085753153562432215938652045370186434582101626699823883014476137958034379963028663188592801705825909186234127963863246047076450644620813464588047806810986600992593289416122454645959716183642610526666000246204189667986351858932699481225024086277130743803841046622645953626613663848086276628551113548387530116316114512938738228883357367953317710097475508388642315633556516654265854990523955975771541600960555905664525656527484848585745718727804837959843864512628098452790397581719965718204842003693702610009141331116150929681618317141565034504895181098189184725362599846037472695524274932508347166707861714306087273370451143711593291769862711818434591262655104948360352598216291414137292802115458118349394370103985914863348769423767025281827424095561608113196661650736972372793586577777550413814180582952792759739790903771715098168289763005992472117454648857614121362874070821147110695911094870599985383441823047666066163920894577853631613706109009502037292079487222186925357369821879705479894803861437644980093855753019527908603813855617835816606631458236071732856126253494001796390524153476422461472548437832641646612158923214142072862860125557375466326143453095228114302045519283046631548798101482518915784153288450574957889513338533964670568686595501020942891022736836182962566216222267817274689102589853650010154741263781727966049064003351571781820775772324738303119947715282640362843548582291529141784105538845519638037497937784643891614038809686899144564857451362616649256208405602088904157143508440017139294553567755635828834099541723339738010124819469151898785004304765916418904852433199627605903127564916847869452998702403171400961597492555008744001642240309264233361885620017102387918283464000000262891359115997451388302515676154131529767242476568732088858506481010566283451097542036622108311424868070403205834012424425454590348359006842440664021315330986109996791918699265472427611516850274201967403170199391473640812337776633064627911038012801743098570202880928973249191278486442226297597356856440746987985512888015273536123969890221113817188643855468751820007697644367935020386506255926401907476620816671724681124682724957952133417908920920097494625434545780437874400973901054203328951427910742774623434445332188698644871773963350340183666339235111307180763738801366077436594114180625486105505732009193204610131120758847448289707345595695624288625017441747575165794145034365210168626325007348347762179949351603273278532031157092618443731246047653395191397980410951241108586061609625078370174123261804613767801019819825077297186650110864678965570159390741087315142084041196088964666975090709795200543604965037559480016519192978175684942849385400935333915747940080356660203549793337785935944739788734820379505291421494471785959530149775377287993763313597336412738567309502311284280038945525804940011519535515913331889919065029006903904996098479210025998566213183434645427540088398062930611199092457245553428138101869102432976584790043399532572222100511803022037265996009804278592370117690398918367515649504072797572787425015278820519227259177846728840513174548257003727802250798251632580587822760190551278169635510746682808143435451637906734336448776989816413340922134419596559764085708204147484855592358273890370792286264172242444197843005690113997640597828754099873364320605823209141909239372955249682192179152375822795696720494420782865740160777596436354511267521180406925539495535982460566935711686915128056845166847467388941566261477211458216212718733619292890874284007918997936214306860869611086010865999850894631957270517143089539838765532878897338305932996057792396427641298739198226424789896491908820904516773733868128912046243753686306012794473109608276683170651061442891540652224617576769742100081076607415044963084802523548751064489091282176505361713844705195114217874986543668593844979971238579969288919519593079902705800401885823860873169860101743442167463906319008775860938054476845622197942378127152581694611849822893014589560423687883823365985117338246855664197426783841310831676131112561572407435435655511112282974182493385875218686108022961517742142505655674862888457805148901330682445288067975111854961874663173404488767699532571165736748487337856710121500316370051783620035200337659921536552866625154677906392132133798251834211447189801089507517586783440356750147558029897211156059140676881184608059810966279583924787845946395357328207778031802094664772035018887960288216034442594118175565220501627350396756448175297644468969025349254421373591769600941328144809907686176547033025912505713559315129821929905781671847731664403370915295577516573298267890353357070583965904658632620580470302082897711021528634630804012312989625487139687225860392158284910356988922838806297948702063547640732789197979810120407099128813623055430274054157023927298355373033158126150805226220980187065629202107624808449160492673142344140362593870701743534989228611062396225601934401160275070408118428663051841450143431230454925902616864340000886587055839550879867697575915854079389473367683053356640668317312426650532026897452309763126779342511466555400800009162876728920399649312362719023345797558611574780764020466423050369749422270063979631175063826623877899425056618684840411948248673571061247494064039481196629512026407672563581979782013104878276634624679015366931046743445102408444191674884831114757950829611061877178435977356071937473176584039343533163588525794040022502725555418185957235000771771181381718637206126128139347012168255733292443889724872921718592621769509595851915259150131733832168510741577317567445201289219092535407787378615790252503872571634436445813144062144336106568111981237764161400280556609768616419037349984910418359560100779371617423885240090904575036603816908958706778332899951363157422677501487904961039443027289068506123778523061279544386501875669272821368770523360300443664746986468892072595008728959318228482513885836293635010046838512209983203389760392399529408965145078116201061177118838863836868878708538743219106463649205374843341462353125166367423201175700715377532315396912528646491623136263382165999829800978918602689560587544261416595435147198122885984978596938691740772093132393794712922487992676661971837959884429553672808695588575309422941242554194034992728367474349629870104028787540159403645659265099387914031918447212519083021063941990232211989788796690262404256428188743834570499129572682030553742308497779683956331240826138487518349654803490262979474145107327687920148939509179126353495032341869803379024604110173387397866667313857666548613009119968553966275044088411227802488624443532340058387207338106915013439846701218478649037505265688900086271278077111140997976517342569309442036646801013919813643140447271583599324989190286223838995538338638350236835358349741097350434489871208483551529476242005271383445280845640733244939007065021282931626486255886490064855386759249993254576524769960031308732554587657968786632455185924791753677833928774548823760745638249779877255005278702027822310623147855792937014239125857810111775863641270667888583685746833446629568430677176456382076894743181175046341140992972124436013956096052426627434453839073776855277036679910880757720526375309212228258083319317698268580442857965442719008521159108722585817202410418700270680049066754114387518657189625639603125877377139186595888181743149397775676030019423309239737573192686989752068827982931387559752239925681378939355745965821689899554763353783975228620550098826774794397437876813684665418261869038036964513766165292356962976592740190705816073195330847573641670951137483014957707455939638669872188546582945037128778407970113124155564051512370186162207347606333965271648276418530148096351629457084903492809157407140648603932316577638993645582577897955485310546287022066040489594196255448428393283390581628755196625361112128917362598325037045830311529195010631547373182553016180817690284149951553836658660223447376247615003171160947779448611819727572223927042521340399230719520487770798486372019304845418714343577840819906344437359152297908551961476128792380480404192367678162646772738098514383856267385341694641580594432954645166345143997144953326382005961887934018977620515959179712202939305224242575758567542326566912974081608099827798695167470670156580826185311782363544702208170506688036071069861147524919713507822087889524482840156938248525617106469804316145212893111784369882160423994695760435985581374264959449927884415027643619666287799999716833214914558803179585375356587185904809396889139745767373919853354692405708324521200063061794313602433364830465539534117711431344490081161009825256418493222631983657654211137893806955618176106853469706267833607044631302251660845229982774003927224902558916154287059954007105070139991037269093973419681654345010290926203694846334113022957073717795890936924222468125620897681190476224438034384157501573559168851360716266880642722807204208827492214649505106509997539892610737760702457867260035864553804681083171692497095856238855526581805809448790452847545747215624742947667774041721620207913292225563642261779193794949030007600748328924741884694958750362616747077634629892780531822371799489801887446719820930707769921205988587086019770734939473614092926826657898991256653472782969029264104313006047180333772885781445716544312075928449091169421883979659059811876322056048681271654160607675331991581597767358971574976734699825519172950824284105185372389150424937454458009903775997588216115032794801697589212346520222026707363766229192858704808493443838702972149736373801326001548881528591796467245441148076199456175726405709029278796959408989880284316812359078805182805371857452449976338497091343677942641801581316225155808719285995652198505429487745201268354199412435767335970077812839748355781278456033638568128705697896487166158607391747954773619158314651689430931172760675905024749534921011159223517095725174993233591656843766192669760118666924554683292532348000583554500066006272347550881882546636563119971085115389673656213156039528914581577401997660804679363956039505301277088131571760919282428768917844282520624544752407934895616198337831426610934462651780437649941822121130198196500752595624074764057672033430867117939124516136342736479258622775058848717368164055315510526910722590948151172355278288643443869312763824038174958781166420555984415257523413828562385958238497800837867436382845667474029250963656147719230673150693106554212512254807257026140940551999156056821741626620338582351680153484380164605058239959494094870911789694325120508449863944781203458362487109751530270521350286747317223606012499063756741928079038790363500929744417359418668725206243503243479778448580433532772616645825632269026337502200950007774239681291401517821253396523723304903048015206132226519898657812384108123393222849404976097026715535243421314368794481977565105162023053984226133447881164472841357030721153068217540691548919108923033611579893831965896601911012600796073227790386728624966851767210610260261029987667364724954091544111863095840396268968556845837564528656298550219766779261201724917685651465470411399090175221466309193537322554804224437759747030968778033992495177194201551162278756396665164980779523458441510804332866741052272254464109976322010162549343923001509140243501199869684181295754543677263225276788577896220264989460322507797658668375335619402797144016508078790000782053278727343132714511805728191626466466294149627726036756650439946673183221204542830316176020108626551607368509737744796390540013847617722200254481004856184945562525540587215610276360410142089872466828598452484953996472022559293970347892689941308677790793580490513514915593642781268991438360843304919982401716278198414419059344430542730504347837427731065315236549491625689841090745497625003688110635179263184522532394166839103165209147318679176638102406942874536787458988383471739408309840366057193592283613854737083696148009322409726331282363981069947397409155444278657079543148816449666777961784209620149914161680055624274602636322757959553099708783502518907042112672821928731920927787443805499651999636367774303546676396869703632055835720754690653489878192444568195605652184914971435446265071106167584237609816433406946615298361467527621227400656384311029952349630331798389810976622463989593304544207735283080274361142512320556447484982139513470337568520768825208182025987358116649487290202551447763303402900857297487212173305937746661119252171306085257550099382318517172227608927505629141539471786917370347505981673624900728096463233578879707290435519733635772530148901150121584561930097500512255931868033839981456659582442231644752639632776851185568827527061187926728793886541375946846177554071386800342209106533796445714955190455526208303449479485983733559598395364081932656015512748667845590058110685142889793339683596241598228225074385115868398111341921819004044113473553868869747564924789164460564358315685269352402545970753093034233300361945363801450610813447295761512372888839271142642527508019222427154184382949291507596423532570800750841076122616764787593529343745097876546235237821739390612633263032068339277468058490205674708355112041790412463044898111201138475906827316067597901841076149701277054482287238561894155251072443389951477831819326768581624624566856846667456406080058359694065486559555262932823077563246719059648080563197519419897096885174499432815562928278961344795953068224796249258779834215049082791600748313392104793761306510255906225729987495103050148198723694227102649565621903385963324432285638596144827693232340548089655665318615383121997587004775392838233974707384682337861383327650767117691373570254242861218440507630342731487996777425233408361852861764653289384766763885186902979342738097346122333853902661469795054803624189412429807131949270155255982706609039500239757706828779611864017178807661677903713726636002776906778125461582035611310915375968410389827445553582811473507689685199895610371181039780443604135196834839082360706335419865228573081949752769407807231421592986500103493059465622796466209938989873666639088506078419833313020335261677362986997874084577311417621747741568781743279573039869674199288831780165378191103809317882610236644986253234820972306968435482240958787056701511372640422891478838965197712947266443895582568439260432560836846939964604647505496236165546332386114184409827546618882995397267023518693691482779750060804435866024613315334379282237412069989867117722878652000303182760386298327144658921642169923460206208564673127671913553464968129168229895895130510297761179788435521708419144696024052475296541003274505076825076305748060939170667557083779475837782843545119072053760860885063931417256133561024305456369384470596380492765325168665448734292441416881793425061499252697684847836166554404841180414476214755360685814849841443511164248600674755261665064471443801833432903093096632677036433896125195571389523526413080480724581071683045492613822419050870356448313305629644499769218089082986357272224443727907938470769608051361606036398211560699222020424462954359851205528130840701943409141904754281977956468220880271401657301764073193871868189728487925914160096077661625386371027750571077640193609792055128701870469384136201590357536278636224894517632689151931441654386443837542098707858166955883732083074468303011548557176165133588341170690402392044972830908022952851550974892861980501933265310437805472106241200224974251912036475824245528480588225203980265607402374821966727836753998718691503548883806948143006122704342547220912387098016562701371524752356645662630229082503175000114473719960329454386402709210507811111669957213394818461819672634860855621702831374755706499819009660652487636768622834025965448829216199743939261692380828929193233801455428337418328856055239284802924208439604637132113657280487968672260403167784248560376006500569876530024641285762949294781054930595423576626790191475471725115966536711990084885115265586954997287557918460800425130057492349770136354784164925178563473992047646669007776291232858555982986339754289183081805893070483315414126010190170506717689619315590749847411431313251760225866087698132954803987933287686629477256276470225582358924241976913003711539425767626097049777737705191487237603545324018208886778478006940616538839635057195521199028430895880154074932504724455506099004369448141514346985656006770664793470850190079156732279881034134912876520213272522936952539585607412590858091829689402040258339339770267739834958774149080582935678377384210215434225474911671117235939038920726041559119047272083741276139003716120136914271822361707283116968376025217374116154511598314293931808401833882955565357079610409416747882627988529553262657919956649298508806550314640794228113325414609934478098779199839413209732967679302958941508968876514917375424720842374800231920803089772407281279606699214198405083674292259906058865322123931860823640053803378763794197204260781171230231876524495293296432773535519638442295452860807943235490992114973293094959709114766697728130078887229174793865617570696744116185305750393323134230106830393962740028657448581924012387919234613983496439043414525221255742127182694065852017414053690405511516028489358916586404290002760745645730199143969069080840638086349135236665362928128650827293286180299478045061848515427928637027240928743856550012306195360812455454734237923959227272510762804061005678520297803249140701532502456626584427772231149283603420051506565453058698713835360005392143816280209807377485030156943617192426907632116692475046554313076416142397656719922142529806243017491213602933775097628080540474012782838952288896796700439556339516828618420300611290277841521667182940589339318173039400595097184462937095796843692362732869706401340728752579229339278789505747329597146751488152518604464071095048842177929584917995838298351029204500598994944512079986796776022687001353775475614616299327262373109350719348889845755119432478777866738470488558678747467107919544230338670364206616409333346393996394627370648907599611618095658928956449127951398508502523437803670647444738635315159140758176166312332217272426486277871274818932570326651300425640488989082857920325665204127452023053857198436398059101942363312492242983106039769714147886436704752330327171998803809078548219298065390082927847258007985030485888244423250310964942489019652333793977881837270445071162514187757547378963385609048854280167782692199113874536834384803116562660897592474420335043486272183266405415968545788694869254059547849682832433178224215381530203848484877267629108020103482658301211060283443602981540673046069717090782070872661507942685729432522732822166559733394604698461357001921233685921129951847478543229086049044816713547830048390659679194357553459739231796103955977914668331771284740628561045433038295558442990717607716979691873752752994558196592685971713271417992407966296997495580065864604883082855919485991415394884864493138963515749266225016941845681778863491880846992638269336047822264797563049281677252731990818971005212683135788973259590589436754316179060057535117968091878468166350985467331433679924377531913852346297339328679777222253656152919163081628791426078636506187519646942709240127985300927454400508317378752956081483662392759491280176621453174011553931834083780349377959716511291054397201193655387501129648896455361885971534508637781304846509852743480799644000303931393375418687130039295946277436188844208975479467529026524389740869295387590854279329098607792471485093500295105722772357261695011559662882160065681397638867983661852357454540935562854030507127543158411037246233117975345339821617791143307367947350227020701085429870866203696511378718421555239965198584599445904573913923789331071623870093100369660995231597768708375445740773828380860822059292838944700279630221915086764363797514027458924031466565786516213591556285440389382192716099219112766830079179753539725046283453859979349220189882738210328171877670597318150540743137013970531063834778800064754154457430649653804744703012224506073525708712696758002948623534015430875049067203540868578039967669853924107518372181417885746311098531114550155104244587596367396195503205545399081568436362875421522097840416781812331118229020217516043828912161810837933699614420251699299765432251680584934365775129109808049515379017649579667562286399891642117058212933697462309726789695243370275521061828926623439817838419311500578446141561785494076358128155329628101925074700630617506654258411337572880363396978063087974223822784269842715299247554530421162769826523888783417742765577774654179820890510167729605464943010189430512897797374450000350082783514614891568309708588002447175274217533446482965030650141264992893684559236044953523944688820123404847967466632553776725069924103988046305694445593893257556549931702392779104741458019433388066144060570559676931813378578124460149818571691185391044454378629611409922862848970614789341022809960832749948832124057431461854549652081081622293449584476215966346097998501861602330190539748587643268596866991849520153955086391228535003342907704528362818545677503868672188242810596135894786765406980340157883057794388826581005234513094867066277025853727784869998848120288735441809069990466660212817906193859268057345595615690692363855738114839143628786076967793280587988030819998067819146698683428507468558033780591833177090641662311651821446221657637001807411110923986954146920761152772557854075490195557485865529485561858602458476597679121995854934436335733562263303876370750086246141091424324045883108543941580540292466444266023969784299382024393674764660909169735297262719210010502981567578347583830345233313769843858849652268475821736284640995647154610734347711316891744601235662966597180000851673466075217431694616884650938947526897783926091817581990541360225896350480286243722990932778492011990538200988578465878047340104764597473865314639914578149798703785535339900646686874980414076332998301954702530225886083580879176727991498004155809324854600904934112640462390664706182926342284488932542671142136453705524009992842475174068453468575312346141854836065327917064944102231599737595626364543385482810526961430577072623616678259671259850111743334965577002852904838336745101356481035962616168894505752812742758270068823368380578142453884152069690091822511131974286685290008839574885743614621575725218428914718884555050799688322877498660612741572275958983245395557224429805500503912565642034986585569608037625607390045754226003180459464282146724850131959297390548167701615563570324157359651445357126347939241913279531728264237499556902119862736499959601580692448895526627478391007094630830003096672073477580876099994151824341386209794400637322806951615555010687664352685165926365478284391178080430361472757359055336706668535316503434265625013732476539257861572852787678710723497666897465057554289231916620020612119987068037749305617317137794519525715885442676847154628246961653448049839946832656692728043165417187882519024248311233558400607024274283195368583664783893453211825286762445820179233374616733591228415107952987175641490893448481154276928123191139736719300837283479797350898002540617753545872579442808807254430056599970448346203695157510617747834605978664253458017372814944784144567825210553587968147953204501611847335426370631872065548166524405727879951464736322811432658333586099232543223960873458026393847440160960312683307597782415922216623435960380360416180726023899689702740957957663592564716622511104084599797381457959508133343130738094526462847211326100122093556426024432086915380262296813027877873374526344203260429986245199031126430282402174057795568680632396885607565504357499151705985555422468386625274779668991980959956131261659176510491959119775278696957892759011366164424262646035673008413327466989811001569451293088445144396215467407152938006753563292846025669836873096119383828433301646362883367166346285023298383608220738653639491334021979199958002507569201427425055247943476617641685570972834576785824549531289922768603344588223622618954201604747674413965803266468360006461622237305261448895274447391795684526451364572757724086129903762052503866796592267655086326121901512374318625404615281979135377635736604140599575529816964546327734734109586668776203238844104065718564120261975719198563089347136914235365662838150024442543941912963274261505058980664440677455861547038862009582075753613793864549338585997514590548792556634575085798985966612794866865500444635535500819982361359198601278443373987568590637177495090312382632146787091991491447607366962949060576542537270805748651098419429041934968459158133494879438966938330393105195357972858746834248253043539658907621831900369340027922917261865095575612737751391655370030628732923323229099925981615746051843336058989924448967574028222890207178925401045335319313687275676193219074320132022499839673979060851746410452612131502816665123473058121533001099981380177742034458382228279889458721207827481398286862109870309227447952554478651220797510359897763500636866873061285905758769639070587617497344252817046831998224652693216257703677707699988591797107750006417380920273408438949616463931123865970183354100833007691028768637287078923004679398020615118501356948019525703603123334096718997690891484660589941999655932105913202589003185650229858943339974574325372924353509229824731196364567028084976926111530862637766541518439549941821978507886063222829979766265720723133521193489039042560574987735927297138225348974813932162402171578857793292908375874375244730923795029371165339534945964176745252101288719713909341757869202432432827322113010112163811343329402485147104088372401294773327727442343374006297438342278946266012395362526782034322621238592543487366139193207074079341965747855431389311314601083224927982956905539548237279761913175264165733840260882937986065295844748008080877385060643239256860370532683303423526785295791175097092640145937811502264281710916012703258649688327495370295356211722652277423105779256931621200659813944324138199107440219212587035175767216434963476718043305029502129910217401679615761559829489657867829680830756703938539594798592955862789331293379972860879093398414085415703018720504066419500569755244414754753846214863898526351551711419373360009539454000597552599128430533271259240677979817326122664180580305365670164378480363405633565369982634296502266159837778757065737995618498386449428425984492116265520739184053264428996954701274661617875855903536654691584845389523158340564917531860620635520956574106069668938561160235885166297603693466905130771249097349172729371422678292566566792249291048191955364420233130273458440219536189215777459845267308870919488050330138370002509918962961681956961884195917796289763683672744695864076369283801316458877678263807543673278808875570910886507404698807572979089887975716237827963268246081839634955064706668893198490676955100140440008821592498630505553548902765420566960898292476073681997564247225291664255789927293061577296513836606780247652022616123808743942602072987694949922191868289413500673794243005963075634989532393973524434980729994653665089105133367223043209064057501655149159012442620186828505928379874449082235493454322329172686780580797003653813560799471077430572613341331043302794312008024573259187681228442091368294282845554942650572131154153708939530529556127698767457409582115863218622178499598278947328514947088651096822077243071285080146756150711991107846631088359497478346671060372883132784345303778741746403292682950627816763935998174681254291343320275368705529418250850751264920747132529722639080771167391231997914800304041650846455343989502761432155192412933088035852249366307333207992804250371302243977224204269763748018940470257042655796732704113403465747549351611434684172024124724150344269855115876641203263004590893277120286646637223382392809498687915151573398449655029831010804498256539029510581986997122679942526086072069521451579831228008641709430261909550984752069574103528204843361927515045218865329603380729354085363478202345016310600468886079834364102743936953993980479283179410798854457463707032696665007594585828823701935072724629249757435155941492469913692546688742803366240371955172490992206360077829112691536151928749939419795392161914103765271803841883863313943403818309567392436471390694726990128224638778456960062775155309430897833017666741919205632958108068787299904330316430028098758885138369269444666293716625280211861570034851493069596784684819676000030130002154185926118277186083803378748128313110367260574837771774383432046335438495475871504081804460053364143808451192634189119932669348868962123866802622339876433911952306449281035127988880006016165828987075324343220630951380270121720521026498170853659558346889164320982183311872832222610094502958233127995332552839709971562032759392856416519666707393800992741334093640464110348764164172559203148134501640415723415924608348077695619370093668296509862837045577713446121383992248558680074243052797154354934293730261850722791132643367694333402639698380046013208093240609069979663484094643018438627666142837505476407470271308829497238395274276873111397775361211163145556557064675851961582736431100592796909161804193600562629599977985396807674811300362092705640077746119798910954162509919003879033840160147832554366148352662500806777472715700182170020183656520716136861779241055653337178524166880366400290570673596213968280200786076475022156062620779571982289648728593180852427009993400028561244000161256405130830856780369716173672615140765174367168198527658065320922292512776247836686193200378913033852607089819610208579654768331260922232342625056666258124386431609035292545035293277476594501458259259634940081989980912462387454493411885113419433444133827908967394687983324476160432482726393838289579637418773583788043444668463385086307948912564343075183044855138349676459690761766739303526114582631912788322112382337971786303866450857299548000407462706704232608867981375539975303420618343241076888638863792642874678883275047446953251774912141057388100822836672737537510731298052887106468753415453957347366930346369922971638157509289727600785099366595845624836594358875019025110446157320470900686592160071212068504779314092945298883997432198987945415694152296283391882685201634650361245691414547157162443659305747212809235407538785869521286133408269702910384551103923503379165294768526144879226292114003718155085327516986827294158941487143285443424780600429541968369482979127105466862230608789336812168421228344475512167891193442602657010934814756900286910315857169704561798267007855668853568765807487623679443245486229495438485395317294437912881823996397534781683648585788929863479327316906760544199761366321802356368090322581185946340346476019095695672846538922733994150175971266139815936807768294431676282211406180735698906693040093352571267261422014395402834872638191775544291023415609369126435300492268403104041523563300781961399652194224739932707187820261990405624920391132838666789991342028163314491515636702815120469939701240819169576878304494491722179284171428766361224693382013269501678625966073722032786993752014000849025702537562836448373908779541689184726436701447412366573549228026873591961080538948968669337896946755451654638712077016711671581020922447343901571997321047261995115369246502799730884546449293222951508606535908835698193987061157124733924529686221470882635304468964057190422699120276553501832095362755628964608490663271818853132014867552357514891835553422122654528738825315194236797534960130759372471763079075608669003278493453594672013506934300659314353662590058289354042622191813025705843955720040564486429841673770289568301955541967516655312926779318162862999931493339964154918948182316394147632274120207539258771110587298357712347511689836412222931497901826145009332602472591870315059130918611719969256840459769745147765524406991952143129684444981407354276832301134549733245717509128151438080990485991304598884246015854055862814076491956974356021512519068267093565450544405447257878035916175086873661128872611527870570910647009431748552054025357017482071323803134780280061170411187478136378662013174408014318878463588177614349892622876913011313931950910853983728959358794941741970991526384129505188554659116425114253668488438514689430270103234060254827303155694151877836253852197345695001548637432622754636803693942980797753044423629216758884193589286050486793491299451418194482457882666803489960478451281518870503429228722594796701822996216960630374360471466292170821043254832320192298279251164691531994596104874707152234907558817830771572692855642518495709106124966935050916069661613669603891788520569771571235520656030260708064096623707618316513795156248816142810044294295864699044428976875324749540914132630154823930051718700083755877863962054285415807350822290270163470986667039644283513663421616152938927037459790490925649619109963359677854889546975549021883804132514672838360711992554536984533069548273248011450586296684643005716173910885287277148143022352553427576994047877832915466243490962242556317239493472969058625827344818250860500235734708985147080560871105619824076159898515538176072690028112613941742859277230120634298130376329604060742797590860492631189768685796286021663429787390133637418575510660344053154240162314970994688718521767672958314658522538830015814160316533974316440555630666398666977947166374369538224623952679491917690630605077200678543737944747070619434275835283979078098223406002328931087387876514604503860256502764860959573093324076164298010191291044832911006566720575532061719142489644634838806850148998563683467088710466181617249115983719677021321435293722604105798476949237523320688298525899997691113531856894402945479710657050614351118766175158806136426092576308212783484241758325174721375733651670371345016828511755670096737894127618476148407556128988943984369206602863649223875444712378909646629584838901788956709066125721914878980611642697808418381539672655236169615107636694580126578974022317348394945543710834015813879733958910530228237283469203795677072820357102044466007387971730506113826380912871526964908416792867275560613856504556826473363206225870156864434989873778985937892127829658884461095596847959432293262952183324660592214534365876365156317407852416389791715916706358894135116902423801893055238204188544734581072783208324327356034336375685043575602035085628314352678314922593760449418030339043296814465027372816562211270811584960684395312753779109843096637625901623279997701210486124950659386213964979688249493390096193513925519729202910640450234118198697873981556000485262506471829068774562136639567826365333591140964837712679446576372966087398444714882425107232756669255219241742925043130762992365482376658807720163924761980863955074384970698730199220904713050355583788244642737829079250772587481011118727484599296754549840247941138181345469850917933388207392140808876746090569339787699862206945157450296689923839348055326391194918659313813798179817214973768917736128326334861247210503640716030335856665266998997171827745568801880694687601737731242798001885040394910944215866262000060743010239449580349282002366280944893524103527180807252999601384603200078461516938036432611832331072964229783678822842530807158524283131643891151101010781163526665257144960472493100914555917128362670560279478994603529843588642885618486234849311181125614792990469837407017750923734644582113747916495146577961142230469741573760564019675366447145935715325780295211720113907812118033200275537476195022085172933130019608099680682376829103011484541555298054563799001807164433868166753961753079656067243555620228926222981636999695060118030340098698859285753505654242691483550091847853096385972084604124718926680118865755805514919529579386162921767200100334128502266982154927907319191339804427610702885526166338925197733078308792949243214844095031206473594142314810847461231930602069364309370958620237646859135919881718477186036982103298132233904205044766154018846831004852894328899745094049528000369817051554781949438820928524623854585631767344479270366697648469336540774632063792888055040647853095008890262734067337959616058134203691023033721978154993068980330859654661475329438519161045413302299355842404084591242162882319890900811808656205526173003217305272503042328223784972465793061371422124566072871926679284363480532817768852420523865681327932831442795340607568866931796126796688171987434078640846452430107551103563486001356734058305845412128614851629102275598542945203037771836607445887182073307081421720307450912001454622925479502341560582719535353968460519654455643483371027835960545265010110293081146515931597501007814966859295149796075016510386277810806437615814210076349778675925022592340924960888706536597099833726932506078182040806663836311640646701914058167384693125276104328377204474485299886622182199651523586595341505554804535757476052815189383183894424131892218154391705486358494435152305505687214112194101660315120884256714576538078984621465394935215023512506497892641300749770124158809683305445621860211974407644383827779524155065380553340679496909365109148307110974912206792847584070103755469605529509793029013649871423972933155379987258617850714702480452192921696296432083476180508194746284037544839126874137618219600384673391087755127956912812396736911935501407219554299015889100112793972799142774386840651946997809274866867288800663745048946072271312070146745044945728458418492130463144472633454917717599699846482632188291807699688585647817418712421747504197670815927765744172183550038124030711296941138997498226353339199027687973115285171598504203596452407891058552004581350709127172869274899263965558216796966920819414524846656177102896785801979245029656870025223685525946582699335903837264833287020444460305829823692141502739019881541324100351749899336942025727061545389292931924256984830225478241967141330770232302348000488431170406182898526107464894808923802246586279829406509303985019811461382393246509607611243291800086178078479892943639561009383253346398896684290185343282285451824064927103808465361070002786780885093525191025755808898322025111086801341205299218163980637721750587253434293768453708798166076370554542741281615760547741273170746327710036584135774782475948751285162239458432400905633113249251499232390809425978563739996722661820935889969864146817366797330375647373827669990823895411963704903592511915425137667277975608951735683010168712320534544094203356367101924921310288189623680428796464165205931515162098768200004793478141990329280927856951946978731497773352007372943267854663422118193115115878541191379874866275015298466862102357224495733471571671883396860322680306396371158435499223005584968280791801506990916281725524080767172551107616776534285257156357568859030542673509895206995835228424537129763339963583915974377349166331193848763890900532608745465406625057895175454550494848296637286226048269077742400132750496687868336164887503105483161104813102526580104216952711009939699839615487832584274073081529964338949390588141706219310423689897314241921213026183471819248941779574487927999415493804123346277192041281267504744358263766665643483864172605078076146035585849330374922633855478017149678987950631021189937980933908347444504534012233142395617855236808410384272549091353197446004990657940483775275616449844289370966287458082543726455751340297617565946097098496646921750245883134971733630461257566655551293915908531581049092651238476700191383813682186249617658913673962692992396311478665798902555672197653646195660878221351447124913786347786503752669161101701418929077795479261215959440709898738717447487003460369508682867812441017167983416833046590357072685452439154302220111125907061561801636279020956283797412855315487232080673529707060450188809152041547700986936169008004687555286927214013462039552063215047631840339176680534858567697053798372157575681398447974643337037016384046094281688221041395908253728763771042752413624174154028184602098562784901456752300016558721354350289130653282476465445941987520483348394326170488530264515685734107079293456225091259441148076126537031692475307299235130639490762505432545099829794961462949822395823261523307994103034352774483763269305599836425750933026441009816080572338452314580093963795093088226631184030637569174542709880365803981834084641715278511093024682710585698556940125256981787906808731817483271643908014204603316925504693128931484168858460519032378980877434772181650477964233842145044583539264180473587395876796673518752199481772768469744171990018289595690805323231496801248420437676806816672192671311217825116056053564529498836558546420866169539646589636440195342797399067641243754149876898435288297568880192438368696702713229141909442541957787547936754704886297745764348365487036265644135160735526892179740972101706191536827878481869977885915887276274340005512993414997053311026580114782227169836627201259531119493610204208521450445150869494227552438444349148976378411596855803044318629698222919158956741470535122367977929759815469315367847705630073719630006036563768629440566971392817208034356886286068874026621257151115268415124358870477888027298347927132853864843185730254880625364489749383429135607657040669385553268910912672849790480484739855025127094299456520784952275543598285367721496233091892015282452605738307755718668494204849454919776628014664613707163994698872805859430127576165178910349034509282509649888469329150552283318826274760291849947829324418528391662880856285720605373841609768958326701987004948613735680783414928878948468511402396230559030537219033110623270794352787112889561804101551413364762264517757831785578389529692270379741460556389743250999485042109718160862579123764082041188873450690343138383468061234668758644823870511227611033705685866963285588856441712929596277421011964086563554611892483570050546168528123964051943898155526826864520436864032253628762275229241867052854183873429391504295661740363479098765535519395176723889232759978310782272116794922819943831905493850510618890376269104524508633579846368303351859809522099287508836916726486094383128117183814582628390461283216448617467855214593469375829881014483977661418695555294122512561780012185648094140760553866444439269188423009456495387194641208369588182626936183491456947248119432755677675175428539222143899035154218201951507030897357109014401262351341919040923269986424830927792753696937353354073416290187779059176619660334754365041358603064854192884618127035340564626293927273700845980483921467916096686415929054085663763251039981944106256233230667849991204301650641151542168889884628481916163997032942278973648282327427324328182191792633244904795415180396232121633533545589980429579161544686800978426368650901079205784049624139427839814666914072801240117848333991412874852652009422616558211121472155640949092489772645950429937711626117986834597266545209829525094292663118257411831435711266578878224854723561402287905794812371923292616263876832077211350202199998448954510492073108312824093413666479779958700733327064066722914386872281067392518701195803338863798994167087839078915962625001255791225510662963699657425584809515856101145507863059497948375814609929020387145486651561482391762766900497591805556923094094944679735565083121871290862024114334471617518470140142384132674817450128342359299059618873644762385442051839273760989826298868166349076030808585556617197694530134481038575874744664155961089266313624513602409637455945172758595338370073720533199583705809318322229500963552394414593795785326709084491701389094184092999135816703634496779467979485862283344192377061889973709659983913924093755716189855039167461469079515068080933313591315221876473735506082447287660513591380685798826284587051398936475483481754275535679833310752826758257680655120219751595622568473974167075353374876811296427866649225073653111887262779244837682961198067508943332333478677954566772565003913980257101483980369427064583611888803501977789258217865906419950005834883937765425031284877362899025631284997205260658266409425421742595873783843853068310713560353075631569549188830814974499094744852379324177012524215714010799924357838053936993163017802111573822514922616209328190255865219336511999379113394383216447588771427715902747463776515393134772898693886763005835624893104764014883536142199494961497625335858429289478892578803061536233842529449654531602106379460701224408334305939440657841347006475430124976434204084324501256656592373765443964692824900909805516587140280679396801530495509433991303376142761961229164419867869990616337339047139832579832753613298867080198183422315797207459048116288046875817908411374582715474336049193520787145671107165915040808606901892925781768443793330260530481010747493787243044168916515020555704531452096759791728114873023102395891036201641888491583623417212312580164551313394126705048667265588088795744886957111442426670599432923897364323235101648338561974906988701339513309213479769536784779478524128356326153769320103412194332225074647618450812770025147042491199590252997915153213609522564822803988677463399809268340771360081535050835185886183939634988309152317541812096774481883673354063057358502988820564224559495989664037503946955529350969620026813732851958798427091570176747102639783576772291237806044491149930255273387192944549816082414401965156721613842625390356958074280638258049793637017281819620253920298151517911369982265871113941734057735993430843098152161638313702209074067876424988446737967588395410000162812246781035547253101488132246357151693449922712295701733332048933281904192816459174857296846760533449032974692328409068540708328701140678567255073263266628195844865102312859693350195877751779290081550240098643455074027098107680671702841999368160602808845180802720318615288603753151513244665119704328402097652629614924315126072042271366795707473744171311445137003844042689941084897079043500087326987410259348753256611647196691137449632075400598369150789031805738305463406755921447074844026464470203466533918767512756663216006208325826117263704758324319577324847506522176933771086501179720555595173228584479887424137687743794181324541985945482985970363268231602149249322498712954181740322696117117207917350672106130373847220816729614381677820889733017311178006343840314136472047982264125917502794546840270246764262245535362085461043433794911755323327372011016227985025768651926574006522148395143842737763857972122270779106611244207749709891836748437733241612746088323744194266365020639160495212883371296079676701180150667948715032948489654433374258270136281343818925535773953570239762078972246851619978643184934221262864828884094410872720643065377252404593466724538920281627633439636755530429361847345573323185016227043286790365076104265770499891977879049447697802920967561120125768853350169114444662161005622618678880314287022846263367084298390290567338010217355422280702118376627253094255487157926370585820794386877602792183650562350243022945168393608783756872461985721064841483849707113580640569292390133070619969417903340308348535617645927168103883797376326507351268821416220403183133499229483249911730545822350554807911174062519723362655032913071091960748384084436982135346098873485255997579959303152553818828606263064252438757828058317599719752826499793314781649604137376260927447152505137703791102966982633772788564886145319902184167119727878397370479987512728703283140299511662642498779045291767130305810720034678671208987782024919972630821350666086885576335702961325494133535984220452495060120158835807783549193569403083096621681536044783642437453119153974326576965197706915183524047197694152252066128781736752898014978526488924196352155598641162952574888960645481909086027635580959279113150635282831591226276587544297848859830871445286900318281898226557180332788056034765407592926757337884339720078518868419838826092903675367313928909545578288200013693724577947643472573581769486322994108421961549557167161516605258458113276385523325093353599701362287795842008072996406533184508609130936452951340959772837594145970405435095048786321429956520365194334032182767006015501028201326242555219399223870314812066155557796289086147040114838624608798281834733889855527280855613571810614066063115898523937751839210754504017424742849128814273539292353701186597737793555443871655739444322664229286068554741503465115352806045168322791363649538935805141401142599418953505885101042398415078851269769530359405639124600866912006951001572831749532062310310158921381368395760419353075265818154012268228759613654763885107409553695252728141736840737483945575320307547306241416862909353377021246409614749872241304952305078884432037282664847575699136558249079350824792735645851398493350355588264569161754426108361404443456256110953827478480641365827099108659917062432367106640387120731416746579236928109435988811343916590221277145592519013806275680616350180936991717042788818231860316979654156084149807293156313207546679118959043849754054778108580080162999385960666810535562292968455973994750436564057322577135865938865493032954178651540202987059067896510036506955156973274395727233482290041310692073317112181518771699094956798172651147259918989113041988618813878433118260445463346204172585546270882856413324898913958172951105455344424343538895995810886270380221661498374214351144731931651427291013566164722736459237274731647960901635620212359444837653895365844650576769733174008958553293451773148965485176002418651926428093677835165182024768844885460802789150198627422989190309323312667682355834581858810667429282349276198199993570038849811916407308680572037442829042730957248209384615699536224731759248304103362811854529116822695353840151213849308016982606223472125367423848970928045606860689800499603119407986775750733235230546742083955005775375187383587097564789515518627022871130938741915623795538377239237930894254129498172048418070819940844973733253834984870542798188361271946215364554250453844328406362971095725985935455310401295961987402521168563772125078011084759187878357348408948187422279367851225955318690961507176273629668508706268161595584933704138245319620428476394690142244418985356118512116394657590494283279651179503271336261194169364377971724129865061285006467204785992164572377301014303137105825489363624282207975223131850239971008097378715219884004161606051763843812368037878524944144604465022029143819253872376900231408614747707378976824112655050847559179971418746337937412841345093548280852253095203294199081742709162157609240362793518375316130593150596717191931802332167896044805994533078921383176189780702216387964716822545339553965727142399910761028005127806969728015586447700255648266743775976305123089878439843329429653119406890212105005186327978770992946566601823010780557104642429703082531957203694585270948560711026892778760320202669023852411768673538565422106548547965075142285380106592006287539878548116630211852174399296292182420424493512378751462241649721105962751136262367338517011240419362806453766116082302411248033478771259263564336176714945244738377812305501793264446207765757273641171117550038569063611265478481232775766627870164384878754735314073906347597467341226910136787814693659819254560765139452953631933623174880849860967373719845950392181548131186971147665389013755021473026574037095106253626273837459054031785631582169349975598236344013445912831670100390241008228188939435872052581687528108820934284030602469813108510066885200609320522534326805644231113911646045741585319014817268990348634925903208507619266005473744998748878899960211173793067652967519239089316755433218677132831191344057590336247772865589150648945922044105431182010316814638172998516653085738196949667847480609085001959487189334474064425226811728078193928639661578721827295593239838224746173355038223239038810172246936944075122697335398843851628478943816626917758646699487558353257605812294685445475122210777233442595789235814022611133785398341712374292027351752735760168530637347592767352849366782346340945357735870450307190247470128241169297205392792635530383344203065052233979204228600809086883153191565455013640801101605220161738181585479463186565348385561852694054988003693525019510638902971430368101620212060448292000339400287057234691960213887899739208761630597738576923181915890775598146764719462201764744765105069885647566310306005197343827606162117829048154847765357982646310156171383965522944317930773259056713041490922894211949659277049930578577118367862958795137562282257632675914167671046140406681566392245648556530334928922768677659101356965385133482963757130804012936247495457858456886666707873931084362640571414608259140969968599202524156613644145649790004784956623027757711505558584951903652907752937876501235790631602482646201542934870952201186851236505800798932024500320478795383612038045333102204562251386361028847871723860520404905643366605940571036963170377597873152609961290202969523852732506156502294533730868387387515397065535171931686544001579070189901537952368510718333209318156359542044049482351610226606912643791173245205521619626750243786472057125109226605224231845212009165642417879928734512353567698857713291457794388953639375717938496413931855819830498026579894752145046193815736205926181472578729085101072726823008487381448908928857723686061121761654028197109679156586486274795090583767048509292888732940718876059028918628476529839528054802048013979901241820530883019564010496986641186281878611853494547318062640843148093984628191620325401692800950669099829760785447927902549147429108135008155902367097682153424475852949122108678881807233930664163065360850814610372599011879957304514885566541069530369752484544515757687984143599514486539720781846196576390029272345257508233083009657996857590324580110243774338427235677244355417703239935159307860649807695022369390076390782135299460831465850813659186523921993541399543753651496286061872685641439487632511146076362559066146068129873859235126209129190882645030017841817286185775071517256786219154684551086093882881881011874404630088830812259676302504557772802083066103771069157464019990187751906389610999825379669699956609117967197622568413728088201861393820154458913449325984891577871486934711493684472291025294264494938657339947903565822365323712908977012055908619086367670266437721006618755862102264389738598235089691003729809742598982367895581217463637903867643257592490740279061156068410315970011069763133232097585032168979476533694137835959362797894044870571215200832117957559124201000011000657528133033352121363784119428623863857521565100448979708393077329028960788234803329318741451749453978709805722224906176236656298072727147116972240037011640584742197930421577691270997816181365892649404474655233005306715891529775630679846427491353006893313922617172648231873108534491924177421765512914281577841422054058671018763694761833574009423602532475839803941268548054788202966339304554419488932158575079467533312363716624738452734958294318015621012191295472308989406860626595891687423669460001817789001473914612065835540457687434875532579819296740322687294228763734590817258489130501305250609397047657909292396789686192624738505255625284535543767165905704604084811401750095011368125134529656003606901341279530192041395632934666837408089153783800273670580276315273217121796334961845604609010086313158891809901701696210847153513344325513774296358371730609104946709509886798762415510395478570300924047632229948941373078243491157263271177048721720564761178209019386907080842795280635658877924312050557376808167793305593053611557884775509012185456394471748883594811779245392554113745248753861399561570172388709135761883641149513530986832149774743907218276857016238344476779048850777721986727056915926341680561551795391114762041853690875334705463018338811263548887239695517198518206653886862350967238364534156682115473306091968560227719798822903728202453841432712295439057977568037615793177616215543825884952745287143442303597521777052835700458854566508985792260447299067702086638260049969775064477063857151642908396806993640582608034049979180132093324954786045874134607703793422218305137419826226314509186890183978846512373882923606256183297382110870365076467393306377161312193047625151867176239668594843078458842753526056069650104962296072011549060761292160825156637980737528754554250072960020643339903350043727129586860471473920791371453407431663015774364676713769708060845505185125498462545195545828698558435914218349847923834843202252548648197974326042889512426634810161586716668764135730516102388262640422340175367203378415371072180264353035591724972451204812833855419124767405569901397828810848441699243591912596759967965572549060375771946407548165584962850459181530478455641340698032181031789268014437830640424725426606668910117587402439719415921423932568697133017544148810114152076566835926961277955698056854065428759058059165027737530026299901174124049887532334095529251746368480978818258704377760677348820189520399489490016451000218029329359932985593455160831713524655548634426672347832150914271466544824563917514443279620487145300223992897257565969219843564175794490428052802296740032266893214966201839059157614512384771814420093224030505192150781445470758152442622307380393149973777820106254104899245163632992329823178575600740495189532333200460562950134386898823468525649737793356305928830731034088069709466737930458585302083853441009913363636031711412014483575704431221184759357153603066617538657468163872966238733189186843465601981011290453164466515358588053121340143255160810706524941530695049120081542170621934834729974600954154056955015319272216330610224837542632283909394956031239551103395992753728607288584721314177252288848136202592795787855832761436727638911959043098739412915954072252277571132146156956194237761124146951244487965796688820371110298261090624283539250889682533640899838445239721468750648005651104896679540802308858914726108336756575645969975699598621239282879966960289026565229788355892119377651199495735310570013292813537068308961363016004593491892326556511450805559104118360643998279640120600284611085350686092969864067159305111306108056013754831364111233937079606257572519160779803409625726475679268556659054679614146636801753043969080628363629700771335503116194800826681017245832239707549161857741525095844857519235992097809563380929691260733211719730892951615243588565994794551096326983373025533919937639104978445640479307534377893619233276212949024270457483842464884845300721537033713576080964281454703937390763447008866855755062873175639313372311390180337614768084959789296745671184932242403355214791876534988955002994344901903997912306216559442457953061407881767927877372236111615093463752101793582553590062670626833532498713162171070801282074854948140454208604198994187157894370300601851641527439807692949526066997225506132590023858432684065621871853562621422430719640461875659844292207889686378796862803278973976365730061529608276506129843494426176415256255213621895119703155373966655225207940439075726645588888773071104949230599331062082105860583532380724070446852555137317507713091477065541732349712086381120231260285707870350156774653529166508110945462839743985211792103068892907921041155278438904129414595676110688565290978425944015908947790459490303297822979894197472406645182329355556044551638402231989835518418031188838057592301608431861939791994744448397482138385073897913470693172975262106731990827728449403672582203230500536503574560209442927508945285334630147854946693025782192818250101683412603275184031984149062919483949111350566808756569426779867884757696492070443816597099132457754699454533862899565979035405902132190935487380758701301298756025882243542056725617802165954964349750981220734363003627748790574020355871240169009216226702860359802722087636955429405788007485570490733378239135973230286321723903023230119109539382936543762300791678797763756231940245381385418430296668456348721526782707916823993515123835773424873542620664698188734530009781597846626598815632153483642640540715591888271762231509789877754413020663712010531750605451891518808127007278061488711789133373977747485405408230735988246426335343568712225173413356725595065518284607779213768950603498223868091484499199384810954031440830277402603909124878967678842179858454991346134523026639306265872048385228599921930876524119467793325545685019311428515643173076950617786976430208499089020720083066967321160474033335865038064937611225449057630323588584425558907571825724030134088909022112955179055128113986898043837077249736163878898743292925036198886949601440021439093566206670313169705402934683676310682336883693572797742283771100933837659874478932368515552824928017879521319055412428895426916793582434277325142862338856459551979855156302674341942630818543210382666487887436652633610239096103755245149652007967172310323173598759208191495870120092000598470862009885162917956133308056625133617364465990308526534517252904993034209626436711330275853223825238801128635982478131301403708866881115713632671126086501414874065545469438398598227921150076906719532487870996739179561831594775401096070004964675183192393555592979725741381955678688409920540272937364723331127449038758489682743571170271091057684600779509633650111481761115515067863595263220477124810782022013163408186448377547990228343189583448025057146613984592194387924310095237855964245685089034619008338955476175759651012103326930226558213249436599107905890843309959923862116819818625125821726124310289776803866986869924864980225707723722894619732215616558749024573756868691094900359423559287099180779392537908323774180258265698391925392328327964432251187100327482269778650213118114632360562330636261822228348513408373621823684238233076185847796560898790549329550830225787089475450466543867482600815646720309149301956491101653904059910772633507241180842904861002094785113934196656139192503272122654322664928206786920658074213134014605957049479499309333671715303499501640919563011093859583570652590950848198277557046081142409097450696028418768413398299689726284755375689494738018384637440302579614493172616091505050878672922526922662954523095915088137535269582407047949061611465422979446031088221302366138347624988393365517384819754143916293457304709369681306905066248347550153269827959608412202525175429281261461745435944914714296323979433842725460693589679899906561595970213108608766641670981743810127648001713924348087798222173365288263150993740829765646707760797750449044349491290194544594048955580929453449856815708759839213547270266291809461594836348504352554629794503569471230547808612186251633317986752577362804279795185534684583714027348732046812488423461845643668450794799519587406398078041798362153637813559417014943181201922761697663626501176096565935077880176008320689304904597137000504485275519284048900956530685527159301951755089587129083664361647665667338524259641836576582118832021645360484400267940772078519800488440486128944409529646970999723282740115307134309594507723638619900006106931594729417092827316877790119529758089361182015994339626117427300371686594235333880353624566976009604423505075269939113484294926865577081570273794698089098385688414544893561658063224360384032137745804527601671626036221665422129375720910313183021158112975469738397105273449961531003603543133197832000773747101761351154882666746640210339500112989113669721630172951320887874545826266000643909910875747864057934473827072021385808601583337415550041662466352751750374767106470654391136039556119877982454293091883296013536416186100067578560602408626513735635915553697979574383987304109959788172105456659622595094655638122275028578965596029392272309221698050571331914672682311782080795529169771312538695326960913965774859061571511504314127509109555000819493069249886422977155211693671242801395891547883189927839702048792770207660410084005876926514302808272383720228090228370160133268975577192999466578975567689726354696113950400887626743600171830898630385545740442787314684724914238539384748923110869998840604137029709136086167640796699470328374442009357945566734003323919411404776658313536446132117778812858464876864811338141105962991474343272154539230057837594155621490171080190122294753400340706107844629951877811760440923211072173222529727040916143342959280781009722500205493948298114326234340645311643183511886112867227666480469769619953803915364786394501032211430808843839957948749417687008096129176862411572333066654393437962331368423586928572376160902931581854983169348868538237596161314842565342421413121874086779805847762970002950217635119314011596124132792127954577343678917494392449257663155521379967957807774370455036269211758899698165236683637902860117453449330010586854938431625427418748538736855534149676973665244434990660987679661346650256289628997184488960921979612192130488082018479971028602389374240836565713049918194909378839344042823364225904498277827540688434989908803098296556641108626560047490634390535183971314773149834473489349773787844362917007504983721822007552313718658296829987413728343504167210983753884851256644492619279570020265167424730147211456581253120956460964248343572671298431088755483627504549105332452474309539142555424118368509858758715411613473861949756221863630588480194884329142311573107611859854997922746135140238078627843382775814615628581465658898065364143288807700593004927089316788182483804203905597329071663971720904815449005469148897542752801339011340204786307681167783754254676564435164426434737210164144830872189334348638611939809000081796546523638839306400433252498413527789102687775929634043331199962512924955361961015419138000804243159241951374542361287416587993497712388204545060330117865508767355980819883198414956504740990952228493287663244550777377819049287936181698154597583485329246782054962510952323162057341432454868815360579180792825527449475074865558873283458666737862102374120580884902475016510720307909396675932108623426054498039791440214711506317414874831303919871141338894434819854297057252188710106519855288473334005394519627391201120523885968051969410828317684004695823832336270102658756094802580116283437093578666608800690834454149249569126528669551154225106881664128866167300042243390042401147752689969303563614218226536085234418889833641968971953385335705048080707255207442563772015840427999643936945076402476985843801630597471541757003989564466520574101022830809491623434161327761252006479299434511302812429445344137515506241623069520246515231179578009166286106727919964574044236539167024913000748875254223185784955141250187530804729112973219202207321594198756563413540909545829659305314447164777185860029058601013142984169369842127579073239449682147110651185098432863956515275725998199964260873189771809188955003221574032046642209764933924769782721375473291416974407722397741797705653398083234357178481172393151559538185541601242751763369165673334383723902341944995782842320509301961992584063810596644265968957887060842094552248458708275713343195787790411709560036835023979738137172267195009177881281357554937423568849868017867610750749945840278424316766829005913605649729127258941835046651330042577889001410547273189890802342700440150584672552438059198995182661981583692032893440668625716371128683057713285890569953726016958789891808665008697293015795905905840434339114479578846592599340427853613324944670664396875990270249172244515300207683489605945517059456069896602352967886979276989417534901214218931792988990806934633950309185184713106240685602114960032266404555134558222746048213947415986540141771555532752342727654287525575642424648988833070414586442493400015788301023064498324749693026715751691984039091516016730329042288228264648886713216402475000503423839224367631816250096553184225754429215441701435345554628594428525017606158390861172381133353959567372065354406031663013293991649040406379899656261508102480857817549696461728387152825455127571568884386792738570096580189423290000030509652978075523450115094274314798526725608825764939001533233709780891647863812679426240118870733971561202591053839857654985628172365840003322248297239989077048771381104144380368849619127259777123527808713323406701951346326522553325986558752428495044193859917345735989565071821602599860409662783777968960098181195757728748129192923780199075867348752366879752381449180758427061454718754828205309858290379872828122553583322776585813234409835566851615502283617937131472800745434409388855298419799190121437191457592615676352764373488959786058737617423057965873993840040044753702297394751610574374870462975680340414194473414993411732562599136356870188000653374220166989597016730104006436608441515765062879797394837709009463045802591169978051940822096414543763148838170998994044164326979569768012774929641208814768034515920340415633193355784833826244613619467225360903383275262493183620460586879472133536765233614718827514605675126971531111832426957055513159541125083991168751865879444076074074287316487145031370490687045508296676091822745312905684199368635845803386933983780498458055933549675296231851358939609018531501501835772265134946662422507890952640655408401344428186848550505429011096422900200595905860499721851353079472862777912300890542640498618076481111053233620907959944883062261479834352406748880861986080172857438197058501827651805755931610085787241560598374708895267389137114135936877153852054569808028721106912859259998682165891983571137026846431763776725999316994712284042357988913320916745185524895488867594297854771021990813324858864601434290444845548929702628055258894162586925922433415295133670411492010301334114848101574247992228688650711472718697048058882339725162019144813665287352599822268607007598459560063406149566278061911461461277121658160656324930179458936495346815592333273941830649118130536199843812749592348229343871251373170141018095572154394305022255893386181349699497203930460606798569691457019527398496381323647145215816565685291437638142830500964023447637506068069614537538558251475074603014159970186745223841924624976135998608308706232804350194473855155068427701061758976765057864542920296153313946514628134718258596985639671293488535572338586687597870968457750057163264141623941812181776931178226226218809914845350475459755117952197027416491440967393610254505151803738325140163970666391008524799056750732668228886787625701523557383093345827090281779998353951649298310170166908086773056171332597552238682485322582505136617507571521165763471758560846730439453486458300632057349440157694562672320056584884539963069518252272498572848274952595295778381827192237391247436625790955483974894892946230422801753488861657634937769565134270895527025863730920219044558295187807530913343039408879786445257811931868472137604326614340906436519269515040101160370654379719365430726241754788071070851832290673934787573479953878283772477010257546518242642142855844483991167612761644836383098943943326745596732356405571933170385514740885094718630594423875139519518600166441918472466646923496065128643086651391794204571097207618047855869824762249320318129917399047401302435074541568126009016781498538348724567663987768972958969479905889258129527423860314497455659589284001990772110464963908409023175223914898317840694780983532590682165867029506331027213246746359225693701595282256597864411049298950749356180217678803973499698996507187351511831148680392083424454429851859296511726433033189809279701777016835982843726373736497115893410654637723605411921113276576208550187940015465995109387434548868362867788785090547822019870055751517343110935633231190293134581392106523465772538054945867915308273508366836444937474848807998049858534026754697087418594171992572323862054176422905083735834289896459612412302670916623262648762432143397132022929357935573334965737500409502708761477524409897246003347514312316005012832047935145610076050915436046850798162442934716903945686118735495703282293506280818678608462835608243646127585235230818079745956679818387155440165469998647408025661122471532390196261527784439572783067231112207577066459967387085796814648890159589817321391284914196171065956228776761513976309181088755491076900660547103204171491621567868637157250075342543735454482835592419291110439300083511440250156875729065216889657502586713913699141416111384007836518788512398997912923540273841934359685202323445957827103074320225547859905972327450761984073584042637782931752719225666494998306969455290572672098373316181323647133204205355439656325455351581095513929973945690779510029390077557444762121440112601378890090007049342848289891602442881325664632346998264456696427917248432762779608814719120755509568777635407522399375316433002727075098576110687670370539670607262463992146055344199301806024060211822585122396101054455619132086063844213145317666174104275090919432956596675004159584076238282310590290533498843509834456795439068706137561951951033823175640677227618629364077700579759755785685762857713554034131735153196013356997237493920461731266282031116013995350551731159077240707096598921046947379915235860244438987292328361532913083157478195077440066527664906353014111959639812924463169641613988296716454767647562037848866450432242135618626169417420659452307409976737360091915177428496340679940736399668132168351302737945142834185393052759140929351816765183703035867895005758150503492739300523696388554783941694388316705848545943195152634339948739432709467773665719132811615464895228848350161280846431613456480197918592818534639753743188044241056090226305010464587216491132754010784313136372375464100555936103006719631928488721900956702717387324908611393879797930132177269687370907107482961717624402384515848052496436915957674547844064860419308866536442158385002030947971756581231284451928903459974410891317285423522936330889638714128499219974923120123863093037470192751501659377915185620527209250481735181108164812198503645819684187838590543017084155082800623411758363452185069224158089066321768854932409051267126203561231439737762261649807597220176372325229184063210374622959387228695533415542600862060628813122819718056797030087973848548889957672612219202086515545608995258349769991422144803863987753260748758052878355819829653505594617455368194797111121598481864088379698980959349004697764461920496463021524970267626167139471670561844212811396307479989927355836811556539835355946753354515224288172635951510180529094592476603834256053267202675332584210180148330241638527799367107634231543964331939320190403375539960616984602568213976576866488532019334535841127879218483076352341855690265603469136448400448096164596060528398223692335372907321379040780571825061637866345389357941880369030453842825942388805090764033225453530516964112806294816699559635922622977586627077375753778083456890790092807786186562516647659054935350870894190712500608635391283177306097361219767528853595881319603322496295312601520430385595329974637387080657160846727886611566275524128103268343681077027940186450397501204910508192610881404884686038227865355068044856735565893790947473204352744983031613200552295074477410529406070550579479444436717974174191407988927786692204299839695813910820587380821991271203803893887969717890769199305231663116754794149841022515500222234500950491445786322105788381728339879543330448695584083599366788979924341951035871042529910281512419685333243199533422863290930662679049702947242141615172398262643647852129720991241333407784386471150437099917890605534470812368512714001890362501254336544576992008167389910123079105176494905709995461899699431086886874019274610640141576050023442647992263944128247992331962474327777597291383312029433379443732834285419555746079749145603393833715205689991284227841209917411854452338895788663772367265535095380808018036049825492617468065892614913884709477641495476769891290485351247272307285600375561234526204331702579360520467630004905626553453478173041464615022630597242715151599815304687328005264672147391246056333407706075329229471854831532564664466681724882339017041908284139398250666171879207004575230383598906287437275552723227247941198802552287042953220286208150794417696191739426938258121152285587386950653281149899659196311694218339219479295383493524348820464325773767809648732955533493151987249208456315015222098410552048126270180921035954949131948115349965441418321533331554470163212347647676399214276787511136395672016051180329130379549549948296187511350615763760480295882627445535822584013574296170549171874261954481697860268752066110378708647932359336819069364914458449546744531270709478704780938881684468584186102222276465511205022873393271358934880848931998955099254536145236921976475284558877113124410147734669352518617136138414977936548766228507301778340661970646656741568591985043741494060993774615030350213430480514083384345352734634644446045484371318307162857518050086480561726039164105660019885167104044680187015687374806654047105059333298848462726446335180917213096735347625577773659864675343943001547202542015003805016663024936148511992655405796042575021087303924051386551584388463731939762653028052904831732594127385294585649669300376220042746925163035248935642236248014043024251201447468446248942827784583861559065645199028922762217872139172493782773709796981373285523032779056448720861837529524462003393390737909221928120936908979878839747820166499593086389754793398523733082709646415939782293281346370710163556905436136550439353516815074302039393438755353385636760282149605617068238382251748124969417104942054494120009547731355015693182313069822541048895863572251104594814749760554594065293070444012020633053577335372297538816035447944423094373113177441276538524081792581088107607539119706953441841588354950892655757623401950537651152099402072199677879115878795213052196450684494844304234113886742477111356655856472047425194243412574694600637924018903222294212307446033473095146063003071798338416244190972648291788711842092121322670187446045618710175970951450787927080669973344843596344027684864910773196215625450978981168342562004171462098934708824010031136687072098515559875182299785752144478310885618404630757655848487639700264247309098277436943894530401151930717060852905779254324465085934772407524943864148206438027611683665718505318201521854776180934997922403587199876125345045144868317585946255278487749910131604282850973478132105780584999269769818858674373946167925208021796603484934390786313146037986460477051545477022478625054825427145231075647632816528844157132539202615012005981446744309585471222437843509682572455016580147497246892331085272862210749951514156324133683797959333856653182312976080036497320685024234221961354988679006545677937823731604318480044537417409104630437781958351992675209334043889340452102977630488374532778173772666303993648803803342348920193713955191389504143633696731616132122933863201489444388470383468790097474267826679276404574838203601338541445155290518515594502472679099270140261354124011202176595398063021936104210962842147387310525030573871898128626787578624389520205092637977858026030676637336027459353926922058973537100956692957000081955627467589501190954260046361852699169314189648903946193910408973887043588727872936191790669789468318488936193294306923926500340619979865135690486276439613893295726886055308017209653785554854432901526529169225599731276998942707648778065890869345304403944389109487520666760463659786180490609382040250142469633875649035125931791517114758382166265242665178661471052774379227972981600809864213731781093476512783486580536527888226456032203151676382146873090871873479495885366596627791238119598937630804148914374495151294330227542470283492026343170054722976640868183984585864320118414877371123602743878351902641239824053882490105217915902203614278661139088211055081944909348253916035078648748984774357299782408998313708192746293139110437294008201016131637088097239904437305802962430640762478494190876521941341712170254538346894176353575693934768398494495717530793881766009709322465992070412943980464953497887950351749665995502161714768546729924086349178466273411665502948633392165008497708326995532983482170208602272020358398195726673012687219778497598654715716238095479771094222428492792244006834592662493796490553716680779254170944819163071709030532342606661503194010811371423370006917408869730100642447157367494555747492774640188628708730368341341900240556370805680694015198483840790525363717820814900313664340632698125618174488174378743046113210314073458250287816663372851663225096436379662258343881591427521890110227311009926376292748303287427599265934616724359607123212534229547791384542342921613462300338520344275536338426273670047179740712232286412989309412046664960951786695802400362630420507239660069904404759632288956634890570765844579663469939475033833873227583608834905934933990318405460169835365173986210192644856740903521015069512958521191137035021027684229470251272300327109631597464952167375649891387182226435097241809299064947168073166756055647880377286166612158818657271645293115948152780410767185345241869650249460785606539665873470962556249145987009138207684419642707439456182807527109862066059108288791596035010792603925181660884087062450473015128724259914265917287133537752510943607762632253925345111702439608233484692859659950347729208998561894823970047350454509668844273940212142376502094621161104768498953548747355630747054909211793461320976334658247925508528450402413584773744448015659035641116308302612233276357487010427104480674220183646694756289500399874284499910762735010707242872083408964605079105609771288118783293057128634609803200467183271519995432115103406491488740922343155914584651337666030724380874290687209545773452516327165299644088333471138752708571175676224747508202915365992871358053984196438056537304346279912781851753908322395898017239267746889310797416948378982305963567472477960849703554382245977175007611011181700415398124181823122883523632409718999461565309486731227226385865985207217718229160143687218385570638277891793614593788162695685232005132855150250498029305112583495426844775480332859119279084905367516696138906456186699470508478868733998205702033685583479208700420087048410222331058561269479840881010053943372648412094712383764158631040157161330106185555597277524485219292269862173197563919472788039403471603664689584425828742389106661056822939681343681567128014142147530301536054056125579256008229132524167823707320947159669446998576609108545900874707554874325863582924702171538282398074712302773072644235271292710081518028693085080824983069749168786952589178970886637825795025516632577019013377564160989713943963123466633809479529497515304869213959028185869011026097479419606522720687677735529041826527170955787360046455378278810623460058664882507425480124191046581644753593009840551237418125827542612772186450802216658384108877206566650142816560064087577573620944454334331272645688299589071335248077902726169282045222815636037953307722553160439193480910797792836046734025499623630251601047555208890698512924866994815054237754620418840831608742947398451462361990803533867513995419495654460872301344940565837316251772863789060385440380032125617008046776781575993557682460967279780298675137030468082179454061417262103180345092937035117024044176610784791082143478035120678187526623293030419407766864692111647433613064418773004870313240451098500555191087450820499156416939703509161469963255546615204717199335848706253522575595453089454268337789018184766913424105206402211503945310257101684584556035382851191959302128672205277705379415847579720693372942313647541415591914153291576849851437458091648828059342179806781225862107203586079182965911622405220332862251888631581787300938904532737711634698673333048315408878304471578758330157841541629169936322566042660063365853636793305550626417323749112881286422242410214456130669386343998859888434730545769548780969715801906401666086066720413638779651869626690158359418993798711380676874966860776711591906987814743381016806476189909236357081257908206640475436663027317917568406058563371744890498626034755551343192329673223042488310267735921999340229762616606251039083937275391674232348824439043896014404238283771271468341526192710160435343633548149912229021793982260275476902241662269227461663656443096850638175651831306136734774073571139473642899847929169088499553125344365494422003137900257832577020275575366661833917550899958460703738962168500978422299210337803705595731980204172661543906422271959617823209395526558564183394973015715999541808612485212793245441493720707585068423213150610554393186194772008924593088815705543134559546620254102742196318352556398256519580710809716736370414949431232482595394240694630380938150819286543233950451589188258579720979541626343961827676228753913611414405813033239028707555184682071493707245979602288912892550589998637231060584773268945203362497133749462955569376184000773908935408065003604345872064241599800371771830010067882807904261999176161168963058435846448925177120707421094347832126185174564631372658008450910955062115110259044585794394738488296121365430270843105124823765783405411134567287634194221110612344442541783160895062844812465808033598453196457028207904287537616873301753767578786998456933159694233958610714776553360208974402033487056155708787748424452116440128312143526427057794292106484112731325650423696837069858717606688006247766313574530450852844466809641090814038678990582000983422353022902328193437464119731260434292253864095003487367182817393436188541252653819400339556446528462296979196515836728855133254652830890231350651556137782508389076231143380458245333136556406844158083140708985036860216507279316550397030983367565070115313308715900925852054328514485456664909519389586628332393072144077048294799601553227858845258992427806382723363267724590085377462956795025190575887102993718377450957812657684819251415106032393872652691915750338231801813831404382657154255962307400004560630188696473477256775511948136985506843112166693633091747941229426354265345846395126922039160129266807933853002820594268817509771403147759565336351483825400397748610320854548319254193770197416824281287962473397015244184455995577800335485808548935059951634143045275665007385741731437755767691085794674810446302582449414396189469619875002299866566801572339460998030584779023043504123823545862755978696393371816979464253495828642195557873808516282083298569641301909968871633113536573436246657040191232819107188642299685512876840594524219373456144324621698932528732346236822796512991558148743120297458468117731101008829561035767463666152877615549548431734295638065412502298951149212583387442752162084247716461212752900820776905407755937114042158580894337212205388390182519023251185433552559047176793426832151016700379495466895308352411784514505877814708219825377973594699755517602969955554914338322415198695909198057818725484618440981569322355732881448606515525491970558128670219619494019712483521467073796232352350233731117369404205296272162790939004866630094400505447913223093599379047368524808106861468584100089418338451256186504172350375138593598979563516778218649562501224290374328524746050950943968052892825020640733469100523304017583954244478837524681563751188786746791310008348550004526941457913053466985137606139385400311322459842236328830990310295593359481280317622242474372887093057481849878757015821245235635315575078008647379293010058873550257800169717421367014789674085800983450800749377172053531029930171637341062327468057306581132463496840788201973043103499933487538102646707335121740106925902898100090893678435009262018999252474697129202228451410739309009935165522060298027565488384500861879959668415799086329453116008484902614639329330093501431541030437259852175386174569666713952696749371815900234824288235117854340254290389155045127207017480316866875197358580851747466858907850192858843855215843481738507499825337099582880436591874317988073217263481721701881820640928588418785113263830057704485062160357928211395413639868753096391339573559952810010699837936049392644895006371051960605785461686466184308468670541731092520469174469782425463959757081972934677500587772085792215516951988597927627120411170196134062828455757377350943775079178509179097691559183554990320836471960679056726919853098668038530849908083464571318437653743207541969327920024904591534450345811522424751316740731884554143220461973191111720334255786149988404902896378914968780360337135684083980961571830424185930913976928308629724579910965196918810181665084309217291863058783791352799559810853903047178272367474399411249096997546517146603242107884852293690285234485074583933763539595542393814308815846326036595602003661925330139158662228763845815958169722550416529528427358667756207751165883732707429629788907132149231933599205283317866556192581721748660747955631920936964232153763548757853492281313219611792944545021478785366018258152352808642678476860450514013508669613941012753526107418562325404732430102776873103928074743808982768045164630857177617347882682782852695119987560885388373509744509517918950456537483430445726342787218191087412763644974116427777566680593742513701481990430412917608629894922450087125611991700437071262853293377542830008591796297634766498617377107057666191764365298911764529073176082907636009042001831990214735932553378862638037428777734740336852930642912790601068605249933388792359887550185314204431359214107650719702325669149483567831779064104738767100213811844366926047106641296500014552830450735290194152777226345927923716993088066469268079541260866491084333517034022321021031762876619935242933284977472997684949148978370189398117689060251869326116602604582433061236690080688190559998488366576911616697228851970577495144979983094630291108207973272869393015137740647641307504152219805262588514095463803992199702911524746621096371782168817694384532871641469008422079019327469436391298338746145636076786659749693643436042137365706114557358888886340610097598620299320151976321655009948778238273684241082924325419231390873771414566017197156005895666747302366979151431659231902819049152224087410384088592130003113282652615511473208707990143358940380281438460039952685928929887612211442442049098702946129396138056287732696207552911256420367901523541627791022698768775140140610434924094998668526517588681527889673072190167396612804050905756695816161933418810209623910886610025989635039396124281242976588264195115282120663444676203875538608750950455730881560218718802567517316669247621742824625559701038321330799973333755086732095623327866926767018024276431605509015021543827613578799288454222116649663987589838692781012371639268749656100583449134670326600053039383854528327485223454668281640178818996430464982187056885427510606350345124800955575060146114518951030558942617808945012628643679945393538826395309082614003076765525079541820627055233224820108222968611737110252299936153454574519749561688883741329904892687858767780397053449204224827960799262478032390156259069500158209909887657847233694864829804028004955772379450103444382699034642074689294480157422118475731331171178408588732178330598007345807939118470337772917622069150643337506105175398944542772591604338941752873786665119685534344989074691048642745932498753519116832228412288820398059325679803801439267537389909787070781883351723926358207193200254583198120666865861010266847697504035587257547943766543111711769584890334785147954690482453912322208531478759645644843456334640726613073722206988714640654399133792809296653421174905598813242921015442788366925023400592120739168092471727039020545008432632859147488738653293395772907293353620282783152214794487233448676237871689016828171761959191754094730684415152088335059238643970301168750194408328518476001844085453056846145018703691639420143923956552629732530195164183731888252355402129436792600355778260816144308451489734459603146538215503907162824193372304812100851521151864089795400545916968405398943865272764384416873156222104236440726800280562515088665516518612344431927078622619849857970655934169675207280810769096177813428498333075189227831777476361139694189757814540034180609134240721459939424385707168144253831603629232819612586611487953520626039438721115569339911571199398276204861589643645190574611261193320459714206955216880358519219090670110252013410594787187510279064958502567316654679990908513029893758131367520604388153242718264010022196767849865531971725718027645828844972701785588002151424939982942432250232554908632390456186350063669178547506740462273981859103789549961801711809470128070022777725577549736978265971131631424470678149787754432260557391405402772345703280848958884749942889490802287190180124571179151449831794257079009386047617701997040262667661222703151760256934436068599729924282023856997194450644531385980782851067968067233843719583098348724791360284572639810795805895771225101512111288079056020342449929669955846105715300244227720064099179407558193822139119204972448623284144650530713031630448425550658372221483644568166510595884608749355724544316378996412957559133705106506710405747663836600230824245043253787317810388438023581193294731144540231533975036814450340056491575130061526980693850540121383349881912479271457315709084632485931089406403291017634845971630572600642927740450302989475839540804739669049506695502020115281233231506840882530934043249613859886820572672159011005418000357541258837677798091372758666111249878254320340718836604531264973500269728265684459314501135938047399502547941680010556251455370716158586851334454539151339147574273903389256550027325406128157184800872050056496539582551817821681006753473243086815077227377779125255482562564011712566724090674308623180962641927227171906094414113763466558454710456597390905384031380249888931267805972154184076293687566865986553480598858388556854182596066193576671903207339033471728261341383806483330303351116568568970418707545445296327676088122031113040647530094872839011929512261103586693068946777233250646271871696203526307725898821022876663514612045998174030481916374299428758895919578782529163524805598161120112433128240908557631123468625030904189957544749624502241918216640322272171336712723854689433595789083295585514111188953292520662114358604946177506571621389566135264393602236816888040287274673864055761086798565302093037050407711724173974599778755513646785552627640745134135885148363151975292697613607367012881786305615100588904092628847520668591919639126164661448156133281060538362196951246193231705361728793545824972589469188166903183133210335935835894195518255279040830913387502491434253695215323718784985716727825375961162913571683011992106768447163111148070877680947200182841789011057254140619741101351804757135607133224806203604181086046403032531720548876046343146814910898691005350319963420652900819894728885052946418303283060051337116756258880247001835884006897686570436291061722061239114134230185976274755975304354061543715523666078540420372360231936910624780458328239550299885893741238834057072508671672446900035869139343588910036797330263283510536541320909023096386668009659546448319547387214004245569171367134973168060787336584649631414146579659896949140741281357945582514537162907013021730870602690323587395122103152036919334163835869119924991930727213476006204884793843048113616175293087385193442500924550187869931186693689003798623151531969313016038630792485332010756995472727568307320915074171759972229848803158153949188776348805913754549450980627981873700114489825102461402116174025198122194505685481037006388718569121470912233357295668799705745548462811451854382793495613155265694015634225417239209200208033126341087496732722350731433053151436371386833645671796340077510135578955775526971762629027572067346487265010985765639788671182276028098841379177424927859881311171286800869112255612417891797174498262486191438086903321740775259749827461081558185249888764141149660419224687864990964274702646787390139103058668799155676470106657445857214465381221571540540679956999992308123857871176938428714892425846325028230725825809461007229903574125021281354103890507998168858026079268219388487027420220281046156456391049015698321714062755725431201846676330361377420494039599957549014138535320040006623842168591069028660292875166392297203292346970367887456856368557284492470705375364922874521480409186505559377996560473466838810766283436316996241025996947585398026514664639923957712208144800982555795976720830115613589720741455964434778482649583945661290137141718279388512481536577473179191682177145423774605431346090071249493638177533034504539456838407784226533483741158894666387978542309451388746710957737817886651435731612685488725835437012761800435484737549509936490794378603535343864129627819175893531401803598917654228973331238181006849406750357434315235680276110260523901241758840319534700869214202435865272139287618090581181038802838275413769229198167361430534663439617035835149831370926013270244191263062316919913868758854365228480233075969939373123185506260870220684211132440940138840613409645332370718134433835598644698365576185579105794916626261356844166705161815329847589044009592539931571299701554153178392501985186196378494061602071986087588134369146773061606698545722322157429346093077219033111466173250993469637747420095686283961827842160723799372693626600538967977744863420168904253968000221157852408995734803152265190454723818498813728203848544640141920934791383182944044793724572094876715743025491412098800426629430213454801450111144906270396855785584239496478105833853538410345435685270448338590862855857226308420820953531771349096228006954990483948038503353441230322052543588433709735383107991687842584751745233136146877080827231344055574844974561090780470067862832608114453724545245809059298562191478837579888999457442609174684688221546515715650711723723766886019132660314404823800833718990560351918813395774638605488666904269952152099431551437776396822206306508001242344584497093205615972030790630486972264867731016961987721077455162892326397468657650509939807421699348726293957915069892184925559881123615532108901721758016573056883279657793063182085785355621514443350258289701471375816956793842526512758005755594966664980222614367188782537311225300438778459476368065479916947399629679046037208553575921191803345352342288144579315486180273884946510134060539743505439267607654492362055636250224532121194440554962132367975215016677097153128962275642650864693885614442066065280837366332031828830261168429966335809362950270876464779972814552716811321565006716147335079766146018759666082279004431350353181384946080357577027153737138960419204487284163706753187906101546407202960334259933673081225051328040054070115177727047275763726387005653455127860928117638536880920542704655380362559619424252612553616707027265166345060351900216461308080530249689171083374135431853976694121406012214276163324604930008237678840075135554063835180330055689959409809035265501969161069854694302021643157195011506245150220643949099494287909420560750821914339326829566057163565044067488565798373417825514690902792657437913321988818575877512345897900280813101879488737117626162580322511676409642706811063939744531103697290626480465004073804137618773375248389331405099022580347806308085333031509713628148925716856222392694086617188136957555287141156056920595623025636802191265758069896101412012864535636132383802791535943119880257271172694214147960005511816072566239533500579764710978914660286438926270781594632689605754322638889252123413418038956598383316586968485003605474574614146892100793246152024234044203597320382267129818950291393156383540791045611260800535330442663202928901665223538363860510674573827073457491099680780269544520694072392878257638588813779619253422288294537177977079993977037647437393405150537517290844752310349776556507182634764859130373059117130710559442629065333833849057472763934969538964464334280529694586390807431691691128788923440864512357299659264786106576488403221481137559455425262727607795349155151973968509484039788341080055019582457714946131022538336175970950690286666397448969849020477730946660078571197196422127475299544555029853359159631736564203002202032025178764242238897016542364905320028434773867800819633154970829791279243958253827703170280989154942705988991531375152097439078645240789402289348106396927736468111225641123185812661282853452824600394303158002632003576037249707123394432096143191924763230093001375971546989219867462686618542546310228123961585860234265650867111330087374614006387903878023400480734430391701894633196793800238772428599988753292984746836936565881110450817084868172173360670371089164811380704671186660388021748261767221813688426472624990490460265685173817553066123639434294744495391707500144035526120196345763398548554683102051908615231266513634536006543259794400318622452077389420881924443816276157488565015897883261630510145693840227931423441970923813238174004956606708387161527342986919298328892969606691242361908476111733664961921816660407050582160237110931216021278763042808930565817936640575625943985332903704257524981645269980839384550702549660192815998317831508818460105700607923778738306075245909295150318565652260557112127400938474417358919331403029206603999705826951357943281681051056208973755290025177996736857813028979097835108777727842204228275571622563502586434024573857399289725960096790698274395340059848268036634595735512913919986132346239101935876533323276553248263026428447641705865431434993255711080701886086804473674326261488479913015228977274082024248129262681701076968818429024212082407266281901494788463250069998913758357718776102534821062153472053420595251738461379864420109695641316769628375141931891168111801882818305639258803389692782502569890529219525781856078858633535840652082273320478070369648849935097978827226874643388975383178410634642934869146060422902758182065675966445345446465690194087519901635798317154083656989967910925577531953205248838760298428175025467766988395706551487840672536560214063127081784616441246735020961553009862065196371097989594209507707531133420296589788173567228693646196549355539936738082027046546703687296523610883306382822318096969212440337756886935249876411266420155658112879900996177378280980482140935084576589260191333758548319868642869863118159528744853180237329111281421905038342030207599393460112888493637247864755932458372556308065117482759659909026264959191051788440072704816865880555375356935072693790946264205497336876336326929000327114187385711655883097002520130408922447245302323144653604649082178768765397365573227103919058012478877509266182246103729560877390913816690852548347941213955454554389655079370479299283707716625015520310139381156361197248391705845074013730891108240669284402131270099148636724334043163711352261457609786483182600545958009287162967474309205380723657497554619674724199456200858369446745958335220129222632153075269950009560021135609590581224527826535889755010911933578851364340078475938984540336765552210243162619415964898932185851127714924189592449760722033064732268771000677294315324291649061701892193908876679000303826351044949886949559386969392691999684468831278991872276429044760303545436373187536025589027774428409858273623170956250493719203629087722857394571255030689156282260061794240533134856902132938722561805580539382346002631239269569576439585327966940526702445278066368698183343417796826850593620623869068363604318124784020557182667088810925639880532082532956390115700430371652887106543295098059754153443204926655803205441041249722451335934126116425230477229053963395916117070692071094320138752069461981842874534365861142957817517632978677544645872321701507281998255935170999302783912012239017751257274541751314399092553694601400732706312183664930307061884426539176048267897691436408185568376375666193365792335989704280112000602161892521791308295152844844517677864797737456972111028476214906896966643926649180347374975296395741284241800920999242747470491825574133464097348845372284807575917380158224817152105290127521575192430068411098864881434941999552903557184632084243474482625775205015237072297402834256135888483240658208114063547066957422179419079073226555535094716426634018574186168678934830840545253940140716777917083485409574966604491967594887834992936320200208735742604302575645506000070730899442438280215048896422512608122017039024495622074345980414713971923439424628347170959018577570723320987330051413240632345428584117021969313645580695763791873906459193062320232542491562030112138410344199705533747394063685506683430006884784316481864206956947139125898620054891279286845229408024932376925725751519737808114632195540392733069646545283620181396428363878886266848043031826922635949002328154437294686229125871952129264029065311508893637071923998221237012917167466562708738241000661684585690421305692781709525129251516086580085257831895500945637772357067328043244452613732019136248177834499758151917434999516784028484708349136361333836637009029323501578181762448795687552230089497441610576724250537026608014302910014407737792827184993724024858741004176249413908175621028319717072399972772843597337029949898671514261682271495686546136973004486796045567431052333013748758851092590416189066035510333439923449122428752400675725980433024520109982557053140598168278090990745872634218274464074873740792702333924500196510637099085668407905855465591563292373786192266904600582192266537962460721440290219341796330289332739974724968722451523022612206281444071878228241153003780591841319090092564953849378045651388752269133672340133561777125040804916929493636340401642794303995286259847884089771334883824786520446690180551779056673821545461411697515917666467041229041540573353401189715337970790888319437203231575935455179823583240444922697017346915240466716967743109262309990523654575639224844384208026357774441621321005329636861422708323790061858246216452196661107384946603129775550612498377987275128012065969528566786154616958946502448350355596161954607320526072463624259664091444642256836927857611868445040664406436291008692179418383750864871557852985077695155254855854969271471476494844779837720777040711534022606801121177218802754415284072650851981047568741338012114534284710312452954185946148813180866513349104379103851505535619433678030613343405322767308620066871479431706830399377274605209630700267102261334219311382399835709694431124460212309885624880128018076939977864015038595484161910419573674084618586859489531087917187642589852565216460453026410220381291985015744253401605428080615831781172688273064696285493321062073803200060802652624326832571577253627942295936471125820526705323974173183733353265677945285657858813431633526096972953643595434668861740054936465035549174961854783714794329025564641584887326744594971061881575475794397633049370583347573425968796462041163741950283417294899369852476989695257861001455263882426150505252323073495747345623802720700045985385118331396701257717276130721445361788890128796815198532057373408159527743950668688047489750106185381398255517710649042501892337477387678175376784960591580826621085959101521514351702013282881736412039623251418053862384651491007586745535645928548754196050483404958216537378117653205341681738638158074725181278755693565512342660294227653403529472586004762596050676030573552905669390560104458197235929220893892620591292569498815099884449396208924564273755726847237262692105068013945726174060257955942662402929445018684687935251874045949986962032557933383629044086914670634227895648461321289064402761244580395686115970794601927309920783675325816751599263650299672196623299788357619066438166908686674875556859483279660795077050470344198891934463762339379588036440051152337161907027873579485943709719915173270519642242669075635230191234346419816501441400759844036061777232585203889164192621366278439884022907050570062966818187358799703330778049336003708794124747841735287853439777959903558528974038267584293165833319139172620795149836458936743465715874580108045406260460606256537442439890709803821322516254284522177912526362917553906831138833031972429729333798077378476506330645382286434925099294003468115473748778113205833267121228977267020631253637163970963227486547353431310588044038475619754567251898083314312478811675858515852861877227737699321348529866878140822965120439109148536422458950664339623861226549717007850793787672005812554098102537933932084800818185369670771383622758949680965928669139107905778020534602528986672007556645703454827801374165739670792649248057490797913840330575027103617919441601016582947550755460614088178080977591074411627542698019035885902990416504022048365916931734396594995551471781874934639459999767216599633761107506499795235148744350489468632502234697302143750347711405178184103822816882524100692275252619577699145577520307193139737439254546203575993960249197207800845472941041448967509446849295845408524818941635573241609538881413822247348357161122546999582656517281387577233380653400747515747312148254056804527054471787442524901470825960554452855385854751914623815847935818648141143462929229154084912150515859652711064515008592673435842884678692163781538118341846052602923538426459202636592617432139000563716943434735685131810478899043003054825210006294469989300618099502897943142936066640048086715450292552129417230565987609989969339636703956239337473850257797149711519580981340129262840804650104259102947645396161972959587741510224997859695598053388251836971774489571313051884024180258122774415313004624206047960988337597392819253379377600754616072395010720599616114430749166872066599802376961583360917287983004185057339661987681597760494553070359509034480714167110168783189478351722156879631703444243374024635920962438940627473845929825794364057015675226265080161098172321407488030226523722073457924092637772179391127054188215864436032098928644126035250016420793428964876663470316020762897241545727209204668053266408089280749240025996270538600970002474805475897284859158346054883265500126275969464096606892227903873630983784444666467974747788170015403233079618265042429317153174909887882432837967018559389527924214826503041823203576678129205398036510595219464993679545315571855091333088821364183649296609887155446951254652071835804278845366078682250912752796210983545058119948716025849641307826645818027279538548157245358584940767811763483852512341889939384695763653787755930116681249773029364420224374674736068592424886047303102479728668609093192147514519295743960375742009269252092430602496068186755973087099587115952451192458554245663863901947400092231502352381723278841404143717806629827391185832214007098116033700850996154221002637399293212954096935123440629420732568168518136660128845308203505233260330274819691838512343910977655959080341172370540980770808530649947941322945091864908741702845856907410295110187713359955134795752809827489767435630948897363920359262196884354940248461137591504011323673471547730663100274592030648129210649876391353611457712272495981694871647308648789746694398863503201761659223226707899458504595191129394096396418974665442934729484650510513528701151505128263823720358204157799441283688524116877116936000273955108506234463555320631610719972093207054816416262171117962274537930245785038924436200093872336417713566116541221147402699619415790282063254988888923010012968692074681090052266046716560783657274089397150483099526806445350424684619537576573409408936200983606212727255727090278514065636592052154609187677382600547261060432680938811665618560122400505819007461739231002896278697258693561434922000462490134679993436317241909460054341426077105501302664989273075861157890127173479731668332833188896750577487409499766764715061762086179454930869585885948382559730622406871368354593092485962917592644065742840074300700815968957453597538225044228739090741789593625756729638754806724488539178153920327545599480471783362882830132150277082302501958375867001037194171334261901814324869109731555567161740974543157343892254574875351360681394766524704949773909040536898620628429266259110326418203327754993346865240740625547002000790244159185452770398821698506652730141454669893793454783607491517860406863316582301184099700376692722681230008432393022346691354818328719902248492073895774820519111226046686280147320265275088119742428357876046270975242918539086291501508765885586036162827053821561968531158349220046732220469608199878640831114501639575765646420938296552543589363013945177824977931413174428544303629290334979249813262203382194177838964462146034528476664888169963457791120812203056227716303431142087648311210204561903548321723196370337548864647057547312700672171465955501996468079247014818662355166990448976563556110395314803510568144280519708121715523251155408680856467855127709549820559990390819558011096935448590993527785997218624360163272584154670953606362172368220701613372535852180364822887422629877133434898088976969906978695951134433652806939236901187918880257958757499646885597841051701505615671111001668081691034708186811371791123076979370174825746095868282862755910941216270186277016811748339627083559906250750378011184869618237032266179930210011040594880815166373824816267333078609820684422106122068876620340667970448646445265889393869239158823558991084919822423237675387642989821517761807804341997040322278400869719328798628493970093678758320459260974492868646917758702001590812428393927326643698149947443791972425242216039691667812371311331041197915796447622584691902531429964315155466179219636872388846721921034023819779679909928583621505929379590109260448864901248281745191067643528431046247715623919939972186371883121200553679160344966113500024823398589204186614052751063167747444399526759463875999743644787958767366833553456223005055347575232416876221211224061404534536685150756972068425213362678557734433111768500514689668492855647767052886209065838243872475405209500981792080318418450514953858479953817624993893668940671541790921918826014832667054464165669588399678986400590259179853335405835759164143082928247666799488050908258893133904392970772155717637161685458371013961881320514694833124394414945493967780029066201762984366044416367561306753308043744733006291599109698741201439279701958365149192294377981735160439184063452670288318374344420664110163732274719968117480755195916979146405872601553178078537522732930337500048981265937915070984508246265611214477287016074519801653831405854918002682395641679639859027393221269754743840105273782084963047748072758554858851721935044799894531103074305423780365547616614095152733069918237346698514512341308040946807873486659743281562678893675629356867703313835810473744751176006578399406444674044097135837769476308536622969382563202264282355279888096802305965073979485764951960866943811172039177581164009782250969152361979452434847540143456723924332937519800029338159669034683580445185997024920743897536839780728574107332799711921963064927881451795761536762986563568208374346381005511007618303144549213688461521606962292854124838294221708984786049631317124289643285339527329578884621930414115932338303325053572724018410354826678487491919588686702649468772997735937451491758845838127749113562804130760162682117011420868158458024999731097079735622878203989058351083080379381243562130434617506143299422705393222857397409124017565203383839254847980311607737229095084216751851697347815322475431173425928157113458287271301023359030307510471114095271377368773906153613454931765823791141994344688974814956208552066944392031039409980724642667535347946149230006804240346021162259098011950978795729303657900991488295630698245114172284056891379521704167942602606387871893068275039840942750536826435596273249019222776880062756350524740333580995825265416803462666682153377029242600389576072592923125890433142650946099432030832056541125015158967897805245878907289572551025210744063273260550635954094280219328114395308907691468030136134703264998923460742557434520978608380730658383264847210956174240253824063258205394417472792240838202856728168860951362042838905250067952621893754237735273818885394071297553948453597610527150501141879096861754821074764751373884349868976425848867421405349384387013858651925438828888392455309733858513506696565231386332331182895916807552829364349626017678253672675871700381308602878007167370710481417846668537768307279987936717686767653438317770083612968658779558586763926901604805385169559893542966899637283338552818417705335384611811188790813729085281120613931506390333269541278234706989948997004521677828702534225285716910362340449771138799289001231658356736344361888167990073130184294782555728384681814006498851462938965987869841511290616802532863653155073052608853750050900905981028071755701603740616678840167335287839547967956428360466083203570319545697345276279352991870543382181100780719231289955602256508553911342205446128309540977003249717678059168057494661069833445162901340492747741076773177941342166288612275747764252038300178074829621510751406086964303025436045532501362112297212191562091204771971128606754560453541914292270703298664562417531236625929763140333368488114275619480364053414925206686138581449467105264629353259399114011300504446300863353280893212731235592758649296478000295129809601909956179226355826627642327849535953757589591100429822748382296878602231185807515351354683925472778306287358180604214119787800193298385038709831708406570974394802645339398664452445624817141233658812735367762216987463678521940350894016595291715149402781375497843987686615691997392822498111999507694813330972667916588426610266048067291858618872841559499845281170438129314192572370887248426382341506049712837664272427328686449362991898604834747054729121939637381240274308254212173589726031687407481576477820193657517253052707600934859094137345700289801194454759939191326837975715978143280154088330900015978150506562897255588597349118728674250615975438474720373392071207238066449271354514881013590079664708424554104865408942304952695742668655293275468017037705529187667852448543134019080472962898849796433980349476108127028812155041737805118099645664814378241509634393656911920691219268880752283993468897575321644990198329149911358993739533538119807465574308502138729754852711279083534738379140551929252177058385447226730290431800468953315292430281432076077658912073376786618905502180780889208253200348533772871763830597487997544588217078122872744340233486907433548195747930592102316436659510534968641325671574498660109134867472423986463358489545897695420058374011376477258346653624782242581950321050634870323560452260334788920848109458864630355232035448951167189870123484233092353315276351429285221515484272276061436940410135009958241353809203658260466810423474707711400414941255833910127351416439884571531059673321041868694447851656744947142615781530316809406597740086657220365871719311644661516795306216008863807309573736481706355109059432291364762316709510490336977789789698831269396689215540025921522360195086959499173598397302820219663505142492525315483967737123266889280272457413551694464514468945091295639953938152872939421537553283141527860701634970108812795740107686319367598024494498533567417700285659413562000496865512331182649476365883421646918973620589402264751739312985887654914356145773384785606580501168423565820960538828725550736110561793375321707566011298260424814899969577044958805020369107008980065345063028013079772455135653164737434533933710078234386964518680123327391805482084691398869866295660093719373865359196836834061071516302290713832055899718283018877843896764494784039961157463432617482373231750929888288969944572874685009587104646707792497515436448357426379653287841753825608823573961439028275676946137176390622063040263908587642700390315807630298508568157166144378894191095350836269240432186520532814168103400193290724628510785628107371563174352625691652659229817767538977242667042762376435072201262836860540823717528981529133793328020212507174583804055125206451007864744610803826759140491754794480734864946654593805203834960819348336220800187821163254072474574041983484560380691400252257377937874341104655721873864330484656163758579693445412580452546573226645031145206038227092849172178793446883849987989322333074121149568150869472074754406218105644092079154972748316411702893691517732749280830729982167105199574987477219613361724682088551520131878024876047493793908447431134296300805240119024685790961762151818426778159373230423543692000614193085392555145031728861747020285320245848817678199667055366551254080182806008158521926501116663318354129330059039297246121221552093940680449174143442197354872412267259082390851563060213278186513470658492740282449629221681364834001231600689999043831012070380458374401246049204665584352529661078233734961837423815574957040448092799526142316725462372418510932214130983555987214974548585825802661488612859839232966195357665706590293972880702846238366200615787122015150399921614359269651636394772362404305681458374631519075572411788597505242530744708977006012031253903946177045653212457117229388199434719895865205271496969115153955342330001124643697073273321190179832612553950838361157550822173963610479675143207435270768523842453144351207427776897404814830195420103287749697154515842967211518199995190769751682938158220716869878364324543643114001648203198433897808042828238085046696782213543817947531491465661627381058075241177944328979045945202546722855661366889348524151204701244388358260773417826554384270352078370981983388966668511819573656069366806876926788988441651364784009170555700959601987719825708037717801216770498203984255131277347475421107138956265985257059390577378998598661856861227868128439764229159581780581033968072179802774516018619641109870787442640361090149360380208443997559901845279499550285406876375444171609578491797932001240924401259754671811913691802544380029725702113388940006413816223889583853481107372731786709818106883003281537173200927520628582061024622356291087778342035416431903265047476060614380817702445408035495256687282850419368620896821862593119830646379613010575966739448083723155395782067697373750022055174600520779315930373848912761000294080060022927585277989358057503265319731148641805245965213260160690233944630437230474209111658130556086345450465761837473454515549387873576178809984488223554608076886154224783160293574721260399400822377673747860670557922211096565311584485552239417328542418168544354704548394883465479778927030661986848561866453832773338031907012088305471378493702357174372738923437901776674845792921945518456761042580323786029119180223666480139645374525077602809494029247262457136006079617252789119459210960977856342068967925023404655667468074446276987093838346148682735863771598532757832079489387855655369160861008638605584146959793861609187392164389461084016781397417706585065710318512653981655754875410739957235205951667548229385867985067078923599405939934577536875329934550748464869734322716794103207673965680001606907384211821021810486501329056833954539725420869443165340765870657017225457025401278218112598556350029286481293694669341139056953197783894978804389250121228786923057223414169653575522962624201460934840717371288689323404645302581795631831536741333427680508731149845859574465763531172162247754440902334199788467078982412131850704068713057005660468483119584673270258898960959677681888399723984017665632549591016056992069992843592883278834802081744235345373524978334252419170438652981259282226278973118820377829521352714709969256238062827627845081095263574453483645285546935653344618837557648778125166286839512928810673025804073228847899979680769776402576403167876016819238556298494899072414847546589339828550265782301669775868282057822351004900219640078424928618402510940502760538292368591636902883653789965192138014572232872407616444777951927921289529727043095063191552647151757880382628606607245448963619892455545605811700301303302911222935757660387909852699647256051434733178215417537319870615359989774439771067018681183384344577054849852501607305913371785529904078693902287012179814676831815012194852835988039069148714474453726024379041332962869278258909099482098685247159879307626252168711506185771891422727147145921855297363147712502406248993891458677328214961078201105133152321679041162490830797543529317673047644011754727799174283084806360805632464950580858936977371927783467729969966485728603022197742607012060722611360398489081079340240312642627813627816843153245208464238985110893696983317409055620322824654952242902577933106825182338785860766603419583585400920736198716507799988671055317389939793456410321067267313427897197853227809099821474940954854918030207131011963150262201975870820825473345524708977783342224025018094383442811332814374235418502940609680762608626718071128286477739456491960843467569367106545472442325296302081041996296646024663105300878420739565734709635807497661621103580821788256805165533906223891641149684446066602160360628699441710041482878395096673827922676973031043878416528031857416639527933197230023089549827219858819214031759623666556349532646810052369417218802644514910389779079050897199011813477031150609570628767037159127813160467964871277312731511623486745831562295532695931822633212843854416373099518808188263411103869472817208976411706562590124068376618759181278156654392580596209935131165692528348584352007980309672475917262190006061498722443498319004723498853049690254015506174764035825451747772343905617853766391432646432040667231389220935018642663141528367087943024224757673944689395641212487473041375252562291491506368654021736845679853882157733827638799118504879833346014507941935317357083820386841674613994203319588269655070244008994485638773805669699129215428422323611031825611659959073470693736079400685194121438301934129952860757040582545540666271018565090209153950760743206368492636099232064518442692757058583297179638177889469244098578731167931724571695827204531839420353690521178144597863970914215558117797244076032427486061330874864759080138882763234226476935861740512559592459345414988958669190267513447667834257389797702803150518307809925873746990353552829009911509394486944883356965865520133286062366680406477260077644775735856266868787725221054829729023763079568737189335761711844362102084497364384346256302533594031846227176143696700911502122738256478012930956386326517069338280085476120873852738180278080789773789742811972528141180260147472198378962433595193336874295602593426695229438315353692859460727079303071968215739314196684262968451595241818216729266677742350064098878572737993998337452401992233637947179790356241880743720186205027288016918478741590408127420655344695676750966991020493537593621688815825017962073207567983207023764267463943973505146581272713612516880495955257370503611895903805597107613294800711208477069785355861850324688635843187699083449443308166349818548503523900459723021198954348438661367287899124669795814208899199928906148082634089193332874079903296402976729031171652205393025904824707387286698012668203579410724966908504283831208241907461884618470455290034556450889904025383043294678727706824846145149427321802043616528044138577009312430745692633255037201727990234527969928669883960768618296787633968989090717753979210904435482994198402202111543508765786421412955597245582832786214869515282926809825022508762151562342305621258657222873934668374600951730647552844977893634926580951870619437805182270649505515662510439848413794708747571724376341545990469575478179420129779940680100717300385983340199657022598749854382240700830143331268663335238182965147083248902858005879293428355292986503276047961995060174015516962158538867296125131383505488268783196261330541866912517950749691995092511099344713608333900949984227033528358021892384940824085379909535577594583609098696640620341630736207079749967163253585793685950708862151362397064603325334908176877554581997656281464114739838068995701587789776789288727562758800155101886467513825417547867127800811192581354364490282189876506390684758575149877168311512923344375084174988501830460191027815936836781979486381718304924381389570740269896575224710525159492458285477829122167470154137534618862989859362607618827901576860234938227047900732971727889216284737452938932460542818253527808586101282595874866916134533542035104154738875452249453646895206037736117666408437656569308350302726555741788654349765037792272349872068240451249894405974524230978305157389996347396905419923313895937604640596332660842285785253240715098085565193474870059268751691760439586947781495239417971656686546278301210816664686222890902311212877997133374056650603058798952550979085210835787063676260723964509477863371193270711190490802420351498026024073130198768140519016308572022242128699678868874536935417964424987457677097087247240551111688350972911836158367119737341886340377605889296306132227177118076208915611621056084996736424892423653308952222750448354467771491176992317947526575475467101890413976708118371363102786417712937220036403161416425206736860744969679554836229156768269565806204746919698916132645295452038481440129559174554638522401596817636314053731814821504639664137662756273837115392424247968545781418345153891801536387936588615195669593213241354317428006958974638477924194804493229678364581516657717179932829957647609547305312155705230013949458755781037488923062856074034950423753799468687946982559467614318553636684894050387852203303495605196717845283383821701197514388177233505090097408050895516096143157241016757268406670792129144695521978960832630059287590978714650789352357538902105433258276923956270384412020335374368565966404452420209538265979938025906066302112887188320013670565379268097932636141475517420021388028216353608625976171360499557868016472402682281899360229786186925153721733504292415580205841641428451732119465206142256416585075035718855049364909876279113279210629670821856479314933033032580756346035720244148528370243482157087811106448946984484893762712084350072446774181011067275684073326995410643256700826060922381454894687083614553013307475503456340730951523461663648750901076007142269983061852110321615121417774526499372858710563978731767092390823202663035222377393122787740668048674961215042330709448809595184247173428885664196856810218135011995222778620607283717518376779059321816527732410548758771746195045030560476960097414343974260156725346418413672360705507172535478705682784148737456200138150529876664529632376599474343587968140522142843257547451342952555349667465728128653844403798377190703474051726195516821973587467841180558272218998077736937041693901866487905499565154768380876437716057041117611301434840239122772232396608237740491101251328211513153701172303577292403343597394084660938645536009893466821410330431965742949079028052679850135095258211337755860072104452475655513166463379705132254339465621973106774812622611533148574619679921042418122018505020200386500648412306463338187213249624133580466924271781335968672828989028910673188989551704575739685473472318225806316378385884616948747601515029595740256265778860592702905782400680960844283512511340181109830587313427435346343791617568865251455802128995836737252337630662787600826499542498450499138736545961748821592800190456236560826164568952957582862554784967922026411753801266160354314836933103366133834086047742645140821315903568668246190505694015890558484227385959928227081669044059285536964331817517197929082425577923990358551778323669151683892721209235781303005643088912880852300470339017241146273471224890131924157968275551708073767474785127949811643134814533269602393427928694450290599584243590909244573492602035974957874962884202416242986642460649677419185130581209579418748029996333103184413849342306456955778345254790315695250992783404364564008272288959513134937577915616396205824724564940668043971757640028436529527419699885947256878713704751746841501653906636275223951108460892395860379851412555962059114519445861850057500105305267437805975117643543378579503561647980244425478779526379243004039407668631060328170278690027675285796174202754963315003130886465237894140607581407041501157981397668007760764363135860449695307952656013625610508611259897939890897183284078922002614853460647877120890627964895405421552318878203471887114665998748661211966955161014388215180280652675855825368293771596017469878902254497473446915582284754527549480149611972532700908138491195373622703659661176691439010382991028847250533235714746603715915884530133999159826791619096367012568447088734303356838404066031899653619460101147622627826211676123834899701346360044664567944036506714111550840257519748201804195748374644539783299235485950332179130546347280065583062853348219293080624017703942738602283947110524607872816503563521722380242190895140735097375981262498663385110754803159415835928886623855082144513328066337421545779927382473102806362188687654781280943041109540268560775357232565399697756904910691969225769211478259065129229931498500082640752544194922700931865371317405634452797425963964784124470165363308698882291124804515156609878261256455014742921054586686424473493700605476258865078866454552822293205107071895286406468419772930944010793565503751172276633604179784515116695644098115305090858681349104448240068243405066814396527672662623063607755016551589658013117082654375893081345124820918884578254320492951945684138747138918598749714852322153110760239006236905133076391767330729055528939729164196724608335334226184493891972104501250805600007940761297865577543457868682079122634145171176948187638082348565356444276298031384867321211433285653480656255494792520242642452007614014127411449695299192456164617960541145664491119525813380793649788178734115905931772074439916961303727443997290572051540044416661777276248271332673664748049301296127988351282671561418786218683988063792914528824933174334136472097142534192475003748060534337335455810157575623021849911949394138255717550346281328118694685797624676952242483623055782500858333393321582375101459446799484721466223237637060621071421969605968738847766254056436496029551173113138710292685911934334880995808241066871923896068390914083264426585370401097599781997347960361872896711423239247067566785467044007637975971179776373929822183542510898592209763004556124524881748052182619002354758043948766475214356852279930501029167963396918523395630241294350432029530345068120488468720147297448805541485610509623594902936093992032667827705851589383768285197779563741070396182143631891947241919794044127797151794325905147859147664964119291372353686498336392433802427662966545505694524197048534349476339574362432780808385268717736227327171723023330321656238370062677678268959436228209305000349663305015304683335384179090815204673423133102460920968882840442293551852644330642854720138082739741508019084228273659388061506920557678926645414065362951503662125972354836643370994369349408583254256760727496495998961330264395415474680243336264617398429565767032711316822371465396912741938335177264966312733014808823464645731367493410754483247527021858588773304543632011706181920644884188565575724273687660376913533483772582376056805456562071345806769882578497483539349689345049688389725808163837537840265615820731065528119698505045940917931804792557800976466203118610968674079722490603159649688986092361733919081550964113503322132437607389556926643183278227524356283700345848473308335838986016987500730814877724609478616020526433245775352067600325902889618044849646965489903782897802422386420797135880213103936234502955809948918548759061319961903308050795783401335328329337297552049087152109848709605635581219443496607279951100281610695410311119098410175625400198305281152050831030621266555997952671340449210656976846140213560058209694201906956311415932328666461657006530673438009348884434536196765194620808883576991985394486251572049506405208112297618543414398554347840311713101956627960545348786790978722566839756335069827420789683861420982803346610160085720419076758810177069563391757913233040247973068914838422832435151558274398800493597895686309473334570516534423775963001870414790372857496531911968686742930462986236733065883471907245902454124863670843575875866589838033753731687146095856734990059157899543750795328287452721965994284619216265090267986460849808050168276781307237823328886017707332297819257887409277708322999415179958425652454407314081429086303842338628935763097838721192533639687841320398589119583601206531766415492336214886419248198513399109087996360413894966527890500092722877192973068296128093867793888546416335328550291696080083432755982217027542670909596659873695054657559393930969412845657142161931406456323629009211877145362980367136465939482293462509853733349776839290536652309829555411664246059539527410741682377015989091065595076958924184710575459415791151625815241322225442391831395140515044997724247145537492335952351941737362377255457163755616212195272547797927559833541871207439008742921386540138354250694796521385756536154116316050047589493741428916796156373994850698479597227431460139198749987663822850977381643762662057120264582474723714007127003399911140358922341685624159679733265831352708581319650316879573772549726288446940347697114898797611270859512819275917973732635245211789418357893742344201702893489320885681306073262771631155708175467850611730324810243049379968117410481556738494872606365686719519229260667481104044303050346628847293205715718332256735210053583684467690994654854469187307442966236345323837281662451283859501684103055270034688187216462649210623392771178615458250518069419708016300716163009344155030356285588030240388157736155741403565839817405604354850415252814153028417512084741726617394618649180947992175412184491177985240157362340561068286774139415688387810335419587570816699231484426853982667664627990497668623464221128781988370181198503306689472105131948977973853361390617880918304878730923496254495080551776741323981219827466605212532301529512144883857539077409398292622098079559325522422099271101398868906674710612227221687105803561050396185607602276478867810241563443535416193009114626484165350603819115755152675477517266468288237971769189296756092782556778776024218921316731932259624769319779911159497564081783209065241205066245085680878456434349216053715412529465599781250395522605016342090316642307740946678930049800144659876568923705415585177493586680590955249952661882946324781738271761435587321058340629892086041547816590337627847187857441029614514109494256833416988746113694597228152501683245215982078803560193439173921255475687173425781484534592209665455107856146880790710570795189897195253088326732120233383327018009491998393488659854978075840081084201375795607478848004360095703421879474986938887167599473450742056065580955092363573095289012821370314798662542689729384672427957834953008833793137634129601892459524149471243342637720932105614206929263277019313340112565939055959888403731781647754371010485310787862570236338365088528105231321083256528498212797252841458904674583531732560109043288702061258116595290508693754127805571214539748561719929698593074306102244151638410072599762217737278496029723404844480335306476099141724746251634825441691958258797309790607753163656570615887803213349479522215312406359122337783057724422303742570359064721796058578048482078360568550211024530716815296249195032696658858782976397664928999375799870216818492388402984659234206908920980743347093745726317848741990829610184762996447439875782919076468418955161007541856705842880725475768329765580312428513683003888904070781339114597508256041569244504953137514040667307370124373993099763057788552527455904626947029947427590561186739204858242015316571611845859755034684691154416248713658956621075728174289539409929177743362447729911409568722963385677368767784630310129862863750189733122573624889298592834608633554936881587144644271752047361784347056754295532184300609467482274950282922396170713082438842290671293872644984634738822167323872566984596086490410056018488504167601303505907400285566007216751061609837952125018117829451735056005309835139805339333388447905729637125299007222307119588950299342521834093605302525179175205827825969093255085563429701039109485013368929314219406443890609293635875780543276942450274982026134139831240935727383219106216661473825951812670870234273926268128380273703800229407192759037279206788312754009983940559174144857882713826015877926991941142672547145275079267449408892904301697699210250853914014635344433055517979142232015258270689765188472917613827119363748822137374847452141589428051314120362738941658399227638435173011563084822316373032919015328960517725158485215879616433160284044183083658893801995706599202665680444644661006456869464314803769937691370982371626708728704452678420044511314725610098260676140899876084192089270663184285406654173298705294929351970906286589517465893874007185030567829839682333914330646640000113216663114845648805897678342707130749202369198102923515837916242041974683343274114036329680135430104279494645970212569117680527369505329903959070875628397284882618840599144776674307220662498551492752639739911015903889025959174555974185391473066151271407149106339834863295890739545187830762713548881570851668805574240064443843649000856524030940034640858392126502937515539664849670966547088593745690463378899993962739355043014986204202662191206103552626327319025634621713755196049873262742623365410914219293679744054486680745872274373283094111371448999873699204506553191432794219286378871773283863575651613696181319822998921919716838820932080130303086518403037935294907940522354624300472138034667264946355134907431542077795694723629218576501129093871311431495371512163140147973847427038119106010763870078121907732573290757779216258496860757640602032920604259006353016604326761463639151657930028726020838806037096670735407273046178723349776618912559004745475600667009928704818762864708612115277417301714090598364078418129428149198519268393683803208779423061611464849843461069768211439374561272783362875969588754846613530769686571890699567021771337174298467341219430547817335943790460347242563306075780045515643971622466767478225575372947398571286703484973533522677208598049015834837072492038520016339389525909277723585445128611451889679139123983966956730429730047795183788579355847879883442054482583321838817582884308272172844882364235398670980110392324309147031550659346203256762227361152233782960300351258705526771571728682745517804876659550553086550016430671031810554022741741706135463965486498041964373972261511891540379169327203915500716816830564558501615038224226135924746036845462525359420178140252168747672752742422437487463216369416898142412759123684256308875671360129805870538760365181327995424507217605567709508910099057007146207863502447067759787959840013260498171092640745073457404969031135011118772120968572333850250018258703530497591495447858091169397471114018468455687906216276186853345295949738994975058823072256579395742964396078480087779508148688026938532876176640152234979068624257216552690103169109703443843474728698264536913220216742250917668642427618715428023628609647574492128892120128596122180718064175700601124124981105405425093344180690505944047756706313328317290002503382793814116842968872283740967969724404768791239883855844119592694559809459094706882317438408617422710054791518713187562301698742541938477597812810637142629292016859628802357475625459582961205712223355760342744764837529010261140504825092580536343913458464522352744005517648516345545878120475900938845729151638066294112904726922148646167466200792275383335522915123710563023813180438620086427709320082809608546834056569676079049528596250694568014579754601134778655517307806024148195519832065841016268343280373525299828451059940642498076092663007272839507285577823405705402820460786813549120616428736821843706358223616627401264653887124324932329054111277021399787950881398627189881936612037565177639519623272495831563276748394102179765638682300254229235850367432199711698511346108742846885051759333847818165900339163008037100660219610561153566055660928434008650362963394353874996206899044483249392624101947259436152680732722671635744616390267716530926739823055478190850466975339683965802736123845235887162509708632738886268832453201011190434500568128607679021323816770074503454980050073870309595241743395378224745750516983518579842756398876147223273060636400736421500169018138750233465811882046470230968550413118640504992890709233550724285779953251089837008039434011901328147487668822125893144664734292223265727693606554320512375393614070771279758582096239898118555275660280019628949637853408362685683622862245149302600668551430697822428604269870417043925241286566436310458131998669842285984253756099437678860351240934358483027427637296646651277969456428193162764207546167834096617114810265291382780268239928810614267873821239824409305398918270277339981534320162779811315221630218513715066771296981332295872460157102405268130559505377779049874198052190623311731236992960073286009534142312283877254642490290111574561258308195551348607025166582543259497779350120807074494517048284868033392325150461018503125132457821144125853286433474546560290421228596612936253210150406572112425452026650860064844329011655453366342948046094359153678825689682412258509380733445678887320916563267499128718978344563206603784721105254198986484931688922491581847697419813687547843628337810234528906140817620255596755564333328559180039667796182380924891117394336757810817490107332809060694900657152009692862466955948669705586270278135915902309061356958430904104351811105194047961567758350040501273587039304128252001560940457529111543217111308108571373621672494471132995263199033255272521051574253900227031850439410398647994230050775294753605312655834506333351678041126702164154175031073374119795507007823843462048262865928886743466303530336023067428449835324767794588511311487121433459451493024926746055654013953766305309421982029796996395454157080266506995714781030775812079627306978805678929202009378606800985500503458815141233339287799934421940778941443818722661549454724908220232907542886746836193289613700413558000335897243354556287200272551642951669073040384752003256749789524440332737795237549381942162980601898994782110691337735280742256880435129598392126734482049429600902711429246591640756112403658358644839793588211187162188967891455718394129477982950365165376440624969778072416374891604890471915610674842703029297401247284174178304373622622807093161623458083188455380056619594175517992726444991093217731383362451547020787587923668538523881990801131147135981067728088921032762019391216563917987017672313541750858926015051092225573706442637651508773035089362260371272562233529731549478890386718605605198997884245935567037513925833040668331836356364001669209542730039866172156188311098046946312242108438171852876287161550047037876321717960988065807854887875648537069851355315081588466295423593108468761185621119826672415799580368198199891583630408048777718237994560838658970348609573643884725545860183673032653339232708475072230854705081780603178207351286496012990695640406897777641888111416960383345532957250489233379850556545044225844170135997456725881659234989321894182902594983205960595895986749520874280531752622429188652527400026192494980923572644123282695135128801282870379401566314162824581557809945870820261624246987723596435184641179410380286286939741406440349400134083295103480736177276198314415119728738056763935120032139837105371695187754077728190581894346475655001838967916917279211735609471493510901246164864407304707332702481600170558341782120851228727797369638606823568555294267308323898217544216935767679818254508673412830330501062806877468872816790201823532810322756237427279421627100953952678201136008332458649158967799645474456526408731796311352612033968076121025437619539951334814630422862452576574784086078960590238185668617856783918345391457539949169487614611677202308201114047390049550706665878248281208033602260325485193702804897247201070603405895689762590257667793193155744269641215616474074147492323305110383213905654503479000708608214748893586728192825401315303411023975664497710474991116087162478856508757492187974804698095514455015776994710909586917660571468079882788786516185515093192918251125287986531009299277352967328764989389746915829214632361210177631556887773016991403201365205895849584831053370882532539348378327623805990114193788872335280260541705614079399413330010965463220306607207181661418999840627081248034388531255329663208404526685776995772836068455735980304797858841173138257480064972864942213197826059754238381575352919781425563766607889770650801821436900446554735781523371937898836885328186326922946227999988778890299858633322635448696309480755228523155157814460797539147001608636908768834327789330671949180188388990806772353457888655814967786639862907447995889866730797512001655820740274443646105891974951390049281953319751958744772958265389286999525612315403842157629084249653489937192178121512219359647253970126534867508610595623510672622713329497943771313987369458207951402588133659483841907373411295170543829466523364775679767624826140404012692050501025302450495452311580585108932029576193822606690460079010249631286808546993575590973766524272515401321783294893549235331491686959600378282657357671008381792178731511643972902366860698608480670739609955257507645109369920341266745782482903278727759621834452619419651857428285876596407180950251866050400648068506623491845178727250653395043335326136146688214388306471668635152983918653461309101028582291264704526344793873362724836897520921033056440942422624925500460031342114094507469278302947008882246881762504229559485186892674797875576442967926790404999174604928290214098742668543701820295366636111334428375388833635467455947337614060224888580796678176717313808749487472711727831633971219295372350308958354322018426615771164130575733295554011934684957158929675303406952898747587735700116615384479921861488014265954492040330294693943491289105318425361277041542660368787485138253525431124722269326709301606734440450931421320847763553671206836164283255799356671332462585692275934838364457688427673165472641780738112255334666901518722799050525296519874871272165079501080821464759721902800119565402797948091147353640791838422991223250838184285973021026307516521968068880728680983769191576031569354253403896016984002871019948037543316616857383071735692072550694921230069399726872749878025703712149652129403463722894500059443429309254268781175121852906139912002018793445288657007175163623379757551155358493360832987414730625341944332853723841986928670721230056343418314587608912881180752291697717866445566346284217207993874446527994490385227502233224209620635213113855359581747617854018890643748243481078697609539547724948434615220279279312814551596749438159081307496278221144641006247584365894691918211327116979446325817170676165619894394213613176021696223031831471192274452833035973660963192650164142554505455275648173475080104887723247018220814361464970716683316914073780563102929016414640362272555750168812044584355502451339686046010340740431950287996324452196500467756419367508757980538287957149340044271003305347160752570371656234788162143388072928089391708295795157637653120978388459709623720064557378223953143341079799972098239945970203294794565373249686820399821956719860036194289361113116916398139514592468909056586809351962807013295093212476846669590843551564245495684099000045094375321932407092675800502929003065252390901563059520900006633819239555786470949029669927240776629096955150434971587889442041162177569784721398771123290499236702269098935549164268407447171794454436020423845842994520635209030191005478096477476701868978246613190877046050701934449022106259283103174473592243405508596583438058728686534293074103322606268481047434453268958709609029255494938004073759945712371560645926311879265241780499631122764236721158121095332058723819391934355755297931744099045561160068664730841332147266000789780242708972992972543521592488432613496008399573173131506316728665794592784079032879543754196285621518225018966297011696399114939352161264838379632211805040994396349604421322202369015594108115089245804481683709006081202881145021565481379413532215610043346167940852226338755822290632872462937138737561156313655589381605030312926880519009360878885434467447212390815249429006988757520886039538211652915544971373548333603683111692153543832077463755474623832058834621198755273754147130208656538458108196577537221493203786325819164346966923576138172154333834222419964246780286343790041623825024242438767097063144086709029945093499537057380036095417323431611941192688723985079091951634044647345281196222777780730067766561167376492392717345844603993935279626026093038656883769579025308556445969667494215776261485799694232390412178474277833418734519311274122075352563002963541923301799791716327079857428649000036833034518061288766941719886206032654227370643981687967481171363338414144306422280150677856505803453210244590503048015326504994767029792606918108762285592864077396113929618804387930506375357883689254965057606306853888462934946210110056513331415654813090174634215829135365976599733239649627273411018013310703460219786310073073530610375788509858591882292921370332856953101261011255139322433451912446517703565074116992425189748288252930428163885269618291234984723184840520221580526971950376535003393206750898829423330938590111824884162594090682495666163272438721279161293358070457442498817612341586827490852930143060281370641273183209568849580009763726925381753210042087114189980104339216919304263521799089428233411505355126631525259893109647604086855145336987591586749445529060857926147845283818506122324771729108826395118394006437960973169661581307229365015248378414556943167131212191846084922833940201762336769767618487378844673818880722234760891778114751814770910853500623664626709469864762909574480696303267162997794514782865277467589048102708105479365935662013393106443527721176221888233688527239383397004718386183506338777398242651396961574725041437087686253841130638664467184680426404764142920396918611052044610814179222112243508782698485193338344898024182707195432322389794061001729752344413523430871600835476467182640567821443757286219140259736532845338804580128809646669278260693149150191912033496614314092663946010941461264979204078693019198475226133230172927697145265819845990790449765002433426755576356707044025510714409317389257343043515079755911487697704581844957834731934802998108417512347251766500075833553286434326862879209221896466258581097287843814651696382389188465123481788159151948325585489446598759813639584145193308125357027488646151737930062915261601947345313360404403518040746587982365785958829866935050974552563835398016092895791028384374849369034406274318348929938796486538108377225889459876398802022557439230639688639495027683180847104191879144689634257868014952205369944471109728207053185135064617726393936011031707651125378897844623062991290149612663444671319604273080216810389731531409218493265059207529534997941393047799906002749907973652098798311802702145000703401609765660602025410326661751416502558647309352264422508820209630135735546353387411030196710153289853728001882054781607847720962541068736554632345677983342484746733228830810713304347752868068589748103110554302730486023580922071031459595360336012050956757692012227613352273822828525037866514240031660996142114208041645000555990416230495390525635213756380018179071934343098871487312873228198412704973016575032700503624025761389688456792283271567161092582659408891868841318077467543604306138313272751845085547144682162571216263934659357276153040924392860263965049318055965782398705487375225437968108852284077626746896011004695924870984826506708845006494828149494203015129318443978255388447776626719655723984016941084510681643308981234019643252829787033288502418310930827047145711575051039869067965542330277316693036491853041267935483025632021399185788390403150855379972238899861215515610731487073560231219639013368071768992157420754571876265868763258998713376622744717834037183790076753386919261611711872548609648032271601211859772934998841866224271274599939400183532409619996922094568252566065046897544311928687417590447757684635621241605307912442296882754482379469332142779449871072945340073546070693836092381772140943667949446919787775442556917870482469751882711332219882208993215572032937627029656869352361513805363275211259226194845866187014027252488212199907221746913386978357129931040555043401663924018465630186168658682585101755654893764671777537595680032343722618980256290324652489118694772138144452353844648955053734745186233572557650684604930378798564101330623165103850000644819621242454506314637511836342304142179032868173859250885586031563649901044495844447029387669484289147351038660999016351585955962264309359526123402893977053274763454232462090412283796760367000075851248368936074745407432993444015116442239952972084203685209023438948685428538801157278282927038331830892449115093758367528071246474714283767975863498839963307961284443279557503840173548032406310469095295710618092340178813703967605436652956540092052583297176020357971595376241844227802237495060149747552347166895566321840737787778730311687185993166663759559579698091367764849370285835842066100361847947810518756708313751737609170445037652114872628473253138045873909784267125939080970029647372931707908615636385665947232227660592830638653171264805678698865369299162383389810327081216260721800042375323773683945218460744116468795169985169184627095813455569066935577228571764565592613743183074183327963392571263692846115724977935693941122986845457252983902474856157765412257242097390356601539265050673035122260480078515796567779002187388843391033607640554224570459547736443921054786103764355640573579030039718324603564284423230921267107745193492671408301515510778619210518177881033901047175007184974970384637220058412504949024115832929767017748946794063198028603452777746819511230667321002635110647215390534064144151450417684468046514282464872957724065589742779136451615652079949673165915581142555460447003062845900495853973466739106379454953826423269794671308284564741912195744900783786626079028251997601179758940202875904310484201940276478177934104026701991055013176477764874853783011843826334830491077420887705944704275025507005356873515124375605421614378866588495084373138280061717210062459445581230218326868094367401396244061017557284074792725922159887442765997683453620479452521698723484446626096646411242976488432073752478391923490371324097740351992392796390057439009136245713293427874597790200110962272028233212772696416218980507675487218266618846208400285307040035643101446944950132878418549450065914037266734744686944100541237634870969371076493875397679307866557577060823326145305017442479185457943332130700089932150410662236877107843392139960928184417136424151424682431343488393053856855088384755627136997401201850079808226335024968129518534919426813401557307547863097031106480183280156356878761052696080283882771228373873616516149638217486577112659133059664351979111724718921421774276029800979587475067197496210585161865215033939223769008722480677707038372678621286363270491074665375360842697964376082797658973719517174499819901086881294380129367354487847146010608193240505299554095122921371749380475770150360113611081224394361217591282370029939322743332798992547584802443263756642501951182423658911879297728062636291640421902584011886950810919269985864354646533117635941231592505336842263169034099729285677276937186588435918131373629998492132487844408400502092407756020190445212425842298346503612403063034517969753062766011492532973940907816699754271639385979501195106593284027850619631183445323092683749069856029856916026615450784444096841761041058318731419815572763882342905832621005543482462492994519703540193698233028814574578057145728733645589445904819622803448160075444721119186770555858687272810271127669890002427970011125129403182069904464719830434480106967875377294659612579000425008231221387658963367686516517513607167654510547223747560043150494076096972775179707309881919530276197935981341727429008338153342535754517042273926812230753257283554867109822151665210420969888197506515946836689300404829359270946205806709468159958907219291430261589098257144906563281482548219677366069384011748949576104069921645538743956230448335461293159453044832665716332818046788174582068230644691200115939430212594195212600940635284445598192158818084150449195398147689887830845279016494866337357570911281672768281542334572261496755327249697960375301664968017416274915299901059096750864541114574841800206856436634188746985988134276382488432132795787263594965361674738694261872702281914406309763163657004531433691095653858882583811484914726283288367089935561958756454484511870819755457144234863633990790546488217258971863482486119684859422655306176399241636866302390894765795941275930729081738294709977689102641873994616345246640079026263052392283131829940417444126861407393416969020284608623517143442391924413185629865966602538133326555380654473600478505031363274871631777938691429247322817839997512372130469658854099281206594180538525129483020665440833422088599038741135609473489485882483032026253583335256925335656761136924965117125859695668946959696049506913090971955951280157832883200573206503561770738078812943115572968149232837748400380349269133373760569661545227870824491389041497029753114142753047333626069070013571339002245883208032623420866314610023991975994801970235205779181913722615553355589095677324360949411739847808825600045266098612837764814718559241917371343676801225139243690141441490363137977078221774800418065525962066556047392675638514238858644748447258740557784387985926281994378221260399860861129083820841012135658089648910999688857475541672739513294693139847607429486723414261396801906744781161201780111719850931690888794361446575125547154694288650504379605348583186393127997900668615114646601105213198230846407736247670129336894270183735413491087667119781890574595995640213133684765526544959977602024841269927422105827698892506172057661614868881258782168937034781254138547083583995862721955852507987464074079709360475947447983445002978598293973005213904911562640894409340164181557855535957303044571689364151604175783954946966829795168541460151873736954832659675697445588732206679615657015864866137302140873332733812582570690746662652300622471659791295502668697212060911790645808006977017372407851045496094422154158160890164149323569635538912495404018751864394128607513265273264111622112035104752779552317042965263740941906068943763366209785588775250507403621699286099001439389888546941502133960393538787896742867789096513103897574708278208044585122923576552746817756137291359450152306790765968313850478839622756022575498869245401786456448690162764807409043200119408311571790341574490579010096267907801441010883947907904156494077099880904728434218029565685318816739231206956594832205535055316026247852613539126625566053040184231260509802011090305748706204394937646653356853576323270189764629852435446553020668918421199500724545374695496421188520475364466462692086613306402308763686203600995422646788635607940884116102598711401387625717485380053320648483009192709400963973336944441839515932133681951889666867508687737438849038442897041958164632177682660312382504058028720829612365388887403417166901320140344637562293673844021716498353148861732287339939959435087810977331394789638658796838894316654625956392987347107745744097118694572254257156950306036493263056104305699380573075433459216293640142228018181060152936148038018956681464006766741325852603008565493679336698334879384382828536912649088413883460160019415899272887510409519725636983674422119685003440866502573547317564426700983451232881264796424569615806100524260094072999317989172264794900805375959482740202159551704866936330244884952688616518458679100000540247793871262919018151441245268178429246571883889190851975218243433381335472836552844298963071604596338264820284170812161556718034686200890086072851300825376245774903747291677055124059819101342675065025535765907771354674871302082727094015912616382722191767720844539848313325312069757227889902996784152784194644363800117181731013323865580258726179300822299315897431359647808986720035959458214791947801723320871024611487667532703318074921047640020357237947575209953521076356476729595210829894211931325071616689131585893473904304262863381698420649416864552204871787037947291500111063439055400812774272768318651178240549745439120124597491036174085744210847528185491689015015417860145187422680564199090280967715164301079831877604184590685514710457503205519650083391479319353558062531627579619905992364842537360284299400177898078304384469168153881657348292304180143823768515459362004828190554957178117692667859226282553671618974422477180742336501010480927635238084197038444240372960139449469010900499887379367614113526595509533909548363110679627695219794699521207777958723725397011651813916948316073467748394403785236329037680534897732367445130132310656723013882879673027454122327925513559366039119707347036387631405904425160626206857828893052178802066959100498596317196888779491444929836238640015289280464498304634530126163236460576200476661744540819049646279108826556984800880745200510414459856399222823697653008595376107053931898209552566859820703545364273408710054505088910510929331644342320007253606142542150234669514711342463413681686264320747900508374993436573502633179420712812987012131532614746572352168816474740709516320496243986920218648935604603363003673293748225774419603234821394493808990681635527274832661251920738203263547759697920931010116695806128236793823402427904178082107191227318100280837987513822280315090684153511250768058712961732479669330746001957587146462097503726343981286620318907558076650945167453643948618636031372376154114424923316695701004030592253455337610418283065053164473869493005376208221195413167331017283703205467759700935310138624599683385342697223506255862477843210298540067492938397094748787931298424673995716173380726293624451978958176800995024021286031838561929112752416896479831046240331811217076285365188261908723380260368225595533807481628105430442428109024516642115756180565645073229521421358268352184033171764658973250058276695560915668295889136113778891901553250636652451099177836121164733090260939069831706010042202849525892709257484897811548511264717411747043588607009229588471011599617769879749394164538995198424654616943653807204233366597233980384937258883003132701007429903130677729707568809162441046714080423031291678901723765870661857915281915952446478235844805738937835747534015672012430916079780202979438680754780286068493784961785214770338333656424814823042443175542205240004467424238565507006008888595050722728610136834579473579500604346569194933632705987237667522899598284274380404042563051955259834554412830309750863816966534347999475374895670473504052623135699848004437656014999862217176950219196826780694559842798824815939575321463710598998021226637763273203334802816040754932760405661112064522354420149439574085171765932004547175225677139066948174488192924085607706320498759925113756425268720848360497997361979660472074170772405042349504402732599216621402303669213992882220429128692310414374838953398535474526126575618290870134660495334349072124685368369550076310563911269490200253574962772279002816912381384773348097566277387876334812392748980923986313563145596058215702804867711404338683952004259160514347055110757954377396729544148093255057383813100950551358953297648277018128501709507375771253841133990040561322378732035277397675599864307599286380411231102876216756292950548444165911000622696596851002895466360927232318689582350824046669935455544908962925707694221868263734939765655183905266913655558462716138422787817023076006077963742608590882639337676961754436824971680768026818436530076822897302181130515760303999800259754780023938653480485241966135355210324057556067739239915074389857217144898859779168015442156175152021162975838303031324995378376942343333253728152408180204555984397326200213581767974179194249931716919772756102909470395477487436141404420871055537915400204278754997163116204454914514056980013339459513808377297972079290291847102385457209978344768712041740216562678923686593237706406720327826202954988084519369611837212265071191427219166246278750514379786978123413402865505226228135059157733934058820933525693208212941621926226404622951336268764316715784384956199412391796003249152261891198570329519573310340447174933311487580778892364140637489186086290652659714487220528759162645693351201266049828602173169374493619656926995687174057081013022948454241448434711429938541135424790657818555177642960619867695478326464876197388183035107101756465473757674340519738690175695658301291521106065320798370245609906870384026223021478387532006923657544319347313072578712432418740186858069526590586185212348951429518981669149665646855487634412416676200068573913994204111500145872098967263081036781112253282652112635200857002307253643272026806310913709177827388020348316248452621411498983906291719672385108779507320322386179961323229758418655952702391029948102335359312619296762664502236108890673439784121974512254178465599174363971277412316660470326669674999815664034913927843453874878296736501835295500019305118099909869873201591099775681385765544397663068435100578834736948998456911914450831083413537274792879086569391171610528085812255717547184610186818289416152212175742780436373467855975734882185724543861728577607656625600138271683533587006326518375977620408380886058043439698926770603089835425212365284877533595136170212638221534592964342619346734290825250392316296228972488939797634282065872742275769809756395272986583306891757115319623597975161604390644234062285204502758409475029427215603889983258705493813601696566659879006018266548611385579452323849250522285758586941402388574421709659608108420102150265262880959349287397547500950177914147277642786995635525396133314754591521337065886622603665977542672082488873645274406284670997506008893415114286901131766471438732720592896812698903628492824238832027397199904982596368528761219879604316735924625506422359072671421598806379263191550501792962519192372917039936978799579248156062456604764284898243163603684164897390039109445283710482454667518542490846345745439752980266036260252692229394974413708920925582499504684910856860431703432737076951930395658668147592536996176293223325961656721644983011605351542167778398112342358166424053887200971466318603715049253669806649995262157528961227383693457098233050834065804656996403092583325442248914652906159232943967692567058804769652251622267672229196533755859230153653002761905454380750974959913127956018514646487596319163991366470190343641273866754243704017761411543164907914473400164939974062495513076886351325431158034120817648502225927309907605239682402027588418788676955391923697957200576179678922453989381796666211986047534555199423981491410280078360793681534098324836473644407151566549228948152085330983950670408801784961117794764487683163128017582298587963103723833231907884419523046619226071431913794546374521930241038452534411662048011258176939906638954593008545204154743384933749777995949279873635298462376228654988197903046914658554160117380032295314507405693585833999786485810447173138820451172401648030775068305091248345285490650391310795978657005536649011033965440076068537661751207305965078828576179227147708123348545900999870568729301955624332046405396926264624775145258007188054071872260751592442482236576513020173983181382222743046786105543678836540009716941320020668816428098532739210775323024502485198651564455182435601301319110269923941226571282199094447294920938736833933210376436324455446064299420991824712573457489534649965728063199558893823575254364729658746995828798204988578892257798427315004729849032786980820549439518269070575281425009020179386145268279362264573076323387968414833743392525566918129516840244753623153398089255994119188069145449149694126661976563206400954245433752989569836709482518208603548301234673386780057188100627959738681393556481990083064013288731865395291596783644654990874093939593941277465498725158072282236538697319106700414498968477896509473048501270586642884268787384285539359056084969805173914773076621963094484051522681645615612959715279386802901704918752433598663261731688240276237277413784641231288985479308916724055157614059242476084041337012761253556843867629081479535049925715246411019914752450036168833282827833318673479768298252788885412622265389148058580505446411921154311024948015750368748547116022635424868886709611109496209585042619517455330806536760067101683513781554031371229667195959569855012750984554344181838902180407435645051966342862629203429123899233963182173612977027757065820582195847450600988382832047447845144566527586302290538638960993906675547379208355378231569860372654949656490342344729729085479454626783302806708024429900717157533810787358030534638402976525548276368973739231181624911445172769089008326981509047306977974053641469319877197518695296300331635653901224242158827989737023417884710617292582451768859522055060844420970931772079921149661953072623798668650614951334278666621464131047214782734802566874680605349892767007683773785852621511627929444114752722460567389232114424684599407569474309576947888722382919914802946655145681986170789623503809164963562055820470400687265379296499043156209208663068145901726746059578609199499943716661694438260462100428491490695472025822402217874374822678332236251195035398017586103946304680244776214969681242739162870415498672329979775779911136368783548386340412364725610062659050604494745690988214035165008454539450618983061823992932740646547249274125179231544045873925827924902204079311379659240312762185925930504725199766299749484317688922406699534511846754996776234111991454431597528184543189893022263024106202221510082079023681901239481064517993158730409257486546978715838300932363082493165948302666511306302233070030295620740147746382094145548582523814900285565296193127412851453540918811012579660354687026411205460616465559794182411570262068709006632236600114565874119512848671769535043100916271170092931930827763491871506316006810371186733119634237276831666492436307525239024714519688157834779250515116864876365447630352546277229247227504791845087922971226293394621792945586596864574325188502153711433215609343309338509361270877143651715244381210370685247579183547308558746597146063461750895835985975199479853142755109995315220690441001908556749925095789806431913766533179812722887484438104489890203806390733132081182477808597021729603634441097958958077278317579720556964331141212822232172709308990370939267675037343663637030604902302547949419436707882923488996146083365665383602480130758846891004610094271387952426296464758087869159540208692569480072068260296532626851278100636089391956248720831711560212549870493374090289193252198031100418262257785266906977281652681305981999350258710907276997890456265918564538524257781562041276871319503718210319211140888131255298079360220195928392372973011422990967286206310691740631238049744201540143030942488033370745162431635338584672369439787431429430083443377008560619984697928302601567150419985090255873056172274512467416869915488151595636247422233204444407952736168584799438838855261634639411137946822702417309239106475106073823353265638935483338046188630122183172925321697788973942914281483822714316225451978834228192450209956364366242892483148129925660402653973077653696604660829718905393223728029540339902318069384574051235518480434037753960639300556247019807669844262535937623154697647122461207204778075314443315641706774760424200138995711328370020676565522579396789196774938393886478574237505538849836501621936312642366048960049271849868351624288191335016441243130786842323955699951334994122383276578036714666233511172746425082527505919211050334848316368556538406577588986440537034446181465316808732786298513458204100300959947995774348781317732837365110119097790596673178719152302196340297667715366069239073555386239161421739580268406587070238350342950115693207897284080246867776753756112485739653887080152776057990077656111899606120439940471577472796100973061938356098439047191488528502209298319831641647400962209035697510909281956715850965475102646289404704478515760713660103731306542926273456223501590205945252985168599368568681952627314954664795205174833602156178649779078537877877684015663312922623517504872897569140110656833629085133252040410337903747612896964257602897424939557063066917665690557073497632572841006199973010247493365350653825523512971486239676985787298089416252465010358855649226176408726523057268466419334305426443829052945753547859656276064904512382061437825774672777249526310914091649518066947152374542791471041218551131895695025191295328017700071926096620940588145540374166661543519635272944690308278790134782195098001940567559212116090834013698803533644959893576539061198548649923844219999394557840115050685518813289347998838909444018106674984349186459462514589981238111446820164410814354035501501325893022417845329846964138061834309943634734972986208951100998385502692614313786067134315443313465926899208302340616674644715764862312062911313584088117212004931623416036256822097588843335456969800918607884561792930222920550347130323096387415432503382348754737440754379255275813152102215247884854610382420164746075457171426179475645224908235274815390347102185412784507852575237662972612493219199276125244096267574413533751701310361187911383282417474599366592005506414945952482672613873554280725486648173844727197288936981121003468580856310355282878200019064409299974171410963308740813092046391916792883646693355429247463753644883241221081466532452595866698946844562169400508033561522662583894649268190897771426319886478688485361695458276514371102224408266070197268200135838071360485202650986717342961368542880135968878494119898734054171543921115473679673785448447928560884771616782606300339820542554751286228835236371424696953939501400507250453491099710907043004393179878677337778240252187127635024850385230564473455414065439428506126460848159825741300676003718114347053858584071951119488873402882760317929795582661194740725615027708265841196717473084668673419080373417882810133774115467360789562288946715446122366160200598545401255810080686070268481736041712894614742637726968634293506424833182890939402922709641779075541880327831913551521180688422240057296462227970144419020108068254504811943133445774871390314398673295527408739058334554837337480497848619133353334502603559962528619897260387021084368708240957821707294716658379665175693512318967376060282192006399003395855121962611684349419301609516034256721066014764997084931485606977878459702641607526721225391641003075269631316910836897149008488790109471359364864696901238692572669393927042786349872371088733114463803715141251901008252471249773203820690581429924805706654325808233475581718172815309789754179796953216653405669990390409372595327589228410219233624704414223546130043330090663095372510894591680690786206344174630903662372477464355054420801236352852611405138089531689991569400543579058925872044259172347391617137759002987140968687982010323646417594695108136875476805588242890982437916285534050184164268738105118481943355964695948835074399675389328608903745838048748529566577885267579781277060104193399178585557050065384396860159696184845650114342437323132768583752271172831667280178306064980915682606770357859992145408779523928019085916901658788409162099354324671884014094503745112119293545027201392223604940296837145699585764752716402084806181832143552407896894875169552240438365704184934413372397184160249526823260640340558244813561203450117209658695081989934274555299882842186831305447611922763459998696870883798471923713176950499025039421580228145713459522035555791982644647445483220823626434749598423264891838312289848603650820832157464814361755273724730841068776863999330833805396872371668852212553947073685445536986329576411695880095451139872824148826674170679934983483408072117924334530773995978524861653447406482298032815653359348173693249345491859853569680907005825336010500702445897741934768050736112187300573518563188051719367539414679320345668443176657616176921158791497314307863691476985416636346480484670386068977599306841042780834075291070629872676108607762096440574490152482070922381724665878025314266723685920141358185922780649245908642959966701656488116417698711054455051388031518063720509485702669282392193400818449344670707034304035809115247554249099009222892133628792540196352758887493167882925549348192970169764820330130853508946340486978413180971201476927511806190702224089265735461664102404683776097346975192529370506990772806776642914870332951053645858812894321735234000574881055975910394357696965532680606651195118601189826283317002639138862957023345519051586339542021834375985745161097146170315282283924355268267496693694904999593977147805711372999317332923710316297436418069846224430583954654919172492677409062680767362842362070421763573635360930543770848413873721334105267705950798108919521831742865014150322947219209631266681053249668712338241421885272300028743362202344952669410104209177737403980763249556648847244942619712882034318510696913288912133139219155522054902649853450311994312599307379154192188583474413940689240330673469975826707955302963258056879931322376767566573765137528650153544510922418303859593876647258348295089231062359974712094111157574256880870613219262636353073914428648874372787799897196714932344070535279714606402869817833605111211184716030567645128160753639460924594062234451256735572040640418555894442421020040043747143325069016829397699063874182651880102324823475605819981580232379250201997861325605563327101001290012241358074344386286627537376446911009543588064070707534248784704926916891516519207470021161995180246250326290664116971886402576813551086240266305376006666804707014830869508568927366366515588535733219590720121467218488086795186837283673662924879005706524821233649281670522447699162797303871586144081439532797707899522346747352900747093660364290628166519126821228188336112214697714828776571973564139754326255882517089043270300293263411764932969689028528122746713354217307644741532981890673618679107382897279093325691224312126030435525725850062602765231254430512923842037647457677291330508074736952373026115661121316021431901078011544812779193738810159564909464920824183140994299888130575580628818517180883087965618383927779637724596217009144434904706100695582634961254773003709093971897807764804118945889727362366220437589751590750807241417157986947611482484607677211033879511395613784887548450459048676489950776182801748435029635978628465078604074950089624697888046293964474431911252083113336371764345556031142409877834319993574128212425618900628648443834553747379090174597167107842129674470407359686174503885979751012771915700815434109546130331801761246788260341365431532562568212121271932553974456871429131765033345023527650496892209342014116708704489389155137836469699729038462178031384766573097859959673075854936370040433656213278151684486303781379239516109399698240706243338423687040704647599563064109178310724115507994966422410688463808851092205104552490720796094907201056133609728398038575248042458256332340197127015750251688924290807204699839354590771003081159065712647295358694920940269768237769049262972665733513340805982932520099296192659695540059652431226507257920866474893957721094644361494270155049338518734075526756221194485032441012463771553642273301975379705098792248654809083320318735429653922189022995078976510581426365281149851470155908551568307327672124064765084989968976829710676429856057622511955320054441600687440659344899613622260574555073450194956506946339202543020147732633472375473741685266410379038942964507927337297988494120420057444705665210514466683732427318561816231382394889792578188226246643139562620433904943239951033922457131365649643637818102429110119407377431749605496782498537326600963684264252172514719252433623977794756862176609483122456384219967614762561453706619895525090297943366181012716572462072028305388899796952915402285390486300800165365723657924519097243235092945428285442971179235416750130519680073549667141248477267117429647354901904523832157281190085875273510490021927073273262571890420111865312982277764129589498176917982586800126335977622461693024674730086149051961402739757733387762291246157197351102519559489520396730819585334810242927773325922194638314854900033183021932434095885640760840174009130727303449541578496490905413046307727358755542588575452945479409070864847597573678301156074402469940473437312922803047027257306556013095355623148880961458450281666901719993234087198884762028493093734808422829562881818331095031318714905783645305218519896312548998715329883961286733825459264410801800225367713217039390301460402647069586284313660642425134658407962903258299725196345730686041028646979980281985092173641288787167759620756909775564771077414421355670773023745226239432668296380120604384737527895008258237350801218415642091437481602557643774931387228351715365360516577514802287559827946713377952928188080717124499147661301656637414692425340496911007030916503613741304187212005680360064435539275032985031242722458165065230383842276395079624688634636627340060693057070674746724263507485671525745984923277203175720505596568654429221253823753653999205419037714578135376063837641741731488270784883494770075696386545725381430967823471952567074273172223279764257940234691160309436416650211203430248742916704218897563139554489922463322630194647514793363979886982059019591665241268301209715104242348945680418752071946849201628606999424066517149669736727370856366380103585784103896796185452184231349415161774724310342811103329166269072661794294788107838568822645289069063336308138357582179991510841068196550657382145731731509340949598179024469747115147230402279341285110723795967533349387518330596558786501823315079893766684157389214785887702720843531410275256841925701376682590076948544500158237983598526495746941851339640851714051814534431895998805167108714958220163781272100506136031054250585297007869215461784376470825421944638205050501759149763496898006657684278337309299241385983750070652118192973517039048242644189960631222859478639253593299914887834989943390004763445483370743314802604594301434047430351917809930872876405949982974575660679355230846210367755302367854995973030923196608363157340903365471507895721016772949192540542914893135220106945220865909046732352299739464164099499706759863674582894743272713304240363102805802048610908672153266601636866368260321356808856698183950714633330524881741675268562216576044913551618499044497257543407135035416821191034995053045501197632334243873611304979909629670797597115714961197579307304475005708884125883522286538541176689765969732673169411392867685643943472406811738422810548293817815070664231722863897294358732610359932711094473087417887463731651367182618735644822648505275982234106497678784836464615884918400239225768140510030443618412807265893534093658279836547345664962236466225250190120015335652964381049280350361562577563964934881254873488011800254556773099555150896978081368459208026823528364711449395223299476183554736971648278946175546910849597995077039035847607578180822589842523139587306269562061218316776042017732575870218836284308537356487338813615740973989431002012332392753639309853723192724527665216618561000547628105395570263705841771346173580708516501996582811723606185226719742391233130457262385240410701528351442004385435804528496175930242484675475024147672041629549307430982660632221340404746233687490990910192637400311520661233419832561885407993902324825740376993036740765608104865834629205480616346896476933391591016583210500740334362282872141607570304994677326857271360387830847857958224727163232317349578035425796801903057687760530067217949233033969797620066888983611343912854437774416410285655575243318740327198741701506002959600636059853115693853314003076177109515968882320092130613323640742229488223139992082848534255763485170186752285433862382090917351453921050799987346244259214155475804952555583386832811050940617016365162845729823651181713288224605891835776420098713313228217221052573100039340294097324718373371398359157323364598651517208713806679987741055126386324092961310240646435723204784609865331326597803139206662297619536371439266833896713271509177037382792426794103890082341131657696327552861182069005570651897383800445344749757122616559640216164945187297380754508395955163932099344544716553980828571797317725073280713894301196632390940477660780382186196799671910420898137185517625002267521445826142461551373390891338588871727911265604004073883946461904488399396286066175599948159863999631765209619995533575735869318487635103728627023735379311870263261082106995432998457882459368842860271668970255735028221571141934918865723815783461747878039298967682364634862572244594769521908982210483156967287973330301426625242728517162479946574509028796255671011109770381191193678037082225239019877630617490745243130650739606623674095957154357516654753737722438805860062947141432136654289034679970257130291103421938775572190234302076066833188841318630068170867832948594730255723786075394398034065177899816526818840594152573566485109610478982933643348763901781938376097212324646808411167327751691745867502452022986221458684029255757794712566880976860299800525952628799604841811538329221223445739679496225025130153827897094532502958033289211382908765061450250819669953540525067633533782938586139984117150569742611109462713652738924430940926862292559982755191766884381505941941167093466912283804740946440037987558653096922384283122377444672817202400638958441343969281286015896761885773459855051370587298219453856061916320713547793197610108570876448310064980656970650734026065011332000157033381861933274578086923558334211658846666759410980977674356129445236716882518732462516647764623176601466528975161720185382835834479378764296175521607893257507692529680429972525406785609931538174083116547282996300448610694539153131133406661067824357261609663973384599528088169169731345229485952657529578560031513847339023513736176897037723755629643313554365141336465437636721466020016683291237901144119234317888112121547908068077376120015236351777367313876645217540029377298428147576986087443326423572134706490913661661826061167105191560441368929338073915693445583823513240901520104132449233461981739697233276427824361559080379706294427597609283804066585858490911545928899009277801218052984607468659414605070113694637067621491683822293736976496926777338959420472679654753887250348454878633225228496008804719487284710563281246238586494810037728409122771930943877312574151686809523303537206302725108968814763181254229163948051317764125756302370697850584200543024374708848305485172061340287200860036052064980560594175006131032349231298957959665648999381076828833560802860163088810432597947886382291169368985249918755863918023754482163975614207876172248852282911069551440845655884241288019209608890465431850469628084461297967075590250379081129661065760343841949512516516392291577413032800304710482359503152474365895384172462885896116510075198809491523171035573873340587970760639075780071065884859224711741434837801155005725891556871639228855468655313101083992319641994866593003621507530006444664142008482876525562928945458838856560042881937252920979677493628370279167358576608623481855446339506677648937366723547727843063330605830608411447409021259205968292263797767039859606467493017097387597560946607390806951851137395481009033921955021854198384523635733906451370378377923627312468124163432180544462074534501518735045021659973249074905017806781418250902159260666555036961705598706895192383005604884017497292443908470217690229978875924171318061735997966642480554813688170276447946162874249785988420828629895152878446631740278535670910341998928269028812231778959708957878158779613402326296038904972327697236966622685007617628494846513413099939321943484375341639062623933250601687091610396157005149417196144386545638674453048581416661219931391159731980438246453646454064299684952961771003947108744672333447582417229165104188384740646102784718069955186779211292578831633326152314590893911533079120844325848419127447346299149312053898612444922374190270360976921987161615788526657550675895837442871425668125987616895727262337786296303774959921416583592472012340445257853973020996193810455168984101556292735648324209906091616703415956337194963285475437028694206230259826691284306040232076882034497172078784201037552717902491238881274447323138395050753508573246187752614767193155592945166687964804838607937733003829332748516540943616332175293730290732533665509886596742110621179793357139908885524904994754770597907731170087167131739622228656947992396206423928559672294949402877850975269042115984093247994758031660538864006180649229737010889150219461041327764750668842458425851814595784344057364610118414637326516976363163672813508333219807749543648535878484899412773489796533423353566013365298319561036645746267659659597357632863052697385421450114580995926252896410003394830156824790806435676780120321774036662229646462063418158239713771083965866174814323233699505691200883537113980123753972023715115442184699575973722306310035394922610311197157092958498327402941927532631470256173880614927986321419908747438322717502268293128751278003385348386466217208685337522288013260896895011624894942760204584973137385701437329094542447732307352396738713920729310684722673243577512794972157758500992312925240752902848353677397338838214389406028868162640550190245241267061685678817763100009520700685800254003412190681951993611635671551591252998735604072419462045521122669546559147896244065993543965539537647841359295068025924079191493557183533587197305837866765303621395312197511421911109733921647382060847857497636631942069323213164943579074837648233041206769566926197302359245273736852320275183793629767710335075774819645543696656213057693376129198630495362117025444043957014683417588296250514253773996916890693976569901488525600196280304981513343164006492792812183704353227248235500551553522222839520313189123142286154320444321476204000383024586445941272207028254323368246157654328989432918066513150974191273498934946041861452217478124438623189629317000241693551506582146624659712223372137528556636485665364122354268808559025602145110757289546882761063977377638800209825912461166186622189715622409121578771932537212392993318310640705779302247041976242650687015459146734475558215110950930662104043904687722793470740118735703316974639582167750824848608789760336711860938981642304470560780977927725741834199447946496104743894233051456360335115888860778185625768753024565724087974373310450993523796870792945522729279530170549215909925656011566994050907210937519121720159181398561595183086520478500690240932317829083957553429114838798814771682251818218966960994737764699086732608424648998962195751506054200824643155805310387143955672267077668494294899200934436667574612892132578044304771146599053880836383471926831924021384261942838733180315059436091297292878564719802585698034912121256942600955781758248147355132273859108749172456118976813563074710175148755333539567082671507388358262268907499686634104571273319230072379693189668965398872598349649831790581969877443062531988417896648731185958231875088814120135433236387694779387341210264585864068910948260573220411832558062177474215425787165214562622909266848936328711821281245724067439114026120423175821013754790989146629116080765025979310679592155583212216795273378108647781976072126912344822036197054401674892706332585101769290814655017768165200730309790678241440343160255215737051733202740219535051077652595865096297089606715033182688088552540829920394357992427811980209672652812249202713560851449895761029037918462731466585225501071649978072069359375746082519449490864157080561348292898809841360797648578785695899373567071864886185004465997672369965513055061959715215022003634512003097528512298530314471577782929055465037152278671636062127583355724161998870747252809974630336280786320166644669702872915827583290427468231842169175714313329351348502003822247376943577264021273487303082975231009317528867242976673030676128913737299023869801778917468605571360946502355135942996613968593482903178330564177925050945235060402231591101446777257785452041750119694919375638482685265386845127077749769033403853838963678733125015805396505345382868825792423699460945401031629212890844857427265988528311576390942626111542984129574609819836002053616167243508888648960246396559795530097388734678076470986279642482979948344520465514806952533834563991974504970946103407984710532504588751087916774517826614603565665866295465783275553361113286450935192028426131062448523279771260513231850599569774409057690325781238314179856804582799891291707962609347267702369983142274394243506969914892944705265453293303102618736652072977898628379245892357423482773761591699149499682947608186726601943337484721739314961683312502617265806241021561553780104106507769606206357778287861150522648881034168975803089270960238227629342878191555911082085317009223531065204687713377037029664647893648617967886229810909373527831247049942596076194766889909418808707371020198320459137182866679552170126468456573072989029560774102498965953463039681848758586975806724640245759775666010448628389028430221704122675885362629261770285674403264170876336583479705197390000929492785257425501717247020495680317588941808866697710106736795845084867531434677294976311787443773746610396675400818033628776004643341725834402303303416546113662776518858600269025483404946624752006694322583726391576164581485015741370603133930174190487765015054636602438493196706205144896780487409948738809777830669940148093789985684546937017780339242977386950349291618032507347894918758718757056891515828204125398371897271933245327855982938472218916129745955333373299259301534024757573986048866146757495887868966709102904528942610329128918677400441104460130004843110989236229169890305711194930806344399759757642285066616127872910285311988671086768765948464933237095204004082197872546139086988685454874548362651728464014396946632861229516472808543394511059294923058769844105279821062510740710751868220518703535332899515370825476383952984022854921675313863368714470412011034234510718689424779393545740253092450836674814417729696356040792598901033818259660952593404219246184514716536787532682628132063389146867284028522188846244804542310934534463474416554450877693310592356769405336722092378525742338201721038592493138437274011740245318060859904865674483107576598251956529911918442819586667982096534082115282053765244235020786370256301998917282721235623201819986657458017251327314381299460799329092531121239578685915930759433951917698751480230376348127017652978461151524688413080134976135192862632730061873416040439069727509953590810640985662379290734659850902155878220517642080459003515187768454495747154117440539942746117451106620458668128979235403477940268209293276442746335245338829710546735977296592518508208672653466203178913809462589948150483083712529594866558862908688365460268641961944756659108248637620035240816634806130189595139015859426692776719955101039547103819791405882882741541404644083914777320323078047000517265415499700837184107885959204454894325244804685074421103266442379336493478458863983813072862714118020879769052490951585744871724250360966677854753826202525375788041926739760569229240385309414515710613101419998885086008525574813507618385539205996938020750066682695397874266116571185917657920508747591384377057350908568827350827340150379930098634026007752773936051291831688293643268499334998237826441972505719591289722264521651909012529826961010343046783516845439516423400341482110533951094163344055530223996831834742475490174500977691273342694370663836881024505471474498343221673884401380965546579067065817873333338842042827106852409231514376615814607746464211092149603362895684720100181191149841008371695835209708307123379236639156733743649545701440102516862353019183100004474723111150007452261884175597245046808710901562751582873354841684515476001129213714826924626466146456726872294393577785174834503248253197333790677414692048037125935131284315543201652082777307449192867605920192235222994534413632957675936752350349904877245871623137630120950058125937241165988306898101666569354205782800985387081285631147898143688887209147483279463828933958593179477793173126931710414379887173570418363225163746316216990438509301199190822003713693675493019097144007057394573565986347084479560497224898879868407261694496793986339907418803784338137167011659300960678903890314228489869426766176949727124171886897131900855916692697734615196622154853425889054416694672621339128015368205319882505046854590984716832312570169645047557732273926879860136298804026237151282047263082799901670568172309350808860115876614525078706264188045583075051158740596996037792443313788914439502712662118704079350927680570057266806226151930683790801172763069530717313846732789107041589053520580580681816697955834363245268726152227304738007960205918130187890929753681644897191009963738723620429354391367228378181344702252479390196779643501408792536783185244457967663089885011243651540222206041222050130232560603135772686555117451263966213535252054628520178712120205560997785970971272909340781134049388204935727688437057729217260720082064114490264158593595216859619276494313987073490208724965480139611463964683457054682405691756439479238766370653609929650904486002426552118966137616131779387475801014038189098040816088152023251371330810082751638085636386626842531961928095693735472234934359682560531155482211654765771967042694427194504687096312248880777373202919376605810403685385323192755727456020533979491575284371135067417942251865281427815261661708139708886089046870938797964475188359020768309404088785177464896673107740189009840528351485217589960159221738332890485882207873577765520287372800768102350996320862930376985861909481823135915078216642486318864750570139881429260606471412159236648629504165504209113837666309447450509707658243815463689727109590377451495855910393512135437454358243429453786725447311511003781612305532600562404933469050422000209131666258942691698645373986097925985608912413589332923522927590962337496521078131353149362333874653163537360881883721931327809504921610948085063105722304191373866303518864153545184721321687653925127076164082720858081556917817123870132408462546405253209687357610796622173448503842941257404901368706560618061379307118220182266241543860776743766397243392281574980514784106888536319658421475110991244448588781199871130915960651782725282284564230593060599889862043971185810383880480575316668572237201965865262469992348365181692519862243286165394696236894495806293065207037879454586826986460389140732891174868662278340568181372623957016392021712325958509653364246644478679759838335288634492900107704410505116800592745210571433989134495748962823031709661999330819406534524086365586634504494169354895599416154051828763414090915505692294948778545145373243265327322208345188627679735292766407676227516026723946098234737641181441657494937161596281370458979482016422912516356181791326979468123633702433329514373355019996926014618193177044681789788795905031608286062526475432664317399653415023902207918583272416447910634601977571993671275574977568816730509408030449980568684331579841148385201466433082536293185567823095465298925084849370761963628270889081778304635324271068650598981896659584504069649018438055646992780513377598610866117857418791081799949289966648384952737562318021885326415646885330359225750515155020362829708094964595080851161746745650665766085859775696719720050225304111823610371410654899513036545206720757298086528132043167383201771185063632976696465266841679693589871776417394259089094919086685696729425983412834542474012913314117777536962016700963111962140854556188225165877198573315725728169007929687315005628017026732131870343269114257308638721204430361797955107447299632315343119110373379313688499829642652309393251071627957582255846038596847087434393407580864279306626377623334819922654020687179067285625037843558433115176227781506244765809602712632156424196013368957206631527082110529441596921727458589359336808821823475292780866151808296282757479737909490357564130690255145402269809146502264329585777526508156292351490687349654084679624578506914474471068971573483241459040553108591527958986687931638411063426915482391771377384150399940184645206852184327647383777338159468162134573219601693924054635920707185792160735358631253745793048488807649697363278453252616374261453738789656807209399169870468120671495548439600658830453008706815858096996888787807150829063381616724514632300746161040763774896857809370240120498695336482809969864095220555118705521438707114373794233049466039719481671689571851753299985702960855910540852305429905725501754230507528546711856245975888778738139856465402256114700764285586781084038501164417659482225744574993524838661023367980144657656919709414655558363398065127754644072719030963947944473079774620250351481807171023704129659787150226166042985326943083968199292752530115312600178871232935671953827962575779875333395643709100137772294692276806871347986834296634273925608225890245868731132934506753725509070826691078130846031985912176980466164720681152809744035149299984234854178952152511634366526404454669314433960377021354520254979232371924723339670359944389822471546117554624634697210667073821296930903232092188302993897509116204809193149967059724476409178582420089710787332195042617888962160861304369364037586964082648068643355809932160760677423604325440552007163006395590117589784493521596789039109665589575172959776749033219042724092826290703050061661591696589493389925261026285938983376321010061056178041369700519141918699591065864017250768619222723369881074606683693841164619647736293241870681968710072481379073831564990755737369488655357794015334077030814063180803058663090901116140610154384799577545725178451342233519535256686311115958527845768295789697613817272917596797217925438714776273654167718100492103792304449960818405112008036393361314271576096077171567514443004457249707391579880994983467403842898409004072991424707114630200993614080400145695362544310095811377638990591910938421025656593480925619435554880598516159172904365643146529672614219933936292532860116840591728279732986030283182107147100776019332148311396185549716213048292005162541418474649155632183086118137428938928659809833582585910235409894911991649931520558576384128186358512771086357530169234960608382853509118368159640408991410523683660231925893544277454409634928423758036507908584528977110503630538197555000776611755802976375641847327216309915062405364044863626167480034150663423134832665138844544865321672085759144213536424179309922784223894719493876007401825929505822419133820513933975296178182414677188411510000193794262496189659382893987643705829166026128389482278306117522621256182861255294152325148805621416824208814031649837922244618833538115939093056772980959631795506631535880920222757065550714782611810372587032879690173144938689996656971671960667613589660275081375302195253179014423856878244545163222945431489766138259346018655599368950337408199074366662147711884415839123638129317372468254333157781284142957123483626402957702647938003489229067427378223580011300306743141368430163360075875913544124962393772311104862239441149255438915934092385158162780688659244599354883779120090882751693508582082819140590616517675801760841416851074242996647253496038141360699068675065952924767417842712691508521598301956684419502399854993105159265570140747482568696675176566932178774157274833492769816477984837123017069584729517868244913381147772641336608867450953868655998441146397619421107646082918730494423730773133221880622650129871024976379639676163356427804551991049658750710771261504991969306167590515671776803715484204670178881613793107813976867940390665680026779217151835107010384706423498650405169540256983561222254268776595294187897297662277540491472930192896579542524131122581404024277613232691206690525932038725194052691530810972891628392096885970683536153724592084025754963146009214749518958190919680645520547542966710715915645007369412229371323192541347763450132160511721985881795684060502359383403674275924278154651965751438194798032990625927649898938097788387353833308794310430928131442150288741345800275812142559060474947139238121544445000122888236698376273251862286661277123042545222477437404823221168694076685609722203229071767147070814704199703468663182281794948615786992385253594703595526975699964182995370032653725430211682170615866424202886598771179300932243040367540554797020464191865201993926482912239512672751297844704530403326780466656191286975891468782352945588672975894604302440650023787399468520737559136289365872392063884654153119290060193735387381948582517460044057493322894462189536267485725842728425272136999887184635383010041149957482998717346204795069076438428079530820717079085336401370760778681458147767670860640674119872723846865916442160834089846756191306204066318051087756067588298939012308488198450978478404619640074350256242041781240736903373046418472490337601135488571016347451403691755141427707217349052511824888804108504256639499949634708632655856901368196111835197785941481284861280264702637873451584202129556506879637537379647564876453853460881420685722917231140916981792745287365872494715367335990874772084056591128977443188623240397171505518798192923086300940714147961101346914035331267346864373822673178299977466189909341467953523193798755211494667461381285558236765305273498424497239641635356235519155254628784069069519001028179259448844933107155223223455345738279337699687465566109226643619559314333924542448776527775404440419833269037135343326324791526241158722892946784063187500126992293133623392328604937369184541656821780910016535159364390093243371900210315730040824814072643495984973143004114509653572142632531347084714237481147183383117788851628089964305877563087880448064127659028096794220692926989414284565232947271371926985630802370456483948297693608683210875460453125258948145378562345747741647788232691557477061213508128697799889958361962785772495688224060154994496392606681188338111715526000698193686396864540054070221365251288798369027853069728100217804311889632132235226344447176016456590361228965932953952054385005812587346154481903899279613609699884984039647349807491439176033993968152213574963535961769645346111228621485365680863036523028331609540102570156059239820561454901245655592277153914413433049177764273053926045467919095310961658776556942547362612521526534218220704246072467328180062206217323584247955748161361705637788678296628450196847091074681419086907606818335385538697898244721104894572229583309618383938316360799938422921423972468753020561919720409130875861877401114534871516815757361878214707796722844478588327314131435326031746561113882798909058103331975367851494674284326971540657959224472529891381653944293717420964424037205806296563533861747615134990685519979531297913359545293275672144088755002228935070295533647742728622432263224343257447344590505933180963137572618097069715296557488768991369489746058849576994118289511032933867649276099549822576112850846814047790199823744994987459715075624281793197463335820978383092187045798773225820198109402839257812189339443720731255594942349596520172747185385884191363634642665481796025583777009407609353575931520599781793318405986995942340509439674034843684299627888923978374124072348985141469607331657178036157822049492379821896069894854789894361705689572453691028970664718287492739180881302151671919336942944367599725620399546615563515035989793792694338927997398733971848729193830204170255406717034023297845903127408293483880159683804969726324280030219000653869914722069174363314455903379343541971720059612752002458332952610551907530798394961468361768591209300546192843820955392555778008330137728256056508658305865077129112752162671515725238872889534302550242420925187061920814539608890979059619948576164850107253140986331432878763609154853837697824640429690400115324681059445760172833351419976354520243821706621893766774416658825608702013112842098342926186432166402223110828179716413396933049429960367538904481526149999546698256753088779887908369397514281559632582049811179496180240245916034204539157453447664994923666509046580467818202653842863336283542168543305352233152026263356809657228080843214663687924008512208356937800438690448555710969964005191212242380399036392185273937975568957917483550323425865903988524222099099677386546895266030189491624276955499736264150822396266874259372786723030469553410287730704828245368534129623906169571595993075305348413567989826487140475818362989488658292028837533276475685700491063787335791271033786516302074758972638730833750972613190275382447069907693462785318445704454719428333917656897542086826853030724308449898100404155946463448834378755597835316062355460777468855627161168159070829496111233924845985152473291999434964431979376200711024383947481334380837793417599968238646238375174520494452314873489425607914066225583333696103612981634134115264287939255251566419760884576708847468730490305126017952594793771966467161147544689144421745646651259121682997832203820053694055998459520022121057789585863004048637342728443253267867843966096729004342461580843255673678643747996782453568136692758011728196004585632938083696003501176558141420473755959322961861899452932739341899293490697045103618605815929617826256462994966943174166592819111512634746542250001384259053184906578354965551083493678763648257927851973568573997887129409195093908447041845993312052804264859133294131172252719246025124980699673994723107807380735060848112363749042190148068435805986568181292414166510686741317008931879973682895467484648184465415855856761260660358446113962442553224178217824378650155656078869058451188448615541311645027123775885043059851897188598136243116246128145156385769987792774721947039035685890920869203533876962772060438953088457172315447137728692610475252105385452936840755348936246734735202549343086799652551521539251913087716485711227911492706648958641032091435036606627504369100922501876689561776194964793425036900732280026704593291789868818173222811654407610915482845778076527086779612824824887938720291816443498729523679880248032661732590068643977786163891454172294527632219261860155318467961054634899028476522460417460199245886270370602505860622804882007179281340318910386140177639073607645423815172999986516550682391040769517361274896669725966396994511922816911606454228417415549065377526685262313314115456833144176518720052926656770457469529812878914984602577579657694520529545089626604972585516554125328753894128825064107799193123450904400980564683481030939105396069261063769073232791250183810030036479888192002950491405441594585371573522061416990545313933075654453707102253266552500523494223577421209609031294428135662706372767688299122682765034409223255656647713914425744296786060153616151523554067562365534839110300181087005954650334218029106110420885384814517524169434446773964452132568123710765292001750717159164218840162597375683707920635782216581529363539303670414252285646941226494979485020978817598336533658798640901609453476207257219777688197298149196098190689738243117060667676523604600575448835276062074719513716445798366154803690566114412234209384974868392660419287790542079960636904725286228523799069152207544523746935751549186007606277177306061557434371723545824363863309728482141225584244151912236354107544298642081208903778845452729293102277227071690274905779901990674892788729248077900267639937562789633032582349318302827866765201344456667319309748478048799258220677211836738247897614284471790805986226273985604122620608259271810920041993786103717994933339431817426112688900543469973929959112743448611086392059058448151160672624233318162037151624149421408453217971624640114468288236283366921464637789792380278252661715433945724682743203406688458497284216811141013584744569126146339503029746119160317572498893245046118443823162324726932879708123184365756788062106514651302721826286825673164394597473823120245479651546091297785529492110912091813123382299735683476324363615652280858179318816996205825131379463329479118716138150814214560078322175193009072770469930441161166292235310212089806014882911405317358825051402741301106705849678211941908915104836315251378377669283812525799307409139246912980625090210451868476707178983485519275370832352918728270382648394118898196772720387654658275130277843235639549153590416439647733580779008962515340458589007112121464074621349324059525229134760589315902976948260254915438063791715231410009778848800014362496773551322891791687804416965472851466724001379585924663126230925080355425366965009947999270644585466904207442746444566979645256357038653218252125678593250617427434439481349372186978550131589281474920819206646692171657894315153820550861006285294030785949985587408697261049108948148649886991723234095624705808024130565929475058846736569969598615324976232457850298562416157925444411538992019440971134940575871747592892729624788408069472294974264678031232747743508766352682961012675976619414099253093489163820877655875869707745270546576190757292820756534115833225440733756261879900711915841256930684091157171779895093204956293741761140014923001650799300083602795190533817953961099945361121489197713867102834740181191892104534893152291233140701709518583485527207458819387100621425028505736429659431655163129310081303113211152731656992337070592371710373269132584884979666705862636401121507985449361438944574432616000552473300955609556769782639237683279874376237127609322412384858246143702697922917723141627509662195044085923956872007851115358459710763597498724590723424139847889401125091956674465895499267301540246216266639926131139182605855246722612204127969959418819448565656018120708709289143842622322628759666952076636313994573924121139663783987453117431971650689313905775510661397991000235841035458785294024552816927456405701760399223022551704669111075501664321860363955786740692584428517020013487371629153661791204082432293220375713685056181828498922088625034196984050499235191106205353487893942840014809313474030861448750663735894646424036179759089210714165642434865072217515015636608808333818541766375790589453257396223591932081638034219694318983372781046279686334839643468939810029538382223550734115939541954328746315321200273996893350127774799107524394235951338933488368945095250397287703184480866284174377401926413545324691563016322571923794638493197744117662714375970552237402918001812967784893329581817534555554020606353480838676197823884391340564978109405808051004157286155747170006146197144637366016364026947965222058519531685612522246108760870569035707053273849183524998265499978929747551000174497305615986048198716159567655967569743944176535831183005431647309553427041765740518486318072323127433022360408555964886762705371800977082649749236961750409789728548864599246453848723855093028128107416346532040759022202469448963414614198933524984304270921458139261169111508254365224982910341291074095110377779075665345339906379559787819883449793298101793753147345144525707339193069261491016243787205494737341599090784199247872303774066161223643420153278434633347213078593501853141281981056741011123922395161102028825603944811102487051809471331047101433491511691864964266914585783651840207395882563931674121899727692738571249876128784979867138625532623221162902156119898914854238303244045478001129067644776151861107270375500141577720845813042963288403328706504611036377189745130521316188054685279249585401006007242349753328474134104687917415834296300652193960852339903985299588099206477994354032115281677071151886021072020569401403774289950940238937072356333320487918304331450548852448121413537244963634188234468160341022311158996949857252134860483148211538283701038867857615042197929916521393388088239011177734287259344820954631169580740204201133802028435162769217903449871567553997604625920949207165890094862000334919136404166178624350748258302065767066631285005889024611517603946151408259351127392148831659902540220252078744728062587798322897928197356259034225913483990357194585132504339985027240810092795197367141835418109578209945070934931319034172238492397557157334614380940602219648553286996054142609553436335940029010217181075783735116568825588406798965208334908457756054595546287339136929517952294224773352058660434463408372631299739554097959263767907844033181679708187187212931113149761926079539384649235789056636483692796600384283280406677831001134530356147360700437740253207294004245820155162431738015046286771920569388623010066367492441845687518038268801002219723151567367449111912735060202679922784267417145800627803777830074189859637016188564944137026157993869356084351182078406133390183784741695628676465221479886328526364725871902145679423184152610098447642476385151113764745295292941794339690747933202078073402405996087784206692337477392927866951220858973326340246534248066507420756848567873564130341605864953221735776514742284867346170379671349975651461546067765555851065024082202622145068280800798903700785357034805773964055395946446674709428696444893388546986950023415472930598163639050381648117395347669905313794988394884549834979293715447846549279924807030700692485020431212529594361741244104789985194975092496385508350100526258008627849992164101037967956686915914103748275437071544716148365637441676434667563229846355138877158867094660801428176503931392228213396296669803864343552756063368163118209985317602504819916158938956960027096031786875709106684534828206739426403335121924047971722051621722701602810355555938868441996162387144345489493349025032176392990079798528367046293126224011323366397686641265635740128813006882986440126052569540598460543392367159480166642202433529769983272769826590803651674203679212042964368626395193871981005190230196349627153963417418304501021676709736838863642818176539272724538232635515949557229380295198077980850794299529623101660327655040565229900970336612818048844671657689698383798001215057757237403482339478328225109970096725567391819572631490523837059504868397939842350926013428226163517316941529999085142268222774235307346124730298680039511080454140141788247073913588017330655109765388701131190256199860898079551570896740371092134522561934018510743439499974943238367262186730429473325112588088287535877047343219221298495789293511165778597916514018334555539563996164239824235188633784437727780786104071501870012798948911685620393199803037083680220930178007978520211589624342255860775331190954514964493715858985306347234353653019703896206407151296358566538800041880892266479552712627516232617331458641569809347920486543767672248195277781394248301128768013645788770933945621945711541912884497867108511626499236201498087645180584239837565703256176463626025836475673367127739556928335778641510974710056426274376699559323807433085962625095416967219094122202949909471146669275584164408107169899148031958520611389512577770490735883330651859888085280649617098710447509030077425292736616093865891866054474806627888175130655318054369963523587813852363145019581270659641609765810140375540498738735181127064207209142282243693047497012449342954369799107622460137839784658844476051726661262144953884827995441717964013362938897997745209400150366647640457364947447266617625889202056618936618017977315434310635637256728482283961813921264829872443400925803943001387964225685357515706560306243231871668509853456219392523549415003065515871357426090533124142857777543775924615569351837435909751812114159611998897620808275085055935127677920079301748998552044808573592301803381417235236472615933548899904144312644038657835259229738305149346422548004774547213311534376251592540933226576684044165658081013840774393815805275910704995878644988463448738605011972681501192660229398836693532199381032784916753684626317167103865855875210172459949569340798146244204917713271421968110446790097415780167044049307680866951431281177994095014108642832671666147280435706394787336069186648217429732620805432727202753082721851190095968046931334353744585617602906621739831194171760270166387483754734896718167888215722792236548800061293199128232752189800919815168194389919695229727396419628623339211724542428322063459407800033197924564137476255247670400012122817195672412169032240314237109149733409570846166945371533883361934252717034272792122623200095141863156614015213852793724600165764702348120965420826372299091056077808254818179357698609180256091222032872090587917441172724227609309823251181299286176038821460996430217432382375374176360569495928812635256685174950117931541263890428896820864417222307268555227713313991463398845693564842538791000802746482349049208647220133528018781431484646472783248342781522697166868137719808055113689283709276676512239878909713683781960062312530747660354200608227237781305800706453137434596492028133155261814559823243587725295319519604755338397472847219541434799100343018866262348653482938624229272244902549432966042578040470480092666506625410864194582737289701989936266919343242224051790892763453771153255516747580954902453292568811855166440628067613098818638011985867151354381733999440096864279453798653714147020471568569967248402321085888378699347018425725122788655284637360757624162476529715077997090793497299746541713892399467094189270083238914492365518819338766049343662159433061232382974211643690625383918174726640116255312974036855241685794460400208872762649442097120702105566369139448385655918530586280553472792229269730763392992337489769795103378334000338299715874258740255269538337682211259401909817573654870787825108052628495496396552944948674646367666582654586033576223337276722401667807314934387465622414034314155665023882143110215745622373766557989040777380146971071955529043717928711103407577389694380925038849159996751558394968133748640900531991933868000497607688064921128202041597663918724869018532407420731060996217565950565928523740375282817117282912354700745328615579604126905841304664833054647848938205324285075679364019601100484080090630044444520394872184542773816592712282512239516022326542831071385993520645598041541206498948229972785539894760521503509646218028548497974386667134760201904755083667734534590424762271727203796529650950767749252712249324827509526173513012077421599007156541206985565594163084783520077036477041194205072379224240649709452603510461399826440124099605277726430792036436157548126733658861873709106015111785512590500515407568178011663286548091996058321373001290645521928856310677530124507540159179703679037453268282591888488815151947755473485863599361458082758616921492708968640924261988721078021572784918246014814173414619991376588870057591021538317608227934273259188723829961384699571322580518409349711167463691249916158279780709529892589617444736005658141430742916312011055365595481070686708813967402159536614078038521761532354676535735424258606327176810217856452350026872173770057592197107568472230574575591194429735604885145143020360002504447807949567041007725628163418947425686022240497442582100464367978266438899643729714276409404034234697532272163454379752914151251359096307711705717370283391514545150536478446615074272910921171278883642648412211028469621182730663808445868067130422025868665003363430294104468145352733781866672549254058475690699710374046482760659050233652057210474394530676335339519264054938446517903178859088549185412443777987370885139452979419517202298935475074308206562094365810708144639068185004581191288242945985021997429694803189842891734131264009585994559316526453835035567765783529727697226276703820003044459505786123163926716993967392162590265955317923845882654678486003100861150327508797557643804098300743948619142899870437658215658701844786364548408842932788269216167332769212222866739634475082052048559726538210942558545342607471703129893956847616483410082523068097447538793436245139659098972622678598796873883549792019474296902739741126474886430044581819308003453890237456268853282918986370393030160059924423955250051668825192916084365638709037941167529672315076687251701780706697683797672618743786520727845222003857640630999691289295845763628757226480940148075702786095599408932910897911185752321381855989260453705671711489580484596020567579624653281132727298650612020288494943184903370073428755996630917109355987066593830680261134319526076388675032109519617033580775233557270622138402396199049135290413033212167808614887970131747210713820512193815514452824578786747524258923119062328291614521905709534994566548335389574237501106067426239750653095917506151279092743463941447111326732607394653176899732547773523426687159399325517121247640300289729254915394070208976753305946274199173726019383261889516643648344294093210626893251369546707172736099254127098522483153294012408474096942374569799646391435814127233582211007994776394119031955185147879396413148314723792815074464955944713432851458951918665968206339009335112437183426648073248681804758336100321306084544281005538365042700400724234544762721775608126002249613144128823605615143509656401726994080638787490628164603946809149129006097493658281019601021018027956136856097300358848045025400557722682569435143187236186609502539928991060026822629263593378572370914202607588000624933147333504002165898998435963550836470284875828494212273146584907959085460820685722466064401562049515617206755506309313236575407176045629222246264007107149141425129863408967038710139778331864365753260103814672798998440469128495370682493194067558203590291789089737721122155481633056812278899424315383328059846346854901331488280190062869163054017769839713762824779109026264006158004665955001769965310699885226283425213443528053623466600473298667303842476513585112877918676352231215781826331947614904553138027399456109909488569708932891064982215017145793938596785847021506862929466459736640738988957755762382956156778097756640855645437804499242528696104423160914716295962980446661235493139446918716074592105195875383930127366810067992605322266225096375529723996097503489148458839659021201100169074048321321111048876303210756089087125998280282623676487878600248821092764192757719997144323171077935466955580518414245062107010005513723512754838670228440313940380395486025076030961288908931896804680821060599474507278426582348589455427673463890197866319333429373668563727482928654024452637607446712950611853026806056966935092006359050321003356257653956261415923501924638875464102052690696432552336247137936618700640579276664850253493243970439506174268674293083391814681379477429686376506160517441036636428666875247596170217569631969017066991468082510568403347613842975153796855624808035449624231277803635576115602992852076568367942027196576300559425718645159100194797436248694256454856171251606449244050604135184759017739693709783442859247052725616871107450549200690937127596821396569410213878427532736590350408132660514992485314330200343962433029004930908815166797804021392884927303386206499648171766958432386561450925248278505686176135635162742382640876436149017044316302704274525045016505383202832035183857158187808506641146243012082982694147020674699075264606881030804206835635008749334524720271541421344971223490664049973096329915504460744563383711401828655448974316412465093552293330265710558248692802189345917030070466613060597584831213584720641745759222692951480023570535863654026505820938042379692621546797904638479717958190167770793791083416658735883938819559311263425688626595368566676064749438485559365008352662659745092426587383071324518469438091489747697077389806662363126559207985264390219176810172764330777913465013656071728248842213862974511810379060094398964223109188804831155811262099325514549878259448734107488839257563098423367904127581735587898339479478662497685807097496692883331980069567512783734042048108346120024925239974955629675563330913101350977929910882663709352679336018616799805370136629818284284495557969948508858304159831022303468682135207476215405417109906325123240912265904260600056993973646286457289986877144777810735080780985836054421501926893859208689319736571702892447874634689179865176554565139416370839163283018887899549972313419774258185934196093043650744434272272625907240241328314879210452456852548152513677155601993117930076358105881753014721662893981002403225935292710464879484149670141553843010644439834951429614079895819836755738616032214566900232674176597881648443858422843146787443502509869009550825259163931160939076440975617373578866357829178808432782256209404247286092471965292412602038065094493734404377450356465842923031633096817382632419222181475891666380271791154917374458020667570446728156398843724979449604544226170196148810892329414890188297750736619410466582953994715544110889608460977022070422883869402113535413954830256711613439497005821785040143658131795473070374344805913806529019016995431299260036256586161052221668949930793363026198081688684969383660828130754397292325360013088457433254254776523689584016578611395395921323944409591153201623854811571330462307595282213845620571129064832290664563555176975641517506159803359073519567288982367233661735711602128809195454340010512851683261089753451996085348015902459845165693442164380087154307502854521821221517882448949465132662558216934891611255682662772435305831059422347626874036875219989330903543332763004717289904252359327857411005076876129264120275547716830370381500947974408061081524933100225949265660900723349071204877581684766316222373617602119811695770861207458146690991123502091719457075042266738312119909733286589829665662791560742655062484975602158011315005056013442307284512147369425008417068106153498061234295633662640514476647359999271672679178528748456936803853129226157452721497039433032356517870970812699814807485155340968799033546991039643624356753195178632839994705340099182455940816163137555494524194380086120962239409922901769698098700012064420835104126133120168239864494235467756816114522938234339048071314557347279116374773155162302747720238004211423018290669206111975384204571370221787795453184195587271039622786233780096948385765432064717019076524139242495608619577541642378306380388720753369783161783176992457586032898606138123508196760342474230999022245195011795690145881482467776322071406929399817679470518141453249586703059172261504023439650808596058210381154529369250303629454556113869754040700271205466975235819080087351963884687945162892588425765919308731457123655543615018720942695615570234457311353159527295526629497010322585465497790084340474164707748549438589117955297134009771392258849001111870331351735423070673592014935526498064565006979752230934654772913570023530745279959502190238628375264258577272251119307373226252876469725554836104395234551938706160954879937065983624235071280256312382289503188808706892429791970247803130088623345836851860946690824583748860682138634886537411067894402191984937368967973371344952107660186267563008581477439410836923512469361304171120476828314517993965536792381830685251265657976024646285407869851312837146994810332077006004373438539714746486771126716466313709337584804361739232744510214800369727910577927553912334470199266788362157086060647884382711788806853190641897062408217566404789235942240904936312470962627961791987611458333891554921924856428478343841718813811959141075685525698183046959081529590634631099450508623618529946505701403475674770412221217065680411297692048619468017338155644024272625758000114614878658424893144038114306442457847584700289453319996172314254111641091668241442593205081536361470064847306705778503292013549090784667219255469359252077560492326906544989542035313633374778204311666740761980033638679399306377938011331452022164908688861612189102863413924734713887405898108163526458957443065214009058227421987308803524988387609699739476553371115887428436651085015959358309420223839188865112114556748829329932541701194472976786008040249044207033095397473455515607551251660326717196667621359049163879359342789861843243991911495355137599637151599540609240278099691072732528288321296791063889280181572783105532896111161027889315901626511285170396351296650386219344418292540807348783975086351166395197520075194775901667287540957521873070895663433183385342732977040636477373654163976886597256903778894126917840885163772205430512756942908772797863692618728326417015879273913268863744901201165851939857218522973375046517671987438546371135186559339725858713060978964378255301237411809454027073297969311405105303226257990572932388353915607200181117859971821742016788266639521918499540686872951792864024912687843648886123992666069911285131952575634673438976116594690750116285200799857126005017515506799886754604764521169814478144188227301705480429945889478693762787432255403036478717763874329818548836133495700488920048870229469878308130638585770929418689261087419189838519386641807008877533132756615735327155359411119040949322414782245338924481493501935775305056382899006621170501390401164519590781375136835149074459373368064344601833069882119344670330816242549288645741795662910641839705395103316050747639845828467705119969362533667037466454305960714347996635482413394425508744614284589929014391494058219754285312424134834529261568976212068471487696985935958708486751901611610283892682171157400471494977209757079160499534076481829344131279575469970344494093060211040132613479032747801049442383946667240506932843986709553716758640938726381181126844296045207654413662566731306218087084326259793703712043431926010386172479575229707483200703948172187389798928819616547147540516675270279821764615191156594064311907516314321377940073555351188986955769660556306083694453932665013449974622910777754555035881798223475744779910030744283714690761567443494122306389622095381561643164745804428082285229815386929118988097430560917342236504796304634929545461315862137557635700037385358317493870033399580650996566954813641807317044968702648022720105602286713926380971933280312159890985882067286368116028558747998725234803951200374186842544730351182209243313225376643950725598124416315461566884446070247655232915427462607151867662942350512327094644009277529224780974600970538830512421850494222195564538787832560060310066427879344482576906348736774940900443331406521135002711065464070729571068832043163805488116932479561207881882509270484521041673504139298541124678318923067675913319729681319540700846204812307886661100958302977356108447224216442057123497827913184606483339928154970661935083109799675655608259750535048519306839631445688994699929504022309461416540299786604804222443984810016971181210845642784058612257695495030913508775944894208117735950096173593599663558443011676255561592998816508186796502418938329344062092987317672478558541978260943813139527648818320875950487196339167803120152362292150879251697623597198994337115735408374519509943726798902816156164015368459523164543954034274151320656598856838765683294916934401848088792040514743851503391278308793857620842231744191645822282908286815769807008899594581684556176565953296242558621260135454362165325700912433608424290111138535060076285547032920330820580808020809536363038968931213128471909459143626424765489476898092394128995525146575622585466343251679301258090161783654524644827195199122701871433079480989175533976075286416735473885784424111183862815010148851162878810833410187064706290285570312375222802932690973257230429482163935199460874911483632891917951202626812707762249356275353835354721894737445419253993762476897645293091592682350909176758846687137670046157081936392898932797163085275365361061317152246268905485165614755198003730917617948779217329133947405970591138113522405420965198249755436576813602691094059816613345881528053802736642665071075180944633625935781656898818712750462418807774228053445436083509606806160507278864052270056834166103224499208639708773405071997014418653646774883501887153075120179232297065973352490122265875602993033261515183326699742157426421465850742172981577625588621870694960233014647021876047783452916078431133590430764031204777241495797017344133679697137589143196858726085119977358072650406554186082940296584808156049608171888578097059717419394869141355367890062617158865723093107127277730545759985080173870090676503537412423573727386260748137190444510375999793410903450283808507807336542323752035954472390396184285301394480320399198304388351497045647667437378292315082211616121581909264997604587439536124457511849691159073493698098590052172813496029237605889420363124538854148230704714211397300447238735548151504954154309648172642000852163802925777281070566095371569232638443700181563741445311388197103317560440875902054643344966980494029549316754032365963830968904497834253244505726420546042981841814654819349023185479209006322785344800155636878273688762316039868813357425238949818873906131648432689265132058179688080971565024332929558555560864674386315283589197638752987359048295043060726650161154235747298203219173895610870132530840141745630018416029723634415388998855753604269219047290787698246808473250280238971716311211572974959150838752193106471680370987113230267835635028386321571067005621347666274517197165394038886201586194835709191009372717923238746382295062229804029083735631170130086843299476721883334867484027008789452686228308712880205020130900384279437407855966058021089949699900340141408492746500197493758477665019472971030910618092122317651642286555442616781916538092578475470463436478640933509813308630996238137279758498918255013946281135903639976735050787802597608093133463457123018648713569575184606596664816850315117365894504765421502217329719713996100780635973373958283070238927209409912644372199327225340985774158524926459511393347996716950677773630694600666137125470668591519564493768040230702173133742575066892702127399494138960777129428310935285287269105406828046230393939533642394581812198155381616612881801962695609033417861463922085884850597785090450711968263611982472243585660192509812906539255599917669122556840534804918661979771892191113975224841843301541660317482627908084533109988092168769530705851311256987277237716751711247422664541047004373705675805816285873218345074248458020843284077594938656626779695149047946627105567711091298741460778304104452970797568872710798177184783265834669797446127742475455513408116154446109243584847871995477941397430749122750965586542098236703218133162543263222992909545831856326634517972282687574001027969695068907745683546531880474681726216113619410355185081488117244337402520082790478565717990416057999160320517381717179416696486189539113196812625449533386295160065527346396573029987799732756647091009952882085417593910465079523330712044923272793600547704560474606181649648126813337326837246622884459137298040329524080905029853090402300974613948918672798120250164113239563626432572587841103896794561463001164292572675485837385147468423403312561114284661895470677151673824614357602729907726086507963503298878176591594610925103196080661030663464010107157319896071534582375785409784332882171642921603865781024054467672348616793803458119271694695975460384229816607837552844594374311209855924440830740798298153199095818300122846347589037487770575932971163660290922085093532049694000896045007315027372856761895138992704142185926933695963609068054535428740962078791269316778021987930174005270197034189377602211024403080652235415708059734250114596738588289547269145566158791103076538622188423814172637482143700390515739167051374951219206506560709107730406366585592099482485546728944163581271689373387071367373315567297582011883176721702685271792956548682072191192928208313950249905648414901218064023083469865058992241844317408614100268978832732550422690202265099702463246950072197557599343793460062623856378608027044073903277256011964773891961466192845769202492550629273759723996023563321313342474642597571218227631030926694697258501091307878893145600602590092587892075399640641979454667999710838363977273178350123977734439470281269101016310532560974890633232979815253959989742552275667744421940679857973186746395377608982218184882241995505430817535730641931387151349983794064014145116194674334431959522651636387737977695780509707697323644114078130704970110738292715858977943151600312302038504815517348222768284350093651565416077562601907232759828241292857374062471766795950480644858931570983214233433865305265691864508046020177366567082139293452293609821024249354380872930919464856912493818573941647164538073733365161106667491986591879838296833168504976328585341799892338143358124834782070375655032993209748800160618173625540156482912166559524725815571036833048982704660228261151402982570108012249420348228089720050695217330308577433841577303467826446181291467637738154286763116154773908304601737909983824730377853585679411483593540037786712707829338037784570474006748773318215612533632592650382074335025776960024628816382522053924132045004157664259173767518270849619897682698208052677509036215840151094204256161450561493374486125294855134110715757103706338255836945699872222870244869786163262718461678669417582611862818892030217099704634921615554265170852031911519249421131490996127597515055514194024466519380785689448350979218564600153384252928992319279097341363216754722899436312093894423257341972923814684143664687383188674885990598879795772212205601665976814200839401008582157531849741840762217542681773868986345423835002211331752496290966833331518484067509836541948228377078455189573663740958035393357232778250264238388454871529856061834105404917738200059702192238833457015077477084376563293760325215878274055179943968694781922099878961006535655278888498809304451119110726680108208910771750214568953645428426777890037019642951708284427107085409909564224814924783020920689181343675351538647611659737391373879609515958167982641868716729525865887662509967732885677826941025431140482064829231560190712877779614445820000424933858329826534758020959519993642927395195205000479841807781688780416994616711360245492785401371656023867546916125540167846315740405145543387288975123512509077580945488891948906266721844782111437177974499107107647872578782001594640431493989166298207076373975766624498905441912385755580166905751497170627951079004881529464594743683657607594673057428655161515454517561042792512046770514856393805534445159275742898648679547901091996757817660632641444744911851428086393077562341270558076151441608178880794086868143171144525850970247971641747726920464057443768218758437713095311223860204640527970110950065784860053465210621164750382016455624090508636454843662780269625032718466332448037005800469027572668054674324845817242959459631638462393957868878470861403081444906529416353457272286624155605568138706270227382419980646037833051946217400268032622787265417200894025761555247873383842771094052658739059978863470151190224748734668623317051224727309650767428442785679248717374166068215693578536420025909960652486393963506756612279917911610580920708940108009757469589742333893348771415428983162769769128956793218737087551617164882499142076939759517078654518826049406640283344815015143756706960069784603660896887316840904982308623903093515814798886867564277540666955999477380234351924126579796292932235101872210369211073915543138249914976013663205122697877956035581441968686465569555764000972628108085759563508296319327005646261610380513922028563659600262037168565889221627254723692245001528556173391262347633550448198155547434798132167210718710850342804649110690646796275118737048370415775932269426826477046519241719585126981396906159111923829826944980559473131165174740935380481146663014139522899530654224070273901637691077693469930316528481266268781784855737390768650350669777196199847419990394316637556275617466835267981238182735288066025487044653772042984999243741798234534006046318842511548699892232559898873218113870747295730412300491466953109046939614648812282034453221331561200994356943851502217980882733160949124675094443031319211575413624677297596550799510516008585771140180458105459832464093516492230070318203839575059152003504004515652219828785445551704266093500678623603775392166104948247715738089291317340410004152407635103303733045413536027938997740811141504956566042562846232803920858520063007688681277392946057972327107501759112061921071432328527073735966893624174857222660875750217312581396678062597618013468395868954757029412925436766878650311911337360229517280523636572710740669492538390003642996742282819801099578303556356769357076368103126643668233258328081867091480121800932755714838029817408983165620524306096520194972150652114903005817521515938083247546133415790374756527771724076292698898020506819470610140644824553626156327384542833519372669331996467940353819044579056794866633578647334317664093942205101490777282014913590939741472214563018196342894963072165527426554292310619037080393905704193359990460905650218099998810380077907014469702306085597632991544661113684494664541892174849854600649870875423041883180956628486331562701417985760387625903474579494388833618005820420674608532619500138162448192571701609396967972040946140170224667718890126199231326813828754829612176825449043590343660430643385817957298570974511695224929450217948379075901008774345316437919119488706014886226107486344321153724843531045716231089803889439345724821652700999862231608373734476839378927414635499029897693217102186103620721425953551232049116838539327703169089452542141183219034328822649225128939264563003393283498848259226645313930343384448643633116012775360850226670423812088132514083449370776943686286150958428213263872268747539013618114943223811419675753988243055692717282869381110605893986082405615645164825822965817584005122405030955923522288257617595860312296733654310015564163579498129314537252866794005116619697125305954093372974491742530389798198716842085250774355413049769596509017259325701521818314628773052258207705586944420772928424734429554687899508412876266696769801476799691212907632482846926621987666068219463128252807786340840850987864814718222946504253681262099656190531530703063350650189297960742348895519463572818905999695324274701521258064157890514335478290206282717018103449077935961393345793284531883340975121783511928420039624230712011326844480721108505043590178054744304988543771596262910828626899304990135751083246176931679450437757455955108590611197805946701025609777398166695629160852353249381176674722685669635285029921766808819527287657328809765746823077072324390657724629571955084561750927734050467676976276543809507370892931827941917239570611019552609260431017402605066765687998092584991386278852035961412681204798986223313628304811161643237409311278525401955030422453439899854896756116156430055352841443369207598350592343506576951798530867220162416150114787789878150613261829337326388951157988575656266505881012582744729269793048893720332063993028386357346550892724467784123598653537204951453845153843974475512985164929139987568580457735077526962703669157930403253939549992302976160897474905024908883309911199618803662101710898650169977093671944724697603050345213191797423338635127891711284035600836527780791653341908626358392044783569938609889159349022163100024388003569966300030566109269533789591853768775036486095761747934925868322221070969251367892217831178516402551813391379471933897271665616357736791774816256887858592462309383836983323233345158811377009593189409981984338567346545324430715358292496770081005787262803626221968758372459328374558179963146641512772929813359677134687568192850397459453821216904558392514190668966770728132851138184023519719173619684101669518169492320321255909172846253237978613515221046106111647244846214311284125644110743725794016137880892286401168515184115063395322716366850894140588490168665355939647191238569619996098666705799173148087674337867281831438879054857992742060036817042183151931933722471109798758539721359933698921877465366600655669444943753362378263988965538920143756976158660714322206876561623443485874405113807963946535930324934292130401261655087070720176932180187653171559985753826816727169476785513111659780784339728477023042014568118661590647626058330389819936757691668635479244305785172066374122730977955542332690126850698802291748168348802572982521080025545903295960268457857046670697443095839185283773783803342302489051225585428659551039817881509883744087065190661889366928386061683681861850835831616961193625090820826267427025607166303575808638833546822533460806125517632857273165785947803176796558637116972896172788148875341030333607150343528092202133143559794367703365071180788778713316491927712712661139647047878232590701114636790949437965411388572423026198144491250061347038562539332233584500154243869750182729631127794301886573549434707476025015281701249375330237031581288564846977970437419271309265512938927224327071914765254043839814642969319901041834109360524219165097634108773739281399181793591464714569026407727233973839378033114950011240414150562625323043522650802436284033925710118067045980599537686034391416500445595366457432338188447686790061259776928796185741876615759621049585221855993290764021964936573008229597570093991362724150826241316216264467784015166048184081119530818343771251106502927551124112149574040564864912345207840642915468463565562390369843629163374092524287782021995414626796116355667116311732547600032339700349996662307740226235826525216524049887118600193027328664256744313809083190355457955614739704741567581894625533618033844362647843522568441076509195945700942293533247098810224012864814008624482913176367800484083327934117814211917315420750684306095902384740129942766131845077693303112777464935110597910622229939847534112062114831344973897001411084293689944736327352119622297647438178981601472179425386016041215066959274870721722709332384074295594041625595343843511924510173931804800696791749539474319115844801958068132846775738827586257417853083832576262804917738348270979461463055861788001469790673059304326295703757977434323222065311096264950942796668392101784754344855698929866525905360089087667828714619586292132921582570416486963941174124831658400951123582142288220312020668299142681338225878285144220025217375578930105001049591492423517172099374159838880966671427459203262268200493803417410763121012228332968943031423759027464500747908182554511201862994805589371577034987174489947106931531370872584399099345413921718889271281606445062332798448785807214093550466385440411712705100136228125995110486718763868436515513094365709308603734154995617890536752976501301038507720182249815540393745129184252980726534941859983328756143117930095737802779458662068308656442428144294848492631419448974491139684040147980345329450758898345779216537731222856970906481907788408575798792066957048045747334312391062602753183734044538681936366996023096215427119381296795812507268629497333543522074095032629474467844135723464642042816545747158565387935060907343044337160628377188160707492586051569484954616942851437718135077160771934931862783184529586040076915083720844578576829043242549485798400852282417931675442588068004563061341401516232029564345411463593262467909134652653780043745192864371555605901800152900027568460905534117838292545590361396205709463425931176735200129957771247654700059925172106742016424909418100745826861311734279690600579602289118548278627871596164585517369714840765858110637749544846312397115296898628925412893414239203304788069794476993465492134631816634781318008410299869657264960595582003540017717679453222779281520417377114143497418360340804626138326548378051287287207060226137539766643923579903966991499725517693258959510439090269217205515627713605028819316184335320959747188780159034638806703268701763130838887776241364286467443599701978639971374406839097120368232477682938298227262689677447625323384753508055758198496210985210557735035355215931944077622115652228968945476165757775073840216501246324227344680641680093797445932323481532216549387363180087681240464491559677477022143453815466140380327931038211977472306201855019264449723690928787785771467397149889169402760324606307587920871212581726880871582881844729578988361753259208748293262667183091373134999840900469263540375128004327926622126582133851432653959930914020296910469805732653245469599831251246764960389685483830216476693731211736013267403505684388329592520851450251679495670473740467083660013152622111854578111977670261034865817031510456278631243976164707317294056048204681307848696322048560167381555203996106794444680362224903762405407311487381632119063974006411812100663027352302064236504217113038938250266478940764309972791948266004849084224304796875013904046371691415448646432868134655769266851531072060655278434027763990563196379316644179676057489847277900839906947564116737714885585547700507826586682454714467394921430204315409030175863752362167354547268202735844194690941933157116346348814129533005541920905126849828673733565334510063926268708070076494650103083046782646240697286353856258317633529150904515070121280633649943239397554516516896025516110589886952321631389709613671254878403099664675171378163321889336090864621607197440691288959143313708500121085455459286337398568031424826039881087008055577025709516055580008971204065402851433942865461372679002797992792842842177997031979608440365973879537665667149576476873889450388225695799881240116940282561459530743762715916757426822448469403090687448490347153304837178312336308748990617763552063834928689627747524558688800829921625707921430574662865644345539170458735096185686006234071780126262046075362506886841319843714777407078873797774066005892784154162803087199298181034289529296862143158316615989222648057341531043192036708474403815515156045586768687743735396479289608509806611676799612257039143861641391498489023614666261682532258537149951360645935827818391135309044841138158135329663052280132623590841995429525430764268376411394924754343067075722626314110116118385245155122675168566300089300098070658431936563790629004234965402033605586862153726141448279844830903435140789144918400563855785384910948691583605556332589174038033279987875999250274885981705713878950569761045807284149361863220862456390760993670482904145602855565359679460043535157896619021329366396456274846058019087908057779359116541750401372111254497011184106784798208349053088962967202623862534980171566530025535430819110029087074531356982343878226025445728292495047526904071249874326838605682919302559533575530222841328049783090571002019328229063826464545378140075991422337825879117340684571413567884455833005004671084998703214734422291452124015363683643562789539550241820978424335947601634301736883852029687061999294138928075497375890905181878915015821097172919283991205750254882735430210489761723478923469194017510680489140654068446747429616521683010157776241019457324465333175889689727126153294432061160029315664962804845085637647347288560370435812798614932727620280415482396609149218291455564045956211433901249399803101148350981082266438384748597894834492275298941611075614026670974213428719980869907435578082319569207766853298649400718475145468331257963401433734158263486429700248932125588504969037439989034078737500964668313270890252641895783790668161473211100549522146260313028695509256265283501646904390741841469024308672558428838426014364010071758856935475181101667208278729622967188549437001269100768252157130531750697818110288275473683480497278233138693014927693673267148468876777433573674579804253325286408682523752999954633207531460772212374921242016074496781823258061711722215145374057600242068931026273785305176274860483755448178833588570247336037192731038955623666072869676886934537022766199459077701144909045054316514634973915745170227169603389298386997553815521072251918877713869525196848313214430159821489015517637430625852544881981767609414791557448755059802521051253514676343736434740580734363165006916757948257258131994863288485778250573328877533844152347645130492947931289476457650919599065586951643031010908411800695557426034038952458310953282958223386753756245604291590022041920299285200165790027676445754324566287650130264835546029157185697692153208921876132278555337885015744666898087895613939168474254413685400943031860054169992918212264355998927386470552382524550414512988247514568380874038232033894814427920646194082965733404020684192692322729262364398890610317654288017653510493383899171667479217084263708583110196959709571793377552579815458419245179617373283158512155920246433803111398444425577201091196520262982488381282386152394035076259268370236336766856584019446324239717082481679283665188368975755090870996847571616658775631830852967891622835950746848927532416473638523848801055021199820179939268489234176083113913210933611738338000708163815981025090544278870771539415087688121750672201832440447913292960617097017659154597282381537890738995993570616709126502045052699273127414516524367150224795082779745359888597569499722574340615363342628069909506766432582162191956573675883003866797509532329548543025119947415505884971863704694142116993987020406737214343794229210192535268706444794052896280192295217212435363347240938313487919872736725787684537238164603551938959406204609321106335899013406006654164923709217320450519014713532733412516805866669273275345199815324083380547462132990673354259678796118098476915379839150577879584847896481031511446736299668412717603102061249522610517020445031753042439082238879958337856865849087639900303569793811512422570152288678201040550686212491459363031019550463697710995603165945936383934176542326985767668340861208480761478719310357548445471185142619729478272612473837173763418312280255762522296745067241307544251188246975114533991310076073230478156705509940056403830146002361155894588255958802561210899021226302779494653796641665266022669736665033096948286341661208151859612681504159933108815914126078763354443889577390704985174402161760528839890635629805121220475001614081422026876610395384493016800456617027035782424957257028904700319495480472423658602943186914847391148528874981331908705106207077770999454452497781255486921750578786158983592039224864858548119136934437200456615041064914122905256691019495683333510848749347406072993073619571833889599706482023537198920768998569210937270598689448240917892224714766432576527517702225464162139970615863825778901920105815161457545605207358673563788437789580186523939037082369117183234653541894409873467171073225344715912740043291693647290603993072471991399228584802456154977959333481623477990217536055393450506551106539174956368299522306959194284674983754473197209598438621600352293286585661464159397675274507758863264484534629039128944284451257526787545799668348676169433557189175954862229694084617467293173686475632360511378331885100461765199869305974108033110087803679964538124891076087196168627033532806491877559698188103514491558536861152766563441206545255741054265904681888040243864974555470432198753868244132684192164836856391119200518343696169914225789358413274039235626082405508736942627660685715238418924706200858090359517662894566075125881267039137648836659106731750886862045036779024056323567177845885641236952223139254359247341927307482489962460090383581306881206068233468212405653036373537388057146485640565883633770205335022442794925382807614263381853316741767659946892095261131684092100690431165450910274810247462131275945386945477814865260034067764894746957426820797516012325077363623504150246045893773531481439146023808757519676214392540611708941064157899769887533721667437978466334329675987737441428408737420523882178745285047984707333023501405951016956406176891051077958921207909651018717717879422237889599670877118209562503167426685265608280347260438824936983120879009511622197393776659357246692454829304859959119931191026731711659200936657913176081071343045108758600862689390492381433393442269010573318825853827029811129874183880094027369457742913946481354594512660645788065025307804914159527900031925239101905710532758927592779173479531735495837391842043180146299635338690663227743836456461795813663676435025351325658717827580170971061352537508189159261363247381342849950718222187117891421223390927372725275613507533134444922948549329192407820098814756449370410812814863938010020837948603892560350838648844554138985451363602207836314645562186175398013375369421293344403184006443190925058479777052072940100668522018461571370789154790783830418678527794000533144148129453566586307678083388788337704505601213160222289466901719257967937759856476341147641057751435364628374910500909729642325646700024196800579111555181399844737242610624979669290605334084886316045869691231747256877481175138070786310609766286721045817264524997944814758312047787032404004532211779836506457194034209542873629866336332220749705174741784765274045345197651190310814952159055832117093503654633558022965100008470121635019759822813123388016967563176688070214487640467550662705433433872918710854093902774327829126129020797166240791751474993735955175636769077113216440082410452266810526719964539617485617168994843234855563225711819748098989738639822673315785012047283609940275546542956721829721734983265508645032736321965514424382642811758229151931868511322895478653031140821568914981826486761738454734679535472302750977843602197067461042423552814946130940355210145675062296158218850904234225004393096428883196540325840495312810413542284529307651222811139513077823513605253331593300427196183009691688519540872773931075051368776121267581748051467803050058107431557404547192399341841976903384493956847481224890097694414647669196650697607821911803128814189112390006994034826619967678412141775225917276345401690433541722364100642353837796035306601115294528723380668731800894847231859247403827357482269391252117563487057604480716617065619066771251893477882322569134694624216597209291002255134159629641319061502437542068544502842155143807026981751518163197571319007351565778156624859991384140996670156364455560931640689608508693910150505629715860398401926898520835521752715404062157869148214712540517411068727236288436482453235808720136032217846690571336032863716016117798215867443235463126795682833446149771595832185946216345743426834270472878274334311624089343802131453859931134281529819874185748170951418159152662722969199300171598083141160955188822512466290600399011139046992596990331775900331147702808268573609092116212127972089840739777488644549727404509503917154484792725699468391529060597039360593342979686679535269472356613154121540626354723196641568784645484896606921097963402619064017470507485304318759283346794778395251473881770452024721406869008952585232581151397294033796053300022154288404164751132481191285433526748933692048810007110548466092841804222598049028406343480483382325497994820292254342502797444937155837918742248508861614614747577770689587329794968097951249991411290618347866085158169764382645718219348533303037438457043376987128520692238447542040164137782640623261849797188102329276535567677825583654894852550995219773498144744829768674939661795189736949687063039108852058716716844776471121670497581672093963765631742951451874672103343553738331123094470200447069064944554203628745968731894094596914431662907233614144077312651146191778505637273637175641434256429920722325996384314937746816430768588574079876781946572150309363835085637853375458594164097138285915372815636564544801920601721849016825643360522698832469656604630618581828903466703653792387470873132225925524550827870955826530843618381280110202208803835774695662976392772941428601227899133423624757560104072047679684874777309556983994893037949169265958507258156502285408493609384219205683000752791675902427010819496031435631335200284403972964444420468113242162717055696914596529953443818685378575692576694829003231324056620506603458138981107914276552936376581034215981329898772481619771428668661179429865961901261509584046542489367065556182101061200816300157771371910137563579628042950193022765357595838626407345935508582598396587760441349534843431487737674788353129032561965375639509917863789013980791003439464493578432845104261186506426473074478594208489682221213798792571475264563128671933533341060621626597212234347368542939514852225693437988540143159564412630316367480054751245123368574404803511772290044451699016882119175880204871137431351976959316406002326948354862552414970852436771239939251899585162508774898914482829956376213184678975069567699244798776276966389326048791992856384846047917265315216286757251702942869074944106382065346675366100792414133447014264270357909191201637367381310360060391623537826119047586618237282379390652073369235420086511842491626572927458495714103458403523876707500103341082935002357674702681341752909765857844008410369706219215482812567782164221562136387656413842173008967212041754995099916965729564580524962856138606636532044899735805375748375369353896088257051824760080079913920883165005857688964629853081218559964329580884997674839651573242175419842517198784996881564799148647183778169157052248974643180464792872897311445619638899802746585108458887880366017084851583195714625844477034959332273157543713913380826329677418618548455748138813574844813039726613386449265017629883920933603559086781107761663376879068839442950133706045517020076291478048723930869134812027767284234901009169422283289708480431147281517587553563931633938391912571269930258868370895998300207663389657961649468943910708790655343182023885376902016928117181309908171943060307738687626960370819852623474712665902565716634975487515517978036305815735834039340289623290164501541185039650289706888702476219833656266148539831285682166566379628031612326575199235779486592675657559302500868464301977806074463506169677283457160727556704341428504753118210264185940910091140123045749888438378093703730530021695046029887898525642948914387164141242426359901656481908819847626542155840200358564028370109699685139701246574060253004620743147586620891780584081343598611295830252439378312656911084662978966004331995536423775373458441406890212153213173617565487248103355266375654786239304308066606311246399492458315865023634438868168708408339526577846148807135360659889674473209356922421893383012798135268738528717402508080438525934628959442355746376719634709668724432662367978364156210574680241258510227224128209462172099937475477761759866395849483347737380948844408770834409989497167958951411871695852533811932744535922751496122767118683523009132504598287087562410913797604947986682898614492608001568001525044041256236538752914482281056070696593349630886145233878400633408057727684494703987387651192904257181651213347549392446923107079060621029960650354152436979168660481401174235876347014193160957099670913239198332468855692951431211170353249988538744396678564009584682288692645099878720754365730834423673640685316031598684347156196539393116496320426666332026492105145377968071093235302502193873738546834099376601274548703782092070915820416467622145811520888127040871452061731340267985657391064738261979371143587656596726202933413061767046767657608472511522487987215580421640351237720697413397720898130511731763701711584869955635855977149578470576821103181927639410751297943597114213076206819007429084961596753614075178794484920322380128207233732080864552580424589826171281305182411599226914518895546777615787946759647721984483716455760514049129148526031853326883120200278515950175863562792720792622342751578468054375563381205040984397108337211732037603645070277448957613462199197368826990610241754670335473986357793517101644033320086638018384603264766499423035760521517794018323793884138471659371296988830158409008596199203468673551414192981447110132921353535492265089596344706697026134206814493714824437060241675893878171172479747437372138929968342567017073090452958831094700633060564452513294078393559443556719561222476153286546775502575332857779476616254677616682585236795181756853224511211604933679128687732668866363395738711721550897042531489156206279729643063341449670017330332047824078159611923198417687533921154480573484785599081221796391982255276513736851883318478877875704327066695129542978863201983932137334464419594712871119794034766497771551184348674878436593472148132987628007422390563985463811533700865086870730364879010435720644511828599097931120572997307428797260441265924008354153477675094514485220868422832526260620091668967510585732445246890900570964234719658317765150532435953651440198844514887408629097958043561170949503623050215358219137434214130694493086231124769446231582433174815522658729918204786081469416921561915952660842550153468043171025969593050897661572520530269390174782792368694491182445204233147815721292729107213679680335133443753018224184869235159345531918555177832733900053284863717132795886591388682565241991226466730685084468482175456279097188464269105150828935168518301071687017660114854806537604946764339993755165264488196523924913833394205146094819014279432710139679599903482890387182971263361978156067881625096427194281680818776187986954368316995169425056797773357532134840926698032956326676852000398741074977335453915750315256160889134532302470933548958085946965093903961479254396821348650438780471293223682344587932760585199146071597915452626999094619383383071534791468475982838594358816199818760222853047248455062185232386646599136155258288663237359034842098618553411944819956248928474211045815500661928741800616316650542311948279513286071707209258758560124485349208224190093919695623188842028849577610160166630637483182287061266819710386288116906372339918149269984641736339813872665115507082516894144018935498700309376310085468489233126393177752832879760985195695366966021100684963416763229315432463977256371678221916144431825211912676267034591342921511812883405727568081544203103901223036983432213646640310825442308486904407734931462042191160620561809676814668426353630022587059030966381136064516221388258974756992956711983524725580259242480631670655100831614353036472312784446179133072664704146234437700204287598580001914896503758883669904000474879931548425373613107025726265737824337907884011081685989907542233101632183835986586313663180424457281377763025167530018564527810474066857580584232152961159530526264330060396054285196693848938572410486947858874880634641876848563801239635801864568904768389175620141119142829552225309633765236951272599674001679222415075212961357640374329862108229722664614126247069739056927276628455347581358718098844437990464512214973895037653185601011685440051068482264330270923807713729803192916986347028061803150843642073047343719259054988750322796801350261169822541180379357175390096155357757681687340801348545061196340527594361542116000702981475471739544988266727806162784859563835272285624857288985219718964391770629171221811201706115720304279229157141462030486923036575026458044049040303821932154136063743434634164962517084626908799119818974542372521512549555964141700074023092299493560482732395024209871899841263600054519329457174852419716548170644324318056801905292337895521523927983893501476450766648474002505179103004407682640061602771515779554764444871680017643758667749236883086198781096704548508801240038137051545934728648153687674653077052940095015807097605968065087253621384223821578582912611330267007768529097797024676136299360639433431932848103234617786870278046026433063549346703198956437306646239864053161749673212963006423099112692819938164414135836099309826969691673383409821660121326352175045575412573811262731673376131728029391397639965876559594574938070471288183840269680697824066135117248537912319772033986663462597212595664379857209209723322942773193975642144695445380414489707232442352677615778653733034911056894557598429731546959569027757352079385903549897584666554864999608940556015346430058392102054768692087937665789607548231168072979561987516758415233722921227266233405084964243684834693906642328934637239102321542094808428164177310465577218012247611979913352361669611236820274477927938178977750320761029363803340838949701076350618277974344840216084667689988490825982230037776814562383167633222233748969987775252022248983214804143025005012721740426694765502249454678956105182711264828775923352542812034700781306516129923850400335949746425485884751616647534299631481047765984401728363156360969522130642364067973788461551023814735177337658105917822775838783338336267341867828390629448286481976303100109481921047047477549833438572168171957126899179884948959901255593897332128771377828845258091480289669841887267948548365022876533363961786807001640028914349627922696767311794604407174351955661735408404455911694337018160324831657939144267117356549927044321950717124843794010504592040954663752622745044173551940581281316325012378618264919234567215078374969902229863277905371254172073663603067692185829102289227301531255923089393824710137100899284025459583701562023699027929754378136314284799570025690665944130837123465306478820525327492239731237667500171359367397873939512633590742809162298371683821425990447024753817666527314516774520662321254246813841854165065464995685909647416085708056037307331927055433178314321250208851824896816865279471717406307327412920313214250013874155910153370646070767870581197754239699974125886091175739358185178746562157037478786235544605498443750939681413020924758411920263163941343341312555174332753444985484012717402176810551618525040797292353184205942016207618156386714474354773704031321970056550226320786712132686177173265848949210444404285204843661464329705010648415085949909488855568118751429033965678618014410260603166871569704732842447196272733298990751122134861725239480218438598647440494058479892445069423323547789129745428674600749004255807166981097902964300303974218516710606433917275142575737537882933010812153657439060527529805681770814611738257476710205725192413782594897159215257725115733353641934690969976310138763862120845037018947986616808769791966207775639442059433667889940306779564402549088516665871477174270521815266150223991754904346275853425300820976848280360921430425649219495381628322660708889184422558673926350740257484776517121515928443780529373047970463059851749720022434130501868881452445405882035754318971457247597923673872315216227026680306454603867592609507995038927352033822226458135100440721770198198425085758878941095648806744755332286226896812575714554663077036255136610655305049398614699059769845735037808477689650109906426322138989402954752605516633924562981457316249691491860948981441835387260073989987822982761163435518535820822427206141914461743319328841320838340996441686615239638123031265218707498891775704786424589389483225041108250778831593161069253692045657771421010609126439596652786838968882866496146874131825693177919458580141287630969218302402603005552994712256592884383354411579637771265133952180744376036187755767246227906738807735547162789958454123099817882934856186011542230237140568747337344319467676699482657122930568773938630241470095657952631013224072735865874829565929963138541410729417832899470698716598854138663210436421195075693068335528348061430091288535576605101932975973706699632496980474679499502715719768063408052545618520061315729234757714084239257221688266926465790160330496397564460691439727384296368090556523869413503287668473744572084247700883418953152443089649545548680028023903926099858080681044795503520165820944587780829869894589991263385313471972081381153650421499296899447041810838800699614508480993755983576203829379893471282367438171045439566265026746598495717500307395962359500985275414890691301996897015696600464594041412526735048304881693918056052341438113824250953282359388316162189494011477753367773335315509260933962552292687094979686732219588897217532687187159879999500680728158235951038397977188188399667740168964589900126587840557966360911637558124431379105055641684666580883750030338772171816393903074374011741087836331502640924255620095589322861665816609913204924937637201146377372362077228633623085350149359915658658822366710939841666891913356650307078922988097259818059780273070783820361686367051948795627063097743889173007646687432064536129063018071416576696240405521087694021637774901689703208227975495932070550980674987787475214818021019462419676158684268695299740088623618668983663621832395916406464530185908885190732144966304776409010137628045113854071986274351396699759018593420780771680295629542706745368026525782928900518693659607423928940944512647141808265650341479632061368543007000294760581017798899906712333046732328333926557994157614532336274015972084917036069782702115273597261420846443053041469799007069271802137599664698976574738341596399870431115395244998393033644118849501376766596894781620518201648496454773222113589218284953471953109293983487747960917367024062462990265217091028092287385899130671456865475877867655054698536848692267717277153527410907908103337001421505094546099943719593266309491576788883559277714438421340096653075223588202096319669269663573763060313933315377540226866752315462774575771907685169061115885011397195346666559844717068142646130790808369293690101742955157240652216597785541234654392692696539652402362048550886183320687262818361936873194302849950194759959941184377839052835123459160395723543003770770350212405352710360219969562129341433429847110660277464337007969108731811952698282049179941226184031337292757403194596773149526293707863415779790434368903431913509777864494563184516504998116462432773966061826876007070258050393207367298722866525314216540530998452465841124506124965551619245674944076158154297136781767110460181881689510195161746887100417614999250238531581477924075786888816248225421488137595724101471782716081852513006185527853004455278286330016559892776550519361423760508647453830310836483484088771373142057303430607936418636907266572439854726058056774361371259843581527362325266513683038293012636340992867138605612352546431973991714351071295889277438410775650938257578597100800727740260780625985305586582699209569785126495665687590144474794058901040504125971561763449448333309656268328528746436250163236851281115512468660428678038000069186405466591693063156567439915291262129619404573017179411544834260936777839892960579868920154067044491110810289947496563402742047850394954449557762681301642236142415943769991676508519230160613528243470641405718994483754976391229267361655884455360992816391508392832177385150353644135287160261781847603819358313006873230409464006321443104214205350973280749511853505795398991202107557649889473556828495495810324783270169471991930827060073123719905946012618975813553165257410088062663769732700085696160098901987364977509511814668632330486866003710223648884631266161275513465631373445586846526824071736541229478622346306485501085091244998029285087155245156440069272152388494857200678008531705485106128117283957983387596387995684260441134058226110966764836341555669825641276338413899466599896958214790083232631572056353566073660599225575060919228866607925352164956438498951039984807983020240098025337015707356124080049048820079528730084825056392235088616970435160992478364763687288763741977590925421979188764322629515659683551037476377986366118180873574048099966566231267573645844633916673541551834325382422243809612809061703400754830728857579028129531304033274989318743196759992715133113503253329216119082375724074091729470153466607618849980976552115967222968664997172307920112746995396450256719924303681227708930284317033878643741132126040524410849707286460262783468696945033237805966786551977789693887490362357274861473812119885138954965968673274778060719397875392208457673435842573871494822245232842084526646043660528001613433417836265858835496043910208844618923724012488184540243725547572182075944964244145365428973135139451575999132967622556595082930298810391119989881862167718833635859331605067088499175549590054050627866310194792124591069416268832814569032615085519129101584890417736009720783257313110623332692798482029487759299878841619265755042387797994373494466574392368247320017700668087538892467617286367463102082575014178111870182020840027592592151346426947847632188136067203099716751372952963480349557161709358364956287288968257713725215294558769141046156513778738363123049665580045806978107276520521451674805274362183091978073083331808528730632648149320923570815881534434254550361257264006773973905024280625954026931952082844370704008144166885632217619342613065620513483494367708257569886278630672841436766926630403309514872901102780030635938122400438487612507445767022267445846463143202098097452056976417599979771117983902975546821803313548723432427780263358832792108017850283886754077494232662992440166738118063580151540627506244997771213524798699400725488086067139539559918857266560078611809144474292637132607281082807365533990729659969421931999276079144050070305590918284158109855143905960684471448265111647550250930823303775641870335143135995556280871394303301411577635070893464750431264057867307464402544252272850841362542968540974527499244470258260759036697155401444971688950192977604229430575022656004342401373903220540015883287585555722246686004190135458047870632041145616354226088179941230105645825567609044071858215843198509765455894848410099087984104032453432308269905990599206562279741720965852855704141619063729009925078551483821584798184311894953373657742631274147755771728185882478097074969389303721983851297223193738271349294611123599794257812481980983402041584058891746740245341561359209487348981522326897517861920066181633688262275556031360406195255229553874212332479110181260849961529067543821583711323226111541817490690791961034853153707194680365700026691326273180452657576053014752774277985672289641848342903336469096932825407805816917845646740499982354331115454745430320255622174227937737878252899253823483204556296741252145801649535791047742424675931127966005610653156938354470962117954304292768102856328992097875690081189056100322519092471902171982364721373846591401038344220678190045779230835893881654606462951872594926752592133645886613054379314801479495560617022744169972849733605243826093387742365019883177505071429166547437102396312688898689733866321690809705448483486162036820115440946339964354407130334625886774129476616525413960025705347283264095474768058093185786897848317323267007052596636078032848610545788617700613986240955391165839648203401597459854235380329231888293432737161005293073266570720417934128313691511900952006688363192209107831865967115809334189232398222269537435300760140696816066658049585005706316568472957775701006574218538407754830815320009780936716630479799812983969425665990396839008184973589004230960406381496456917738587899607342316305102831112243525399840527613959910917235530751025837307260253670673068058899077135348333549280831440721788829596211026149552715765142320415710889238231015093950247468521464457276150783834926389613914744845304861806210105528126213462871557178350794763509971361254259835120639964352083425497120780502649498924333108817176875139137893416676398455857005687793476175659050365688581205861010788796177713673827951923651603209251270852812613580003211356235723446340915515336167585739123252165594858593655140494131540800399850262855858517334082875602201115416455854643129852173878824732181348837490154831665157854729371879341703883590131475877877524004596628240082214649961002383593599113437430506118225912296788429307540535975617854800264168332131106356337152427174640435113366415970911240622081687022499225222098229357633266178838905385247667542065983732785042237372209027178982785473661851611332439354966327554375952006173034394708959490602111181835285091783698641503902040763533499521409054990527400269074543446524091920520574144346839356462615785868639650096036211143343995453972499866177114578849101251733416678113166907680457584831960776798780991907181698805598430429462233619525727997864917597657220750336955361347627984135115132516478189619169425400218680440333574920249702222186636973328909953429835221081397387916972452477849675032389727112951876211287276099045217360977440730334222274398658319922073327919313980820535017821523463666512188165668406963811799210707161299382212622307583520191663289189596747904465173558653377748365154339336251897270438302199932268762837098822390268211035671941309630850019449282325340608726620221820956104644247263122057541958073656701538804629290840393674749084032552171801591143302741974500323801068409265824304262094784671193090165680812084095074759481272420357022827873534029986764555555232835737773510171701603768722755578880243617833754803617832776693913841227875746844552760211671455176887518603982957357063044434199726993907828050548389093362667887353112016634352575438890004735034248156267488082606452122831447215495030467822168051208862806304219106514740865379006936983987747213237201689513320935129552569734973638637641576593275211433024775317428969885643771961651578928261708473855424855837506406379243392525070571302800997681345367567798484656274858128430784751462272386635070444387209784552366092502620715086138940920590750193582255502006709585244302081245235027223166661904007852022341522232760694543334745607046998430168145148399254403588375712862402092879297316990088808974887183113139008863729837591979861249693400858819666299678429195421759901628470199256563634663049044747734968802532002962755665966484846858526956373420457200492575034088426723800158701445534056298552646473838888214299120296941692066446253715210722732674301728091365082623809212431907431170945341530981754821484898583474315923199759310041930611892399222985297267006851331883600290121678836401429580579246753420485367520117778825667487075262401168037251681771261251929498979880581654337673413020551125668301460267867355323439859181833340378532241611501661628630617963251412244156560500594207944487336740981155844067430422102308421811965717399752309210815800900897787065175077323184229059973278700137048493822976891813464649410448147043485689469326976183734663683970040396914587398916854814822534652819346627012724058247609230411957676103853493402904038692624803146129090235605472572392948474434039501527394564361097300557537260773749012120845372646813751322982856436981443918300579731220032056607393035050801386389019751665790501492696373493370791907993208223555796059324408903884003269350427834663835023833251124800060381982283542953266592035995439716233231426840230665168394684223785997447420586416980121749720622198683094168852687414153895920771218084455322918933256974246850486248519815673947636220398400592431093606710063702000267696095817830334011485701400790922542877086892411263343721311257950028802607327166323715993374218580446185650730115288569226032420001046166714296835612661845270124854728577186360179322681605138458432151790996160263876207712488403719247041259250058890231694929926288901785996086440870606652867753313482102085462693085924264284949930020461096904380775373803035117680036394925775602449320428871182715008160382341584528092406554792941125354015520465989884932879122171454107498790711583630517784782481757821555614886971513488092982691885239212041843968731920933434440816519872448890934420400604703500257301608058359080011404132771988422068711467618706729839258924999440868886658900914870615241893339544348970889554075197386840560228081037542637761788046403488545303334680916589601752331831958476116266681334486748303615401696463054385082382763610151699163999772832110788871408671169019780457612341213645812499031712697402501326081321698202408895655475495871501903127056463724169337891378751165359122484317581064011380351473468488524767116631213683004210998440414221915507256259761137418232789767513724115987199158847869347835203586727723281574849514231012332663644379732252765757628268065604134942195166431549602572236727234055271262838235035509534623556674792533756511600233764962146392636282049225994316080076949903107241011843849269622687302109627196501202462868784601879628132880631290824616570713693003841923411474512471433771935973092018929818069301193431285813811954700674797200006212164180325760916865553551554311976119405158078094827418537270890896452894975156339918823745450451471881135997484843403359450351634044345767208208706228871962112859419423962456101486347863501471884834034581040367764671927154494812052608080904227556056040589685537682727811864596162862318256285852973698285386133355345496829926419889539102105738840988399478681771857512879517991790101476064338756236174891301791727291967174129093892737623483691745070143165626316748975036803595420431606809216797093008323224389061733678055660776984815087189084126692166257886665342656108825049338729502744295424207620072580638932376820912902145031138801336158073582696462159738288776877198497548727673575339835716507332967189191577222577599386757400233297047738616977454567881728521669358630600132794056616105047745763584291731344215018619285196178197471836403222982287721439207672661897514448407981856791280084285147376496674706723050369383264940683741551497995894343531527718216593354815767781185486289357109007690316449214501132798512959212463577827804272395893001106407102556782826949563400103392550363884114420910257941447595486794278000012583341339806015970211332052276637450133640476689135944502325022251775696362674574659893442938242357881363182840643562950254046858238891668683543519356142099418185727874751098460302968625917091977578116118260954329659674113862389981624028403337954127979389498077365425647394320856381270105276010567696902379516768408321805184464943344719749585617310693190741852816011913012394473912697541469392688976213120252128242775569688290965075241076871931033075307929917054958944568544007873578136016121133709087162163826735988484671384943901083471435171420963919496831180110446808995857513131163109688470997695092780026464364350325577577004963613715427357370743893816122575662949583792651147254998008740322759488664854517912226481046894629137666771029397803910392271226349809814923663059549063448213938831623221306422619665655897051496760779894419701647147790008878211932614737098896364524377884509037065690259159105586462938082294569595908105574516066000901796760897885384528487333691987655909460977326217793159214446782843714132808758727453097992521094442746036575255512732507846542614732924259109751348331986738673229773165539742897126653161576387112780053905622613331401205699551947704885056950469234294519001438865588112597682554488950211657167057065313928463097353721598991478638093362463889483333845373419217519574970197481090815642647745738823707918572166382865940259266482037223630760813404887006151416026867603727883735181320238113115879941601702301156438398713588683890313830439401203836819579164048792348523466344642603238314661639886315589848895719005170061877143187823089169457249576152480546231591977362496942248488481282968487696581854347408490291890775288232441876555775988555939322601159120205311680327726423973744138565130588924339295374693859098217898970646954758294549728415579316127690502882319666192696414745894576579449516786719197271385348345510656859509916021940332115196047620034977342380719823965165036605052679234472687243130464907326606004593489711684337790681838839893188576862445209045332421813089596205538195427155050109869624452959903514808797555602130253370408620157444631686718631300738502058346294374834486379749203790759243848942214112406932265128417191531533034726117848619293087640116638626930262222577817144136172575920761062616904651792709170592855170040220941595602685394278293936921725386152604720083223926060106787301052852538529679572916917420874551017841310040371006919515981737760730961630908299720805910518671492377641672724206404094319001151467473412922575514967209823835566955111733876353201906710599693904832021832087683227136235481070750192540967985599270174332870816611708771088928530712619786141423898646644754579018233121199385273550763901198722362261408383914007173743547693574034853550052654035822347874143015417375902736045605722918652834581748682122103790039631934628459067530235884902103221825070371778969421782846981264663971221779660592620515042169657047866128039071339930305920431119381195669296742030229328133757598329364095908496475596375657302888530382791010017365996861264253588852857892175487007303036485718043676774668633730132428274728059177592601029509003531576868254741745586994543703429405372516384439275501169789727761530163453557125463053282010778977091907193667839661437591255543476150199456165787394489804286386554304816585516914937333136786309264677559321802951419325847670508233741138802165471718001405252453183007678368264153858050764494673491069055933027716663579707081869118223873762791635332617388282460541027598917520999804042984639821534414277880073758383209259819961382578613248214358842680948890712658200898717080792990108025768777187075305549495355901505447050356809812779376633173179641147632116848684159117521032671676340156826449315445837278649155920838031187456105097809669815619182602112551261832033999976656420342601993926051867613489348931822795149080855788358529582391270095147236261012118038951696723390287412765015052733203116455780747075808217217267311067271623455664055152289034320629126761153877680663718221210061886399520320573507904319982822680636932969377441108185003865574619975543946876690884376762911832178989903597836049102239586660353721896540409872262748647744718093636014696313177656277577053183361702882904742948320769883618379756558897211780008953615491066372140752454219625430750467730611000118393929811297950156284605867789426280265402014459094126489723294986341415388091071758113797488446145729516284109160580227612083350944319672231282920290214109149763994263353663340293680030147759403394806718413703557449647540613242784045914642631090158998234869838967897195430801962970758133515269911436966683802560399177230325296749419956374353744917848646693834958857939602531178827659025750945313430465288142515782509410762897086050242024855317247197253785083620005151768984373982831076221094459355748501629086080255372286468789511023881478360105912401943005835359202049833508779672215889359059766067570812926712124949509791187909084844413367133840576069433522619286592794015117411426616428178788492511822362471123197207879141927515509467893723671293072738477466852095958559900595855792051844634264211866732747121144052270461947555703221881252653826431564677330029089928727646536840547411551854261973876058183549899144116307817171465096153954830398279093182217017613459433934813280683969747136238723931232375819117555883494301073242757579101112874709327015724654025703320260626940665095333826326607201620135352392279164191050044693689188991166237157295431630066963392099237179472624056912485389004877154830209453366095939582166778631416803217039711668540064327920710129178481802882727487659800994658904866301154785743453551619945527242773311031448511987607818079566819828412167903298370834010860820692600282940645168822638483695332787640629690171401730390811932290412878815444231844877345296242492623094905921506301309107529198247238746208607540153563072085823814770801972375465584460465939285071127111062444758697076955422122973131492986256448799099095206867179166159633922569455829128335882388383509904737025027806628316885464795398984089542186668978960735688939297145486093230236352369111343137596035251911650712251906013714264719071569548059711543888293227778511271972779897636076743590717678379075237726717198241760011451423295083074884359497910295645190082284021679279777066515826429242035636725881389272590566406088554369428667703975274431734313025632101458268730598326769757853478486264587815959844335620049607608318413857673168103513644635222452213111574937447798759983122698028574521714332990069174540288436012783646666011753309460749359078785660332386342185542240528777773637906419507609335509927251580719132432572048005026567323113194092508692192993254377716730885223535322475141739766392648714590529061490213831267701985837559360839672845593429519353237748146525024203673744935566747763858563212714685105643918787832413970590055951795264585136387518691336649265301816542259374169501267768843178616684094640745871523399431671899238944079521656265537548140806170545890928128919605986098190734560780431062297759781472504028182882187048772063647586758579230251592606226527927591937739894097302561803463166622472232606768481907887160806297776832184857484660610527854597365705382975273957160949562433875965530593475229322662175880375544417883804249570264386151685949933938649947361303279431281491180823983377635460339753010481971524580345775544151762204146749128147998345139283918837159044615043527670937023136514171128097966987185309032985484510488024835069369166318572024807658523943998802037307668664271402364017044179584227580717583779730406673828402066795893223798738554438716690667019346328781283032842724487651715294420163623801683365899381615288758608458302436816334828304579186338134686307988068697609051446781850327820929158605338318120689765000597728241169450697687984089404273241288178744651030518031175499446412365030541627556149157956394487056585685827798141431137675803775852882405975071040332317528948446702461751548244197912222231431723369438039245058062720534641311241718571449522060085383879060062953606439028917444401841802382921071581484334834551858082845524917681458183140648697243821114078622060170617217294080570850970479711757347416887211322578702916897127250807469513206278295127258454696468279149797270973839251645188428230743033881566645302448008062917019323796055385522999034066384270355867952353152005510627823071336279403385384088179722645654698499121219574934774469863868744092695069219503018170543105137717895804966558176319112241190750308382557719361824424258252934550755782301914929751922030439317245283939003432696586218265846073641078983922608868074271461328663134735999655792426076923317571071177311291209359793507273513532938010039014277968336332207660788880012892336934577449796457243710246392141587949176352899198574057376750049166761879552015433639977547050715753727072861007780469820058780275371806224581970447898558347534900710362987742455654878136389128374297198512977120201978259273157435487553901412908286904870321840517767050805892222126366044894499750463663823388453122648101190592918427082020717179074995383549092921900795725645001207640835586629225167712480750861931214644553844372556236250855404159871879396101011071367272425441772860392427157658695544169177223246740835871423047446545322682795743732795903629854273675389052103310406460041382463939688688147510040788424255437330394604079320940565677906414470051710993247358191412980536652586267138961717558897803177849049841288816374909546415278458646828979745579021647029648257475147823385234312866034709278343921502939591524527931606057928029059648221344080841065476384621612177701478361524952186597555753989111548892075895153062729369176209672256320225976107355414801008356623448790152344200463752672642701109262766639266022016451229854585874315338207589669807348906150477579593656302585160012865284572498731246929998504302915946513941481304426138359423921542086189907750352467395627010025245491479446525749485013792223537780960435730315349164942984404660781855332809802411563637043220949367357898379514430150506942494686741117027502502046417442439706392268251281285053522917321073102413360588419022904444500581195051214605505198274538659428913963246621864379229657029100148335813456189883677030818727851557137729145371431370827841803241855073796474563691638284990716509229244072981632433826837803043650168413968202726156936629422204867454362342047523273365880155428354653709950081094233296626158402285053544907116615205829955600804538187023300244016241916788103334201247794411977140004571612867832774051876052127040070004066982992254823765787139588333537247760622790186430654182950871146519102000915880887164632427029111265056922256057143619369508222843872066205448052204093734509594586507501573906784637442419061069559394094915691607065114681753935443351472814201581751716634317949493670630635528497610801905110199812894692515053956027484325219000674361868415067727877061661377269933750314385055276552634091827656180248556874744232177685317196181143737294729081572962036152926202095813213882708168616514732883413437162885944779613230891367978462282533465505476100725990781223743384172635560648476933715767129268168828121367333098595974832385373738602031489361383718131426614851999063526746446581664542267008480500436745528455876547498749241371628850916913522373564501109248689545067167589094550435452875147966175246093427877369263923429837177532283302207633193100697955701682479163545133065287630618737402783504671003997742962472257917811910690753061893259060577870578361494029094128805177623027105188968869349974862435096203326440693418431460470789019451309933164808573418277069610215127041437848492474313884631808479257511838804015917497017390564168618280110454213609930844402535023079569202385779963439573875966806730545330255120513284913178114704171753739986039066991127690822311146097804459571536024630061222653844159536094845597085484607848235269049073960806038785771568632658332032656971094316720786835569108626787869898450724675858479117983846244036824694527381550406937664376636927477866381000269865811979542192762659013422820469003818145909263180749870976654575493875536483693708685827339024614193146353149814799728310916318570677927702047128712062387611759107033504822977590430165704631513904091574692153191192623761439254279227548391126168059380923484927550024641395810995841546438830454243713338556727021958055377623895534172497319833799291635544694415647585027664776766799987982575359838002897585403165975891519598315403827516537171678465556230803052219217727499776369532869035457767014902674616561102543039795648000370151040044807218258216565648919921731388376747571452424121924836510861261335699490657851552484399486618601079302873407021224299003826641719944547445600160920402890939434432819579219763331986998126216631161755541770348542841391581109867257871777817964484215428465286636833067444105674517682832689779921068356643255810160018396218166930400730207940534545113783184048911279956675982593745018066998457565816130445372495378162125548224928215287417587268561430261785386323921916944095360366022180627301438433359635594935871839519118573568543305113628995492176679638276329721762497304437999239044847621264991282524314935691396468369647722711244015639410128523077322820132767495100372099120800942673027159478118704639496220131546183450153688303459114016781136687342507372173120258900867044070470561851701509133102377761761523183299889524037255898082474115008983138186508410394772539112827185451370809451584493442608778916095584770474372553584035803315473029375999397686976617143557586954543721161026391753316572048341933750952376201012018437254986962342089701961726293151573402935482597036558737955180453530233101176356383597233171031090208269718442867844940184598249717974895495769354568083392252957008445281896463313703527949351525513467851703092565022954421721432224376724831842997137902051042682551807921359336317433555874170265567324243204523651392814829023704881655772953871859531643218048160549476250758024412571346730531330586734223787297109593676219813988589140147684670553671404390561538545101930148283063153223193961618277583469181609993883041031432188252547008843070089931219072545404541709032466499615714165441553544454162413803098179585150508165664518971243683826099676815223374359061124007687107999400818396792457907576359685359458851236116053412546666916761605916993047567655960318700481714758802635182190873373232148060274559317415477572265896165690889157240094317184039668060564615387553168397079127054438427383251385662259443073268935004816991694661222350490055783759790948409304926875038143913766207113365612829817689754379248184753213679893565486530489659794851835934676251198575571174661258563676034636087804399104157674260512824527748401780837285564809371194668390482344798012651156631179519798351401300368605650155622050613642437234671834486329106511259386024093320154761494857664445743544812358483429239936031644775965601922995679024357198676064149667209676336493932008570491605702422387985067163155673684027891710098512223312844852016968348063441800008077340233099344807324370572238073990762099757605731203085849605410228187802906249566741367491612582978425563403309313973066030280731078545297769864630260089179447679968752351330533169181559322362037317936154461466350179561714759928195041128494226606044662431390180804630416500711608577160164829213453224163011012060787800903037503913554867777945627479382920508184120740192750263661181336098337558841629205940270395696855177902628846860098569571727475543975515156768966277496925357814915819670574311849890023137533936999004208930903625256259644188562279412234612923438439844339496897519854714060143746303836233612899014403387439149989227361032209527310881837929091725049307937787695288183237807960220556102427366118994762110629670803871580269373307200852994364502489734474958793563696824896110929256019244739716970839813788966057375505520607929162261229686769981499930901305227943819542381635809008229057298032435962218672402300515960140516370203982478205873790230399912311871385077079232452765544881007022304512678017911108736622102315068606351029237128267202257826774668485245846112532985727018976535130398184657120026768584541446586036624034373030027751435375365044977250391908214146869262730454853244141699119004511710866604285683743753273936540953060114877013363914569890563969446523388605056740702815457180177960758283195691805114128748371040223774462611124692208301559638683216624569126453925346374782471494685099536548154096599654089802382256257721258123135224925641123763556024154065114648267936497291216632580000567819291796181698086599847893152637377944432176651461616871347727481396565991244277452178689898424101248369562681424830876110161611595642822258194219889286411688567534514063683984857912925612731058537570172765730767752467444741892540522322268806518894837425206224344904153669579172406304017665172733773424089353695178230767813219893502098653380060744120512243130779121932906777709842270193515347052266558998512972840612539009063294651073860263332268994613075293046457073578854928856959242112557363632991424649319820647035366683428640507461414984861306818727998174994853636986418773648676220925207026061367612409338582188937363323539851778080622261490980703520821609888205333659277490118847713237095047064733677018290406634518133931951103738659444816296826607356008893667421370455716508210569911416500743960635115071293904511630261649815708955172861972581770227767640969959726829390077432239752333487693414451715798584616762611287746235333537768748838126782015970429338769113727666588682618245511860231667227332773495297403350503077181248911512005573038453645333321015168579748231930434251462869904271277987357299136923081422796635263616004595234538529936291948983658332816747934385721621367250700249645456467715405645638581570221370108596243237212261753635975624447323388999703568270160921120927769959275722641573026751826763955521478519236864233066831618523509605786817977060742688993611071315367221418972377294530998142573513644127094122244737306000207936608973160126216244484699227146038647903938267480577407449438486598978407442094815216665635445548956532152614795284725296390895191464808712230668784768803630291136022765125659134211435332247742247384159163665322439830919953021539083315309323763717786500338550731703284053927073427053493626918919275790926050342293554978904315270984972184487568306138816643291760368530286051595519241298495485667506797265975065116344451622183690505244230913079107205053047787724654246465761716181864547439463724834519780367483985773736960340422544247306849004136197021771733745984626117000252944490960062846660836575464959743909122631422981898404106520944671863802708306130231512109710171154744361097488317346172145238593066009028230006337205859423406037862947239553984138563220458893136374354059554833911263666002541538572033673189512888149982773800457412435214476299780072796379570538614752774916909164620622335865573233549332156582040131751919751921686081685265838421717499928571308984559514676555537006437557685612232330609786996390496129811966138252934325825351065931272806954206399345200978142341576961317614753762076514412926614212801785345604688330796214948652983500601682129523278296723095324299100706780799304074851307297272858513868084130076361405383649181345117982748884738660525288031969539886579109767636047351953605362159285325300044904161463017318773886282012528793116343881018164745489573922317031962075907779770619517940997458852109135116029298818103932531157801420548312862535858351930277636769534863277795823654063384457351960594516447824123215682562283101943956995751753057796511222384883576161078863806324520096804567432374963950872493005661503439614784464683552386883041825714515006143092038617870174483247332354102546542782316544323446170733527741527503107057924299391469718980757608261560063478237166750383431080299315888373304536681671179859886576923775177436073412835314221769868363002632139320594612531859879451942110395269843216917960132506378190189563347121200919300090676785820197400465810795877525925873703297075960308133224676969002183216097989850785689156177471699169214405131248835501447800590635673026096207213191073921226610246792076088200773436161297947336854903246844314581124901868573497432188363393104707823711660500107994694178570409762987959895085862089349403229276665415762197926949662685504208231742211511654805249569790264318264076201086417544779404793015192767672531936385865886213158487979226642241816442142665057248641313945100421779546103052767983558891965787352574086582359707370904979610976484303397514989891680048717063701946745600174013058405263873562560205795085406863512829885724857847583932108692501631149894766990549480383164818836322720048979461682384075842205291280489892244843173570932153892517209500778478717572831813537989782060024727915833858835875902937897976531606643632984810295006786741464303497778273866722489171802973515049128529006523012645392468753100553072032497115144228967402023355735672914448032246257158086753547642638634275218956377393815975235179923604823262181175686115494095758423950282313625649664257376134436142018572050951141032049483050278694614388294031858471589293297101361239975495306932192108228808151615084748068806214972968383387527254047866054742195399667327971704696023133600779761693818900360116876576641303426147234493557739783318377717091162411601815094941648553664164798886425837330591120394394809321872861233953262269452549713508159016806662739345764287307647506737561712311151766356933823584926216084211953638422906863081763986055106059844248068663990868309448342197889588153001245003401949256476433313491510322398219244528539204900598877815699932947189881949394991458684504006904635450048408563253806017550752770386620733499581143436938920034550668019294848813404052665783132046715010546815402120443953808323699013242960489638321562336912800587097993691727201822429603240766718556765428625724537961175010050269337572849031814473582557582133887898272231136569783124246809514248903669913805155478799969455083785642908484160689858275046451842204666826629697586680792853755481512951922762998024510771002789948342465633480246075218345765770270570902027257475062799951890945121040120148476565812583601172444601945093499462908559356056645981005093051448912787623663365227511849335134466474262056370031406394282266588090043672983704816806342819555656769199693731617104717396543578097994293229937845772700616477782648480739613998725336974052032850830403308337681925791055777422374854008746843519252378685491198169219642702650314755636871255841621584660648076632400404902120967534178676056342889066591712630798828101404261640006350561011425648815002550473934185467809696615369561414201155112128317981577873586105932745043083394684307367240319006497036625405855997110260376405817671887069242852123337210881629537765374055893513745407284358783994013731070246530003616666659094254328176548328305836031136887729281995936073609434767503001436661349555462980028920553570309144561753461182953423806119447039504611611285448778381552627225953048139500991013999015168153348251926196261980357463476347709309218329720941683351610249806064160748146508672514209711472240175194246867962757590971412491597758964076858563178932827772535931628511155765749690096745121234344446499255428495434871345294250875385579811641431922926709526299874992456001259346130800143413814765516441710908589008203665529060982435824277206087501024621390068422352419291065974973101786390488595749246400491902769212201512179362336606158694748176080208877292342976232918281529524871654162800788632144471242297487486881987787362474988070408731178804266807680511345293853086824370825132556118784157594876552576609770415537811359532956917433796310919889386361476050455384594229071093605770819255102849043725983945739687682010769762880329515714424955060184599576829607020125594242928543255183936280049847197408526896753057771180655251928807939930921801234062260119339648718812838121881618306590185515566805071241775552391735853621154079469274501653377294161422082250895856255673699417333942361913866626128145060876040568667515797300458273783341644239962136656427799837072557822400170117893452828335831249054592012561636170879210940734403147660949095179103271282574389191678542000836724216252501122772052258001057970359811716374300210912851691053492779935904078154233477553371940002994834442006650219145157618004450356533345433150121211940190350325676765627968653308022578834619949584385642570843317734851189026248583244849142641993908451566229865482695881661976182863894232691320461399729985390294401453422100012816229505714666742659636073682195662661547391094158219587461052617345091823840453108523743716561380009243669897508174517580327247487057951353979131954636549948975209727235495820839101058487491886689707405190449656827621130460160747393956422773100112637937354391423822164700317558813101845546201001744999687883681700441142261443217587596754677802169896052673102283012512372408888486406119664604758038615106272722965393911386956783706126102420834474173353158935170252757045763901372522190528584393845622935759834226773179198702602856138307723757326393687466711117694490212565607683419492580494125759949121525912966807605881001294049638065966635395380696420982318127032638821867960513517218948409283332988907740688484187727386214511720383677797236165935704752682783995684838059041618003987094965237005360361865355376595544477393788236420652629605541508970500727302261967335652389518740031826462907683228507701178058189402409765087307247429552565228418722037582947032501147704996402702874744514925708971980576628900111448896448604000494604351545809944830542571124428081738594425210574117446302036461534932410454372017403955788401275356029297714874164162343729901134248678553356920990600524675113303566459530954001585023421357926743794255958627980787542319374490439693454016305612963877661074873146296553917758526298349499080841430732825336642705592487057962941344709278138578466630330372013624231949030533436203792705944391803572733948024285392288778013753144100964055174642967674775672642311856159634662112353021155531607762447030398244980870252850938516873352377334186223341227252460496406226610228240090041422475193303138668564923781998838641576049330508276981287883785120541687140112869140203217755906318648173947138701673919649941000727829669655855550292870232987164267129889574308052861606048102720471413558444565532935336963209355547223473207154023231564431502825166851007674652682296166294211974704720700568267401649486809907775895707750144969901535070801338910883564426816780772489306543890842619418117992055911875767989282779975597004665332712623428762571449526689115262425697727572838441989753273745795276443919356859363407414055772526033866943452547255874880997939355093020154447497177780981489331445264181991208948744811202303545227224800805519116343588669920458229551135705641788222446411757781787281937746843390829511799831383202433489250206455375556543924994893477101651781809961014487794700041378240640419300523541924590792593476364699989287741718041960407520394210675339852231704094858169638113097575678530623162854111445600590362390383068696806163514535003590363616181248858289730877562887067797704821084857047055484082074396053917828440219888315799679518791288404176017486730572324875461666550321351603583089038867563681283795939699916484305429318509199741960555866096530726434324786652042765238830544760755598878311262230293584761824198904415887807853435530915771455156118072507507508975878965087784793314580108409589721550274277289857360805674668140377450673921664699339715676556275442115074620633343687522731085083067008258491402704187163758172128164388440086217475096635241339788293489252687570725463311593219218822150208790695293657607262988660934662402604192327933793753741965693201821955577642363546028287028329313330730701481991001210800233263391273737337888416711169709660272734960015297883903819959420008240497280856442369735865307316454308842139503562905114638040457159357999030315655279651181537307541837398596556441905932548486693161306375000009973289565321884563626973822860201786092758489086861406726389170744016309050911841917765372038708112553489207226439668620343216013033060183213470967669227861029577457964189526051490236989601774598173320761984494614581674775983019958528173776538095026017457646990810759922939531085587720273891854076435369751763974684512859586368856499425945798555527448127240479843855742653959856481086463638720326482416014635652525636100974150646742318004185219692754475016567436398893697399346115922806465225058137600163986838872384656803681370182174135390416205804028578603413196892692660151962084872615036082286524829232860402396575075009868045667654381025300739528577030893222686301992384637791438380442078340305929515779886269038828200449937543966049585933973641328574657683666609305453669666189265075586913315064353255722893836560246096837558917383717039162577634368961871632032281201042739037457075020158693417037698807391885089486180861300421491018556843396698482451420785059992158947638192919713091229345202069310341294162321040793994241572452488161729456479904254769031819911662032487712844398777812273292907451127356301102642528043216952153897771154141643093169510142709216332839876365758633055906899810101071692455746716672229288152227038836142180620212289850890257419426006189496111677632647970277305057157411363151664300725244840781802476918143007554976283296152281935414866923614698231191656553692346534869303343951810243019262582256147076588333170613662286557844601183114924033668692017773062502453630379437421485410206759829032712144297156568543182268721800786735724497863569750145936373232496487388118889780725953184268935801974376738825717352042387944222889033662815247218353153054664269264965657912167144279363382614423252708868729950921774191231345861094152418990539988492683809666290490628523127447566342167090428609907390723842461217325760638531620566770197280009667811709409765080402358676745823805545257456674811028576563415647903217993297881235538738024418868014795569312453941183104530190745425025183817458963154321047173117380283501227021685294849723552987959161648709947653530548140874496326186313796586344689734906153999171181265630306245464757875625156726904659539629397453838956289340615246931998405170032872323554984270658907285533516043176389819054858664495350848066883981013405589601831242909219474359331890233143858320496426553552008577133192287952513274975027513503142718136610411253872213160765322755186304906090173819033186817002015329828813787994468010344583104840954519783451651635770392328982404889050633467611811192704116300978587431372860261207581354472342717509942754941670114338548826474862432025078730315645269062765254653162577437942505438770363657805738040942712764827132790942024070174064724064383811816292380808492892101797432141196316086291367101477613039747264026381319954383849756089718655649465794916543892680115477381226914645052102334758153651929615438186590759750896275190941376983950138515881505635043197145148828547549176220139316595319360884495770042504441755416559758952492236780809910749235990046572908342456194584036530766847044417977961712920629873010070719268940953125182991924829919117457744601809233920545499465542856941015430639942225743070708079875057739095155748082482832261182813749927078002093522804516550336319083366360178134153735617121651940138609058605801241052797825914518340557346165373427305707953947351310549504357749348823912249253099733691644681623076407282450237785310649102564652215196417173536768386832136450944523901267912797990814222809315944714644142656706789724103202423657233579717305634633214414054764718372258233617649864495982475439778667171700744710355733212464669706702656108563141314996022968569228841211776365052565700921266171126577824106905144766050095090926812991136870636551525887375579923641012091170184695331699015700918591495677103575884492049209799019780004652216533592367212614675206133487237169226316826728731546123529859284510044269009509517950472075327863739448223404736472649761182824586387623162428910302397257315828490499163561745157530458360131487628875767937071351266335033241392510869862443106369369372703097599353510841428028250486782300488007642056421743451873563565798817675359491267517022788875269469148710898138555306737883181164077934855387579080639725706213037229531126239271408515052427237008251992114757173008143206683736220724699130850205647260000921652837826603338406884981132035557796295560122976158370992619320693934849935108468079966876764821229661840845130574940114113125783594375418269977749298251251294421170775918363111275581038424141036113630626311118352044675742204670961530281245451667780261632651225058966574480068664119930573172337812114373965583068877507857656236794674857310045287204168883565424653740815779300305436867037208540015277137739622595203555335634938529622256547171263205168245205530937843785360649141171971476832202369704053603797594862446042711484398413786849705811317595273641884956518206164025105849413020728814441289205507966375827045569825956529232069700948887211767056182401903973263813712850553709372622399149702485076570993451533730577147582235375613557829294262889375513424928384273627704675455475745903040709317797715534205102197483738347116451040754974417029066896471093297633348781682286763194282323160629388154358792546556915408598103801490064644639610764733951771353257466104580965375851918700524563023252579432219304837447679615002995226703426129861061120973970137185265981399168295743014530228707599357026438631728998638431834893039620957483959198935227778254334320906944742230559882329701871171997600846247117328778665010469652371217366229596245929712568150292749041413887416438977037402563604181459088362354868619059225221737884343899925298379830605722908593637012993413306872656698065043292272689923834992276719530209410006602431905486774195625616103179214396226360105531200303191551921885051047367250487866777160178817510583717799749756882245606874983436804247310034189478314898910069581160214380149316333933316093467063717551289248344313884797116496957337935991281560992169130488649259289409943356478035088725285060017222508160415686857542282932031574154638179143210272467764491584731749759136215287424657153233814430487449447595309209838948202084359742722388042214775570843528073851306424461210122841682257878822534963119169408152515158690927221613229855859201488797238070694504067377336216231633760353663178217418210694691789859215192428942906155506609635917030090647513949394265293406947995730487143190808036201658755760877442250291868047549917512354764235120327100663569436202234516276522926600211222708384431070167499416246544074268435774678769068358692084800950293593874462347956102549500291788413604416691503803604916830473034831259371598793057373108598556371951806792537170815258617342428248513480070188996894134850502299619974584913408322545048215356425438754962643812879368944258879730000851135080709417714120169669135167728371013444989332241590157150198005415350756941920465619258681514155996089882957169056638768074002997634400261666788194817376116744647871079711923034672853217891516869816044049187596875692120568366581365971468379048500516713280254417805915772570629645470955975885608538349964612090980306408247598402208395230656961775804534174101834315929788934826689958486805006800007723138268364312948258768242363474199958825648361861686053915425066600342117322776067741113524023069778959717447667860304336783145509836120663724682096012656010387619739174679364984274789998785148356998588414087240903560224209798699039737073177578322239766634191270158782388626649211482098061457090391814779195330013891652104088020346594091538905568346114779618062050947994248179897949601324468106087543905298495201242086933717176105958258355585235256684742101349525836206044290352399194712218174235747850336522791311660829809224078139723053862092851482692811467121708222362453035318044145325250916868655273908468994713052827451649859221772666595753535778480264028148740276350068986637055200857788129414826691501146968861624463417719021265708166388608465220835072972382989894230030951256054143696978956741263087439715497462998588542433550123306380014636998672829364100835294460413259402514214091638861727395685614809803442798914664741642811792324895813363488521160308087136893867321412803019843218516221854869949804251130270249461220990171879286557068540312934841076100547283495534863892255928626977697192011961003412775493422967262018722072586579960776593600552932885618987104344925292149721377262200230738026162414225264888877939500934392782803807545308630119110135294523348894333079177226950056674917187176173194095355828757018126446865722968797026364055113899352752485618158144362634185279131290018399912096235204730465078813177846307762979165653959140750664461400862856062395979254074164815871888433056802700474197863446153320486881975314725513155243483826930373977269913161694329186541808042656570294974888607288841501977114083374781322685998231890444642412605009003825327150814640762830921788537013642106850323807024607947863710818900061233203489382342485979053569496593577069699810053818125435178778117689868700009832005748507507592659176731619279590183228109039013722087164802364302661818399536944368839410549309352252983077720011452715355728886998309923827101442147480420029906417628683069842558277052882027503374642726705019195688052927681145945559486181484705747099242554408404893244580983137484078495052080159798984053848764127692531530392946966594349635165915243387106100940350540419630178198071959004239735678435469049625743136888968191728406382470756560206252220408785927072633315238865909957499885241202503200218027786650348778139924407474574280158481835680128038547160801788116435910316691583808896718982680429546330001319126551749031904783313249604855204911726981736989818885339655686159680536859890324075821551821491498470312952187204640084677662833549282638797760011733480325730852932644486030041518318150184110759409851600009667075150965175585736237440836745085323358851782994290420340058001323701420706591281773898592348513474247416056274217852640360172630853119898367986457617450699273600095047121827134130200949968995971561219768578732463866478198712646916005224633347093143453083729073452345409221328611406181685234882570246649990591812158767820056042659088524576544323467677401027049171776579890476592279462855325344202906529914833424937061327283012070737631424921291068891241952251927614981368446594001256926084267899730050930745320963405813942366833182689596270299968736135858672399412059297400803769629870250371421750524823451903125921936434496724785986985632278795247023787026173089142484066443295890900773748269969730998683788486166601404000454942490093826286674549535252125746101136411756501379422240529450510611329789028832781877817949984827308298565600636611819520820381829974645375355579680073681957526185845382185320853468409892347412432038727772573541414724127555984772454315514478268855412239881262522859432587611920595394074546518560508625388351527747327355205797282949963329263740737135351564252526679840468750254373976403404768017011948312816114385988093413003411418527714523968773871324756619638561703826811580243168777025483450109768671305431612532589824310552353557001854114026832437524500227014147504547980535251786765226839705896471209404514701429542425752052497564067906542340748153713802164726021199370710682251887624359633463489934937487393452851176821970831718382451842037098344961600702630666799642989170341643700408895415627247244185583656449400034127008828879645063615849028832724526507090320111064579751231566972795764718610896457590858475140938207123255588908980523115269840142481345172522949480136052184488073764221622507682263394034361868593387856369048401001033351175685206054489752058585885101268343801369715663448048058487274965670120038690217817897748079650727918286823962896363115202184475321968153808158710676297555314034843921220150335688921658716511204096611491275967292203449992783977550945407138988024700805158751006701238488936904557090817730633371743817649207961054011826530646873890553123155507792070992229543125954643560724054396331346898376080422475424545918816068937027911228511814997388780974075959673167637157853020280960814218874412573241931452554615888714302233636674272204326288228344598638861236621075816718153407251262655642668362081966544807128640432358626783282281759624423416833110285084762186054416812847902233264101582129926201410757958013862422177962383126704023768881052421951902446658678322517166285605524718843612751216029004177204408194225279967326257747899395636138437246367607425750126342963746622785191170920432037987725600001024983787418766143389025063773625828033334189355010203900319013769823467577133310955483497922029958686429258272934385007087494745008107919370320811712110896654604604052612637371806856281664016541722672735199470714857102037659996675723015674282699856011860603814382613271687001732487878056315250125205311391323805048465593532554352676788248331273799380371263344119038266070626295934994273377216230433545603058529171735505259458670787954776928118896256336481503812738365705819059641808071920614163623919155291517170157228959855499700841106598015809417910649260449898131125969234909297539834047080158524354903000533495494978896900440340983250080038529337717344863122509895335012076658925894037854405825081941490271340269868804175312258621518965020990963117202165155917748563399937433015654617608266318527527342763719133199354266424121986758292369509556384901054777363276641147927290831969732407233226729793093884759578261860618226928038116839215134019224509417453589607363157172065587746131522835219005142467454957392947236434078105997659993732351835303898914019331799908136151384095280225324047962879943846534637114971211376110104776591222937915677655364602649128355223750660599956033268908413134498465895189562759285349751825881759292958161065581201719108414241006728125698576049554252643099974165274905290102021686709537135963117104649795407970277535019905868617261351665379351339382391942547789717302540336521031514009887866971484460267954169113951819798376485505091650451293488630852937816092273422396901500667917099329932783201540734020091868222419907279193690922622476868950891025770696965321828154564666346761154977115967454464645265031462952263159816461745570297931278960437967425450998497854072844241666755177610812045990738948295337615110399970462706614391107111204188740385808106762291210971493306262817895903119516408299617347628351921650749602235501467899476073893723364511452537277590524263206318084984425057422255687044153520620369771976108051528228559466029489415518977374355788654715716552459935970185380511865735229558248535924712183102421868171928314961166873232254448435436156342239027026203688316850612751813527515698272968568020109417218924784549537187128820226242798810113255582267737275314960708783294758405678581119120975013368879895468761638032598129223143339951140631864008419166878184552099746504990481794803755820459115405551173269277541128922799535431516058783487475680773415865823956156016523208459654844034355796113872579297720342153833144084071998992651032039845648382098481691499767419834949494280074342223215566383676307368440445465633838272525183616607654388328940807277117157770712329114684963354397398020727574415247619413902476626701996909483128367324238920507326664663401421705476780495988148920296469732262393332631070710875485179026307328776969687506825897232246257488548426678414502968245573289763810874854656189125846567129904108313277886598536841496947630795581567724954392457775201623787903199028877475043587269194292800965724249045691304541202840540915116965083449179514638556050028831785901158098099599796087397759181935465928399423490936456575347223137407925244347794853115619983522612555003924385718105599988435850456859720371360453155474908290065835114970741751718638904868636633884716893530141393008608774736215949615081707698101723010497994719401862156683838986480184443344416873523699424842754264716177058763060756489873217411270653296345572259338262955295766001967319651183634683670324252412812470669990174908071362715248879066312328309544072323177726721056985454319076436714576811668413746270672268646580338428309348293418704853980945084618613654892464995201142965361314978452265732177290583777161179132097116111964704423520848605029882366377611415762338928524480321475114188716116907033707690004402727181152088357111575180212364775310819942303195468709283187112293203985285607851584370839476473568982741748837436645200823724905036146809422549142843809973252685511105023428538962822110341178547502192896374453316194297057137393509548495019931169903393192567248214189281301425900234658062885565735898155561472355819624406245702681323117105429291695170992387695028823198133614742975895870230821269496719932552155584874360173546400206542873302772404752804788725762700720612701752206681597941180985658335963586017617394173783395447789340331202731970894373810995542185362130448506228674012185957445366912307174164534182902335688979788084967617549403909978698893676088736356335902733617766332331582558361799778718316456002320680587272754402739806646188510349137683064528770507802257385414485164268988367814958432121657506405483752104137129453382391314525217772680930031658990568175202715135377115024189947444245811064371732490348587096908854886282505652625100417482793324803452246655336829851020969326084077637112066503525013781450535127684320815707783813961014289701030359962635219654408311062228998513173781681988664294205283729368940318185951333779737750739345603830703590475425580660077479151575365266029902649744689965521220692417668012332727724065449195466113119873393883352661963829551237897111838419349981618274145909611077657652074887295853306176939605003780397238775861862309561117614745690712768237204910166635143355913407260138344066472013444659588221001471084507162829459564396755376634691822363674595664015655730233421218097791747362302092589900255053452209574830856000981049836476499434971020111182219897934046710522961800912037444469832884260226472461684729739244488845899486951701521235960619271648305827841732012696623221533103273802635001490467824447040513081789187279090596882604673675310949384804978730037528255863382289822775015784797413807346425910164765881424881583999066987662806438638151808822557126509931285627814481163608240384306190968804129385441334978569077790158375209120645855486395191815353884738882091114170869955251429619322220742371288147104546795330104333174707611182641246778235358087577352862671976675451819248438024865896489412032080348585585609173592877140784522014114471194909399820896378523731423789825145737677118078098162779461278919885832447294374777515354932832653242563885406347392937416659068302759122584826153702923839928343303029406825016293613755932012766475687113160612857224403032350839267367627268197842081326492531471401893171991339473673894465282732000009386113136389612749095890613238496706158192888466518797072109606743656590148655503561820862101902072956431934459401227730702106039792645444596655831770861269577984475452250399145238799833220227189589061052708651315372903939814947126217161208012229856479437624618620373848779959544532533464827555843312644240561927531052833130323410994342642358419030710125139035912446066169704497693022450271984443259234562882065500447480733473498314119554920845552845008942779103389895915316688070548784323346551064681364059054237666703045482556493764128665411078465808506324836095036123328787864722353621671085469184444947343701088913655210067803255314901093736733134154123598005724976647494251585280610302552386670508155992344230088771747741790397209543979591785253721409540473206480923654120348411034147401720073061410191440208412538883997092722002515155444003325055611754796517929599336629645915093111528324124061583942343534649738569120317239688040469132821021127881515199882270786491026763673291363806161326263619641928256902186195651354388335822027765884932948878974187667245198981793631564231081282136969155637109371917954466655348684088919796302817771322745190208434669164055409429820475402662330656504709182577950999436101258323146078904440924135995504969213205360386724129567736454629507052971957098703158073567589127359374954934592716687526045383261136729770270397914590989283827331878602911323289465735904200321574118027713830723152232379721936641364940973595795457770908281957576142922142540875326154338292918879645000052484606684958146934427996836172305754956513137010828548281518545578417633695697442719752295434751524438410639232444191984371286637092854855001217004057366678452197482556514317896335302370473253714131727191172025504531054763411472029579272315550051840599491365099235135300810896999685491382280380036418844543596161914437625326720396421671769622154471342177778296634019205649722341161075211599988428022729329675134091553934117937480725797010908441053100151805349565786997918675636945526759774020306056967095618308297484229185055470213255492252918751249963859882779672280160057212519047595414072741752486453422092746960859351174458615574017208278856429038448628210990386035868334575045919354121739977984866161473402361381580943560582471625928608386965331182781634561129683097966214519794490874565779425451165152797841626868421796201098773578347198049051242580283121389407794411584593582548680423063012186533080710510764957870514267429261068198871951509003477798609167923017643997197088404645231790329250691378668435491962057151625920786474790750160636062963733932890135913316611780352047996182553289744445503042084883775293139625614092809620025790697138410102989329628909049518680904795304744648905905803771404256974367117734076323320231987659905143463578417337118080147447039382084075492913415941586918555908741901529824584906332519329379287374298964775613021973964102036362389725258201828679865558071991143141175976210578175250697465116070875776194365242763278132480709757182735645366222784012702526934789990601279446124599930397058677701750722824699434993870612941027739521634527464270651260985070548119185711940687796805878329468873532491950127856786220505551118745482847697224427222391136939114591292724626256017512900354343890253142787554545569537239642902395776335566954976622960781069576469597107539342129484028000235274440857524871560302260310187258474609858387566952837675928017838104398439299526498267369173268496142619993922892269660073302385878773789026503771182039417934039581242479773074323054905256478294049769857235301305846897134205799291176712102000476988935159553095224277212836071848957346831148841390644459101165119194114991362139026980018280892459096983515512614059265730549720731717018488538354470019363882642023051513916116767891832287539999349760494260523658935935111497771877818355446105440156066043551214829094395046320315854170622568441874782327040471482256084519235385547694678931741781333945491261373610830455466509623643980986351759173265207476715394703791998320035601178082001242015899687115955054983011702369372741244686987266225893843977481846302526318090162952120216560156807129622940275356769141662807097677440582532761864514554008904786271608959846217535967175881615327203422423062266070150087209628310793789702405881111300787785386287488789384105344155932914202816637636929810646247175042812998175267340494305269569321285498965864884803225306786944685811696167235378603815937482367387335705615745981379319601837582367372949097029251332562053851735174655044214583539249506862356259207629525630632042233990721129222098028993402623098618998606843479252696473299163859485855252249982713021570494302494523428084232071068280242438212608337290927007083737150502406715662513932592427731193981584495071165362457777025620884004118875815610996734450716164799594769901029902532283595683780793624946779082538748632814391728019188829787959309902472769569324021079789419205970091090692223575679049856590269439901043482137895810493852833137328942042626866802047728865249273544438255016371513295376406609489938614846488782161126485677744702610334239276110102058787685628505700855432269389421036443299972013199173277566873398830337823739833357167144207165415235951655324342092065132302451932224295902528731181140111865019423806151031621618116711681711342246364033316723264912889880633662300383809344357584354799545294369300080956391189365925451024733893321531993086536526849887777921597889594871217104462333107923088263771660458939920404293756932311900350039094539393332097867523797557616856650540471619359893026730449308526964616077060757840682008745529703709910509478059787173564718170243168217410435898511861714804644888770290111402809428265615412287283639101391574039275979911117275748054910717034915012551825649057257432252248156994280207450820366604441928734832143558514290022722558157072318921887509979980866143213996855790651126630944399692356276147658726652145246122118170736528159422471563911991478321878317633618301829469955959157047763306030930183154534648542876476316524918576617857947002216516134336412143506555227348495627701993218321619927112457609921751234711534094199668813179860819230680557431233237422882980840198544362709238012327814466179036960945900057103594397310195770534576569998236625004675377176609845740710269899443284325407897886071061455934363573427627246260796505700249933413411902593742375656464622315239160070329906745429717122435108375225805070866330031562786363773166883733668530169418953367417136597151879147134838300515867035523462305951603101751277021516478181420965689590873802625416248932505005309727798244457821462949479252238990492794385919727135374244208134808372613831541929986905233101582601130226600355892749037751878907683508643860337538267552066878023857212623576504147451354632327617855790121407821445127540846156879409080446818699549773950504298544286741753989092770000100334391155790347809907156284688422983810299649699429182713572821361129191461343942040238622654289244970891842156079305208361370798044413167630769750105749387129210101676332422613208247540014580952979281391445170421744657861823277725912483028507355783659622011258969153216410941934214357265798818805471345957249885037358519525219167324998885457239638689440427183729941726838436851548703400322848601404866299710166745393846403226341177858046546753091048908678326253146645021921823627208564429385096974026961496498612707383603226605600651621448348970694082671521998806380902243258985531756035236836157957671306337855573618352400385779505404998267018675550387263356339672234589447849956615899113199125360240931879794055975330963796034918028916981105663717930984322002944584887820977275606017315184848096979243000562815820001597759365835909201975542515599094308741562975338233434517879737147911607354553824838068700083443582180718146228927611948280675841073207607328980012016239101809431609384452271627936780406584957895921230663385073834875856746239272658117083448297227857084641573829328783076605234300650326079742753042097552875983508213173901585225614625268347623868307016850036944243665150758809178780662051285796326762424630036697080007298175616849509230910958295156197241352173057363636509361802425686331483084787048694788460591362276872148202703219845762969917821700634543158152125334178319332362743162859834300791632130657226200657452709716918607187970181759665410967622430254919229527143990001743330287715047459380604617531466669762338450596550846037326902549432675969811410816605279109924469287416940545293759419896001044487952719994844067049178496316707468580568747895091002035481503753013767179471363431203181010122061319962840236371115580694672290266064072583667069943868214467397838310739441744758987879641500706947898496201298269724255908435083650761865001939458827903190497504595784897183004467764319236396582414862401939432846839984513015157631850698635796540001164077341252005880317029796085958326730116363174211021872216608313783056153586043619670490949980357815686345687888451340126225177087443818095671485116145224537910836698142131820612111550915283123951574114889886626973864087807479576142678939298735013384325333365104855685372611108281665796002771204881125570185189538888378060632606803290028336037095296881093512565944481315487795182913244402259640456875975095442974380249844118849389809516365104031946090284273299145630130830081229167431618701641014743172892520311179769329747376096577451131861858437584576728700285917270728172497095035721136415691939809832820310564627184018863201516054953401608087911707190063195961086054396168135477685339974498629532494894695316307729345817695522038155616722475835726524931202356247745371697124694632500703938836222851043816981213772827677467964162698498101685855289270567951284393876436179055789881777661543453212098963732548013772913391123964777493864630547338538542653663147680614896559875257136233918049223543600462511468642617619661290717540786699731213695783778416003681218913993021275609139203796082979621540335568066648896140786719347522079873608312172416500509125478415667456475265759793505513437614453301670207277458061606870135962357496008825697991524272303320027306679767741789883098651781446875540375239876000667277556945758093639310570907173451475834675836726212208347799316965447058665976103999393115097172719108633939346516157206392519732043649843260044674949826057146878497203806774875511672587459771122982654498700749833256064093797878541394024699476337563476687047839605483099477739724213365551955827095923547925294438846741516862438494977277395057696467271848098022921909476806793296947808306136761669456926844528993271582459238871187276560927619611627766685539161778107375954698283334684497989682014196301894813694567784285704213097948410066038453675331905174953598456120548718268325991826645558612175014030179254805787321680450685848520932737588235861569263817680456773496435798566272289598614910574459368594650255296746939612379868374537009706091871661952365457008313288085223905610647716902031393466777541511831780197860490582687737776733446178520005526375985677545644874939521296092245447199665919886578085367858061845222880134801826841985967537764384499699102296876565873482176557629868517153381616368843466095063633559465845720995367314360180350942958519262940722476343679190485614705138050673528331375268033653282440362186278723366485168855517226461698574405372682186330031156635835633420270868867696809686329549418555399922407484850504038097553563870199506217361062195660834916371591447267700526473839340408091392291135767597057968826552164674658249955288963201304150991570778608443173312462328531200815042254725295129936687115418070963238344257863483185133874964034674926381750529672537586592456475555741789971300069362578950619950331838456342023821128951770814771861956891071058093965079594092802927558869750468599999631483349841699128569332141053975539723381423694580923273530891683867886672845840665654067164185093142470236979345766316941411112422969071030494941306352693306693263729141974491162498196557472630691774911045251948294980475206480027806535639158632476260032763556012146629668381024329616941657483171621049019241435413295312073037712743593785306875812198454503858052239541634709201433659319831174790531190572735429827646683700716364929604819565008190077142778149151692779602451175541731347168400644445218780175514882884513734816480273477186053886155748121453917630896258960827912611476484956832356901970064175737865098427528162919783444111872866261212469250529253523758462395181048419483173391236182859849316577701826076011565276499684283266410935954030898968822411723060466480539713573659097696626721195093225772044151579596453754105815010288527441238827270820226937606273261832278141048613644893779995416891915835036747897057370122779226447142039259527408187844640913969669606166371828851786029762109443994022982583755262241333146550147754977182592083243792353326736361635212762307120821127043913240944038059382886518838749163855698427128216624425477200533011376747535427611450627404069854219594724174619561482875359913400973588750900459947898060095613247463164628672991072194938645635534089613984917432985516507855651415803698071436333709450212488288597047939958254768509099856899652179550491526810712013814260068284670618506848516849574979624041659042792353399379572258755856433764669973771598913352943636937053036838415340504404747205293193179915820425318231386008085541458063412387505080693099306616875495194072740577952344155675246666691776027140013054312320935240725924613762512404498867636759268147911452694388466916631598295260787406978003609566852993730288552189045662480814078460717604414125853783234497825030258174052975843440725867626912623187534027919173440004562470675965038340298148091868226942020420143150263650854003069192243674001205359245342346624795260985730927557167867940985292841050545912049788013253332273832588967589632982017915678095834185485916914613221998721397996067582142965262603849113645277924868049877248391933321057026587204976018711375473811953783965780381701312504040854663802561791864213279751902591805605920069692003192333668384623892308331834415834229455126847943040206570332462307592895261290418902617344507848085551094302224566522274432074182124876453836754650329839494507858401225623077916145111920163071500912993432399602054904272440779061319234886686931382391492675667941715296871765734687781699066374725091207065989951440694482314937080218882641317080297951426551187015088989805677985089881741496998448397753600069540647220955920324847333363062594186275112073588615248199016671984303479541284273317468078936960875847763045779362297437608866502194058803464740518207741400249360696188892027060730088990608529270123595591558437832154862279742538208498697950985029326835701724830309004729484020850731426456391519640797224894479237754835274381999055591432504933855566029584218313196785977006445004756416810628829539240091772325079303005190592816291825262334717191389493857938446331504664181142218176857229230104518284169891071101874897557366307199470857025440174807762776630814152411788909022466023781321617412516803343970715202223605540482951088481485031425591128683583549601158434943478393473121857093230065732817444921345678762678958224208052117182727243179400168639809592397735797093633939025708265954404583614280466532591355102880946277982975220384312893373686682335221422532816783822998771058168399210578558152325015369600692061372860476263856617009743389102324698557894257695227095407060243346655552435440692756559192088162280189617866280061626057007727245418727002170956905633645853181684488940211843610324190698460805852904379410421186389328815267562308117470160878976056503059089161129304544213169795839939108925495776440982346336227164626680751225622735112846249695553151717509560570040715647830179029657690643170642155728177259729513986973676586084895950208283756529802887281137933447228644059007184401840961225706372553286918526657613530792531319930119681703724564345112662648256522172391509878984986734012478480653369558822668742804961986566353507213920298609608656414839877890084824122960193180009787912057915057598771250469737030343782690202072941822724056122256394883624872841471421996626931888898419637857477591603862166948558620316625398090915979347534186640830795525850806152807744177109324266992820171365038540656075232660293309995056239891984067114961812433305741120660872475405329019950607217621407947432490480687872744413191479740376893344501022137373275875242332068187717058315769073401006277274205732643104366764740889002330439490104180925411134707546163016655349747322753134804413187157878641657611111796225127145722316217592006363116507508657964561835013285389522134390878011243519502718990906068913112880611600798064998956021075346345251639421634527296048249559774470119041495774145862076919637563570024188112269744275512949264244546128327397510486680025894316486491453707376473604170457610078909849964343176276085643086931264874290139287856392871000138856653574607402756271509013653301728867149097883219512055698286876480866363893114565918726161325686892227112256982559569374049541126133828864625690663717247718511340527541486445856138713710909108718265866312545715100339909650080227049380443657523622626144005770584797104951195635351444989257930001909487256915789393124289470419406250773228493536475958201298843376619753426150703338938143252026453697070875284851533115540580296267351548602454611273413584725576527274190124187787030208960036752918813316688465675065797600811762764699506923786522242384305065232851179664958427448141165920103330952323597623810797090480177805559674451409582858851789554254242802582249934571618655273126935912555277595673098509624766591959292049688616830136088225949531255604046461709426913169763320802521896248067089870781233062117339231240729501229777064827117626961627195264603029909261884172117786034567193235268479990641574992801770751431965018508558932158492334552929809622210014029073893635555485011442557383010963960266669373808721074041460711962999735765473966311877389917031894521314878969938797519201504820096124782756178730118037527547513835999142826893846312652857855435005929311333978961386125778332709270430972498442925761797042217162291675188502675291211292289207391375444262140634820829983105850703545613820104946221560218787340741221203178591384601947010484621450651621176697009446238739070065549615602568707135462623774809378559209521434955518371410302395506539113981258218432214646182561342823666480712390217114465143624202025459653676282887728157229934506273134548686933019253724197107047179150706071845041622733118909384037808917894472590296088464709463206002347525552060778325227392050549120608099056874576467433115539495864790302615815073680690131780461712661338114403835877753385474986187934849428866723088726676484977064477050640064976594878101434480831988336403924308358494384870130885902115780745940256581356366035111765245009710885281709258379275587077880825989741980668225269377539796063783210959355582485110391171721525424988810849459919139857374792950002013788617963906247305832256665774809831449574165080722585587745566895383338996517786727959919717200477457056209989919785242023580481991219725859848152480799127569450022605486731766291687541930365751669408516738223260342928707420129453876366649242551729008296111882158691230121095759452631404244883240928259052173159646761780189311228826042232619950760484786269344121033349645304922894309717399289022350129627745403495187042431926590153618092793302421636781842935921279632544455825354420957009287442756602755300098239391091427973555858916337118959229585681317197751103337880023015062423397793641702183937846982331913392742699452949416487121295704383745252799291347241390726914234643668118636080108517709402824852737265998247972471894415566184429488982385534307846265836091068698211352680391027951250286534886529679099833838135870765912871715476668253537322466014557057728482464896445970672839482267981178182754688401847340989079179134582890908185362830246639354845827704168707779368433576699205308023095182708364723264828682758451633220292226882545921981203852194398774706101082943805821232842088456145167775971931346815884575176315543498689188368538746205044340922039022109933933455477244713079847421086305252306035234173652131776743734692038919866758740853396395734636032607712576838294923983904820190213693009890887275016803560481939634987227615376848399168623182168724176075235428485158499842292636439010026999830322818989117981714560647906613165246127101681098170802303016872971252554762454985367326113181770577375235122790848602758043648358400830620145604423090659531905833532726938538563292643653311027868041843139948408391017978374717589065230567319139803195900380371407952815195862307999820020002358877340605748348757067601445755273573582974719406784645407011951315410506896900009236412067926176910815513891791105106431084777375452810376765485069528711923799535862722065790362721015104282098323888427553036291641860744795770826289047827990144114975560939896355566719979574663426178117917112929206505725179235115041321069187366806438681820591720565708978108749463430241694949091302274410869404135210011067722023677781320587451073922535847573216233876100030970235785197844582279935059018472479445223241451613556320457902583825433472354954476009031630699113458848312254116219128549430343042460428321602396846149422919110272351161502261391798191221295264442177292799373858236370074795610786995818212350025793578824421513796079926631951781280039785957300481102177886115021681819608852586783028550432422956723887299381688976357419608821526463040800358987882608056054261387350363802049425518442237218553845422886611195063086948836380582098877675909138403978555987936409260725072390273451440579454931066715974481630082511974242174375119832078178725090660853194274637886322297089555617277586507564183675474801377040359865039656980884013981344515534315340418834283045255060468028509840150129556275018919558034202209407790380331080176013616489920528539250659210833008719009199901874282002425997278944705757945343820920923669403631094746799570738884183222855309993238737520939206446972553319462367974614316664778294914143804161861048936628099822743479379861680919520947797618152214193136404693510583409846716819035060298460043831608314289956437716533775714042715407848173959158553449306349240148119881045026693028926573944454157101077439377091387969448423705108635291275268620428783002872016393686444364280033710502334427261889720845425003140093501871797228588448130239218005551929973674435156966843825805538925727098440397396742652527417240114875865037985492782001775074350714048199359300205646288179859262082095366152925265538445245494173860900637872534132389273423526025729552303837234362488066553441649656075130266437817672853834213011045544352422912814751677166205693899915130105229141960715734087104382263721045191448195893899797418562627752843627718072806641197378202080331695218784963668650511328872758600278381539584763727889515689596878848784172665246455079681672666249313140301337210399105141507656218548263321546337604261983046754644267742795543151279270748650747837988873928690145854837946773608752948703826018446262397352110415571663510810336997096232361313629445850941049034093925370134606417286061482695466311126433684894571326215242234571477536796716744917350835661730867766036358838295245560219306576672975727749025789163983584522072102301153060389366461598733710988967050646667215569730783389074710261724831792268624247223456883415066378118164443579634134390372352732668115378632201401298203335828464492357558019434518892131791822926352128335862488446843357050814554873338386317837988925948125053007979480399663741609797549287265197353381496093104746896906205082658230686393587751476563493511269837159538285885978259376629097351717080330556853035916070423388481634777820286464752545735622041889463340256092266929370980466901211275897588117583240460421182675385500238573852487369869397270529614004228331284543743335442726211683205023509870988241986466102139316039211198537828665152499681838119246157473419182477374090221277497423427172785602778554349504494850657566549227879874104126868137700050942290487726014522799849592368076829826228182566911369727189261182177384011524028020281393793249131194953928195955849465349565442774297296262548773038723508970414373999237669437524897228401495322658752011966414496989029879983720878072627168269580300276334942344366557833647205102995421974710297234099657873236774430637480405743468418938121285962735816901784739053130654545986081261490443444764670417081056463278709447062128910198843205949054924027148841725615250656185421648793930957738856774648699322718680011422342457691723508162399873847823955862678185470270324274632608239803737458735845435153447580459050472532610930262288305209474499834663100987193412301732852206801046945614802138365381376127863848550324497149284270287825477940335091353807189851080396770820262915217092130166635755715620766932336669549448807622640891241735080409350465354841121943104829287479894951444660671358643179345199774371188799241467836689797527236514665812887227759374354314165750630826590831653037370214894102043351264309480067952956449426596883815428721398575873490216649026929128575555170439044586196987544089266113586723306178397406454309223614278053869120203966749015359975924806488816469466569527807715257399349382702462088225588683612621360605083514964072854957545831218224667759406045374772654131297669751466983505134727501333626611100345771273282181497869473952234401539972912634473049329247159951209953883635249444472024320024558252092777831391839732998027453389907693851326379573913091015702163893035664073171242424640405390056847632008088580756007304794033224858638249919960521062825219471173893777269523274775075781574331561586988335249326560335367755855814569108592224047017647960079884328933765553173218225118637132605054571410848689790994936023940581477128537067570161482313662872529427062132393389633577905985904873832936975584071571063813032707485713805660354115449334695974916702737246696186677172135457425642027999330508409299794075279386926209976172563344227688993722984990660492555531480195610962735430388353439109246487793156028276429516996189047721300435753687189170507993722899956670402622076499732826860705039252332881045848513407298907491591114022841187201956745982240066818344304178256196906053156704270721254187820472014192871332168287314908509185388497850250186394433097490908071579414709245367513254992853646837318825831359628596926701372209920544929232911267752832029379257274415824645654302656064832182190792360922080785118386941902777373239846434077493715298983901737283215893752576121416606676132813559144176609505483570675172243336265576221034822077385757241363462994851402929028004738429023773146077232234865291746111539231386993569460063174887191471684646972885468588742306754513385862517324419522189079909775222032879965969308516551377406280456191268096519611843879432373166826995719372943319752817575679601644251508493736462099379375674263609055501450794692480434622697310381820415705317217291484675817253202331720241464868024631196062436126973077458232893204532459673223669845044151500398903559824055378592910860028835176221562354459494493424926049789905704868047761806008652659282413917840796279247483844702518457147857174752579884936204587962555954726676655854809008436270667165606175833009056963149976152360608666582587131954132026725235653363994059620615108448115803709011484624450136562203799175210383303498202867513420675363549996366056462000832614660790226544066700597731639198120250032610338985794419714291725568527258018741675354636398812565751006876897850677345979644609384866002290347593711522791239241834282188774786998333333848653358311723824537750993775728685421806926967598773960544620557008503998793336429684976926521538117683967206655131144166671651625549329457200964747611339549019471621122642224247539678176031089029572349081222926367348306052087595822818467993982496029912860616020988034352052268239053656067434529747426937849221688670312331929604026127796130781433986300594175095602964399344578583371362400665102336950889240367693337244424683657250061089319282872776631092178663473390335318474379107208898474419558716957683287996751407914613589260114292176859991914951803826274863785610782213812957775783068604980980643054186640339406730693112064172836451568869392188873164561645954984928174023109741851468007483308114859021687587461697638199648179577657566958291293402423619753373255539037504980939204566775993743246006205365337744096543660966507701643569239756931621959438070154015200196204645297544775977922400382427135987231939617646557836688297169605932547705367329410202616206195906445596977028932144387588830598550171935562626276315217572733516295521098643706802276269656822770366930027704100076953595815772123368718667515265910425024797806489107453823382301724329604111732968365004833908545577198993701825157312416478851243251738992470119028847446541308570591878499788986979738736524055723706230855761517919459768841774472470712625700688961548233192341877318839689081895175510738632701417788352613326500106001944978234395879720419006529204555506157357413659303035524935189869118093791946255328425036388762885500286941639395420498599545601570216395499843684444776542272689517990867795886320285188018874923459573565331636487716758217203851749576141438958840218711328888502042842248542925696837518699362829418240707756758737240175610338590389506878909139547935994838767623044527605393854824171902054991813493384187390568704845240223582659826723439203266494039228831622642678972096765833722130415305418761241544556600692683024103877760117053899352335476044158492250821745150304975105172189544109231953232825842511729260239447956423933637926924624567922524852049296411941761309513860126629243332522460789398875612478859766686768791895864464003474551040605472271668499320246174188088141728783101487572573217131996047204338134595971273394519260821429703150994593332051984330047081328255592447183601934852177622512103543135758278587926923399362938185309468218093302258312714285668891494252197010678917548919641606045522616409195789320016895154213143599113682340878184052153442142731558567630300226305389240592354939240166894142386654013851380408667352438329242385816346779812415253802075039462910441510283032793527567907370746029493151742431613685206506998847351319081960190696509026094498920188385141313131700373322589683857867361889779794197609158269049929310055373754269292065690271683498194019072698495380232316078262644765935958008746233520003890192519520708308452229607981697531988859227101519525277212139244407821670362535563371665937448724413334797523523742979347664516289404644085904867090392830212337719861799157746312794292856682837272961345442793382616191532067824567679070313392361215805569336641549800137295212810101525415952162007478984242843089820943120114591726828546920218844599852354802263291831600328896308901982348954477562127502893783602286106200372488505119580938923657113881254335835917202729896786630389494413537351767024682814187987207157401913966514632182040676752742125219600488269468517423229306441984724459743100006796404072503036637231155898491991527296289601402924333373826252183662543264647362893931609811019445623519568412377821853458861235555291994237445898435566965558713217704518139402268286400871035656607245879234356216822571786588160528649213675344829945788517017291036102819869784437487427179682128860243583188993426966417523830965720846339328971890389893571674117210824831055526005734396705559051028869908279939922460039326875778118149113619198127481894452306440436528283192804702659172543352898586856865364396032634564164220789692642824009264019669132290708964636539317382668360419690980068749692323104030571141331322927105614799584790830859243606537108249833741873418791057503736176845578397265801638048883221095542204567514255213688056414738650315070246364410761000718107642115116898174338829677024052618142415272688054655064201009752836222019502911438430638154750383577346773320606020455256743000299488964133312724373667168912034753970002991229902410881975788637984012293125077394742670428029068923754166661694437715562006651244397197108927619148359470056496480682113343915031832406686110488970401627603984989135202868967167855167315233212795477431298746155455418027206414611809375188377736872876266701331483223655469815684501441224379788825146855209613837494925487387277847557167897452768153724059197608507785182976606743384455462800495751369444592310784392558058460517275230588184495722966659499316646384884526895127793183371146847777856056300561349447915941469093024005483017203792803552085972521800558860784068536544841201902220032424020286154457049141842036243931479142269559636755764320206689490033913130602488831495103977924994747612428875946572949843306837982950497275755242403964536698356403834789895384213259021647704586879704984970168667975790242022675325401552710394178421563098217245127810612890460024956976951011929449847005261877781218734956240494310565004539364672898418263590271907815484717405358006589758133271627856844728843448280554489129952742837848051711650006917306361356522122961198767283558986466257299898673370933122656895993921360084800743114338204733849130831210235926746125655697937513098871160987967042289332897912241968156558388060018288460329374628302651088057167534434317286521462877544688863490268375220681415971022989591552542087218121817067053482443487709466405027389321799771858365720517450665370619796416162604035034709609853018776614791708948674543592276443651726969587518752167595107042752710165264629793283081887239197919297319514200988927414678301999582735011303691634874937219663075479783054974895881680211555475883217250747620038997798340613580522429850092646114580917947519254462486967320807033642826484498252919272410822976012234700397246098856973031976258102175684406637579355467038404295408523731353265544221993165210493490032844710506876122072396368774256206928244644655586952884613806551849461842627571123359274919213756171826441511764389792541260135632653821624614932288854947064475857982855993990313023899869167686069493008826916690184515141577064026033114767097881636614596788155686385123465771936362812069544745113181763200795326032435488983049815011156098696888325677811071296982213319543073721521242258314054892963360093731466768069066848536890555151686987291537294916905062355963240784680195873197944532274231202075970935172437128918984751567742779642293358947734175052926109975696544253364282760926596928836180256396851017418155969160629710170745165186393661232557671978759925662151356260599103472077131520224071618583434220888800826472484943704916030297992739204135946153322267828000020213601343067252493571975453001827988105882458279436712842996179160000230398283909286612696751388225024145729639694807037546192307866975781987281974750211504265665501218254494149563199041229436211464295572969978483972834623612149484241934446188954024932310783936965100213062037836976680044433581093324334370503400234202082482673206641765455975469601216389422673922840054648056843618025630356777235067335034913722297931484582550860324768769676810555601958501033890086044631690873116646329927736361618273726376588622303106932040942759788258646990771877340389107612057926110117757963188065173747601545431897826875390094810740794817159026010921836966636160488011865378144556632416891801029220210736710795123266478421067109991187106143389386718918409563532491370983672030205881130997671015516454797009432825098831928487969457333715483234887051827374848546652614153974636803035187340062427137320699204516829689567722988377375804163484252337526055430067831334592842981273190430882222923580501158216117075149618803083858753375309402917871995329181632312938695606517577480135615643608573826481535895576663456980753633779997902385638832093678572422555328241731406239872223347565455505777913836086164445182193393655137024596334464522649170286069501674100108573348560613193094425245939512653265967805895818538712412940792832203973616718980098855772493370837098359178803521628776295178309265430991097805086771410070717276572667531999539294019263937469490477678089360013882998395809211653652882168541696986874361656070259363337192179472700870221678431662462838663659469771662187499006008788087019741239108066592104257212117329432800408456985190671539548941849115046677174101561605568114986717518730555555157622866521590976848418729320382093014253590363330592314869457976558868795965079809393769676534151784791956129915040212537562967144017543228351064816802597200179655562030712716556057232816128544788734340416284624738242896988127355010655501212911306805705038608725140264985273861120364872279362821510651509282623540875724397841753430424039430611058659231257597030696357817350372788967304369747802329248124797466416990868467265194834374739684766866618464365909360780958907609449456483092735582788373047405438580502005087829919276089346310438075784690029750582754536940360130203257189308973850708301969845377861029883551489125353224346187070120663212980846523194531288216549141925665906137157525807798396001304652115919407115786732960621843775971397403185451718703443683756668009551627285421789082178780958077770499989084743840922171683940153049899716657305776889847886646415393940734202426617199591423701725909303533071865875215289276425171184004248129007687922308069337426238589070480750588313272732700376089570186498686100850448170555571735779792548631237483277386016092420921105614712186995131984547915173704943719873949514764373761894615468881143995663168007382714270873747201812190460176146756324159038806803327279811379427922747111421781586736911451536016021690518453470881708906011143372944378984984216159714761457288375176278258258747665466104215713872926487904519822458347821681050096083323190715310420074867346847196265894279995855482111418248888717002697787836196713898785451237749269245011603076398136112148655900072532796386724914132664342999279032421459986920141706241421635511782088015576242043664685664826576712605560273044991141472040314093619729867589306739927333930502275763685490443665373311316576321245005289814271475888231467042656273288124576177802124076196483745874903674884722917793781972447373280403496972592537799902086132346026944448437823295197664413571157444394601709678664609517766299857850959285974079496444763999830052529776588783062227292434166963298706275981146097951686327300597002855193689205759696129884468637102655647784667642033276554671390448183935192510086114242168335506895112449484011014130265996853157351624919333628247902450858066368859732388960934300672767965615522926284871775895050246665008441322160025530980667095601729189595020723094236300315728958552919417302091874908496770855000503240289217274327425401848080599786249571929529716204926276738785831958188190058197022172710629304803113220116143404276707829337207669643788242776833724373580774915366056034739192827442740870804143648500487893037958789717297610074940041516791271636323963532317539586818004192586995942698249125762557381487811498769770572240930783330449057004419725620451361038190528776528073494698935211472857157786937108662107859230658048415067291600339925448655800682721939407616779474911020015329384899226703954638614887007255590136714964986242659203324759399172744548609908431174456155417910913821850564542608469884416305956101912800820522509156499255394837921882960319139043998311583698084276282755408356039359411256308993883575225125895445916638975282800587271566768297575327209315579991094585091092569971083865381692084946666317701017914959019778947791235468792404382888538964073564607007033193931495368469675636621204708511643575385562600882120691525254854196999672257621444914680637462443937292922208572030159975226329227899816589210223051908586712650615989705971652124578862180247914075570542725228880373375101231972676695413414337268302915366330436707074933280403483533934281963867823317237070265733042134396051298931337249894646773204881087154204900779324555484407847417652471119474163380334876557488343451604837985684777716264978727182794332558720478174498740044807683185177899841928777125774135809316505694790315208494000448323133864606915773789236628712216446410353453497814250501790976612505894411363401400104584146014225265682471855362704302266215314162687326081595576906735868824251976562043511837361637657936056741943382366601515846299040602063590695110089204225537323672902104811815730859685067224916916379368954374418733036967828601814877836179151511766968958501781542109728734267135253271731271476957806332479962961706376840716222049988119559257319209417696799111657599160291415197487136876284569706246827907662943535002748928505978232579157601873423144528978001440738341226885716827920912226904740294736331367747171142899832530431302684547317053508183716550755562752874823915040301792618801486551530681872733011229798862040274360135132052001253998746414273443609523736848580601253468227072917710444547440511364185801308674095481882059555997903739354425518999843117380227597090612180056705161069382585452183102129291431996099558773560893508076264738220221704355854286010056304828103663814240990490492320075432693713496713001766407148359904904910854533809486588587516905976806613030687068560585898653696927944689854403448622503073974097421931654258590159229393397740916418533414308357891180343296163829148020054121738716628351340409618346624871783067790495694161211073525015452330955440943815701693669586686037376295068554586390167569812377659464656917395966002544082325743066071120690447115617244200066158818931035194032748672701502141306364803418199020607942243771435253433187543997148319422054430562308992021236981357632869548134099683138374901434146781691727769690752825319257893883338470682569909625898551082010312129153376306659032526637095902859725258426562529217673109511107742498851726884329784821368439530181683682550080712823586814655678269725813685358964840674974121182228541947092365628162023575192461558495318589558614238349216644535941034687107022856032574900038872674010409529626529418671958443665356480771157020415562100186168085942356459717431722522789057728998769638891206009341696876198870443306806231340014078073089527849246747753900681068801753637872452969476736997244146161047850263238324544157863033147075087129803263267370986380576311260889378293353140234161835545553908071106082396603650496835045134788475622243484299297246057832486370176873134198541291751520995010311983742699996902823534939195100761103216611523469553910432202539792137056058529324627376996206521732889472424508375478980865829010962493364671336468578046265742612034418482180763819948711608555998079889634283668203839169363604401690763984396797423869387537123984993700463410710274746618564826391442612528123518882671411489555944948772940938381054723282964449565333056839774002931541749403618085860070064869895017194705637201840746897035053106346025095293582788176621291976395569408798039065705108584924031793336215259728952768296736709814822351717628833561016970649980510165118348970298192513583981214791769428362171583939479055150200972195236792500653132721893242715609915324992632680865367344893449603445592352674477738285551652479700452960574699620110745977957958215281273680920238426720271065086766323407292561576347879779255755339418937430052986650913049428090952146477002797350653590998730020387338471659969422441417024996759371483980918888356718729165157771807381341273621138610626292409182638360377320156947710659231347623394717435795706613281772341056760293463520461250737745429869361353076576708356707594789968848526741938547958613313382953799677767820001158862084952526180557960170065321834345633854852025282639521123504788309000459674166332933243011243945023138526311348446119329826091724282821885318947818541681007494198981122763866780834553473978044303519480747476451814524503638583197912404138545529363551536227850123820028491513091614405414659444980348127009223828443897039803868997940399400146745681643185067786418027509844971751166235119651707925520622378541442303154595025140700421016601147706040630855215858494024120085959653070878362103822869029657493383573346927461754961623156140715586869755780261445384785407787960288373706986237375329504378422808639861638321933441765792470799867304463325266335819339477712008413314490941215513351890623875208269459477156572830293570029857668594287325926694784996129195804121870142225669207544081555337549454641798362225636222360551952629799912739980656265183851153721042363034728848220886587591394844030227757937801977418935203807429230237755373478598918371040282286958390409383145860421875589365592534501346731621305268747187021605390845115500371275055657575080741922021662712737604399270508499720577743698442542260638201404591858600390754254097277294002460759648744192204583783072847776763300178658130037171496933018889482197274394554241300229709182825924186690295435171432090087467151804731061785986878252456826400833809199302725146482274387646856621865581768522376817647316838613517296947129498466898256116565075336238093713667981513988716026507787712271793735559863951337573757972759002362915054108499870829391087085376113244541208907832430669813295804207646661495028514836048400905372945167065995979421177844471356862967970877017510512971209546813376767735425246319038351270016966253160461471457793215407892845711263601874953439657451741101478018912845833525217839049796617021490592495406422240485835831436621704751043223144919633685354228718655639235810564148905490410226005619364266859493693895358726287718283056427538995694235919884294534818522999921309397162648483938209710867698467401353316893899980590180838956575587083572724442605813116650658695644463113344186009251352302461633191804072644987729682519601229036400027590580338584295668988236964049303883510996002782077506399798720456506866946183507158191769918091173124569194729756223315127945599211670596660496434982736659936297304274975273998415217999475928633953131750236664301082822650596894058518656883978231963339922388201574178059733678477651066464230509257814402190729139312096015803620947707941492131620374357298288709070905451832009007893960461115088450767432490595060351266887623233806648362412312821985859713471551577719895575026169161302414093996990495979053698008913537993972868146132155638920801911473482437588868323919256093007930458667662444894896092337560190156909715185404763098652572113104070957188416178801581504063021697599496095709034772597934011907411954953194485743557688391505079434374179439678334768908072293940049844834266331779513442261302615035171655256406109223274153675901549150329124345645377993999800696785709011584269942781337215409406110235281506488194768431157597246497721388642288804825159126679606796114965227012144589704021339326090831490954008815630352106764326482225326601070766173590011136423103946463345716637271909479461217849487356159720414572635183722534567670257262007513821502306311641198275233209012518812024405765108419382453161333865997256294096844007559830841452696912551119879225753811797671053269407289894917824318849161370556964003098381972694296519183406856286187673919403108821594253160755227276044875232075585757529091004841188448221331992966380822541750118074699076114451185938395955895326615200498791739158241705853301591365843687593522044295250996361693946129296750158455846524291711538604870403372527322826042748175266391605754941494558651012272271075430149405344950510836315809232660171447044643662636540703082253729784919218550946476146226088797501217353677399434377894847082448934256076370980732111421880879503536948790605891754109270232540716204566697390774183931888876639908732974626369821320078846839990990170090001952622009940429225929675865604692057208222853712399272245720301533869161252686850170208843557770932112290616286605511852509889306344540867177641088834177676433069366047442613206796157795852207601147495992954467377032658794230763821309922047399216489008124587950568501227818930652306926773707757525450280359367860333253433872329972388535628772088565493129098403338214797032703189013124925214847070899132591694383327755048484173273875513811634578488177770683535600486279612456080335278116312047301292027874760879925993043277351385566769991701548830078682166344402101732008708346081627422108473477605375465626135964152099696153601586985659835829185597700275103081220350434633358820024845868658894487529661568965078726487845357496332020363639876333431570755957438331644465711540339983239744227424861036146518582591349386182546777525437753754308497637337016886262967568518713055075256313382930206360755516201706376622640020817666882534422753771023912852660221047681474664521358955359161415423174767646030674942527550845932159101294327547905891391926980372163554776506843497629337597926689419597114646322974773540779750689521298644051921017297232039581820838684589360488258669960939842112901660735371250172418373908234916207774925059537745974049256345016085089653867860807413443151077282402464591898419034108196150914205090488061304876548252599769308054412542011122716978643803646110661832654407044298911752941770889184355701278909948630127857598247583940928356188391775761671992680763070347720298013238356605941063601657189836839636710007303916244119882112257716999667995516934440284669489795276627014277129596927955972223111456685160812835951785918119496248212047969007927145222216670464844768896530664536947576022070091853851441377216149292996951144039479353094894749188568818796343211553284433925196922060657884700439279762758321198888790032940239576723203194437595652410836959334266595203424697026388269229466803655597470160433951917411278507058085307274116857864051317924285790168278289342388521264770302122073209712815590177143275789417856989529932553869355937420995136801905183904802996927311051039842192840715816536784999727791642746010446922788034939331326493760467145865388517150716546892806213072115437710941886529993754992724373224858840647706412667549339433333997066767404332159476770287970811013570859147536181932290853542934707094918739877747626864711877014407869268628806570889613073302528906465665670594931425760939489422179034837093348145188308874091559639430017172243895255326634907077706743703359527666352824042916433642142457946009012964372623632034649535745172405811206561774306796129522713913585159236106462436829717443069409201916663820628362737662247270217837232777356965806046564589418621967020167977482475180280712926734434283105768021579736528258101297867638810572428391169997895604168277491481615365864539591990525556781209779449478967644488682891432026449742748416609787347048449962657714750039564874508245724593896847730066728393407870887163646044630532251899169022008247346759139403820728103881816951445037567612620457271227522884473396005608565913810946282203837525216074611269173965664342098298780237959757675958107078404365474051678973222983683998843192397111884312444503154196867825536149164102009461414123142500131314783381935891357923881145902656228012277284787697104916880657627346106605496302710558148486639082516352088609800503572862710084878210604434933079544698031228178121703743500095241454830652621719772023311392179109513240783666380669796371550658230742680344969018995310070037744342942914984158527091300304453769640126784590301408564425207966765164416019430615721172508967061523869476278426764990285376720019341163477259121918115513486990502796614262082779276909035119068924607518814132083557903862213763596571563654597268090088586864899169627057231874963012241572639926836526938295015954183520814772141611351801690879939363677593429234350495882557676430561341307937210524734348327027258161403566455328621910631470783609855374320854596240152325629574092801448216832782171622657297367617022240527146014771426231734946412938704117171602519003332190048828266748157678198075789372176867211135242640017446064149996178844296725953185950437156483501990363215099081766237493396287503886376599535264958866378002444733577015238786427892420253706079343055768142840341757047559873611870160262465637142632817447678516931916643085322766551085439666302319746476801304856471928306919531479612576805946245311902732036613447706481576902562521675984229425017013978807892356016505332522046125130437377143056784312119161163922266730938052958826298380610153659058815673519034307985870740019076545756334639438644465312791885752025936586548927309738616826540526055026726374130183151166234167867731618551190082632070286117557738347465903167400344058500149273763803415165270527811959253049371580358215569710377974172407938466942175979516997725024071848364009321459835029571102408585852630885689057589238304913012481620057988117364964136112980072360886008566675781524427772966379772863558839864718619210037555327274799652412987467447033724386239668136477536395234434430233680931664897634827644921763975112412794467441606348584936894111562732099234184488597955786750557204822478185781588553872078489794816144118745512007283000183641147496129375949487052772881769323571365393774327116048076029005213485137341272137894916392898305177933111665774384758639576684093163448485470224868730694495761842115798566793555896176138564368352856748262552814464716877733882023474667681575363657502481210949055507743090988572400607909935656377569547579803709398005550435879669557156956117141156350896305447156542470842697233694698902232653783161605483312533044168330976252478320877743474911704308344970736970656423241568187892039345906335019180194488082951652051053884867379195761078457388642523645491962640020626010539361820090095962399456928474446042424146114990364310214718138069205489806753676818687867587509126227057766500672747224128170259913390663000396891375419790573368004785622456171545333149671547721609169470889361961864722469079680002573242471689342361818777219593859549693185686172274749003433649500727764290954871879050824506066917666175616191317775549253404085969167518301539305067780135527747022518510581242177345138959205899373625057866975000032521899239410481748701426568991473041376639210379226928568670502817535596580346668793255507692079957905923140660571216396347922324765368885580967708410757555086608577383151226008720071235961868872419807019990282030998941354478988250866770780425835089036034621606833747951775001557145119679112117432409002051141049234768589190611907172999703056618754718985383074227957883454882052326854230707211145744011659747899326188333471894862022350998155720017225601388262930079522650527987315373220654947788462233698508841624957064361194195619238466071261003002283769283307119791545327252808195432447574593260266325865997599638563593379659579043610081628092323424438874661387943702741941765535263910126157125565701478451144243011513164102428447950716186487452532943303768591630053945189206213587875622206189024075984427038739187456167796335277763722671684875466998895846894885695014022126268027574767511661133869718485489542739818518473998807165169122385703716527185191422835529708842802079087763489839158340411623752391500565466827178343697550229288629402584189441368914164819791454510347142909384187179820406913929575459701460484755486596398226143167579414873467449481952629740831711594663229820739806066324544762032324746646663880076697456149015282332073421281914952157344698544090377387713222926116195074857421306520034283192198335095668273405525842944195217893099882387655945225225973499736360316879257528678302428302356725400898564452049285884807235632825238239069299005990787043027288507774728489936997022443365779816886862851200539773159023707369440830329670083304498779785419393305905909458520911681935964816224354378072317340970019228215724765293637523540106694746736211955555233625266970927315567351992292697299419095422270970221473199456237585061300271158485539393167304651718662725789178993346140419058913852846531685648743735238148395220818860169370507394103894746376087070121037094461038793227245116825518887508273308722239215506337199152327850811301216022502466745117953514455895778573409627691044449934459679538433860003356896749570852259147743645249947616960546160694325613976643365538721105938339166710314154370221141305654693787127422250442821806559144939137235657060367771774770952351842948586842153010145334079978832661408309938248505416332377924170099238772406918267170130339583595886482906228864652085335097339436252625988109527010963653377000043751310689732142697531834104561772848208247208312959211591056895951896329069289329777948014959058587589186557098600144436044346635524647662119722144595559211941000080056100582130505515351093258972942618139837356987533361591695913536700881225889228971618064031429808486986557940864568106746271468825061371218561707935232701186840639423788514132530660486212312209169224857353752182763171942889093640786365932006331996181624409193325167896093821293083970699744168083731757218305113737085657079683154070188755593545994648925904352600514587799468159867352255621588843139669209954264236437684348035938306962701348923682709118241007594062555856773832158399262738822439040484567913344775146601531139487214740257354954654421873778468711197519249506017548902101629242271843794832030339703342980906931210264371186560867098414346403248988643857331351780890906238507239775971781703821847225409509729404078801632621244182700240253115557484696209583723862705754718251767859955618178528450230058435322813245664814337556969528279671508491330187196608071413871276917687344799825292565169999242855607723599328562162172610009554861976972381513143108579471124002533527753238774315649170422708286847210704132324874893209140284273927231392354886215734093443501016592039874611972548850740393139781760474733323609726331476516456862898923946762774855141336917844278320179838489545775941439500290056162568552956251792892483092562623887666326615512221570399961100774249843928077756118780497127492026003360729265733967938234049891352447699935939007935947729478636334514981988256409924885524219749709783982177752037473771449739277909088033761773183708151293591305289628915096575137451846189372312373049253553939642427032167284950191605724940563538381905722029766458053314594815284364806439641681974514941602328322004806882260597026453594306479713483743102310332321698164791254791092717346049529667812513139078077153176466895944589952262488649134773525331211032024745398088353829628062688882162905155776583890522916197667385588474113397403879077486231848941796839927644646026381973712548350433608287491006967693625520226974976590641341454658174137271087068406629847832456906164942581561588096125093864097697175237242323566880368468272010041665970689221612835120444856681199943102110943231431341321197894035540575983575511061146258165627850091454379669209135508652560559082645031617348056299781051977707730894091414397448866479032777259547543413546554142423072319960579392349838272584655647483545956978204273179296062024879005720836409337553643981495121803434878554776302713295121441760650718201248278569167772399252142544350957135184019240331353178745213789453394634757487258282564866483454041630990719354089744775263588870957863892045135009789779630368478772286127903262644504789337952457114158154812277557999248558063392481299763500040814746281097398530959914690667399337856115258375658682756556820610105054869185544338228152774954767829681492300012652124517198436071366135704429612433334681619180659707945781840935977788258046427542773067911821637326860427282893144005975610383228268267664876779357716284534736294395230006079246525182463771400923979821761003731723586937196372467281424513481317580529166462137917685394173667235542769337992171226408956263067024340067870562956704229614078949735309505263777418106571613686237160031099931720081531070976105818352549491403636165333655557839377263122465701184302706062276559913664650297144097187574378838796760959641408926581727745370472148933821940848572304464967829741722175510591767094785720751405854418457632531898560782798806450790083400969971306873261750292448795382762850012295697089690689897360040747071721932132989487657136900660643320148029064056105793160566609872309192985032191466065700142433529481487411303061512717135937039896260126654577415409257680856363986206593502879391141807282574485137169073857182007479241664469613073046168248036571317655461267658249817127002623891779802093331860407633216176673533882695697218687590824562930341915230468426782146183419476110137634211856297315260192287670446137596083576833783534559047054338256033348008590943659595324393857160573686140309999103581701536713628862114963724743850155460108297299445115942624912203057179517461564328210215793936495212416482469808339904699154391498084847980247841510157357630431726826615928223779698740184855662446606497724239601851118830473942621704826404340574666629147488426494835092959693587445659660985822624494469333112948198020636783774341483907360900751639271391639480273604818987540388626240335846302483876770907238335074824695752851875499834592045533678234689820552712570561551007232748974809026125394921632243225107955481107952909404356536204493516951932885475988317118437209058235923190975174048029573054053486462921287007905571225466198175330262102460501564891655745981437623524198372211398293830587145211109341528736730867425430172397049411455296506511311991570311746870944978096089718346267169114504452500271888814334255454439050960801833756421474612324247902699630953307006527748923351135281978034125605799145947702721302964994848640630409897600374354793418149651481261304247159577119038289771628227431915754633031517352845886126439696830399470672561191585189903038594899962270463580074103231045212181311127147258931871537237083609927229576153329277896366844101837236444104460217685071419798759545987771828462551902889142921604679656615158834367255877361747169781480793743055885190957460055446606760574646110799900753027598973931557849852213175517156161602036935624137590616685384304101062032952265878009286663338636948191505448394466417653129536420518339712686326376597476818342248541110126102871771452878083739211253452555161030383114512728963861078768426513795516388996427968520487925752797540032183024075618807616635114521780398600108267462321765454988713947436409235071741975953906578617456352921097910360213203318130182639275305105861338092391748215430281156118790834009960126638967696886129107003401439891490064446150553695060013928865078591884744444870145471325479088747708567367851471581189787630207393327625752158962006403955023589416153967874036556192363092577202347173630187428906906651659193487759575852807063323117288209768439612047531431284547639210720466517306622022680660387301368393194567710377151126389762116055048587577969153163823752457655446639921188287343972700294670565663069973071632062542125365305059780623801811707633090766893006933259792025539108703704149086042678198636820819797401306312159224005689660273750141364344275116761618049606815418710030263841064091785729906763745153511069988795955045565888384838377488119968772109685135629465544187114301329768348539684501054809198477753359484482157134782884979948623717971544681117348489622314814941172870182764640467058883679925485842815102916289582981503944452970546693724920844801407331244029108324806162798048347340871692745892901742170057980350341827513665559570350038126867624878566607551630375903623783768344172425973952207814941345138157172915491665534572775423489067054215066252577197180463177990074979272387142761652428738622860447264421060434208116655964608030940366902142111014996817542736052067619118700769816434110253989305609578674869050474469337341375794184031089682840054192334475645935110610505312159943654781317289110406776844814171975096836668915009895651890296229134125940905115411328176546808952761595176631596913508780459070424104131686949066983244574427858412020836374546130064384612417159523610824778489161703926673899356633557678035341527307263957562618075835034263086040832806472718677141249376612243195356865720410694454325146296446588166794795034517389713239467570992744653237292706836503221203939945075671766554345522304560497165485996591975799290511662778317324485663761112898542093526987812131496243260681568819612818285950690755546054146282458403582621029074790911893581745650077533346853471941120192791839665577135463511188338826028007660415794924950712327437053492935446547466571781371164739694442699495112787279873538632688002611151295202094828588479039793540707634684207085949683134094285121519981539344528948730286226228580720792941595627435128669756252872937373353398459130368188033983154437521159967207952105294035848364727919184339442372482340516328559866614544514175686868703585447541656712801993568385044021158549056074166246305899766675198464470329808571960990339011763754828697290936751023026183767866805523823290165597592869986462243917497401123821237826701148635471688608307542544360529236981131662152067377910179004290879070577136529417033848675642253098072417345056547249356490348584872078249527420539748986310466266746745480658732976651222121002961554338792795780769520182746625982182307000573381914323601516030186886105197783490471378071521010738425382009033431596965303309638881730525863727795548969994980522916459640966108516187305087904411138605950460248196740359560599897990158131806504484787701450432112329992890572092851726721719809034967091803355393043900790151671250808677071106389752680385610149281650655688413613545108901818437294264926679740516540866834579236868109385163944933779561976738260795676997553860202004047289619236029897021377775650933472313926192707278569861790477887346912017984764301926177556847873777039689140856149045763177221902014050720432548498008287055812467779281528979599316921203557598033014153041725599978640064315001945964558440344577321168108384712998907339255326946999187221546302564445615225811129118237408101792856089727051087547815467327413409903977122085374387448478970635129222872549438346174621011743212458371930738014690107305519041044967553159106238921404668537590428482282252261549928423391265054256311700574801121712172416015428557768565217523734252972404855032040713576366166212837162368036180953482561869066008890791169474992803014453535952334531561818364334399367326493085623636640569428962684587005868486828150351963634069166174489321049387435902886711626936482562453168439803738592356400422845794147591855594557382874152472388923433301362346060139278425542858155303985209912780188278819109305595895789364776541115715773014281313894251926519702736609096162195518763966125894437783272949709068409876407676599206307220585549978220421332294281454220676810610614860228283815952892101358815161245480897540892791371061073074981460473978008789459509204576838358096560217613037711622921323208536910066325816168876570389334769309182893622115822367112104458060799891950133779354598147345863069122484353429888890151995221759759471944984258802405380902203887292585481552107565541609819671068293948098988055910882479195782168368581846024343784375665958066523791700840979355847043718484074613984420292622723597627928702421170278769390202884053167194662914412084880076463056038077675236895165140320849229382470262533146493741064519977177147583110347822527408998459382887735839658303509475347873665979024884604057533754851763710051245229176055244644128837396339970618182437785309494597649654539740003474076517696631228289782434963587403913913460538130630343448914144761103622474983275743299430811195273855565027976035596378316256366523775028832589127332063516208998695803876960030149014092567358602924193040815109415940564191772063814332997761176749741477344850896929088015617513301599122966298008337595906789009313801273259925477545057361119007229896858105538187628241900974042557990312798858462704156373806266872096825480148405908576766844425273652915155751230216159494001448595979117488034721734740323422107902823660050270111232169019205012884289308576104992050821263451083793330906652956321209513011529068720245669886998736895921585050983746078694705562986131270593389986194367508457467588159842692787187605368197988952681878690966506681135382139854940865703980514891989564354967670888192547502412222034837442715954896318208999868832669007927706515400131471420364669445216489100261888881774360055043139372604179309313913206655471599905187437617504763679696050472004302266762910317599487597280433528554996107399746846768779554383683799681059558336834327238229955204301485930734050219871005052291640924017717065893168472165419493886056811020098877380896241090032316183911641818145752202056187401835584637597878757284001556454106978226837524462403832846371151984967124978918883022194240204709717433482983492056660333827591770050932382831560446107366405007949772890051663294924400699458275487475894815148364210482950510182290473153293938749718937482878501957587402249307742990785919545495980257558647020548634097454370891333336284533683098538813074216593349574937541106766854084274171213101406882627240715873008584190132685643656111504852060525878384502234868429704412052277401578908579129426355764168476327555290474329605458274368650293336913404347944013134939786815239124980066352090426619482039537448026741134402629398601787990813109614794886449743925255075963520426400513162152441087877316746476572672910755349617740989020291728945910186185491950782022688875700662932220215845805799825334595748607747060951671068773455003890756688588550808178594981537341219895863883886048735334789448444353645351793771312680741924765800717538683695627489709085469105438561492788906102681566735504671135847813975674779812359645489212442260002704869031860949423805038903683136157099778173070871541617747550645123728418322395194913385553860342188277625061453109332877987766553421576609849759310158202436610604672025330155578060854493851331869587913739134719682153761714683398496140893398440100957102691495563444606778204169646309036613973578207617522526865128460210959964846793777354341522265628387623944600468642379859939319176301134001913389537732118244113854912899256061069570919717870194589767174955752706066138368639324501960538528984610070307988418947956527796789660448619672825180390576084325516472424240692349365316157589971378049106831433043769888995518861679851317980001600468471139130908866695194675006418821757887974123229069031120635062674571813327242007357352313034756449141892284016905962426559437536992492704023687122659160982504980987465591749142043676234326110264963696915120922910744930159515608794266025279411554920678411622212365120558754692807266066634929040184199020110103919208401834821931798679117438588905868553053517158021479914944508742412554874650117631220875560933669754486318669808815620696843422204905512357345632410475003580242435483055635033231155649300102104648444642075973321119753285970633208988585575117723029138404633859745605083416475300967199528775181508657793299150072040180762584886597645089529888607796679694806704717093192575041778588410921871082716224718447415971190088141213858290136189106627600145614002913182028321477846616907830189835107896432626372574191658485200011222236034717029252911686572125170790185727142635803460613582095102137831330282495986773826697532668177736467069237209618888949150579354507588602063911204580480490960517008301786987653630699937457951933280812305563068307635143085067448578016847933547042006524621929518882910724606760483695038086561129314615234978572072109684955274803219667102613238744380338584853237512284875571918364174767366054073908080125736472066868209474962983066764959385853609133993610770659938708549689693616517835558274832231544424810329814163168129210505690986284949595124864478998617410600543021123907753524402891926658310277262526292554349677134481643503656695213933014528402839741776537172782568713888226757925072589771906841893479228484434282763156954080945739195428014183445093589776659606928149556033330720419513038506601621741191110633425147980577646844441136804843568248719677886516281015893214929655632953583206622826165637264386620591477179017800171547877749583108995880138108138944615863641175481939717170854710115034058460167214163456558967286690541134059427502422850040609594719663677443604834936907669603210820074969945952832091728730960348614549174773990763892939502956650878881715970372766798201319897014085681204790893842171479053409007846311739568345890916757872744315490868804773929097524849017567364885678057528372901112081198472920631091569418879260568461286499553710681222257034126471207373602119753601796084839052286909460003077874120686605931053201290840177336864368991936924696372764990958260412313695398861392121701814310201350486286051466968742201017832566021037802534163681893045611096648174831382861781767158071897940808350149064823950854040739908283457695016257411460630087906510683168596027462247804195669723853819257326146403537848255596044051199847774957900995041297563098411883740277897005270478854176855986423615268090887428521406655334825050933148154875375285946449183723458101135669268709651846303012529033113901103385896170027068429908331789290677465440315199463502854664651403615874601634575411312236184387786922567683790342842918067839924567745438072273286277252358770733331782289399452186669194640719086919257331818330602490129846860795637384770463586703664840766330984107095080995681672625620236740647158567785798854401902233268417821428393954398138426856181683097905519517703051558757913891449904779199588605314052198043375085688637631759458905610267547094867089140174178599304514946903226040436306909227999801075522789442465152484739256553811238208914503437711806381039547990721735759589748886360777693604485391303905378992295554633705525805646681749501113398935118753115757086120167601690116232758421553546786833868544412488756327981550477792970398332108331650196809048364595935628423387388160807721860576006611572673307903644476386086499409879376888549078420009435268720878561457745590525619910216163385956030932025641679613921729830316341533445471991177189457904731776526209223021891793433212718235216712830585999470969779027201692698055786163303955275273335139083415033102589483850048286473723408794032588983467463052289538778442213426988398066790808758161846635002979922128579419504295760802126223760986568722049919840234938153600803190019867832068136659397398249980542450824726620130016024644270678311413452242738998562165299117473547015472664855260854984798441586460564346405230524808277462674579525828397722444422098803079466772666317225653399221258225987459428159146618281046354395802711903244843985943750473414937722030269348738881389316354316103176334482820077620390230670430684762298046918577084746316651489518053524592120993357500806344800590695758266702881167175382629054570769763591851420516596192861918446121300719787404874562714120341309717527084325977854700063931624585600545944183926413556121668349384501005167551555690861260033577911272003941756839650418581620180138220753375345724221135383180179900301541370681342738645469683325241182762203769769066053251212537125980462070277289694609827748202620740099196376666119480830576381451830546732523266672826063234126621300189073290377310774630617163791511254739153131594467811354986430415966531929290367821348497788327663453006802437026046033104433099530038294185895943274592299294862775510170809183698364984554384744830784327640416456518224722794018111725241783339384230372373862437339626594032976218408867359101107787601496037774940079879154761237813701708792572003652191780625796026783098183436478297285538921598815954826949028574280400378163932938529100334988684384059264786753404700691030753204680544224781378126014723419424573748671276238577093717640000100633991415396207986042060848229477879200430019580536152264707937912855737545273871502700393119320070319156029196178427712096767871276853367559325524159393708054505864441620907603180333066210202945755057716828476691994772346844909064142564135529636556221317987583901734134387211386874158365214895037844549269954766453971387454506264105518497495757868061322834990012829718692225630239089487119178364776787889092773883607353556997302335211183179017652398329280625448933757265934139582941144219152263614126720361369091488489216028739203479954301244906558196292813073871999166815461738413673282565275566318697324626322020106789145802412462218655069417551039268126494371854441980684610371643515628156666629994345099766437784107697459131033172706599919818086342629633865969003606043864268327410781134460334311995076436843163262883926373998263461648686289962934226823443662333193973087390511929606208753670801748706949807666044928789134712247737303127643037370809828360440816671853834463338773457389914459579575633917290120051162494798095876197262017295519713415565525329531163574405575846885802450720379884923273267094138358691180182395826934679936255915780798245912864038137602435783428853701223242772829337993049889630117132679215226330331612813757105045636033138670545651559177313491583768461956516847294674798218277839136537362721890640420990958339734206247690251028732019031245188601529982208977757527850271799421423725531073677930726141544135371308377367250812890792636401197782286144313304003887450290880443349291367762351350722576367671097670269835248787913158370601667859320636372894792367658208362345361896805370840498591065663421222785408366105817304280839304633197422932458201563557572167702138969946308147924382649282586039449621115796026513649703656719264264425509810899558028100213246070443159340642493027454603128447088124422201464661947981602469262627449956135042820640013468820589467380931833334891017293679694829413689100128254031710193337456628516308698968209020608822862871964321574961830991468075195856092428195758143597556889129885228665916858276416964051243054608754283576554719971597688042448825981890059648418135945474902565631943933571253628065487247373519750015009517288274106182998447104349777414164120708632704342937784040950275688537735993526465822660183585591193706686904221011867884495626023663853804623186514681545068031771772403558566807647144044279695074505393383213563434454841303019223425756481465344812639871236286128673769387162191331064698917642944688593501291836934587983708966786273927303336457686863358141196414664059679693971825262378688198776459782353362084391505174927286631614054810998379346748005653710780835062865055673669345840056332388871216598607153195371645547966363223280218793763176599835924240996073912326079743279964481991982638618761997655665605831254944797627030192083030165459853749181736388686818375298442568550488500929286595699635670791876710520729410572476636708629543282231110394696946367583214661915699931335589477437949327245340158933673619034437454616186163487335169003882059531273435719083415569048318843494021904797280716094749927938779940174258437381749586169500359202413363539902415234168697726865151662397927992365695244898141972659604318845610893328184126463817252002021855189395673985004384429923746029834358651839970261728374226283851703513182019939832162317280675991408687361049640873090482718050120304248693983880714656863443941881037755452542545163298804915476356306127743155826263287822531413524728728651732391215124233871177713473851347650214013133823663674775751809262074566382703177589831144120060924073704664707629108048300600718812113296942822787377802205929524118078509442002760956540675409601266758400404375153308363905188916858969219598206577664309342926402812837622351818607712043616829443163758394380149630040732203851636549876843705785360749901307762700092933918050727097798903128868981960833300678551796899096319974814069635731239697311388176583297072749471563519423446773295265854466275887300807824110746301151510860231199642861847696814397917978154224874344337452951957317364308445907885429527738956924394409079349809967602702205942817088252731135928016385288295692703336914818294038745529741275266480365798134859094912034888798057815389222725056281389225748544694623529312496983111567285214083697344792558887129790314964921538559738426707746500159265003209954922297256754700288283233643536807354196007976719970616535483383038077287226805930597903399177726928770006145502819588067927976634277155145496665756770037280298372131225501970996700031169612421282899600876342723595337880789216287366287727140328164068327700360162237968434884346967263286730927135687535792063705062108010261396067591112196476060453108417693841407463925112985471083448525651743002445854362698419794154791957889021175526975717197158134466505349804803334989140449666060655317606357371435017326814619484028078828917426461448007695814296794221223872957103271032067482342673603061949394483599390817166616945896498698619856717827845072563230658707450823047072747176933392903747509177899922662202908705604700120886302291921408802045948061873141286810124783917562586843526962681053538790411552517992586937063337078919106348630058949273840331857244154214308284561672048331531814765588126370325008840363240864544584273318709697917659617334322020576639899672297950619144107360317690059363553584771687917889058162273368529543203502435277516494772407164089279983124001360668351437334274652666879217055210636201098871248512591559680469726016228735902821031740046519220500979846362713947657022166087326031417883292637908649300864714723468536852983653313763759306463836586909296193141616105852421270349661130055334881058652821532211220113777251302987716550577565699693712316525266483995244332957122708642272905280824147207601621939079332400718949456470800285577272608554837101610130028339986219567138080333766451892829374978567669271913884141476742504129655256661433750682493360028371027028821992932086866377399685440939376354228838568005509787521652008519503633927863848768774491942285807803575658853906816470413201952602072792842541485493722145646768057022831511523831724289066086656369244028329057069212602437501207205372032248308554445922664947064658528019644823121510193190701555604644650335918111061414602074476226832488369206182904522255642696626053728326369166305294781417560527304259861428895309813548803004984580688417539586865227607760222609509589697541275831464910882325883751341093246550158159624249119048374243252273629230744741052189920836366441458741739141026970514786955196996578115172216235743701711222361458020239461839353869356082933116481527558894789942594312278561101221623820995621955578102774754122467908560026244682533758950151022922974992652232598285411008408023177711030817168899329602683517882257163277625147002377583475410461553844066258384309292929969032053970346526101188690583282964646296915784753968541534459856890488598974322668465468699907297387893126388863045819183416586583839097221025820481500840962376833403904906150813294544242192263531832453905246513000100560878319659654104816978995047461809770845537089313947369540031771092711610138353999844277325753328403631372613312792262156649637008763847599106710940456986155883981942216696058340339932538504963540065079817830437318598046583319196960118805497456287234795443569643114196914285595623191927641998690928021293086858985980082590229520916002096832993262958500245244590806105014576876251670356202673753878692537711478248829142266104223088127548094052646561140939574149592584563561015377998588022298362124196871069689508414432636556765045302078302249101208648572207140545746208482434665144913813265685790310985270468665031452314772768742020683067706518713888634529482983345160462577059071084212020708095309172456667814393769123764980354657188600665623476297320459790564317133416290897463745551952560944287836452416255794730343432789552951082982710818345773010783924903295545356353994733562785580377982455558186964955736555213724034804702136357874136001445838233251330769281293256520944248194345235258204518964417813693944972623638159105497279266110508888347679776014599466231517618794336823930689894320784286154550870684110791101039943045261278673434078835002120301559558048905308773794513158347512485666921040802669465143092170306449132683551929242911147369341884150719302333796351552899731640322346059575421914994161309870227785747616853792264576664602622397923433157437767016928641895628661929730681389681112519144414388075324984699804287132800896202627723546752335708726171212091709669190783226188576226344482551425825304830391886377844617835012562993410842015307965593752669257566633185426632994384623693731047159782171632720966154164413719649513434207616911072118399376278370762485995724581078142278042679250237881102444991085686300494692016453899120728765666901034979546951437572624452887284767386905889916531600333961248037578022622714699120701521865272714368718846574749210884369199362120647101473175204878667238582325590612800112046798325253290481561424635115678694711813002087670161619723055218509696147392050500051360875155755484913945294239655747350016489284153636800460358648489322785116090478990477690335110854990987792617129718416638502352159700213069425111872750038336201141924301647643450234943296099196555834758087270882096231911893522777322251013028588453669421410688106149481769105435938368291549028792081237729092845089140900346701806164492386926260460358920165696943897381944562710717105719398191768083320285396467101434161750159972788861802566647119266297981866310509847483725149587892709210996044180435693912734281747495736937028632047806178646439603111824547737503795598481039876553377357368722575131752206973617212175330824887072398169604580762365608058901841332571553995986492206621074606909542546502382108964601608615690997386234539432413656467335127758650248066060487493859369255808398861768588488554597536138019281178257870352856720256704896842342315217133258077133504429298253451912944834409508243641438787844051138745508261869201164820689675338397294316646763892508979840410088543391385249803920312741861534413674017384248737493601259829256931406324121598310094193207088268117122924267487323873513740244112976491418216605582340971986131279936961526058083314917535331665058321656565758055621800581640592658587850343163138205167012458865900587003308918415100679016402121121382094229226916631699977033804507320926257373025920620652795843795654178694641975793959511479696466286204963679750860597439001075640440590983041000457754083068008074949263411373308991328981579523466221636233449880493782516363954412824153447853562640088640498803167269291880359058903004891539809624223680881975435304921334278432804386518076495174810538033298335327307483058519684897318421847652913683042037351473622719221598418357565965131701206629676297929858366509676116334140713096449121815587537474541067630243711705927431295012207152615773801288358164336482312086621067347526554974315069868402198100580498116456016006990030036332631953852864846633572937777837755275456842673865385136662199314153391069763523514450865727697466556661448557142918626278454804528238798686057698829854254147964409201508760904573330270328127224508808331241978112641501682861182924287435215987485160107384317972120698008170868628976944343939972879871625019045701281055421692355062759440270735637516293160347694515169639466738331265923204344647289579296337348653033621044463627162798728491887019706315989203012571001473846628657515990985672982044266164229963781369138968030411298926194383788009942775737107473892069597940417661053843284478608865584854425359205585539192209270152874145618464915775474734032997220629149142934803350659121705479629222786596525023649431658124174276327881856724035630045634605467567147481302423262024445869351404003462443632886605840664977914279634995011859035485363923707960394563658812006253352983506904193572107881817721286637261598643734646077237304689636216174690126592504742601225592707902893995207139050217134792637292847166432463862355948533337886846076941068122652685072846151639409829095632360449276260343609816211497180977223853395729940930032740163140270723936459031899190656839866576624080921244317235889438203437188346231207116944458596809123778690153526415501110942663257299137776875467683260097182258985526426105254075304193573166099004127259039124907037470907137536881869696567376647287305305634370884124926491979853532806883792138089699872202928779060088888780940402862307080538087981244562030516037725223654740311763104800241121097411361299736570143058649752077531131494688865580404635371075569022319192564059580967058802550601320462147015875123154131033144349468626279794270789953885030690941572490916835755699515437885980598329395835875789839724805095424382046882435353515381086198660663750173048714335780230773769026644882850223445198576968823298639366336493614817407278072135848820894529770482198000891867793316351573466106822903548091808652952240845928798651472557922086612826997198943027587276762227361365643113333565695912990765151293903712624129838366036500789567845098731119559908015037398837842669533363246509353634996191882388294161753012486689429746507223024390988379996803994089139219345406038729304532972903578628431877133392329660773648918090443500577191936244909348645919674338613424379132105684635365398045823217395593861601122484108075468061336405334405669344932531098192621787155627330060836560410310082601936073511919098426137380167233955326801078029782044985752275353377962399600028237418902035125704570533301786581393159538412411111838311762149445836327874507409291636546118589667437965312865801355929850086399656099015272611382680254480901458575294535739777949788139794652856692170544988898595970196188393721750277997060417395676144196543122728818013432622116921896398578971789588156074635184258240501955068642326925382971663144024143428966311255990622467334213453374551259101869993521635027006707865814829407395186205122702008493977516237399963664286917098394417460332090180445711996742940603299473710019401153230406401250732483216580081799558444434675798188116301505624032471343655134185181459877595316602279169168845617429996755263495644527266883198109674862915901759192016484250161791304371558491765526499480596235133250647056343561399584227580890411279019570090313407696842514487276257190722746243651640353714483283342238464752543662205087349492889575709850782393199395422132902033238026614703992850770955978670018016174143881823979940659322874312545243387513998002043029054184754080980062594198407540672293518561792421147861904235079585038426678007283695901835480238384380032270069182324747414511397829021713163999581973973795671133100809969227208630590874765520350444137346442740193150784560681120916546298169960476574015053173789051984808977174123929403879566227666263675391862666842480533822619113840292819803589678071236190697596662376824272814528749278940000549327838559466980436867941117234251304669709142610699438258269531596172165521708365580673910644430539647721888535041469589877434740962975593531117492511578900874667741046967763252754119850882854719624700271860712912519844889291102373969945388472832167874580901296037058860339257854789514860304329149295836895035101293708587927191379124716503925256508789542922292455971784728994245705028463624532164673811762058902460732827428672167420377322189037374039002960339186574009066787160985265747303397787568857557957991168550606120256786340383481285353632141205534245847782528557492965147173444307281885221863615227127051511352257340592087990749202418646053198827765612932500071952232905811574051099416266647657210279548855084123385922262981888027224460153059681326547618063612424849973558796464115602814930030628870955182869352182377854389968211192593146597646272188187435043536364888888265400117409683533823849737767362670238190513238476408622068360348548659998458048400564664182550381787191235668549673738215779675411723142919391514613508262414990262289009020229488172611496791863950582195060005272300992354088354442336500832044886936029232961281140442238529343764422505468078482133273567471863657900975743757260939908948571330340869657527326904188678156800772383964970641700311458458618436862715354866542949517791954583641680093900112524639711911593822270397067198122808184685132971730801019593135042769964668876448049673821854437255740729762658513594066307636096023692877166856482123799836556936089709301355526044994198703793684911538095373475933186000218343181231054396774479995829793737212243959072550580800851129392235885136173704536935991082169144055894847681327721871649516184960793364027324552900936921854119805492403039278946926172858601594412482382164357114035371968244687372943065151748740109826806406663870493418642414380653938906315004423948506640036535271781453908365273797561866140595305836990706336020561730919177806554007325198232483915564844338262506697637842604926699369379801713034799742367828589163247898879030506724557162938260655276753728898541831782056418453467998933340193210912458637090537079425460139700210659980619038450809722762496039081730941050679031105815302238401232790577987770504295489069550950140699145974069048997535195100662213830905112777182991179816393222770240525860873058102709187168519335591828876033119944778133057284418543820303214092308866184444273300435863750528400033876732132127707158198808246136700617075404877649878591461781022262535341806133781486347381415681414173152426461575120624144817656400242640705686500801490984069810580992849377856321764590496395546619830196306954994627150290503997302698585900248712101814853689100396390278607533489302260603617819087046808336980850184732678325284543319983300732177648744353088582027476738547822836700166306193119606725811444020614585747688550647267873702106684330291325592445200299336656604534929378587549943623744071592115456253223490089168572934964168750238745429738913031519350916514196884327886369131649830673855232747691071888621189160310629153977024686668581889056382081885224943769812424451983208196388717759421003681907715608138144319511269284646247470274603438010783574792926581144881293341531402552842780272623633584054513118135289120209381512254803959003037947879420575131864892013857576552737873378240932227718473227917790026732169254538348651926503074621846125471404991554674192216724412528663486323804992739140737905752033514470770321390802862380973038018567695616983909082754456211023382099430859034190669724460594294489601894964670236355466033512367420894086818364988679663488520000207798329596522490067642845520097550037614151041344359239000040407872470413548242492169198784548720541408260243467740733961130358216004626786384925456639914713832204370741916810200301943888117344464666241521324137971427808262282148380574378967100550560293503209908179797959359734812566170845758100676880806225692417144205355882356951952448601039812272473864470230893256416378479089769528221546408966359879020306260421779129509925916698272522663902340740780328823815642754804198658628076914170189042025404087604461072423040944901375810870623134949558972397226823896871715764928393439602827192618790561847881298766722943891517851544498280071140039441303743242486941582428736311458841837174156552722875847672539352151990611781493894972345694475999812941576439558200009545351309719299986701696269414201954446362919593105752370802145626298836798727005189453216244269658333826238371935013782803718460842816194070536314068440192902253820788836350405538960188990521283764203400688879760885084084152635768183155507947123567661819783665031004599192439760886943408804583869513649432760832205842596425926730125295082592562598647980648093031583422510747552854687877309421930881618114188818180852467690321184296820982593907287586864270730480551694722202924758773149461541020940686557122589207564794783260647508132033080952796659097687469778954328084468536295873272301953888199872043582526731599441345151366062479447970000498606935053647232668941996849293316453018138221920794092084237596228289203235996696393793057945595983499288531849555477478895269006980119863413907870445345569639595612344477395424709088699785485461478331419637662262238143974644565307326646996921232268977238688791776474520219751143957779557628124954057975892640801697567233053824065778401549654054857765252120716273536908820737967562819648478709100551962254232579948164674699922492969721740552096416180264118628331017850671661220425108789408730269214749438803684355648965405507811364371931470509799522327349366886775504797403334711893425596668065656503333343976300936082790679576617994905274703253840871362628999393711374217018695567561427734334931849597909978851513942035790333232284667438535226263803475551903835621068517863904322663722852463593427087624434516675513863532442024574899608635042103566321812038087012421157065450696018365939292602091768061380101867872662083564086755030176519159416264546469662622066513840060327055404278161220708147653024921302502948738016388280073949053077535232329989416467583865306038396646216906709896174906088956471436691875085476892432482512100170848954911217044312367523634261049824554829964386786738987179084265381612218077212342739901285533198198530172952778140155225943936530039667612022812067544973279856493439147555059810014037246928624466251181993484184177935874056411700898522552867146911884659865504081962117522543946406793373276671231159759417878290976773225268084648883183468070033874811604333648762374506760227201987080327603885951041807432089617307825650876936726476616456600249131247067532082051048902760103107954168590744965720416840781417025729949777285916943316167915794370788003416491786364710194809642428545412029676906219878819865942439436312233840293810057571518394167297218636561843891000652178937791192000214212080029544262785976622854597684940632698411411357593192367709484866905705522628177308628816342873617773425488016901882282594625358766331390394266853147872495122342619054038734628554277352929484466607872676798811053273106282544625612422868861402239528852210931183666935749187582288698067780559745501532412993754383061206208273325388556835139062826440305055548756397886515123978466559581272831682453035255219703555721610522992497566075312230693873582268107735988810140286260718046740054408493675020911892985695028034500927741022795483565652022107266714234575888941839619030627886002941809600170342850127482029899255916374274892136631869977445956918676906957646972098361513916896160991910059183920461203069332085634609547069149160221758932894835414138339385845425447803975850055803992309346289567566468685988428690203722678697573024443136291829102542623875547213998586980716406137353974646058774663470890318134225380992698137548504193866028531578210426833368109390942539874234806320560410608264253279243848114490092078167339299208462373335466758907824763567232978244801790588361125401344277333112772751453043715529888503846782904593607963609894593036350072824126961568849363746091625630795347395312058922943034850061462551314567928121331645699411400940556466494138554347953899479196439098901124977580564158606406835384221312866790962995452347473527554603410183242263089323231408340385128079533658070108458658918735440321911984557263134063816881288126282543751168214097938987393663724951518513113709783259798108095890844740194105739113520523738646434888722387003277702658737651773580063061094003636816992798504884318560837320055150083135253050867381192588826016637264280436492961550320054674759804489547858827486421880726946141157118834932313546124816567903330513986311407858210532688027969524262394188759465406311317007550911834200410107387530346226747317750588649865178582208613772922851832702019571792368116707948905326597531398467522151953699519013002221132929324373434309948429391020781008427100877270680597571839532237302426704308120615497751963597494929160494440087895110708815557674788338742364287644827562447182511384829689159974750043193023252172025686219407865051418583095067083912577570149944690593092621257656445922379567298960613863034605693481941771599220237930960132976776296251836970398165523625431889752556794479034495809551391421814950950027105997697170951467568058922294962886329836350665958890123417491731114704639406777086862978940230686694421618872351963946331257454577477996267429597611147895826320857452079926253333553069103233211511539184597195572268802166409755242297400426013900329936683357985617075341290229875937983143969848030249591826528549032786878578410357316988121337043718488218579419862716823961413649678961140298114318094266132519254830242932154774044477718440785552897983943906150778526862997600718206092443187634918537663147635702313700723533734586757705099426164086523913810563242744856084496231966291178024007900619558918074943775477560684046415507577227443630847444280535912580684029464628668752113796636856536327808432243468689961224666911999986800821465881100848459540907395325871337984438822539681019502908902487306952808213395625951377771791998034346924054083709049012698661195080266132563592787599133647906129544557534134068222498203468276796717519332499046721954608723192388845531002351903694142262029945305641095702571121874078939374695040749688299078704100286162888329506112261509531486127257475320659983534597989613399453674376590691582571218271396752318592470707122695536438688963674575378593018182471792016110355585712903116734690678817910441405211964753440300878086590402900576479006735173473791965668561890510746668344975244144115556359599856994556929646277859169497048489530978469048843113263421334325082391403868423266746629731872212354328315321311511685420751444791011035782250434801568862562524615033737533717241348608482597002500455770775338021284767233516428732247044697061832945290396629200500888210429538494131513929674874998986216520988317564649768773385277351708976435456521461167543549494993133000015027847050808459667189700949270212797162045367343302919457529333598365875093938181964518697601430729591995867813681432473147581718374947899927643080276736685982010140072913994696465394304006353699690525285469020130444359365559082645497509217233081697282342209274201060353826745323189498768390026555060833863098799006561731253496147511631005782059979868516478072067783004160420498274847071796367797100699842323474686922244550576398189297795272023049655583653731286474033268630278446416870673687009195437513741678088403576290254955104761002044009335460247532737641331502121962794224979286658771289831384320852972642332371954209576105368718199809823224411138218229040235998991602463620207200479305392717471251656074755174957295344743730379148115652658505975157370606984389117436861634447771428480446056663595398732670293639038270610812283188270371561703273950400147760958120690552713869955822737790529380025247071570634943256678057024266501713393544348376370675287157115037280875499926466280722045706319920842059281620575474816886186140822162186788151645859580842993568241538073782822630130040001936029359037794351260709541598809566727943230334489783917661286586990875270786368441222730240923405352046238864429913307860531975384658854155995018301304837273259342037839023888954388104611821432363175858277357615131509491819419060489217843139745257355511754633590024083741784543987132159488569121998983686024286770301967726152575904730132868898460418387756955706420709507404488736414672457014651095382834848272127968296949569208176626801786952155009929070748555340553865474516758945616798344953467334050687172775494918795629113567160621125841201976550412911072945623898385416077144304750808853468954623315381247456254725591363929034189891762745302168149449687466274551045008593071844729714111035053041172307932640475073085498737292169471814105973716183344774927329241605126688734358580557620217527812558985734547964820144623753906754808876043754906197740290596277322731117981938444248323925173165632056999521490270019904002689555490614482959675168428069331568855446594802992386499101254043760166581220185970435601615524631149218561136492682881033008117215251189698128643307822016394335796490782231457293569586292560476457915758409028451106226070669073932075312201856603585652352666380777422560072259000152650638104482134004028507741688658621155913117282059715655290946970288493219548621807994867754891849326746175239773450892160809152183268260304913308101120353777670693230100686244822689613067409648728741888059686198971212444984410350046739648619102241745764286723089582196105748947410782476486706338076855346566020420672542022873874697652709111789840080034110776269171071684118365284944760438897082513311622178992477355934073938246953690791897374217204227574860374882469538289667156449926039063389905710038177919368286833845995182338115903534015242337783229341591886236482899777847727470213417801191914681462319371886531637184338827727599733046910523271580823827394006680364402388114618276641172286715624234727663978722205912939989442896694755196382167259957336553216494125958947782243628315406279039761304589250613231339059493116374879817291240070109057586303223240340154340286019761097159908689722510062223958443711265937059619583431224163725692683541949650056025820493603506758765836700746726776724194610336115928111876136953894335989686946904295769041663545999101330846455290421668226681274230798373772004400409767111773408398828093738936545975705290944321779876845943898880477409568541200021659830979443944937189896568518496372236129187395587987422064280209614112194774704149957681272557660466558415252301937843508729143207700294957744147287366496518423057510964734163719034023426484499760626480926657917688392385490565724158583038789355115919366721362158519443958756001775630981801136923317149895893483484070059982617824084239456842868520618479629530245844395871139889401673748283728480252107180846708991360460173518701552499248086433847543200587428392324275015699440316687695328690529554629211475992660649654842068644595178509763768019812929691630052725441657243460894805625623298684872152049016852205426866871180298499367977476282637107499828181082697682659325737695087428652255086575958831869355806652899862095934319900456286153541637027405074507572719947032684041579919522993209447576709868499263680973377991411047228450493306680388552771101765291582646854252318579663177680043689060710449107947646867639345400016661999079343069142327995389813778191707023140329759847956397605120631498756342825467855018348361626579421164231435794188608625674589578114719592684170944165963622854051719405715129551848519149522861796533759601429297826363108892803253560984865857475979294504038734352529496330673873480457123486759094164319661203747872794753059205899767897549561139066011091075760362623989805052051820878953013201240600516985271584325477687054083052471838828866833544012304553352988945197671546336503145647210283834762732453751281918543895104367530857898119652942766546350647512078848945284792496200691264042781508288527198088402068655487131208452380867631145281315632396698862935029772158708959203989378131373459279154816768511759962513242306445239802895318471673460275055249334317643316527433401129954872482216257530292434688422892364918830353660095968822139040960117322858914541552671928748317488632619172092701954681644101368833002482070695251374191799368245620269415265553133225032963854418176124100507121758150268558015314576235786535049632246769501728341307596073123274257887344734628667049970361189886403730912395637342890001809008860564169244504561012701332699710720447787106065916034639527785041613516291495174679301407402371034144957019467704853963899646520516757512639399216282149289251898609717565674485001700229564251515275236276798159714932831556527146526245852403284785910193474154984282494353433693154931471208636102893683021473547452218095357977868562339166866336778579284973654980084207431205713487350533040438200617717608588390936109884706889720060028695258017008483283528263887116530326453710639478995265079320104565230874771944497401242405640130484355046692405773088175611912902715322125341462195992018368210493890426761869897527755607229281143188164484228002518329104050373740330015659824399215144089905662223740802842357329223051920609347839732708736103484179365599972647416938361116892137829128960832367670161213023684991222149254482608396599305221172323699602522493871347959835235927466787001478235999227500280812070064161608070090750298844157669113145158983732311383951872933787524929827981063966795989777034096885305600619868483990441265449895218081962202388747191339496838740970903892041769705715893385787977230932749275368223250938114106261458257491261360113437903304300091334888500726224748263311455549462882445700071896302342866324709543281536548654623301359591736932480612408291738418435206199350653483095152990197747312264257577384810621012093518981112238136383551176345534643617503486989974855271040389040735880982828481239012568140725460019068700617332818554840643331607941303963409150086658057752911469697705960808380638289113555846335247657770545422034925281294109679427615293565851526546491687206125917995481234319579892950874279589790154831910680003199046146879681730608538291034548202452817296448282115215676478183345382337109920933746602463679055697486013272959121964111352021202519519352633726006710111109460498494754928440716828485277316056064788557090184751295973709524704494022851187288085416074375231476272179833381541444010773531756286683752837279661727529634427045892679040448687646597087754335774450795771137909621945861701389179848835560485238014303313407635375647704781414151905192982466819224277840494178827566979802967478595063054066498824243343201373771955137297139980517495951901229325613901172400902343087376664882044007958538944533187930228896235752148343933280086363388114857183591113497339392134673749715401228791700147205499350560818772551092328753519650843731897079618298575208634376737762888894653044210744242043910759319046963294252208213966384093535636833408175006392841378226931171557366696785958431487241576515528974010293343816775772657263214891953307263257480182316707824586085853386822043039734670663877425990295086585012232306098860059377745653462054494571495119849216499898323968465385682932028248127433171876472966586072146443341032747780866785658508821109775072386631681822384097829171146715771219499506042550088050872389400473055181147490064450824662591819569295703386980410021378963670563766284331722612404083458081855116249961908048968085383372657432635137779981934684579829806197961032710252299851086709745296640181927790822360571048928545070723950457099768719794647976327185080353142765721920845193667703121281287847328624219200424260275551281951941751308929393097206126771501545109543629289453901106099686024312568865717188086305166512507000588547749141247927232781146578541149773267987691121124409705315957626830578651548152517192884490520818905917036769539442838880584548664848554067569552525894662064423172407129720330354100285532063630294163946100192744043314274292774144392719193395609789043977048441212751323350160482750374797588336223711970082020524658764586718529871527641798317067673556037320586231191134486861237337639288104719945280400434854208752768265673977216119410273030108008003653186383878189239832218178523370073588341808113499781568536478669513269501813259796019573066859018585731891447168619916219715572355093353260891009308214203575831907608967308668693356147129244464909732420552907520882887485801280640785451962651860935623400899613822166678352170169583706176648494876075796405715943438851707958795058936520142918218977780552351346599415484423411499853028684329875629778666277091402937975504532564976613993382166238518272076525166135442712599849359027963435972658053250691002534043826403460841199898014125497350336644727356628372805157305745128859740968943858296045723849809013048842876235926201354853933117057861796798773647844229168623995196783887715377265611476122568675043776873455256560812424342840414746317296087176542756099681286493500350261828747761899490594141570409140872763240922999183734144394366237461358497249338469680161588563160882943900498470463194638144206482517077354558377644825889933879756055878135930060836455880188607696911405124975144025112552046122991923003363409712152694714667259913972085389142413745331934668348021751388169042932480219913603825936540123085155278973450354679100260918631271508879404495240571871078879641730298249349071634711405988901568731988970392216083378832833447286938204985122693562716061551863850167577316857796379229250002552508888989138441589554458107603757310088873738445881658573966403664862410558646229261512376996999694676956676581365185730510143459605944893206165946698315833531987969442718304883499738027775997029497576293806910184687547304660141440050469146976566195643216236926317638389830770306457080912980113594143846289614499688257058237194985126581623803077484730837806771714789712436381400108250791916199029406242500225785123758730932183924222845632752575682158908672638738946036829829055511396768395275750312655790295150433918079076629269014647034290887427794826162773394771155747593946738268360349757353312762620592581403181638214249245638952168964590144272675663361379087512074042791281634788431932859545170033789040047606288222297813277539778339710323831916303279615108829233196715984510981985972024124954367289108980896503336568978422385310556822857280634426367129602762453477804141400565279487406119318625536099231550046667229299332980170727682024705989521868753206159830941452531528375738661743491719354203553721790659424236142738793558408258251789094769987410005612760156625483610168276161914921198056724213071285806051323894617577177327030045233205691841677640126804138221719658257446603605257688831094105443307080377937724773682048910260615390537212701795131089553001089133134025516386544943861782518317620093977521235743287397746441841966018136847988286213063299369951704514852022258770927379314598715045771064412579315319526766346822582819264912813410371500688948901399592631419581409265624936869718231978337669388040342742250339491677203140357175141341332028078773429275712550278616212453169724589058400841565335732913333153278389622711021562993299920808785724752901744364441247430248634445027491359996368287853015878546966976623071708040865901221510695996888242911448661827157373083950871334771237356297635495101289094015348580887089827340068502494826521208222068334782189127765680926548819096025780469507223440520205966054988261551516548998045589145801238337160248901126223958564911956825949545110548799654096250805431609202660978416855116657999061559181462723474117162654941715689272575016709034537948195629846160265258704995247594491767410934950682964616986090884499210261814535321439156623586906384385391016748740448884036759991147735109757216062259197773443412363653134856902496387420649985459602226460760329211779123438688597664826567691640332602254838017021761745742211463987453210676214141866668180890571573572115448358196325135714449374553531799634314673866936463839458175725558364269362392418187000140910846639112998928737069123376353742513318469651425804874441431029409346250639408678066018784391891906746519611281472492584945688576979045995332228715271166291757592448000483619499190731288490298880681034875068363233369628884984587636748999650817720348285709818961985641531832877608284535844741740652911455711583300275619492350132530435610904456451889244846640026709573392254061559430372724926288611266954722759679636425515910554886240326706997575824327121582257989770885876598231302207088225654202688605860433755140559308458468824257793172203795595311438613300060550363044815916373683522927436716436993788052150437860928911733357303705867427156672984883314314403583248434579228708969796661022912525600004464207567580243641338367721911816671869977714666941053609731341719116228757417174052546618264469278254456229062788607927460003863067181665969246540773125849496572102395296173037506038113558399107111084405786489879250517862930918460170587264432394066711007459380186367866716398105184611429095277450064272257751750055116318875952136528767380756122596442053879787710413899659750901414147667278924009642478768156958258124051887885069178900298118271423192368954287207030963313717955346309569804360903786356612095158591490690780538651480773689425769314094902068238775319192188302986963456258389087425134508695475450720069235358613264035146321788346613016062049643138702772809620414821020020798350389466536514527171888328931221424244846224845370815605021179219741796707896604313715557641436589790839232520625053288725392392680935408832405186913637663207842485361829830028887119385549880188063125256452817534117514640477406477120468510654326655222899919883901381522589792334631233824237106164915975490360083006165135378062498064163572483845376255272997496261243892485701208467727773142024440109056290682655205078467845675446538227315663108124432755881312474900502271751806640391979336195558744735163597667183900951068245502653685404392681917339697233972583052693515849783883154654158301129081711585832862444553570343172255204564773080140834406953480182427128412148141368642663970117378449253885624224576915626584919636234247606552155849520409683151985684858135205393755194962844757544987512743270433715175571022502873724068697970007406222125616044378568650652917022158212315136328844056582978552050105711770614588971358448036612380447861146642388587234160063891305738999367269743427157429926897359781136635440698294323210944906880997837777661087757035364456774659565770851259186519249746600370205310545732398841666299953970684203519026087368388840613683154182083284907684852625087361252977199809913586849784832860044056393151009415240129024422809882780492333516389560942849625904556948471981710351544964786463232319865660520044774427450768652188563822111331770866819271323553127438788322283905670132243121767098625201668543694192883194055886363018437825921750698318789497705922963709346467396519848100507732206707746661333247671083727637652367667700467240701949250710687397532130475186823945341959636920933963631603886802125616944576783249655081996618849088737719347439186001978783747074106599244894585933785697643645855354128067828902585376348370510672295223193576873005481868862862987612647384842996591103796786725100504135629496352421986886833356119581650660432042603670378745425367099216726148305460953371497463623953954514530041911554973860504584302976980893180135087578870076849402361404961563339361337438830937749735604133923998371391957362048611313849455255957484285737025515648481231892013093753103527431345611404059045521530368089540723181425503593895023714038885343119498704916558817435781621727625241957668815901100628285616025381806944093065613795760057759036454036622184303091530226251228031702525364420002750167619983435040306398674920380100908258376579660793283978234829076637977283288789988788519543779547604693895749341276385389059203956868392514496495637376158457316045592545195875729707327510026678132516352555846814635329008344351509901835976263432663699345273108923851457161895041665952656982712521072918638859168924440982392727418662410369029354800098265589437960609397921674406837888170141480127735676543953684214123915380626225857569189135470276834523911882013698276274091162598459431805183172484074510463309187795263304810192664470007034844165097893045180352752971992399128850794536160480183421988219884752220535879162529445071299309514741359527772170713968057570541397670571589591609111000235777391055505467683172622831349052428649148274523442584674760108200191119395982042133816089927276872204554748824445529188406019865272800289720188059777371212611806824302505298386235643976555620242738905246427377717194723131517116009085266493976312132228391521765648520499994886852871441327661010068287207554120550760929263947239928182180555850906682413998357501850524767474900912155035477472341535462595007954182594473778586944351829297471291885116184012913674137846565280838917266059565593151281615250999722240305086144533133877059608943386715688849572774761763571123241375175990275352786414137918389710367822629925908143573671506006059093805934440020101555163268833322094821515551534149980578651136219650109181795072208242299983662545967219138712505431326958024242803512330067885067167618942357732017912792866382811617711527953671056721931090002551267296838707898336504641475468344411844359189786034407033653301856247040060782025646792683484832984393530341827527700532222544120552464818843216937049616341051815912783895316699957115108238285163677273669003391629011808526497492191854603930906921105093713991226275724277173566137902357835594296280769725619722847710189388851353397211525510625211923185585511603490782472289812194616980187098432722070311312187018659942413038128692420905319089226067870059244232028987763742233071011952011266076220885983599168759850582785334131454387237196609474403959084666906556593608994509786403276369871948478846626875334001761303207816666295625122486598050187251138213728891756550877455365109003905952131620666341540494297974549847331816244914596442876934207090655505589945757726343730246978417178610585055092938100137433961424824389329606984139753941128478206776186618800596579828238983702589722290421769322667905154927086896221296719100005821850045890575979670005395253774426352472473781739990968469472911008478970339317019236738328416334294862568750005534563822904306789219170148674039748289547556412780388315133816358457642148395240743464685303511646459685889213035532060699270437116190953763141834479374170891969470100620359996084125619678503227189989002869160835497733796174202646543883747177462958906492944488093333303335084884325412856763410366714552315339907369877923103877133708295921453628169615761364284641255057114028647887629574664256281675933594629693546951766873772490024257790075736890387989398659696610962356599641874435701204501110490869605037477914522496367098597292277176382711384382290327347828440232469129160832633084719517695825951411178673631655611064867923539419809426104978969881150600776085233021228164149826580799352461670201708104330408763775070549670322779583245765361000027797415165318879521595439226590549557382498682839422709057667455043692762783294639660762760635344861967621169948796524138065088029677661658993217589112340890797121768098854800607124149941949978416136145089677465316834527569970443657809860557673040340103684571403918235184483085670616389130279883179189287782483231568296802309842547237931318978711773405514517908028193306025056127160545441414795043038080645637303812523979634535433278572513131763932077857329324593612840601443860383773909382271359506633893860652471113191502896084906090523437920616559203617064270344747788385632772820150634997654932837959320258264063851728866796233842557166540538371897266352387761033398914550248264611392904332090164155098123398874229843713450247971816774167594601591903695393363469976632690309880723851858162260882398873749465701858428272960161048798695126875917088090107777370445220883169260694820267293053122772511749034453931199464561972095170413187766890929223883904045470640826538004889845530581488809916956155708206984759378517299424463437815607749600321789405356088392079937200222025141707767804218161258278016663498803163021289850475059120452488835749222379131213657431950812329100371656482149292809347557401114259337720871423895382316476185706840625190819723804815084433932524710434042318609304357184845726386494718252430264186144447111870429304155999712994267261184168744715244927986446770802415525014637672558620987470215511477618878314390267471711223298286520025055830971985219334680798393491466182493569022499216192972835215530526628915220222619190162531176059671553203568410600807412081378462533970259241854246998717048039438796432594963999324947072019714154854580549862986610822947990034951023244109548297661928068289775447351786890853217848269517289755160479758999042439429390330484363082332938906450743459584721206074373044719336283582145799314414939622818571319808150691450279197514168641951316641472015686505873029463302804735197376527068599115370195349294896752165494303177882272151524349025516084659808236368984876222242394788398143299171364348557313396706825868637161056676558238510133819653771028100183968306913976583227993755482427355576183870504627389256143223333694944372523565057616484992615227546534700722117204404973763167110868216802921560426564357470759075540085509879885578519306075533513901192505519156218691918776417216717849170473405674256685733826786532670937056854770491852267309502547827478672833008900571365846383097081043109930079605738278807463589857473571363067112932571808997176518327031182655888019512788461641010823685376588711494345816571618231132263476074707388297675139858576084741018493242738477677474442012216254160766254094294488025724616030258100648495832964159743024594198404590287444257498808759897404884291400254703179552693989022099487759695089394749227576293330118527124239833440837768583154841097607323755456797683608219618050128694790935306905449425237346259689531099716216420640231479036571094116883329725684028826675321900161947461006953468712852240233261880776918397904242271302604785215911386072254170992890647682755074332579314654296856894031148367363051893705055139679283196714967405457416635145708599061745396130767810230974949809202952763238850017968822462485207156248162382994582336135961062983760495976341464634156044195156423682965789948430231795983622393834086522210247509199894312754996562140255900298226242848167462077856045268062194838617446564900943197331092027670383694805161661851113965096645719300242085328667514830171101352064602128861020214408430835532008797308088058685098050623612973149600641416751839408647839829348943453175626996100554472573446645715009447079776214675521262943815587033794949813862655650198256692955032384579513649310699312603078692412368951802413221976956911937989949799486243412891504749563859238847391661317854459788682416934310445902544921891875536666670934539152574397504713739824053026164152661299328964751076559073124101089821651257799531036717029258081041721667637644747228834465138314564463552127345396452876591227542327416288195434758600781179945277202523330819548441589444463399688822352444530345655877838178794323212734192236182293470247128554320543471527999157808910615696597905536495204579715294500571204671072218207952477605376136509437088408843621971202046755212391336146612808884452421417116427774255158158974401598156042667146526388418050951638501988556608432074485903938160381915924884124278123718244786509223352466109246634545233495246520583483646252291226600698034895867755761289136529077355415530272040209443128844090195381189844629411832900841090322598887049124223991548951160111171520722566968498753061638684567453486720398576517043352817130992076986807159006621686620297204199370912956945854645362002430275101488261732716068589809477831655820684802871960271102163509386542874298676080754476882130346591670303533651909737951378352420267837184560057116617659040357736048146621964292004066112075861072172980190471658881368979453031095027832905579854192650098850311167584106259184144738911859438525505056734908111803968054434444534053212387722640922613222942815335897914367958283345494825705768004891490233437369231010639628014171194661443181426537790131663479563472064384660405821220647960785500460885963561319077870013183610092731376320676556095421343325755402520913547598323144975468303933439456601666881677255111217189828457898447757982499586097045063215317953442938788553638749065539141546064229272086848643489288261138386245053773482442478739402143219272364408298829620836792186078911753383273818597335234458790270972621606294041898023919437390238053509409456492511630981995718270348077344306236672396576209343641337708990731910523958597425661219789489836599791602600778947135192008422351562423969629161474623218834952282006593030062801351388485089099568284782833374055096351849022093918581130887766800479949986709131366628239106503340979762714781019756888072781470054318995313245253363387275960714714513584103901627151301476777966872727153743184172873712837169366585731667681150025721276400642535008704518373115741765038683084476779670405849362309084358093266224346404631661612877318608392003082258607393188006921565159634032893208893654031255088787419941696240616679959438693113921255421265241834494105688400275416995408939815187944479361482334972144025311990863484727316583948093167230998342403470984145598203691230811128878764233472608912391665624493724929966221663303432381519119775792748838182391162150195857771139919067843295453587850280373416681828916023427188874451678392307061345078597153557160845309706342451526234986093955441113760570771115415535862358499168640258464333752160506114101191102833183584691756139757995006512429200141900327028093694979961591899625732039853187076402148539209996835921147264792694254044895212582572434516236915112156471071387153784072677281853457785802645732193014205248644219794025873344970666495453580613207381902102821552335615764611998829819219410499488300468302769757408581835544877640486110024030822955474919834955778279085608488506394776045314257795129951553630217826437553117360168375221455551391084751930096380649699954408223119688203436964199525652339894660570942994878789126498391354114834858500350750902417421693500258939872825462042517336589335691789942258026200017761437935336187279548760667513081364803361556771616178217516048741326524804434137388694692691429537103903213241957534327383409937702374428787232189643811747202490956730294708968104876440808742217980942870776190466696198552358719349877975691467102794230411926002187882674801791198138462008429806187587874112276927949094461335210338686120204950537738237086689924480133445737205399034037146473713934644439686917034381710378952767729314190677718726571855742632737330985534161978981930994481714749916270484102604702932597554876070461433700137144898961440857741033008037060861990876814815341970737103121639854889496175974180597956216865537479556235638954295829691216245194306352052167529817472687221723287383716978254793592166231136642221645983447568440877379262918778352152639470798261148753739957335739868746312792320330341395357513853753749130426306417221138440172400556515088236375586592460314074887071341046333211678224557981749634379186039490650036781589517173032245001320700402161134239660965176248071450503310186853543606150016398944724284515476851255138044663898582036779036896834733015725827544968125229815635800234734868616361758649361235156915422985959267147097595887082409728568841843841979394410905467050859098683239818028809038944252402556172109771875771546835857087667002075170110939522985900995808089143153907857196134226960763332763951363463979077104286650483726057879799365317891975668093494101144595672650142996621716129868071226168563309565011601916526706478396908675110772556793364076296809239567660734342634212432441763029699388488113017227483376215881998745703777056074515942605813199391579505327323361333655179514123452853410983637814306191651034991451732781927917888703859109500705900533813721841774684532585552010846070184705464790197179169728635527477976446163189744473563568577004738718259144150555876098913862302882373555084275082405556606749591145809355281734586377345670336432194694171500863707003619049671288191570101188670180420791210963067395651382146016703368660355770670662103651902284999001884649443257994462050208611994225757785176835442603619181512701591495700241651025777936023227939106893192099166276615510585501953579079577433327605813536961538467420097635168025005220520893474491012323428256158775300896269659449172289079169658203473525114686032492038586905225749079957807172380020148761710286263216082620191247215589959909906571138764784773722449290908612004098251919406043334293714388200345932905611766627941291824215976620643680527673658800389497221276005467293669819744911427708725746562330540030446749949591734703655836476808549725767129006592851907430965844102015996811577343748589745116857704984689202227241198628628333530868788807085662277791337834302868441152715974749147952735734918028108802654772482164792647964667028857940724546609135625581550565103244507940321346770936202311807322195961003989860203654240653479972694702290897311538464120903188559199579921847213361023713054068380194362546240874269765990078613706097874266667384954972425711122991023094706369830375829031949252831596032236842504779067217017237044670845551289058746447148447526376132676766037237377986293473799601614656554256508829849781305829641034687958896238648154495322057394580701168551968792125439086218316523518147398537059006630624134947484648361943816568492889589643272333064850720534251497342980924984937534772485429268578103757873129150068610856505817808950892492609174277600119239470416014265146372000260692651307518834575750768067201150734247543616268074099742304606376151780273989743299257376312525728733945858046756389461574874555160670514681218187591744923905491516187470369505719897836876610684038845188059659160531008713967450194574532760825304391939520402707379151816828932800779270750355351219934786521157599597300654707762289430585924550980390646258130922415612116022087697632060871136507085423301510742577968267177826085335735857779109975760448462806388516635305984573434219296064260116760402996248752382377640907519595276129641604607859978845042194504993132991285095906504654784472961806969380347581722046564743121107781187552298257855154917375218286932184687540178243392978656392802965205237946770495033958950029294822940419862601193506425467523676049457474858411245151779763488898880360326223628801975522280559196583822676007207190351189177423826396279197330282512552730674077642952341723801968017822499233006783774142302834800954051082132428020059632668542269644506152778177853928180134095734781194840901688784364724177335849934457282973184481925296616743079144871389274854989684973076745974581865604182255448986903155376915575209122884641549305586829843289272588231584643720986583245167131974323846982447327674654086373572706429391110566923395530397059602123138279307218248684308159938977127024723514998928905837389955074805826696357158331847835748759842574902589462086608912566094627695801927695440096583600062268200759309262004241385728982143364544870692090804007123822671498136765738454411002892295870132926199109928331258169069112621933433484731387858982481130069823999229540435776306178643283319533255653427824841823849358934663915078432270316513361171995089291154655744666536392771694689946233149146754330021904535160499865314607440223986760965127069292437591094292634418227846785232374998329116400206093202246341129504241239904495063437077347894238304369045583369727716023094995670545028082511437999228191812912851532951972848202410306918919173652522183073753365068693766375573100571894612288948120067796049625570835693844595678291063963929987265378061280255675504357968168086392719738575966109501014906391013002138649192945541339515758406315335518614017255079799889065466442601690290480326874678431722780054743579747753160931215816058644861276626224178644549796719936986550668502518410925013623620555739653210196426056203704279292996797355918368115076626792463404901702531205511047620276715644450044420017685245215258995467203981084591221057822546590173890873964299316865397363855987746474854511666644162262332321604405979612962517497680811999280024072139928189315036022693260251981175821941735827011249690756587370399091980059672136133664435649312203248809079634874256183138062435772430189814067104206568146035546151372184268260742621923652398486611728807411526826045930587831953389317636666159412122121345329811478349902345666728060517378129618843121556668323644519366661791287543250094831023310626652816183462208420532937130807820143516180753811336623994169169748281333712921738399339828893788992856281611729961455624727047383523674951553725529686197480782291336833920984267134077616137486876812013939268991000201346310405496087011098125403018084612784093100795028889322897939292069066334989017005546439105665107435736128026641271427729959589520314659154468929285724693412539887313980846340528011543146649037422333287703035752800540136857912548565775490210215362800784384062414663032523199216514298520809374995879817328708893144135431020942517524582807437815358298869970974719934891473842393629200934211802103040046040961249159700909446367727091225290456436206342668477169967156423059626942001946657740382848080109344290359009304238354086811301044967245807079586085981598049050465369785557712484386796060267176506147679365595132450389044296384023503600959196891308553791061732180904967526650242613852580503711011828384128628914789134688867083710076387326205310430481947321253322476384379516393025653913026796013177583893604578116296827377670648902658225515549372713844282612641175114497130793502572332927161539656002670391759862973995744232318493827951328184140283443341208927626595473460232309640199903467405972429055945850895389892785832044148444188986094212280415909938041802082616630853393482075197460860720292965445107742923491791835068891238490890799775567559133475890324060927499685148359673929179842676369536846994060901639592157202078690940508695333444138368922099433138324204135472349976441470140696903577026383607499405632164128054041740397932251898540082238123107756209365583366304389246446468134968656816762979841851035987134639910143982539314412690782523970851870414446010263836987108921458758886372680075458728046930513509588172184018408476451949297222557376545633364090552476453113416599082576228290249548607377143318275102496987749470064544657622262082310423952113819361542103306548849311558541480306169094866265597488078359130054768823149186330847348899742629484410846763291161985953107629856900447432708566808276903108261604337373532598590117705176492471692406030301806152517565726150340265074385602472761455554054488755161574143686520411438768584720494778526280074077882406807793198293623877596461319024236754804503133790438726662794868605817235953893482590467684673555929267665155674834797998294278731246253996095551807104167474901112366385678105507757813840314847062109101472405412173832783219685095534366924978418704840775107857550849264678421365858061063936432078695842067978094849706222057572740882757237057557719596144502662385249757385646440726180943344442062723861561790610964590556083333077507340490396510717097695589140204775090725499184873827396180569510954500524479406645286823527352064431933177634733592548599085360594715672361236664676139933079572702571273331945914220646544199246885841046603115044959126306251518401511979864065563439450106833415777845825468870773613004799044562234291078187451071835966965411337150541972205274960855909250039385506830655278954148258908112118717752892106169285506075597278428525578651761600735002177898858249589363238606670971680768754572803025836816610228721191778421061431451685196403180457883682183762423085017336257502443770653036186811790527671107351187785766307260006535184752383379692515118985563328977231248734093201795452504582334343186502665301636833344591047518007666453485983126736253172652181855965484269382311261715718752628266994839088316172472832138865957501325590047411130886820038175828445968683606179670269775555759093980774235272013605122166776587577249570959081798618179944406909016608239142597720103507611643077417156772260056156884124334794471506966466705983582847521834304795527578471440754115800126771835358012158379900169419483490543817011504929402621838974303987929047106019727141013095513247604411324477945742443491504759551089370885246081369114271040729620403219328474555782594279361235270503390107253575448930520813224923183809030986308583090195857322516417987892812922444738988029438736333343675257220573955604802480931165745177628188079295918349287130519420657606702976853321721424328818294243539589288081879668662563257545439519784166490325038925278694816580328369026937127365829631868756739030668994893340374217331856743724162787647831823312151182413986922649184489511624505562305426618436352246610142895873490587759612659369194144138761139020825927757624856192929619107177536158778520415036456574655481990819641486557501595635721756630366244302631198559953381868909889187499143318132323729628620772973835308025373985622862431999233701248190950356294939583410229075325495267601646822597395947383794797609950415844828336575325433872056096206070773889209438811568780688142563064134523161959975987007429514382683757721370969741912640892882626840937069905533603892448402874542768353340260593122692454146342658949211903150298870773961451593474294960074968379496718869049220391614129456442681436476467665244069191681775565647420134710663785383898352149079302500224832254168477570363650111800328025336270943014944752845498418751142940174279576990438031058403053561899513058848115745613463037605682325468917275580952073822138230254803564600606659109716764835429622774279347924288760602286548424136474977827335867419172037300143883467538179954942590795676776805136250996082096215863189127606093909974485938665453900362786828090628490255855764604741757086537340308344886318122860377443839914572169527052818276426411233174498129090648469403743620748801812536474198225908517768074137936538594160164393050327938465053588138270485964345035759013033249186245386871292205595380510756913529969613792667172712657239851107068700590261187964289854474284835935580440866349169431454634492753862556589820560636129922322314558347882715244627269074230675643725072518894957013600864812942663230130230461692201531972511134832073948696108484632857655001101619071967620744477257419422284883376534458545567255870128630839999583677193829632199547644889350861633264817477752484496065135024093455522471445544974430207528484120028047220050340501199863905022372666518072363081844692097417801108188103590430211402961803222059132524577639594153899695358513396146160862223977176544170967948341182210768403682005539740679758750641241377711907932246147738470250792005189153346540554046097057918985427704627718505248266139017756521081010190666672827669532943381854073304826947299624317524474335349112120169748319728566267863543244571635492633945123236378234379078615267361332841646748422756483873012410667988240297423681967737854501175503930339951024710096473299963115560773257012501112377490267977870172008052801042075424844275600495613255450907284725007688103476725098982243342681875206337221730641445497751768616529131580533050170793023479068700418491278472851797115088903387948114576209463163604537802087300987481318500029713867673324515815819429050480559381773945932764754535684056827127867569604013502533709983400253162945378425614245326749062506201897664872170026898824430663256065123366407475826223650267120316272296651958672076637137637459968880355789095455855436607029581573022720187359621138562388080156973697847726722396527567765797368880875484746893982743765502663501524588416446199703551124181088357205547102092454787075055249447671061723304183291195259054945440761376796345819955420275114004342758099997918311252994490235891944369141147955639601007267105278644154698522530150439277278589693263955715051750189203439718462495368275176511037467022828609015424255186105501919270955743929214046593036171640578378131553041990592081920936455578988984088625121599044536442693332716752743878646445237202465945892010653750549857987155041313338451289737101545722054157734169034796160521921147591151671558767862021207286477393814135316896406131890917320178303173738697960848844657170796221043652352370042637370685352580937251359761519262992646614032473036479009241654305569728207423727839290376048129372738162135931377177786136681652857348835925139187369966367879875139540320254897144577692370427981186752204050816345811284107202626041503523174734658283475203678278685692110153228876149380131526252349767581270887335440783432277319420127921220113084214088249362179517950925932496460056626896469859462607052840108469165647274617521974170789819886902558849031550299248571943548798147926657414196959798537481280166190874873258656004574390463691458780518244709818890691266469706046011453708938704118033365786117957724760736800953602349946072381117742947358364788590948270007840349876687298910015604608578590923971461344750172707402859353674415916441812378804102875351102736843416638268275716789486694597893477405682185548737194862497543057451201801279933432474024133160174340466144906256459732969489087837838002147654758103212702219665080598618994489554309088296553329727581209284664416519175242102016975703883197687660085366134856103395769961284573897498009998014916121416914030825690112724650360909431579956339170813375808501254744983388824828756613880280435574141954962882417705019316267732674998509158805966088284186149742503063560755480633832494581114722814297281381974884602061100356890835842490448425159131215971223193506517821143246410449712854913149630339779224447488812454897867013853507161770426579415684155552588129489358995560588373090633271478522581426525891638562840062434579716161605694079302362925441343642929667575950595679275640711053310361655453541897320800114980457573000717683610315574893389406371689996849552275993954860460617825444128657433343233308585324236777139528286440077833860616660322377234323437258410091588543915598444828943760999844197847880351295593182771385134352576068251608823721526494869950807049292640062715681006031688596932566023624439389162007132694376146753629489392561641345325169605204642903060545143298016973837519755408440640766470464978897248199064005316245878090631172533362787743193659274740746370100379381131963241837335854252853847392000338128847503173026504339999332649010621789827510011261663450253477217432513796777698068207919251655857990652543650368904496936351269504605105567011019511003911396673988868149574372768897141517343131593879692265108383164642919670561052771574991314036082747955932153325375595358384809035444386217104880544313507815070525160950194743644806656185237908833252905088563755363907545332974069608958970503819225397203892309760209043736096663933902004369782278414919343554811718000835286140201641512283521115987596900612888363521000170857086565041621634916559760862182081804642049397967129693956506026087459246223538329830728147455165564974736107391708977806351792247364803647827765942232954589693655149357281830565570374753094058671165568964564625267058071416807340733541421895853622751922774785600926995251994983432894721558031667634745078744465104621579062091036334075590377254355080644054768445427145388110294890141441335690967384125585971404846160157646803950579231287225350022569224352689468611997282769957699990048877324571073590783639918041023919713231895752305634311497982383744375797600936553915475413301843852298331313433539301944554357357806090210918193174920092446838566152644851920250089638635183454662765386591847675836863087573455820260813435279067637299676190898341115738283691483869143912972830188576519557289328905655054159389004942265816114072420153107986946152565330008409407469345814883549357270829114066867795497209836389401093625627500434448352333062516685430628701358874651541938385449632722122621871108845258631067062943684199654807051277479388354812387525019710522691893457116814850139751277929147125392277196995506884688579777334410750572737761242366532313294535765532769751908945016110240731832896347569247500558375329793488299623741445627014170861696757868524830668492330568687246836434857504637637706502970525838971607234062092946367936015101283058489400353109932269914256089688764008075853888261527656031662177601064337419430118912980448458028017207637306190054660622624740902133540532567528596497356113310668155613481045449067842550174677777400325280297619116109414008039215593634361347642256077067173714913207363354904020902854560074199940462164148430931772440583767343028327717449968802272716537352871004355922876764673246792705364073283898223376797030757879728453991382767770957021331070522357672871574112003451683190870989529242870993149782037568702908724509264794561559803899913749243064304385181925357844513654108795025511534085243334688420461933493615403872519587183590841460500951937558291402053351462387734151296253501288622223025165629598533605691597366847435777976787971563280967165594057909125914592191025983805040418519052621572347472116385053192367491679829169719596880576245771941138620146421282939535585395520172510761157405164226392126635845417191141612376621282072080661096519009347520829971168424873027563938786635937531285344450436081892681787158379969664339629167825800502569986452755908888202679023984832242854641494388194260961326295762993579717785963635951439044833780275774953788152044791934256720474338267726810842259530390135677637720187101457956613728689274714753296008157154137073135739331605933758131524447879106648335102866354219747124908233480890095368558163477529306387510038812076356409712021024162292498804279365731286671544470028079155899225320087213317319317715186509984140432489786023443612303499993597355717019971718018683777435267822155181641025498391227869215631234120236461084157785957689291887885009966379135036637123184746856709758194028133850252983293749820575273008693295393516752849199429111422091435984539457913538760265905227615112389499060690622132730676087681301841609910338376628200201631297238986618508914141238417219192667529904303319416939894531899025384120273484121283152332170550375085721942252081444949827747306339705337461765640791302401319476400311923375193464052218521156993075322424113862923433225421074467207122627619704630947038992935186364376729777218287795886412112744195158088919661088396967355904428447119575220497282999197635778567881653273858286881360903363169766573808042803300551879144491616934721801066167553928791732543925137260620020379719637583171945108028851897780938661831739905328648985340256683629630462314581321763628540799091423248760790262535541349260729020067368834999752611787001976973383270396336208717646933422051245242009986381265050928541250578696895754506260351979958249910761892417937818706276382994801466993767561603953359096688836674571715612546349452282181624463828110250393011074791834340650662585451674305073024047585639233313269630618309428257868078602128140616445777174881833710958830471439833271074729321937330053709344721131011380346997851947723036784133411913413122176224940956992915332505183142893072785217672600220401994270083478836878659285578922540791463651984262534607673522043773448286123874875756520913272800016853080121090729477908071527541199213132050190092177710762299032191889969450438957341567414184175152981278445034780563031383019969962401981107663750424792235908546221564112687041855327011793215827339742622966340480862632078383427329132081457607453609205349703211931989999410621659540507247304014774179355642491597075406122361738024789488329527889510971567196568114229557569877060151717069420093582496883372908221997553416945928814196900645974042048289377754961111658806654898263004422419483832283026958144932798760602778084088732338210672629508261541185530811713807799733477738122536669659913531376988206957457657818375403022829680824776080206045920963772791682550020263192129631244614124097264226958415393997791011241980471576475039552958032450883732851613684189549233541663812285499083770576078584817498059766570633417419630119210692623800565294271370910067509251793900955206224726205430923237392545811048215077503651042833531085129082229912300039137162589421813964031710323030258531993615097203160792371244823700512840982038495479406486026942306655745125627369258558555165188523622684482548110429266672947427780492087702782286553411735190883343174643509114452326014795679760651944281520838022229120413908425312328100253607859939880108025775110521521607564883166074197744189840693638790967001521275756208386165058148467868387432168168597224373980823140161475409083812134704613355996310945733055922677985661050654415345763629347758420510688513528708404825611288161665055713327531219482086868055901831510019171577885076799862777369581272023773256001848731486894793559989811499893020962966174874415640959255510823193283072767447850482198682012697464131823744067928500416427660372704412505132866294192196903153261351984991162721640406162811185856776576608778820539359719390297673847584046317655908715324786706809709895794786178110939052828852492500117349510048731642717317366400739572293856395968203280462864252790409187389459385607987130702025250435175407904222598043411400826622889307341605840099724398345184999022874636658495252691820619329127724288265193827780039046794852367464466774442450795878831739324827856321506841433699994772174048806471688472487774975539782838495678884101551587327606199586559113429493872232760043504151432127107729081476072585502607578660117292695009872912197442318359734463951095491867516828651970167281510388920522498609537114500956955694659027598067505992856576932092241244752017692600488237901157782745835211845039371158762802048349309781407485252910902509990526149655930038199720862079702505457424447758014251431942982845644237666834981277503705030053861065164304366617798720542927257288639060418866228728697890783401134102952985381251841465111934904960789640393651670852096110129715549587130786066837445142302868940777624634487183456764759021665997660303492293216054164330025072580834194821788156938395990187597776167803270726235834645626291821031677259639076653015689738215394107382573759469836793873554681321432726372501750327548380612100790926005026273250523249790528219077203381143475430686843272841450500228523168587801899688057080332533534423063313627067956193844150421564697362858164715820062190680962117025070121022087315612044435617064525686390550841257253029446181292010092742400765905036099904933678001113314233635789709167732769791066885255523024485287896768283611012600144586086719759994086588377204971879419989093495761758277148886339266191988446415269872628800631952586027016813599829241462075866013707748688023268319825488823233748790617908928132656680118858495259731230393992732458698132164403208577030946580417345300954044718049029774706511325552688430686252470236409264987036322215259225094552531484046532944744450900798019581819146777615615261872130155458978340387330915931670555609978385021546246761354811825949633451993592457268137879486454061138706615896826942732678501823303742717544884015879326821610512439127952972621470920435374140957948588654013138173764210372365747357082445499915206865428567229280703005368133679833596072706546332458266497340354207735623558064483223470291089732757066658694675637114230017719609744856034768268450451182695242396814400138077120094477412585304323105869411532320259822974033790637142460655697821122285423627236033820168750117573505049014438424187528648184289981510082077271842983877355399187930647301356659860170579278679752139195492611876782101088751120161933061819508470669201368822547427909726126649398013209238834033862699198294944010780188163158216338001704733766256328705359617230869581588200299733636128319228371406617940324806480660910026593350509393136592655251417318911518064237304252143909513658998682055286989658717310176790634813288430561300823443651307301194683791226437292700121272289368618316765874749179620836282593588737222914518429541391557607755622622751213890816970287151497753237969004077245802871895191495513791752432208604309619036579708271324304907665262894116800902486572958539244211739452485229968042087985373526045918862748263799860411191724918708428713745207366424263587523959019062037229909984724656017893162652593873271438929697549248076034263190776744846589165633727601401353148185092681572303015886252450572686618575424114829999236733328986183913898340475482309327685418842855698349387605060143159740182981576189542193348868857555089811366427623800889185859210836838524151698403749003457845464459146821578473443149079496268408558114934362487104868944438939582748647085354426971026787112137869993338613826267842111811088936482628627628161922203631124037503326289775317218242687368680616681759125919922008629345518390973795905704843050598952077118157835495846441372617288731648268900902862676819422392127197840024450213571564836229053936338723259389571691366436686105600446436170118357203088582218879571989964329386586137916731036841161493235104999453867568149556622468856268607967088033474773152770423454197179743110725767612049206441091412795791571322641014939404876714565249064988661483801273255146102997576918789044761003432762158476359147370540060393299018254301766971873058760059807388175885961572558480303267199596090695084912792984058695245259367375263212629755078535064637760931476946581737455606333493712773723911520592385635844895656619354127603351057382946753469526456438150751676192351193226991487553279435581285873997333763130786695693287956934032655496466925771100095265988142121758957328324607764606579454323926939760112127963115954629916258845056848213385725539613039644958837682529295694532072090674315964984418218482374901886305587284698073237569049949696161396724133898545040083337336094645884336420543681744236339082413356139875485679070806841316686414625712170340505996124821146401641061350481417600505226789152995471610228606293852447606895502912242125578539777509975203791189320754409173179776743041975949340735450565116248025615038486957158864665344774023574041368285791906494769757961536265489881079422586088181260589804024054662359627421033848064728611506994636509511629562130453980622219823280091642074640092837151324792391788729129299334202542111373138872939720037313190889510727201906330328295229038005854623792472309703332226018214484015445007771483826957196484403489315477961328499734060388342177336733761048518407935052646378482058359478795448553270934591055152967861143483155322293602412569139943956878745318782177103846824876273039677083497573884152934170063287410394769433912678528852089544001977667873029182781642564936319390029002622422323465522724483404151293268439116051334610232815249733882322365191080168344726497710603316005855345602005816158381050494959493484127653111703000397299602505675717590784156519124613411757893251607104123601046068184996673602240691140678456876784187689603531702697426671181445383568464080448221169002231033397670465533057146800503536690054094097254164105155056469146159874353487638062418132858956614624693283558365528378891170827435841820793614867968862433840231721271647833085191813237475041025905028669283256071044912818653909129682378763937647606025135691437655498889557711462926223809970000063893914665564952062952765539528586558628082529586283498185562148809870083893269248894569619895564754966252572509597971483401143591993015814780117512468578926114903875894034754092104105576522457205355168603346361607495925635742586590380469743263497498633266950893863324553298800800516304647699761091802416508433138630561288265219387954718661544097486007913361229168279003461461520477153885376231581383359752954406078000880520525532981661893798855978763232709024339399162076397298288437032851173179231889749705297993991381819650013718316302549907706285868162901273488925993179951612870247253479304330665344750000395202224048606160210365214406169758256345848124098421112148055769043295257137959863976441718381115442080824880166141821522249242542476447130929918173283548261827886001807059611583383459397281102164234546816668103070155969048480714010661956961957357402195681605986553176441353003970104166979437144091668268970298831782166117612065525601459724035511117672754550476941575461164919686941560243324044203032621830331719770238358680456650683318559449068234452213258456702772732974212218918519144048758996400988875091204718181714369191706975381238970025909109878330828084813316865760819941776810048528700218188187209166219484641129060608698140016972991113757733951960234326239368318397395279325936788053594873249166690771274309032720257260823200856848838940435972082980206716270179530439107507261323314437499273598447597991783250635880960117922787769998989005839191062222944260585735513527292862803179210134479356487511185513026877094073375710030266946321450947586628747513898913140725781463415504032316442097216779540182780653328693134168712007904132727526417082038504984614973757189547106985889109069806289128452839756215016550829263931719329176251067475192835948783245748818601388099954695357847387788673030702816808317674543394620141892039845029002501632762700533231709964852176312318466652446193225804947615301265273206090303970511283958343231853599990787013355646947250370229568349537773622446752389269938773695863664600629181290383797285832910256962916451043437351530152990967930139335208435181075821677196461049986224448918445890676260935870482871660833197032610788742905669251304534741220439873236640143659685014110748474702021644318580462610700216446409305726675376441295088725774436177701110104742934287927811651119586058638760554851159878353992543210011051931144630086036645713422471957715727165246320471800889363838658992517070585789805659753984669039009503830604322199121338763447584479726427414103187729852337686289727317881233287771072234328931397008252928179315631323861483141522342230988354924191766792242878659281034893183732878869864717433056064906719471720804989912963446021432845783101922527648051485648109090196717792203581281419685039328107667977811726595719709453090808590702528722342339399795608801731933190493981359300721326125919275450175968074701051844253428436252571434242517014868447902251680275865826289717626173542352494284724933291016047021180354362691670500595638451522343819250261840817123720700607191895188422376048580693233805628914990274592753714377573194201131205436171219665647695278535241769622807410549905381673012966869218523999783117104203470109583830351853946116160887434260333055103255177440390569508082485797710202338351002188584336169825992896311911838191249972332952625877374667717042030167967850056346392675349369255223156987248251742031231474818721723507147129174948919308802368076664737273022690003543068682382830762415838254863835527895715750051621182130129440781519530303998797582762304277129314558884554462546427662186378840737247729398899932765393621354198915576676834959031064470221283291289984184251685826149992081682780006150118403783255388332592771472392434283611288160214801985148536349478318614314934173097537239248401882743247162846742912045139631618200022393462823198780898744748655075244963832609223509146914156509365948836437398102470013092973210540010548269642753367479072724426161899319043019252107931994521815461355611843852755727493702536462164069913951323119554828228424512965605581144599918397317869080153546771423362513024982753375748562281646177900634839715110697136510683218304979504858901907321785359764086908064432940022398617172150655447472831777518458273144556946614603813813897572477425069856418206882590152219834058534064095726546770558890857524254867689019856822087342858787055845098307611728790344658306037014945995263788859123681864207752322746099628084979943538583325903737815961002933212108649315884527565589815612146164925809157205711744035074100962157125086200079826285331580509216477159408874622558225667734322448830728068975687086157798284331807543258973637673825671026536471899642326120477979256020157877834869085721648907980229043067833905230801533321253083117210429136435092876013055649297194539268077997205912066947647479618710116836201813824656948870175432069180648709613392662806598422428319961487499544504456640707039182481228524493112835763775834326622203269811714098942211853784138025088747741251669294287477644857257422455595319850199693218428428157963940632298829822235727962556272404955620804868525549052040228549486854773557992362118743780510904299262273025438046936371533017608349763647294408673883131076914303145613840816493836067864996426494549979058285191647643415666502864206306845127758656097958531362500940018312069787927961825134148408364073001176304065141132204070721817140298209975720655596381893805901804115452467939763261351765551047161571510204346181109141455228365044665343230776262168506744583328847120950344732030935619396967353734063093841375912984900022674258431873834492606429914679482215208060241685179870821547941998924775572319857863995283094285073651225120343060595475399735958902727034551943338769195422471127706624107762215408174899068075465753866008333047470902705082352048244160993732265193158770443377312492094145997546973642007847825900653617390142594462927317352292769347097716873931962861656235230326246243446501326850638748861494603428403094613364495741983574908069774206610981571289539323912913235492332189292308377916344748625913818119419390160294831978731631040262391761530596215927917061437263574581452850829543116536936459015074617078167579568947239050801866054596269412257610877440178065960892339798918296725578822004903595954723480944929404911739525762325119000445952384172300845952035892720873068687152454870682029403325821694446796609053782821751741760023417333557712092051597255158109660979480601127201143596396423425902556227941448976392507935331318142015299150372200339772583169801933042240224906461840504650057477728455575445483995045023803960957238230734510247372276856970952256370952312366735650276248849955261210661607623576522197937871035513167165007312335952357413734580401120026324381009244920695441843000582513245588866033905160777746931539778744382741553884299880090996507791461381364405806500274301347588092429667791836650015923381691556864840988665108031245153595743728420145426585234037440340396406183305239008654507926608943130728194000929468996001236465081482965371363569355625684748435636300396126852570241490815506129772749027969721348761424910087972589029972196791629228060030695660397494559529663105410285833972995554735822153366601933230163127257325773576570809635675267053378310594176140116229341393467834938340036704254083302761276104894552008564530626054171408128495110513459025151390252729338351694105218231178089572665043869060597833805284666776379344997262113791098934893627449175782871053415344614324962748346537945929249899696107532049447042406091637516808779889323614385724856169393052108633974440611896308488918325551193327883492993309140666488366712112699526366633567075430566128486385278170685412352945406375316891162071480953303170763721552332182623852155021014509108129951902035309013361543614177007598078402466743445921472552542757306440082945547737847854187210451381458695444574059727343585880484718603936948727507683120723771436394928167234411017856534557816156947631649017022354498697658566016878771798283531076471378248885941398871265188474294314531382502965352564125875082230875829956720428786509292613050396191357586834682840583410381585461954634048377467985339590708229819262019438938541376477818030694043380739873675450447128772351933714221204946345300718235204083632851897364714644082016307377112138609751730101109656920008377348700146280007416419386635319906524431731534702632623619743946102767725428037625476647041819160037929696723565827850223857545952709570266869181011808284318124038523263269055409477642855777809842725997080034936016897197444591179569437572415524283760008517671017729145943938775222901575412015720580142062328524661005460838929067888193636726048827192768984472342258390963682419832666290045052891978734916241979657714502025898528086776300913670673789312293539737302619296864338524121317198592487217245064627309593606688909160428279313416257549725755463091553007486502837955336875972349091891585004937089383198210673266365798910033692461394371535180093050921812387173812865216238305848976543832517070350744647844254541561442596749774455319290251348465525124764385937843147375510526188349332223767807250240158266399035358993812767930018087102887427161927871303970568440626542192132423340165556753741398428950525046317665529418513978382790501753052082232130067421841435704161179171200755698883795822689342525215753797696361392425758663404136639650485742328935374492527744034330516459685406391244608804913145118742377113859322090146080317124820796504238380035864301269661209403054625522396257534104630285678386740605214980252803013537870490466383852060909365622320858806763326174410449281921620376235408485608362744771089622550887354496972794927008159885179374609559387250510456647965961616855520797305364561277879330142461271479670942359378383219232901396000870777323055326025387837589526978185531903796534713662582869679599026047597335841646081748930610233111552941317543511221981331083447628055171821061134946766958681683152856598965687065953426595592706894847351339003153158782854175584854395281839680498684000185081239826545631080182775290874919303599795640107575366455958832370292712571906445726427800589311138343269914007088701193444056939567696131154474118598243328742272183712274190107272526624946573917719705060041548662293212312270521796948771961454661468370087055371383420958145393342686194743573410371029553194524714043091492037826526522721775009185795512868238530854727225114803942796369032238572701989876496544037129789970476083134731769800123341111346194303969306942160631436416671242654004587200241627698282069988050776071566442703778282671406841821947546085951711548913018391107109710416194236448955706402020539816864357391918309607066955042539079288150921196328579109732487963433312310225778260616536176909522751515768131568964351548945976773947199184342051261100488735894169366133515233323110441091620527676331956740564821653584489380986231650983170642167984666388555933775520754756155220576443572346723019506281956224357538139312926441152896503368860500128065673258423720253500494637202721618053562754110507246029701723903019204186574319273048205988334876558172740329201305142532404480965256338227254528726538557525411219877023335306039254765057905237652371041817909794969057640568212938020137514509040369680484702268410229512928430988123170181271096345550546127192064839673195469618668898361245414213931803783811816831092653895902419910057894140640735393854011760489356741308043228124858842167039592717042834226478500116997108686720809858038859479123093889001850515878202477902484566316805545684464153177426986184567056426869094336565054722468816682437033469938751239774751296773790528779419960930978922484625153444951643040536613497856407179579313904792542394361376529674860061236889022284010846154934660073520948914504223443661463046982399873159698869713594802140624787175185168662344249827494585774732636890197171092863272320026062686209282834321010158494787057426440527791388855543550110693127938979734795172157101236382916326478526175611269239457214523634914248998423079771589266193751166272413818862325000965357161349262526463976340031917978648408584984644504618105456388171456793187323690261567251374119124621507502101553981236963670473342115461920547625372309574174805583146323981889925729215084987116421939989852618178454410087982082724365372603972888965759335411602027199549033411971030243213100241241402677076158516597022778640893361476142060108136948233829725924692056093947433545046360918640429044208687811311092939333998406037766685373401016820261984713744795435713086863832498593465747023031037004731665683157217819700888373911758728662949782439183166621767028913326572411827631170257953359265739387447231367122274330274537762553188666508303777493842733512319737869503796235290552920184990736543028378633405861252679656925563058828405308919717430715495981787518845856601648458243350748413230785101469295209504265088555929399366864923153088013565418986286758360979934378112815075167651612075485198922219388427715068398730081022764171623800428007729424705772492104637456197061359978191625839024544014648930546079073384295968673067530805213250803289486383212917486685249176617759225775693138202294960853041430387697588245308959650169900914948327908290279317295507651656983909368550339034340057344880086817958879405564813042520529666225558567195913427477561921257977618605114080395351065074410076340416754108874575837583301459597332593536253524153684488449796903877832084570838855979107826881140434690145040247338182961292986667125190484741281159028016899307625935352280122209034581866996749702687026991344290878060216619134530780448810835433743776480210366598516827783126970192711475362067679135786982071095935367390536495969508257199275907785642497382017332218409717974204439961472244182585011213491988077368747544887540895352226046063104579178070473458073758521904109439229313502374358478747701980342581219776367673578396948512699234540818682788725460317984064518625002089142376281197967719133477943702502778152617868082900971206088978368807351400682297781141488709921617761991550713261664224155052109160797059704088766312459014956566748169772906316082541228804603088812486932553051699320508536050328513917080172112016653126429550301008144841338683628344679100601714501385832347511482651409947542592633403505706420470232002078914785410705443587406618708107657805757818336020758485027963013421264529227311898651678796676510773443824848295741029115210115107667133973456990809142099809718298244443764159381530574584066484145184836278216679984593277657519804857469801215307426868537632004978155344046588721324513290982005775963698629027060970822074328332250441966145953386559271594155892549711327101853260358964876137641541071741742716138243459675622283714234356860718305557851675684515894901410079492659284766378122061657123293005455327078961162184206643148643054470052061055375408774001571931297274724579958197488562071664419117853066258223041998892703924262252277177559120415095707671142187386692705094405657348131713499723010995493100582926583273587256646249798784751508237748179520897429113254043135194321603946115898973336439120343572875882812304834934839200552177733880083093744672582502013776895052331790561482972093099783042163989806795516073819429686892340368088641730538651890657655556386652950418499717037368257298290037796160883956555776924089594123769427047153631505543875228604398872253107829547103343438122168679625936361351725334232740290034384633702087074447774745291848073122214247594175157521529750956422290973672520491299163196043105535957059589916878780372407424112064357477428180233176234428777323383784542319350010040371094952091290846283286667991496393923357397987859221898589154282696608183872354480227006288261215883915575517387425502342547602974001833331094295471992414252942067936660739908208795358287344298800228006958518220091296053093014679139491092039311483199349691374620962350346674456683571440263890598751561261325704399394296053087349426173460037516882282155924535654641103934120016630551243004770701972040023070919128513180490850905592626225129187384987141395651521378174798440206810946396517847979677411540249676914998116888853187350763568303482987473393968384226761152474947937713322510133493553320124399222610931861974410051243516713086192493888422401213479247057160619560832848377216571432815281734408192806215670302569993348048850296862773939427393083605022603127360808018477927740744875188753529994740395363385054681296350535592031488273121594050230383906532021312958390219510611910031434182182078034269869442140113421420367571826155167741539950567215336064098272054378105820683242044332473682364400923215215835399488287325562368971220425448646817444749687082257283837004788084006871377121262760697487605772853819196269513983473403157064873101175409456904579739922048591869141907833575511280231478748745526048230808380240870447202887413245590429494067782179244750338285602625853568998280224668165547716386027724581541347992784424688486136999251622284891942971254173869381214413929219810497429347880092562633446699603371893895036083712843496646027943403463680056554512386842266500790526205937228346035871670519378822561885163049933176290930010196788172335686870380034196603650235699603498776279015672779214941707977938549629765930260569646487321599363156073717579844368677868060085007479435987094955337097793563724806906226129614693690199956263548126575535922863881207432172626689662608166805263234184367498629111256743246712195939478894386021345481621397552100282454689430318488198960341592409167298576534727214594680548670273985165778430286812443553099541898629980012950254574091399656916360430086216734774980571577945502950543596231807692899773446001385649230343958229994229623338666005621198652396670708509603069391526047165131894488342867603588458749601220028119257968374595193680564412540655012281695361392831436273486395191280944705778272800785146170536794198464497044641646791681726892680092625145261276179543627338543645084178315794174133909518170990237215682067833182085687764375792181460954345799716300169912776145647844578693344015200007200335864914661085258204705583254369986188588162581026437067482732137149077000340529922713203230856325937753639183168002054243422352863218314716902326069337805922170940114555454318654119106099148140873227323837360706391276996881310964265118845287761896641520969652084917349517433448596015231219094888189659329398677370831101513052749339539371685102215686258156481545958967835100331967291756259031665875749441511419913807156676938946403653358377689771558096662493771691610803950203711876897955025051604645676470539842856731307530620455884005721964138676570436175641817930896919638738286715346138478515185634506313137570194099949053316911839076493196201568093251728880233707741087535431275456956759987822048920166159033416658671174880657556287572352287217944887080021449677146926936710680951852532706795346098172210073694993864823749051637859123961453150912150587232978498833637091307613644295268910152300642305968217632433203655399380476348021897363862778261985699017198770176764079920282566960660127800003638093261207530520164356668552312752293011816083933370061222031055057063325718792875871788561639834551267161821058057845063470261591828908462769312309288252648094700968106702829949723652023640209831161854325289292033695748239495381453406184302010259099527759308841690151333955516420620057852805562830964182165056986024979948397637862336394967046175786714736486120126901084776467659622096485629886860003132487361349947689404404647505388310678256947575013536108009786556327099661805710337844013171510859005382514750148811945103649724918946030031061957170931391015061364658617717065801289521384515342995018379697147254536575634847585328489761596791391268262080564465781248542872354975630298284019314917642003013844289666915467542502282055907187147598861643573746125351820779395263114831990539403378148963175234350462944437701797421768175957302102763729893696828505294261196101585841568246737198875000141427504123915325500232130155358961926111741411153802084783340430368777279530538519873539062423656212001407686383342095180983793993973142135751912433558116909232319395512886889598933063075312184863731862032630080739549396546691978751872278647597601576202863452511591748029627891190665934828050921633890101292832009366569565305193268241065327783072174350596510279866327798709629764117708363636925627594485251238315824974200680912329405284862889447396569687509685490691952781176564344137769988998275108192991906389762417433399261639169088089216655215820171738207958772426225966406463542367960456480974590063247658235702882177095008822802747727427013050219112944086827882521370902748319663596144457768343552045433587159863783787903792846526795685516883483272070027898562592222624767242435551108525517151320313845826054707635728962546019022104540396032013001179029043941175967379665586056552252178503606638235336132614538329845843197556644267249458656491581958645188413434936843930190886752140454554571974813939168201974154205671272346262030301955251298120764681817607295317079509782285438685644515528128087241737993749957875159899226251909304183459268588905428149744828097781696368065486716132362292438666873518670406736457468341439104003025999852298502034531223695194223368309029318811450306095204447410707026236823851873414216844501136825869028570880869477300890512554871223287655045936380745750870577258333582609962142522375625327414510495723706264669466574081925418008065290549288009542122630958133425837410368672569553517763802384780415017103200419885434787644856015728143500772767525443640665532419255150549338696818548230816271810919367407128446656697626531794291432342383105492556903252535641014763233123017492445974145980417393478107043269537465112306569177330555472942392434912305680674938852546751962351301433336843592993772163613834774805543930538674502635772195776343284894733560448428416637027947307560177695051386007687304749466690448902840926492655088104093688918194184416198820751681873729553843065373072705124128754858341555449140817799425173522025597748314230507715598414593947846823541799905922925425549489838827684876072099898435681633241746535288224354459089496519717705229030436146430370883974566440189051707098918947826540735460166376613395292076749561580010518037888855225789517170706930760622994663274097575905842380045117563530730489235697016381122433174469278084882206491609784327185212445354004281448971748385687244329750178578253370646953521821199484093383990624610250670466514170187305892094095124137211988014392628828294129055910260716195423937600372168930584482251118355263773769525900047184070777280812486783383592136187275635098814773899307686358606498380929864130328532126658874107716293868955867205922729361008189022512047272855159513465691407964183830280669780201767218811854895266100225659965982539829309191546244311855283925578435851447479727466147970706182349279738067659235439548894040203237637670198208978248396601377447145400090458750521610308743931292099586936727658797384409766323169478342520272788264968877654502713771761607341542421768644019081068843752432108309568970019959821670916105143294982262088758167429252330560334470298924499847134167253005838760811149253260326909841657513803683449673667625866178599224951720090857552663946689516004007100305484192064666433559017718102240873944423259481009881104364662001180153732016363537055226782447833452786812370111024813217079722596641668533427444020280471366769785994249153007059038898939387930730750976775820461702521637180982925623829221799034585133628964446046929479955775834906882668739436958807997910241470363940140272626922374841986072461452239463380849758059316330274601077093480784830432676130810939421335240226536833787894716761941760203358934190157420800289277618003833104819008235730488587948610896283326695891991704151879112519699892674681072736956188345044338922377869758487077101831181419973390912311992305174137445286247522392378255643214144393634996955315747366497948532207988473264824632814680718871961863496671070465514262804778975701271691235899600301449412641388951953347480621182582117099480289387137752520744858691254404506182157099274789760457086672397323185000448104300980436890342515566727539039528452028493748378333907001499007166145078978563907786144398237860474035274683373008736440848527407099532025691430230377219062604988655277394526105782774146893376684267847619368273644145239483675647014199795395111987074986166478972971812934528906857971764115832178052539805975401194354144205744649724107767409078754432042556635060469224117348911948288204687207593656038040566296720026093879414178090327264039064431110639807851249569299171868993207887256326767219759552147980798310717261263460017971278135662121225114335384668901279447542690660518132523922988949596343603642361218958559736793264275694680309841655682118393188200234252093724790999815768298718478488082745645995491000481439725825319487838687282311407884273699605521240859705600057475837446173080496901532815025006557710884986065084721967084178056303317737882220954654746138272698648604706715807625545234904711937027181306461076808027901878564011655227259330427707082939336417755561746248460252513957661268742539202331648321095196522065421281591662845817149557486556364671354548002458053802016094924707957015891666944833727293544493230702703163261291328400436610055463200019909859352681738726634844447312133376844245544822256586415627041919176883508580239954073628648236328747874721044613878679144246920241717131922758762110951984588660813536878116354373274821994264537669539013902343056029966995690382064448188948845910640581579519096087530116694568732628034996699570105016858154076841141712994392041702105699398713259510408076597530220583377398353022918689074839358221697159462236944387521192861690181134679884768544888428996558704714258161856145162940176817884760438203542070588943682838215370867615950668180160320496132484093135172559549856321016358731687475096461815257942533464589914064529752491526355869099380437160063724874317153966117106044216616342262327569692174916962645238593749858886928564381568370970275288350011971941396755575603472642160263144128135732386627200520153309117547659116102847956725370944729914069024812311840446230502204360689745025575388722994980073013718379725514487210254644626331796996112029263621669904852247277257015025684627609110188949440156239124202119370575452518760075998520540154003296310654636477871957936517941420451605757954801620136995610329699040678442251093902617631827342979008366544859756061921553335339714175424675356764570010328059594825319157570916972810642949148084899220287799885207439016300779012718286374041232657536287305445025611229649259933866724073883889398583641293330665794044591137823327264354004326751322426353766829270056282289989500353267449213492084119637316561319052749495328922686627321717894925697692267160751234159278717048096619482265485035017509572646617100032265452258664535356569928954468554415350510119683098626392241875002260295163294102566341526612709619281285082616503726652026492030476111661017273984733075100333663179373920737016846960495768604951232572529847227476611841152949325094720828113553547307819768278656501057991278188191649380304553918775615612279821183765255689299402298236165993536009291894913831001463954767492340231307074094254094755203466489378467511675399743963339862254358700907157073647706296799489713043991853742459015982502390919226328900509822992815980855504086027412500178706465035033212713776105816923831882506625889715922604656597005092967635010306694885402029417809034753245637501663464706350208151694426390251520606202992192693436944345832435011290069526972656412445884328432254699389362393949452358199923563600882615856107967337540375217397088260048905446700050239793307378141161464572992031201339241336807810215042241818250362722316236300629665980621059959728563414578778718572147761791917108062391524377915426261358278195377284069435291344375218451209578809737252790790015017181169509526777674357817513590633705466545001986853631520167724361143536068304570678777185802503357117106699195902546674346089070032540863786704555542482158610543467200086502980520357040836952082897707405517005332428775854914368476626600929561308933773077635810950483681251846165813887451850876233442048986235533172753667574995704682130559314640987838182674297526127516597749421888836764716334310070853837823189759976265949369555489206221896911315638807655135564544555582133502972247045884481998639582235156332530420086135592709304819117609865841831401048815116866883980499429916474851824851442216669438812553574322105050860061304109909596487577133168728034451326426447210865805576136766448765888440394421385693297069786933633072085676352252669210459271118657004967078864627860409250054919358680660914798025560100940630003260120707020588490817864819255929013262040002255156518800465816519445642372039017657348614778112626314908676931645553101751046398957661073060418153539982743492875337393109921547854205145407368101437368831292992203059971470379846728082026730346263196177027734633021752312010382866911058307500794953796556787897483510738563909687465976292094721067491454458491974765786102029275582452401222388970978581513898558542464471230567759361044152559075066213796874923409203920381593004487322658769905270608863909866195872571324217644043573377153905128519348255588444186690018280608464445940395147850031861684263804092657211377244720464753660065491986846260900983106333384236457690683448791677889939463430208874319649178692447147104922235191908799713386020863043597015581495113048925570554568681170267291203830872332072056471386499266933149692512081586954871636164538285138246581518769327773566863006071195703997323553062166674357818031184334693151419877545027976080583152722526587274727901434839945510317187416998267293867982732686920461259161597261143434051089782072531942978156221511346537902152641236212039504930518148910883913493919157026209146355726413665631224119858826984336755218984327089783233077585561223824863580841264748934037221978796216447789879015897677183966209576392235725560485942527909776268910567957008120955457892583755925287400554072956820337570599511013587282079430623378137209888540194220924935153500882927852904173631986136287481247020283518961273425769136420871407487180701895739129021061283645768443148421819577212825021979638349473692073248847755678436068886642674262661974189375088887995029057757314238089126073582948738120137296444064021386528866819593792196204375983444441578067226509805566357947382252036106258152487436766855231449276311550873328921982490665709667447250008634011207949044360053911754785178722975983876448615054610030457653549491187562281753793212172406469412997606033473498432547697665917115483002339653738536125006895698162557846571946683933883874161061809843241431213303361385452588913810803763386592243813949532473394767458173994672355535532887786690876265571542442846258266634313125752609196361717021764187299734746880043870175789065484347360869805733811432028945454464605567241479729624151609086119781675877044399041578526073362946826187726512706558647859834096911852893779901108803007190963108730509607098255545937937409082104348132881296646994063932561095683829903576412795346724536107205634804426074477146917094482905797822350818499167026029321061767897508560359056324476689606329045872730237938993593630922583718576949700564216951215554046062325110585498232075187174452559900526789290120202337582752513950373083685785051412471694511292898927122696601899834721776034109888510470136160870327454638406134192566236122877087655676544494837159739453084481845275707479281514762062398948967034729668912264240422667922194804379119909085502096272357653584332096453322975378000630759683868641656914810955377093334834116912521805094161431419353090541594624911466781211814387182707903490868064613431446759217308592931429700862753545829039067429769411313702781492469345802284319792369394237391508137304664318151591094867806232292204866385670965320638218165691733374383425188536538888462017223960131963469550335126593103847104695546949339493265185364064351783802213699154856928871852853460024393156881390066396003434002021078452074997026543135474459289212674513687851118634536753117781596450034506994949253957091495807367999122047654116495547183584315432974528916677670178656416259689033507831825879356084404361209066548665928907800927018294777702372503824978343708769721341829688965890158567860849935684502249588362127995272265101840520462804984746055381984078854191270818816051288575638378548313254830205837982199090216224470938121778243358214933668875607484638413379537753783267026660696054121719388915270612947002961208711927535157650108265743304758927451665777259902020775302456024909819964622036246263607141291634463817800862314272535793630724967998837599207728183434670015080700445297192732029369191145022558264036979061139400616175367151713385164084280523881538137640514977915562531846497463598050918222679882774192987437118825319382301718410121411700266103080060892195754323632725641378227919328049154174089386028807830943515437970737658377271713200665617461505478436908448045744458783862917556805151391652071803919334848881220252210660633787385936225595342614604340588261680809686970270246553925441353832880263834332747490150604789095331877012813217967397473872806032516236626409026490318932914260277195045359153443735608520246391456119739049937864114926939112304086855729909809396192491221193450072803192199718157584847689502885801032009321586697237544267720838695660679024548486908884786905968370984771967321273195337206720843122074787141458905576601636906210961635596715320049308219441163787589267248038172204472404799203773943018319989821692224121012109582968532207706953324907550816499754540458455827248516544908338093523823539935860167248933102453390296512759419948244964828720321000589789239226023359213347305188907565404789294256449557656919555042241374393314817674510176055549019067626153112180533279059326551426500322919444375259840341490683923481300096435395802634669485695202554514870133995418239260746861820118989005313615909910841444061729149354554182768131884696476122070103635199799372889904717990789008164244952195021073672412355778751397794535684228846517442733639055193758970829183011667652551466109210843174647480681006401205921703700901754044955038409053637387759122567632865867723156439446675556283601257778634233231602956878749660239927060263083079479253321637467109443254896348288038536523725677202472370934942763999891491308237645054681892243355592694840769253529599160639324781348827718040490377452030483234509335371326262791300095532629974750913581961609566067871581434635988872140455973557894380725259618690001448349893864814142653912258106962770951345924846764834370003195008837423555127013032826470457067147067896181827835174327111147762015390487502895456537957958407778245925694459854343935605178702687187925262853936586740574574024795861756832283845711777551261490116415621942335071487097198406519790091275621257031427746029444848350549341932508852535814055883758317658513605033855623730763377741410629590105347706762477729550759476743943120392810298127340371690299017525160594584285057173723206967613369137111473841913077999816752665114897483286878886766350003356219456618725168179187525130763715677975042380714848877784969112651822739823407345545490246001141549338302377953658829399468538878046842463061905314934882169976249163538205078349851664218122969609551995722448962170984061200797335393081089972087946454325282406309165110925689541730679437190978844883448001051908809852956704812334248288563052583838945122167068822238370500688049346874958375195528813608164490575734596176592236874992653902415309155285071823347771862817970568829995038054679033976125609656582187163210465309497716905363218869192189780905397042875782000356761897799112158004097550280037081480105862435153396105924794314205776835835387533986598563266729431707528952214936585091928979043762566702038893193403629281186006021359805184816563429801910212878039946844051699877815475772901305877118547231488278577133717253646616218696725333174122329074789858194706200189597893503699933021126358793744754424844832199637511504830654122348296258725449007187110298430833643425861524341040363434421496602909083584919100070809406692846918559331238129223576237227948108590997751095269617615724464739068677325939344110513709036006574690804763234548326273640410574641591245745672531430507626899055400895774324299923162842165253001130101378917470545645651737590768768372347441400422589683612531496489535069682324502097123544400168289620000293226766336999552049794047908534983048248983594197972105117266395764555415526756740882990834610776791267256232658811728006602883456181823429086267390735376121311310971041553577591262415297803905333078534033933279439366933932865261068604851636739103817175160941739375428392988885109926269771197751619889391160737037859143359917758310314064048542034487879458905860240630862352405459537799219932403337822934692504477116130826100052046748139473351656502866915051552119586958934199654639165525377319938143497688267786869904367652145930039492420807294564588735989111177561053842233442664673426506882903443559337935993619660188719609814386109613567653427347609655475670616398063256467910643206912656136354522636706207882636443928059619158019587600579222671808676162828978455025421957667022574015514871981178401237542131616873384033198166325783472644553401578221137590268893637274927678457690651095811539953668891687707994112548844229392084094445082976879872638235781943737298853927417547244143475061885992680800925343958830715244106618973766590914959500144139376241890340555460414411395796194836211673528138759121942632477237663879634339659182925204588203917569391019360207467664831200659912446592823151349547220941803154372658995490974863085898470692680849850809458059793845714889634266937815230608371043073115082895119429733085412832574863658947806878428827760188698473517295001734025440134212568277629325854883760767094947181576170071833547659672025802287579782336120072554299226466406325330022733973277455856187484029257695444993365792360599395495595417143018393514537147155030168093040625983256426794973441676208455201559346419639735850455222570313244938863402421070409143072937456843161491165889534862099594737194174963701323247458890315619663793526620686284869900714541572342299314758444631342420050110770776164987416157138788593945860481135953137798173800039974746598449122507127104369387759489401700336146977734479953481177104602335758552245790977476204074622196070313133355625171486332042472228364590425797995509278043279059299614126574184021614588527968357576606946111668313684037249503262222679710328746463440066278484433116763029927075145952541279837577909783559983561489144698748808282314307523284583684598089690883207471115817694556334014680680846203960151505369496859934248707698629366179312100293323476413325966901840709454736494893504779915308319560331733181034801877497724805246257462356981191739087066648364938113983069231125629067383918694092187061654074300312706103521299460209013129349229468574615082877899460085257025623055200579559717292623402226617169400521309022738255444003920481933336049817332647161994653910560930181795487846497718632980707170689409098284179167663180388192573940105639388886160128488571695809636219086919761108429853231719190425076809451515791512773749069655868810610149859718896760520045868596240170449237118136815253131939545516532477820981183904369596765941595644002963979910957051841016528678668997025784514579949846554668067733659318567046508446241834482791773428722214687935549704008103334312279417132469722233860718570136199564500252776754782484393605052808550695170289888383975576354641580048988203385583168098638283247587676594522264959826620879147208741925570264396930422173710866889376302863880514818390308739259369792829295303204896515219521113887505822987742882795945316036995381180457135212369858984215751189562229063643478743631290262659352785774977988695197521255363437520757414757086219486495841130791477023483558034844133054645712442758126811832493774508050172567743131069565807240876454902211978232579032527929997155918835291165466558687447804046488073717629284857501745674738913872010127931472137348912616073716018193098750802348598982429942368211617602899566037634146571048822578409297875796563527130292232222251848842388207314006197366557576417513097418556434328159363924410026483759291680296929976099289637301599429627089227694176633577473037978394705377139643956734759654441020456800636410084783897610750820160609152812119320567304149881256478163412538084700974939771861559665186935479354091860244354755661605685275554004282109953911623359242754442142947879361253384435044343746712909882887665112532379352988967663552333097693545753048332367692038150896606167208454796079948011803050949442185654994737612606245212414151567464906121945391519922842186029577920573972808516766233228916800629959015803287383767014205432217451758242154301917335611704855314778517674236575923126016874541376717731125795016791162921998316711261646610984804610204275253887977487921228896799216683108756150766459297562303404188683244443366418628916152759038249516447922318402107136418621083135755843628177384602240770431154459071845001255710243347166454857415502261723881129342550781132755138821275059463454117230270030462638455121639348536249051924422024179193069304619027632229493429752264612455082277634368314635042674173063258271166516482997443085991574496075570561395527596592111873408329710545857464043241210988577521679259339677538359917990968691408510462701042790025369028526137775432344719355081711061232462401570822560228877265716245305517235354017166774163175811289548438912429374500287094292188560372371311379300703465796738177656046563893644502608352228170549271645684873025604237895316444419475754695193051290466799307068585225528119024346983681955319797509321250643561770744653346968681718531450763961352413219595385122113129222196418505028788378101719092488014897851708641967501433294391945669094938523401933874948385554297174377754830652917597899690706252101799132895813316099454694781591324294940844197942519549869776668141653631221098068164261830655975061629920610081587318464637887620646604126383394802924579675146332702511766280287056154047199891835577457513937059740177383285721557248515551250531140539546154646898054559272322641299503608191689949388685204374642864722028552092383686918144318285122188239373129688563688303409384833367238234045482708660070037520486746924314726846884783035258766931023983783285664387098923507526291838581359104837261472894980111810213156323270240201471896094503214960913936683790695295483246197789233958129631805875175654247761291679780197854983666723920579129725217267678019271178892334099145312295382676470845776428294471764237754704183966508907774013356796650247671553873488812604305199002610423128820861281182197817493829327923151598230505119208755591411873132578080646700120795522834456590570680247942986008821268993976782017124558917968938049820944077543184103726697968595026779538314077278851751509822536988951730086441017659864946327331614471672082111615460259083934048215627741781512087281643002428874538764845968692756920448911319697821545788046787180178036534034219839565091767287471972800898245689736488762671964587122941921573489735971255651548489247303752174895673150778833986367086493920933621230711415879418337600018562411235029826335031025174554806245183846660408147566589887824557647989496909889014847985042205312514895334468013347120109033832597871089008156981647089251582521846348443523527095286024504101750615054256835763313302902132866698476133936711959744896533548049651083319646366028422145255802779707964553627721135908195121856090901206462987218161396327119056693070289558345060943379094257228208468913032937999265257606653231623136370745137526377389672556959186333169313796273058685847889166957082999449795851267399590961577230014059401375501851540164472998692796332777769847787995167949796657535556110539710244553746249128571677227183628244000688031420623516176843469207187739988675904768190702804583940310609794167585239894938142950368558172683454205923807906674776076304390128326650784298785066636333167209673711828736036803887589910574252560047184316885183364389386810696224784530587671489546929577979917208982127019282893535325142567244220254989096951429144852678204667628128991806653359759335360814207790503337117873389018937739265552386120125492258512036794479857685227890624916991184122911395844510327296645413397713198698971026026578455931503333427840025265367434031971951602266617661641907899860421559420423895806320530098781136677384445888330645274691182568739966814906899820451111056476559368800545944455575001605250620649396417982866796135738984526831742854192688783405651208082479316217067942350854484048684193269184048927022982804927249975235487178894970721285878179811986407991917696578816369566261291670833391891020303894859539517558615826082765289943607795797095642774017243220562945960108821366875272427951502222899869455322623725220596104013304578047842669062516651851396532245574355678566577544322865843532363539355948333918264570403875340218390616793732523648719480269027017152567216060150042343017123011464710469326673262556941685838349027309467827492222410651453946764050878509619126830284991939363742213752816347084806420312815167445676728089914728042698532974868339291670887482472635131837744929586599621135662538002868593640454074643898151948033612412430489044703618713998421770765703251325071079208884466123405650942712180160789955935246536874491416830949085322884085822066236022017381892035267494031782224897864733274658533107191871455204947153109601509964304842763243163011361256564205114020498486321452239993355826260069105399022763577131813828097405416112208536457005509928580757559150475176442767581558478543446470048122769096348803176138030825667117989322849744211053482444480232030878009225349582465545664853426513785673966333334212584996726099653962725710429604051111691870139186012059958572100940818988089547628278247505825971900543543902111042947684359494469058567560822188567758072948093723593844328229227397656592348082980341661337707833768358253512068927439935560088007368085869589061320195955704117106195492608909442951465488424264021815312664333304447821497122631409204911703397729942110916935349293887172420383392270725895918924670429504064877213244774509095629318331780565052041823046620059223345500800848894080714033659402574062281078230669062659523827317273046533113255715546768160714016335045627036914751780092882983583361471964329163118071513120662742839331793168706032340692644836324881594299395114266614800224017183130264090826097909028157341135502572495724736548059997500320977871721813173528238823610317021065266113571602322654695524292046721929769982451072165366596927047340615072994420150991750534968622289835346236959093016472680755931863260960940596175185258020494859072307110236346486265404401957734348006756321428790219939203772812572792150298878709797242613943058958513613756929592629970931871960220883050970173201434642800643706171520177272057602795549151276924005631699747419034398733590809461116588028048941033835086442580248286001869249245527476140897553132360280071752227194489674019107280888709345140844980827034024172378688878222608977406221281393452931439804596347193427037295965297735682128288521712140397574643894959198102807043618678787427640023695127501757550240569949045632918250581143635902051147712674284891246445077682565739456883848388768916411493487114919254282517555173007564314376365687082773293527164897876184917908054922884879994454147702422203961608320113197918608645094218183979374353688055375413116178421383366422580190466082054004580602733943320330451425145414185773647959396853789424018804242438880103311388247564587891127855641848456810799659256003618851775495233767137231076175645794578259482803054223873096839282913259117634556162902371203397352299044528601697631263397389778961248064096638545109007454539062655059210047506622242553368840933996896090832019297010624858074553775248506664102169044145178398574755955073886269737460430580621417850651212867095695186160877217664900654390046746839677768918295700104765861518402147189053973562248956483611999420690893101017276608146681399405602705551880445915055232542209674577895126757807596221360726281131994908522654296336785998809218239781471219154914615138702410429816879099619540140528002925812947160828824118837174859480212837180726365842105909569512210197999706576018652258736761713047802703393197434885538777012141870499713824653957221782710455895032581374765147201164794976569337158750725580710744340851015409788865319467879782970007403843598972469505807510465409538439506721401618399887790631797755996156767438065492425898173411358328584758753609648060949618989719623715966913684448805415162201422055498182799690623560316604628491166158166818024989442523595008279387248595786438175210275207317750285575428598963333975142044069809639232800869200148030456245024640964212759373837260922218612798529906490102786312426408820243440378043587580114767712494073832657505669594931884491004596205299579796491509036304762318597585721604997793824661062524244366776994764077592966346377613694015621293950248642371718756305993536191747196797707165279639741420342042212716553491633983355377741587549610917492317695032337743221038162634222758756680622869577465480116034569533561902980785742419272427505338307383850530997858534583966303500151000221808216278638751703177616578343774115221913240352428940794632198549972346062249440287231397869459570057304122392318079664062817900833265342091825072515589625828033972009534332574832630962016940550289000265924174221197793274826694038579267880175570141503458064184037924354785587828803239032225095875201398246269691956158604197434315652671551214667448707358611178407084087764570629620638717113274514350601757484283548578576826988706470233068717955479546479508039290288918305227141763700039830670527536560494674661249567558491153073185906900050416188075894468756869470579594904198158742420719897252595196190289430360087981480963590483738940656335247747108812914738285486586538943129620565049520725212749813528148708509116654396803911458707400216958575816293958891039245172268459200429748073161176362247375031614101224495168175252360320055757618325947443916960182375375811734806592426464450384566257580334248410326966529255379870692029658816461192696064115995194793763755462950255617866555852998857372149550141765224130216856010509661602168207250260912518817175878795936720214635728984472145313493137393170396390091511427018251457751166741545170149534662066031913620431877123584303695545910871413061382399303422962567504982116734039744272443105982125810933010445783821856441039551605452750606994336067298018421889691348953757657348515480068329909860644036710641981746390809222945507088632511357390034639839275929120964048903151847694113431062631584088618327957154890797520746999180682459624290139415594687088795903209204595052941674763339200979380824933820461413485613921847959036928383132870598303662245164704546216751776975960419543450459328576218998150393735780709706318456700933019153517486469194672914666964354628803312732718208855129168563879586643209007794949676685160359057529205832349585096369222884971185765572151473771627438927287431424914479316402236226557235520316594267972596165358596402125784521291616448561939383569586499791206992629276153700086982372931650477664159328358514537177594661464481105519427937778728452722990962712474992765491545904839000759909196895426799595800448892619422666368063448883194453702249562785292083072417129744861789298317210910594548752732944023499718654741000725312187502441381348254175845333417676966898684702141409021720995447174129017323589837079128656349317920232300669789010757992954817062106219662014764613964474048698091327887569871533919307200371023138251482000386224094871734528655282202619419988097334206750078921278701973145495628581765314908957179117971224800790099171581748882035242113743108246149616476850410051079746577811271795628533137049951741199542968735565475132747776478763598186127664591879892552724166489571540868232351911377367938366210095869781548787241374136940515258943894224196519368025961117209656329372100459853782517482748674772820048822917097553345969970468712319815906464019955511290887814357232688897226040018173080782552813846225317521133247089202117095248922551666859682190562700476927513622877328160081019802054502552577470813263944423639191339029659944581221741998081233707989200220759669400550158560422895105499263197059592182141253914603383017864001704338709025497409986141103045252395035085396849881305196568115948207947566420052468990706577952656774603331325869532162017737702971342344084586533198963171866802010688198761744546520761535057085682019832990049754228247005902735889679014442631476305213452199597959047068137834897833876909705992816949571942690423366740766046800744988657040201879741783395750066852663730410439739649681375577204786329527622762895035131848887473497725942740547943476134320869274986477205364286138332596329196791730593460916953092529760814893705656573418155763514869974070704686050838476168375887472077313517941592889306552087277459785375449597298855396899432340818442445604083282132829436257604692282657744372612476773361262522776447712310083493009490441592252523776976654558139561911832063342577938615051327439165572323094868540535642582362366352051572351201588800183782047791411816600677819622893990858430675776301400833341876329369331915582598922195818785091613670243807608638972011012570693540360130028539042433920467568948416875197716885178439193645004894731386738713220978225077402300138677872400562688052886291155677670896274885253508817520848887219552226130692132103964698117274961630621358146203980649588373243462642065466114346720152252094297093174926987314889147823453532701029721871232318951978746711518050906025689954922427005120440836111418162673679786365683845407288561914955209786034831573231176689395124666849056035872390877979146064120255370694276908388918684771261043373700509218056272015185548442524628469409624511806370763430755200415478075161413761650025263756362510779113212141082432785048751542886734773631216878803746604663434321156936080331686727669484511074328731339472108057978804144995539830032104048753358628474996589883963723510866899669740902942316123166811853061880050675798071412939578200131454163507034849993953440855228521220138455392940447453539576395286731533191316152282680254690267793770895395729319799101901519716376671169013734949656453289313050130666008523338265949484631048916621333489310279089434971085805550433372114247424503925195507032606586661674841776546193172253775844677889860011325460855983928833625085408858988873873026618333054570293775759931393093569404935506299717948961029769276983108665676241272213326853009002304500758664451763071691902799337306929260662875924817809031944067948340198164634893750708353810964136086490504842823279839338794476119678139849998292779350286583405359176339682839355656145612940609332007857890066508405124636183975013998223983474809750194046195811006510647545092618927544250908122214683589412211955126727638638198877191415371712031254134208606755857471539807724260210057718474881691714307349138817438614586049809746107979168408275189197627153757871476284064258441766742471611891167238973993663598704320585386946469049466973371831745706013530057638274548832635285242018180730592656191557180745400492239512775949619995354080082442133457467499413429484076528163656764635101087943787833318403563122050210806400155818295467379871328077901140266101395129645552337734429903900468259347161695584158207660595291976689247032763879971538430270378188965059137540581714371074584463834763680829408159069150666342886304304356279771674110783224084858116553127875404786082395544178783251661343937674277279240563968394416864112900044265897631384807687246056710666695919708255687579746076184752102214494973036159907179338156417766088666403014216229338651952989731156910883395922343701385330246746007786828167834236793476920395686403225312577342636458444093945323853208014304425982674805473013222001557899488527047439193289149241495007775154053434394672807303583220436011352842544342482784352654413106966630237422872520960744616224111205273244195375033608753025351921029812225985177339894451255532171561633191166845284612360226156186373044456060907104896416046488296410239747568094350681845116437570414565835139248483916114128087079071649110828089284869533298173374327877626109258302148030552116640838772654085493832360961834157489642000619110770868943738610699489584060999816469668894522492138866009428612191745220790331437809409959711879031338099568281262574077642375421684912040177310336568120077544818087620107119433906767618723963456139494837848447429761413691649157364524103887142168079968492957124972070385740277643875684195186292885211727157686113714314891441381585112818760720497328894093231068202355438983710305798091457295674471759886757587307332072639550628809820647575486194039088332403037354117046014463365905663125175206423732794898842246752495702175552454221154006568391605200944851028788570806377307405324504086141026902867875592515039675743216928663872889710620720316272604260026167071162308214954096884739294518304015768118781212703466845195802478063323027762031650126690258872233779932051004477080243780802104147285382141175746661680028968572734004219150657211696638749944777884315854808735201531073957452317988429355667957423080604037477838355395151807880169388508317837127365796492663716075150466155215753501633473275818280344176928089704154970889145468807423160505384990209974640551696418229384666566961693787512903286512869475608938132670509441098382682007006350691914993399056812727241326509725671502377608179258205158001193068964034140555759685040453252679432320880846997105664865161661748799957570988423442911338600758741738110096213356847000061817854227630530085862850910110481403648850393972509839594707394378027704440787000326525655103023969305888084915637655538328147738243247197753597771683482439817986591238633927949833966376401053009613608039108417710090577514855913480382856206680470284791519242996731010780758032130711501603710049077753512794865425331904761678594362472076274197333912756399777314361833500165420364633323273611801821210682308269846689700679019122106271829181482731235881867653960387054805612288759998596226125373035758978209227491069641974145730999914731441167616204633421122051413477079467338804043522498607614958264496667322235705945256637278111464382946781574797085000315805929371668639215570876695801041845628798172523722425451831903284077175557858231749546414442115987743883623220131300567277354286596597939265776421933812184917412944798949808578912404797789100992838155991536738138813349232341246120177671684048136762531590468317582711566712960273397917291568018516828167058758131083106426910930520369953045927403514971275227259704728801878434615917690448506559730752534568704400164206285865983150297597285993461708434165556276534959049118017630918568630686755772664023475736195760355432238625984695203043580405808939260039250070116688570262988424458599562366131799241271100972376248571652633651434886323521196648498412466360578253389196626657175246554284180478755550565023103547169313693991182740201132916002593928414317588024800436380068108235615926472144627614694260526829005380064860810919346917128598239340245912172304605595705877332738239035465514049162286811849047207136809821070742389743314790423657335897915408380499782687436521393236973473283296570084819215808803799867123744015212834406886339126127475877860377631012020545171782042101904012868751319555849282995331535133370955287366136144740917444486062738587424365313667090658274626324478302479134416796551576095372241273361548729070248847578218540197792255145767053913554394260961781065069620127670584043327679431528178216901255798460035371194056044153652830135410920780766487571843672575695538963334111806952066316663661654498752157659740202762472368983441214554985436752952616506515032899431514624201560944199137276294025046340010174442878582095191157445757513572456236537014836327375735608917566875568695605238783188760930795459866042367470209830138536502813055967535428863272569108783354487078087198205524446064561130965740339156193563291217462812524150287623984249283732759594792857236569044508231543663236290876894552918053586796204312333786656345095396032851778587800322748958619458159540859342242941161452984541607088992038585238218123385427006639260642373596222004702791544384089706124014610382878509588794929442994622794394788795899755485785079400604819642720368399227272151441798286208673568078034407597804862178793072551308301358070654549241738437358817127716195411122689317148541749347296387437286722809998525170619566890438527904072976713975027010957362546445541520128375898863035634485122070023924120710198116414864252861106188003349202962099043361376987853960768833501416941775544600591903078128700839384483246802218994601981071349458880267418981597461495720354452297441852347296290351193907215861479121205025981653867243486599350294865093882663716356438361336474159583405313413648458701483223370434848118247064601826364723414973989074234820701809932628836966375783264729631290074981184380284403603455318294261071449761628529176824518267446626087847240220896172800269177305098587222150104955121592818985274852255963628042610403748499365063181864567141477853227913605658631718759888786544152944419479667031614127880132411967640215432103715199726833790575813562547247376312936916283748979199609275165524542608536912774022565335221828050479544439198934444473506455256171703919152698433813562030191795043770418531487370348820960961314437383970373019110234508318524556469402585922113960041320535806581581633124331609610342696315849138953955651330473935245179339591284597175562156546984759544818457387184487287227157956359709913010569461825935933964758488143030760750983853725079877957769005488010759887855830293785832844749023557208119776206350018572816710193807615492436546451464501064240955282010687368104564018500490355896264657441100873740030853284832208297020431189388989887945188560921884350720971897332538666128203270988122629329735576830696762801040326303673607355256446062580554065530136941838289835746085454284165357042173006297520989031130621934489363864996086318702244065780882809681159180188817560953920969468859017130995761828520075964359508063449026920129881274085569505638988969828327454000560908598760762701178838988445826694245105385907260884573249338544020617905287414191292367008117362855052175563049811804303819755291266855008559505217248620375893515740563856270377303368507392227475186749542075464010412375911686316879734014536713446069075901871216481134035444461130313949137788403845468540925875033862155807964277735187126146264984091686482745929418971450344782102502467854893151649033158482899376012006175768576908158251844287269119990349453649826409068637251475723146336279702740448329352157243045152263510131808989471178730367094724677675872528408374186982193324244456322485910926733968159734544396614176923055132887782142435486508978645754628934967874068855689841663520875525571025094451969401484903033210230749215849028072893555032954864795340773892659080848862436323500211319177464685679867752401631452020300447432082686267173943914166759051481584187202179866648514801144624776844003752604112633651069057097046136461270597874431893415657937702572663158425125933690179754768099138593894362977342963768464440327120129454177546063164475086451610149192531311322964560318639451379959520383669738836282747131188471912853145721242373286082201322337122452942982365874900702167622627414281650487276365373891053711726623480076351148715257298951379624981256191231221464910195815489453545750151536746661888634202000004617285152447308986981203043105675735721374773016736152189812244496433236285539583678246462162023550943297937415544325330790225910089349823540061655988794824142933538473983105953673700101470568388189680816595602181423877721505085432974410170592107033098934457966550584956208449510301213179304094622669710425670139755522566198614509530355527089022581141456247407253053957471965598485326859433702454653523758022717633771683256138666135569984706202271857389053144348988784625862026451177930896334225180968656693528989520834668393774041256871202502323271026766079820397971848591966839370534733456498458998165661420269524776787835651374275796450196513771466196682107115053538495707097603488920384544417393074158446952936215869967896228941853261302336358297826894439905247080744375181589223419115759888146752336700050868743017850587229240904927180645351435645393115264676785238576219120706270959349142821140700484352169868881482732387081049299796956614614663180040776367466511655281411857758823443577902463712895062784518685147621812648069156839703770621081405134601940409636467092245850655948588837631754686051927825074415606129867135715313028945547041568723045975331330463375245327252939487651983272411005137977536106093147776112610940633044145384049537603947661559463741950626947211602848127801949023326093706543424260670079859853072905103253311597531639380553579931145422359615028057726687686029595402279979856529457206361104920648747363296789953114304796082391865045029219950694226125059876514079977416944568109877376040984031481410095221330240099467981172133372325461504094655464224688667131247341920219188969132715750536403714943213736895255293904359644231973915119882559675762196532879631466469486797698413447734282125449944582346416005105288007627025981684340049060990552394710636170086888708206928802715509592837288531139827533070113248355202863446760108824191256181650500500146621333417222860441601090961696557781606667066790837368639941280557815508652822603452846297501780446315590479182248886111809607683544627364999566828419149208655590455039990440998400724664471295208938610539623533703296269854311865984189564947753674005278075691975349054618196437894560201433162668812745984780579433177086713643730694682516137918128893965652235263600906803969633366976872432515871486814301465088388137365216267882004497540811295280596061257737171154019947107838679723496379219950610885120622084180119284300017902978196946901329447540736632896527600968909871151751700169048174703531265974367917908188300614555657612929811800372049814120445272190453217586000174838396393380093755070251744119559702497251851928645855366029768378506327304154552564132875562351760708543835776532570525139387644563478639305531106362046312238217591167651648002476397876309909223709940236527511557219582520785471577335446030227679063417794821792187484694753964371205178024139452630111732645318927729157013139006649515025195588853532371738249438884339028688210382280922120041152600062124200354690888059497214674951744742522010434055551139876942350327836554118012006096292679199269925579692766518529808006397905577341475670288124966953084188913449394759525491633524171792977407377686278306864402891804312110401163586356250519252567962385246050724636717151167661853380747106865644300067281186632794511171686863505318622376426221422806355944747185502360198391981866137676139040975951759084005416788229773406266636699926544371482624269546503340834276385417743658372759860301352947635725333926959992011360791330159867056762679529272848953720033724192451187857615626047067211816564360968349726180329871203390914587060498741123144529628655891153811740990607575147015268133530039799377501090065763322995665888847894287120257220951139291496737889230448745586656769545412455846938112082791838182748813933505487283354364264269640628366080048309970574546944804119403344058065946132815581488528531112255927778266569719368111857631066066704378315548748923956577669521984316779912584591230389470486577434196972389887768830961871809722596277383366073578090533291851206812196913571295938359084608548578953848738022101968754028010277146404978756770397973262954994259850372646227297612823314410918766769824792195892611813263661799794020592284651112509758582013474713112041593111326247855112579198558903640859676570675355281822393814904000229615479168778421316267608393766713967427558996517053528391560091567334317237610830413247556993093764880932621270025563264849852682338118788379588482312196318667653161498719613410773164888927426571248620633159967711733473984675290494654751176367812989307615554516145237560764550201871466602242425110572984135707409097522308796419063704212348848944998379571414131615837844549162670711065458756772468904748236124110945511327704777249268929499550676311042225547432961864702814925418255026754704553944729750213027528532891172813803749356007866329883006478235177317402539835278544516509660231316773820344890159843914437445378488536724406820855971448525486814450833867824018592872889803675910335482016046098772601118389126725881818574227561318164205982992377470710939264998397621145027976472069446096233351881430175261136163136939428997668986559467904404938733355465745754225102920607162701085640424024704616184040863902126668653077004146292642325153732015940331926948169135397404731069033041803268114285067335330137933536368263103996376109535722222829417014820626104146894141549259559155264573072375598711517173437987818336315892414987872983044262228071228063294155979596324637671345034461874179597952467083992844768354947184756972944381057987920208091203906892581337249307589831688886714705587017792928810906878625726759678591237856626223341856596666686086998095764922829950400979137213718461560075273992461087471801517098110210832898257867086282910418417882079562331619795881796803172258537898401697149290916066751941753622692372542633114850870912974954281832064334263803572118918391864957914217233173341531088736548767925678358508634887351636377249916422170747834077998104021289738919648579673901319204829703871530991516884913936238063147408881098128542037897896268209040801833948572471584045941938268155885587353063456364630536617146547867168391945857268849411946069681266343775927059593830523616943629684136707416875865836977339885998820207651754625743592015878632165011979535350676967336632963593658935235680484128942322553945602138408256122409194496670236997763130621033206190675049613455797677906729169952772136707550943078408634401649105941921809983588278876791906449323648669697899961679345061687312418281471806428564388675860329077995851168700135539487352642294586444543550990353529460033347038882358160222562488858075428326867395924680879716058123368089430618936474176558899579286144321143253207247021292920173118595305263773471044434253642593238191189485394182643744092486417503476419137516338041935773478408457456531378745937314345243221338689318812267249778092050089106065676649031426901743259274881844023571924912159947134939827542155949829015168808259162309399988075013324646075791825048012344150392523759152330159454533674277958987413729465192933004142222131523260796665247648614777523157318161185944973734335908151150357315862938872021626659902920019016797865542306019171445454920335365841472333594322430540849860742246562887092446411334456982135833375029278755370256575371072759553496074507752939036918597430699239323243822956257936429062490619936667813553848353658016594570868359191289282553951410707364332734327031018600893600795643321089948711001524534787170152006588480944838148959556562031248772294267331122179455896459003727268497621929539505898816177094937385696480537701180088504250555647494272184604752109084879000061112108515907624920915850556531523262614312775302753117430933611566371713211869371746513073609907815784644509420537947620083985919518417424174774457517936361480330735035240258453283381473759606957436820676326034744382575104665895635532174762262902605725944802575589979379712968360865366576129631565366643212182962207264456214262892186402210791524279847671634051328190542365619190177328657661521530179556634165411361224645767387275309256472117381339499919031808551815388877775697639552926622654643530529881880816924002922152219076665760249265512053194423292763276438769856097731753849510797820737108637228171908944426758247676649552570754180606232873445101331235767067754550641310890531230014109950282914945971583008640351424274759302298421857537909096111997373454894537748445597544101981519546852588497209930202590160082365793604406044935952481714489111205236414692122025126438333333195751733822535734855854376604707861317376117139736346173741834148738713744584667450810797159751167943657687911728248716174112416250096973828214071102626553230873375099290267415777170693904994653022177697167510755218915740750574137790235578790192910019922254944266555873130082855225576357768680456440405458770635177554678232685544250775778008428977688712466035045304275793804688191101591554879174133207410808983603270343805059350146172339919916149221861908315495438257728449025178916733497550006399980044441089139795962727514399651359942258305286499595724989163864951974230775483462493598366625486077206392728114900110118943329564854009732432159140983960678744680912020347331449823539403997418916864887024347977278383357971816822584341104547906235000916285279614441114673868458249990869520024317000027599344653691123501699857365430424354583556113779940459699865214227790023922614316999692845280311931828688034624857310251545028887512243802731303753941978605461708662771099227252136443350998428472749447032321525512138101982132008510033058976213870461120224358148637726172315982996915345809308236731428572798354728742493688406697431706786291086743758836279251736748993770033633348865077853216951657476643833847705727875948230830091016115769581078923097040546028106312955833061189370554229620656427246076558375526283231776967338518390721382247254570110740648994358557541775405008891895620252249134373244359925148961662067149732515203213801995450670344618547456945700456229948215284651394002287672764635109244119123452169865871474762273946737412374605317928155337457624914771501604658170105040020349922633974280701565063595626797293712663213137927741335839861336233107888125348163512764616687708434773085877220382400297990422107309756207379490783965911315348846524754099420825060525261869975251191084368318006171561831436286289174977793529195141966101658563415941314924091619125079423206818217630711269335554470423366296519570519382738371848857700882499650316103802475512945994677069314514868458607945434267982304846806805760534620602755653266778821492936538201974154055217965646527176968733705572264665715019121804393207639318895747598917065890846879379784800910822461900944814150117540733624111016475462178993406306716972272555901457557283975699340016834398249845624790794155386517946574940301315881625375635938463930718978589886183597608774756697042969066006908612111112913135262357310881902932147814763752451598620135459050698547389392734180369320719214404289317954620686343605458606593067002827493591408873954603349671696946150931034126504582879486215087155727213968355636539657674704837064317018526605245654028348998372394836556619710690893926707543715312290417703121042909920364047152809072692460554469069649065029904927745515027067465225288962411742187443022485713396483033344316286127184016344662655517706551306252974345668547425552157601501612890950823777061346451454315223020582438644564087113957638362238924785353877305408002426368720106825938272232417752345151228794674051074077583607117206522084063866238399006533259562832358981357259491004589809310411591379093766508885028417578440893445232036436597765746352034102172565396645765842415915948010056854063181508717756321896572282225080476232359416576049000360451845473083214265596679146954132650313702576608829973833986380648166423911989646600780743490031603859787240426653556665906891319245398262067723550016975395875629172708544637647256030791828171484185906181582567096355010433425717437799531690741561141418643771920122001805670569802138984563966015699866333021405232433653980028602168843023982145456050901393490304272644915576043114641276686720304065222811115865861431321139398758106814990937309235741989030117427814867244556371277807022735241710549911275304504826203858848037582439586935556485911152376676476532449508588845255442030133612694992058273964125919134927411266298675564367302434535751845073372821633684751003206578881726042171229184274902256129445854045501647883828039559936912327973709930435009413180760159212437897392821969623578681567961214969336233297884988353287405210478029443013806512620582420985122091007242116750062786943337126516467752570465393249062802909218389728575272726045595303483836472440457465944090488783941606570623571005138174147916808104071468196920647390030235569411200223382605448140743951121418980071802829074729760684251867722965167065332820021632928816764083612146215099120122438282073559722955628737264265905450104580029620375623291995723750355607432927322002988023813209186031704594650727282164973950983954355625437149130326562653273087402676586407531502171637767838561731183226781713381951619643726819627294530698552268835305490871884858648417727947157926156505282549602842983957058668185357122579277858241317275522027248821608030460991404141200535154859614609124441029057086811357481947350006917217320397492501323814434156629675459639090531762037664691227433580347872780065400763676161612712955878402288561573221600951105263870087671931421441064602026475397555254519604723927884764430304352306410659186217108789970829840913030564935738462522159977223783187014276731492777453240653303492819613712162193771104104241930312720931588694539669270212118803763648836056421765604923353515825850006662323247249522416243822344463915535397239831738677258618283375665500165534993080075550169875018626510805184333923827459228135656997204050515183554067637408815618626581894979432730665572855547907319967914511685098705504323598876558691852671747894240794568017441182751820808679493923791075344170115284227689429293396694757793280469258747390616443417693231110588909216797316973715367011808326789877824561429698464532681186341960835278971502724160019367577392008047671175882313978631694577125845694658501554626209488982712919007108779531361511352345802640080940338780010402347767035363043318392917738232057048669152159929109728870365104869052529216052104145713771629935476746634393971202195624894225962119889701683929090179926151310307828540489501025345437952991157780417010408359463674074400824529233257223015605779679318705996793635546847029057581744585593251032816470077548356857619690642487701969390901133807436056563002783092356127710137095293034751963756221621989542342190202747758235226827017515370524113200957754354650025995101304883609296733075822459438666489262312981002778067047442347741706961987135334564184181011638240662180657845334526819704963991293649736350163203384402559744186617218766938399687435767702397799860088546943725555893522969175572234899379465397925669330689775792331517268775310286528996998691970474676337618827287965730992984084570563228139180716955006701689177897232123494463289848167433506272715641620125931654722754660579119396691389070478302415492692590421321539810181120117990472435782381712238707334411291451445808774690851104699700863544983890946068057265877456525949894479118161937204782296290586949780709915382458035220620642619437267726146063551514173981584684527744590188554288211526029025056638317959608246684597863993961221969524507880398696676386682810173142985285591017182605427439463064050612206085990437320507593025707518952854153369976632326317646553621349874871911684338499177750947666758195360471956447473748049204667764406375257086757037627375211206732395710433173026650680824256535872040861940267537136944356806035858107215627457892119123089176104558681275573153081807937873312332808996855188419169504466711336654173564290402438663546433958977610789014315276181040890260399934802777401952192698364584199783502037491185865649804961505764296757592551601494321862025534342789713446776079703498903514325240012597959112189990692100686631444003854114994319338299971509584324025706381008560489336058065443930466694874004850523116455419341951918908370821422256011638459535544156525297185389423310877071209614166171182817345285584014349744941238526202294891310971926085215156482433509210037974847449470060553226524804074624166071122717672893529329960027246860354427339831188265588807085663257154985264864061371048117028323297074092987130075173130812126164478661299736264967984257906435619070422806217457627900334003095578003271622005916088161271597179917530683888525146042767012297132235107953919922538684602856690823453493330104480158506455994515331278212663925207937104827159220544814186556281474811493413279333079764999501955038396119744577904943064258166987272242735782913187344663033033175247947024072504738612495444694803921805952386273949882302071325109800320310543235445926747561774027154657181345749294583524564731717230102818314492621538052691713887809990324999524738078811481360747429525725864670103584427185090504923733382228868156633622265701515779085422002967068506575040557741016965855593630499560108454720055663557165221686702785433470943788240403918761276127725009930130079231251166768174828358275063656300872029368297462957632617521420779961780182637292257799389479555237930662199711747673338768281524742207401859939793516296382336282720474374553720009217256883006507555161443930916080967725422264890704607945923772376496760337480105891556503141934784372050875519885539097881532365101238150127251756260637006107958025215573558915372893808334596474180645299513295225004000109519311053386164539546461794919845434664413911502501665367832664708511182530152092570457402917902414897560819027880723230421302004044503489981161238746374280625494913171467459061187116952183951459432309119678426087197485212783891709898141635725893550282115288356865407415000280240048507540369351921098226718778678696502553543876825356575312952706888124508795536201233044312899814647792007327608569726735727234687818746672704158204942184684187596600610934731721904330378948107023203368125656521513023940251740263105816189664067609884956481337693472877934218517557391545816786676684675924489517082159436564022345579694957423750211571391447394260464420687741886623122192451008006015251534099826540967778092064968953489303683954203027795962796161618069052204201230626807573959640377297625342472045440178414688480536626973496475154022129575893800744576849380009094279576589970192461633933698735439614233752614031488659289112617926095124086003451494524630551494456621997881393133950963757007213815955802317451131074968868450485685007236427942172019348258885835348033250585672423529330257932366938970073214941321468058339569673897150990474494309471104030088981345997928371189419670127660977581489266150923945492524827143788302228425904114555885141487287753307759706037470971552205774962846068603923852175527305921843360492710557269006000784423924394243800664483065605003292488704952832378943006239675423816296229154833727109128021726896628646321763348102940774932941152058034701562182268642549141269624357739527462305495751856273973765380216212103713653283249345556675013971526834135877356976559877912626557184923539528679404075846728944678499338758163009282423652108907283831806263417705693643768501364281060862296980581665513318702676277844803983012955785917957966824597378569867942684216114528466168526047226893644153295566890962385418521292891820003781237980213699891761564837441847694449874909339272441390033297248484201195447859225549827879400189480866081525072331520185861562635603845465469873582295573901804172732626747889631805253931106752123482328572419414836272609748923742023909120051422526436436078108542685661161787271244031922775934503968543363719921842986640318394503160991967433573995883714233935739788190217794987965098639492894424490122496236531905052213324997995041926503352078494791184233170528044047521040896278224039367931153488511591875797573925839246282991511941556764992978464750590991894694029098638202694189107534016191829961429179441794862575794494458709886390915750683861341000840527702625403755721324844974553088443096409646533148264420470705190379195284731565405323292896828314717186949214558519876933288892928781627566134600422634361226900383488958394633003374013638640038933448869375069928826597300806738779107505146644028078780287859124720475304978748620459295939901249781046569584231327155158049518252567571562032137973953453095617778049390242145490685569618573604125946055652737743631464135810889186116372560149165973592415342625139377487813919001674678958464664689253758513028023423166346814536064676801109004586139303893474313187266686245416665346321911046945246593798618823573161232316057623018357890724804601462286699582082034224737132610728013451306465966863076386226676702159641000721919706978058532038614050886362966944198110847062503142378897999663178580895718355128818354850359388765219410216162536396068854539565075600232793586505005306528227804092018202678399748323940444029673946291808900948943689235104600141383309866348896877571543255800203515083336936927704917309406343181418799409663216526339283194014419288493898054051214222581567067359321628063703600312592924635678352800442653925874796233799795664787631927066732033125862066448591231941174819167372958306462743306377148968073702332233018183902920868508715478082425809777782987782111804250145977441203829316798957921554448176645819988083092157220755144604294892898078380789295645539781767935636504430112580901665004584411477117820775623487362901708615958474221282161129715678604138225717705883262210163071384830150632446368849505457350971361244790519261900029950488491051583644649225856153747224184688358711591582046228997192364329457680041934483090540027738735043480690004068509186612982321620695559184740204943465718694630655969503912294108029356561589001133501580557344284009569596963578680356624047269831239270131787824212163831075247373686248967802925867250818184871586408576399754088039974394098784080273916093732877070149963762415614007896080918883876390535685445211064103042257064516357792952540395510641055227437717673416568293164818091790249652236160696332869348555237871331186142527804470638141468073253329034904447118748412899057291132280066411859490083697185243871143569049489368713829534987877594616563020407926525994464541592482249764538827757956502747807661881887029327384137778548868929301254424218004774942193361028946710973700732630759336555689920994602703886506056442613080593082394911210010967628157197016552768316839101038058251536356460898356539534081037815798919676751454877380906794250605042172283545029727180461231249650469543543564486005973477452573473211684555096011859109159016001643234686396492091944448275969988058591087743798276268466511232157288511278748589027360903574991403958168595890750461923138730624117164168686343395880991864569373247694935093044184580584182688439247950143462359080140057749725517384254180490364964839927131841358615845506779021378077664237885886620968840458902224141101927518357001767413298483465385981354318692116656861228494475226889726553184811555510819684331057763458323492025077974373617943264016690949994035826719771534793343044225271388869066839475120218174321248946190708890416094884229029931649619745179075090649274749576857698033916932839507355467384329850093008159976236399023414361662215380585396499230416987123843283103277825278404325920748858693598080241861010309207371434905220318427222888173691116461872689497764016580487408339566681769257892021972913518499184768761725592137672112504099092178629333998810338557581917834103194730011528127018830476302684291893659546693728655561425790711940210478472997342305382636789866965611455838838442013286808500943976322151327138816153735960131074646012307589574256088792993243278198748206970523498094481936869403628770268491237623406341891909729404929065240597679545020045871590352975818639055090948475867837339261275298215269775381019339214264507572714319475296975705056667393175206210916669102055500038441790351921064461806585190190913691962841015655061466720590442346978776263658994104030838328613733606659008963499854705929061080961367370087965675351787824748664800580927480398439027831958878289158365283934805522229506494741204313678814619749508956163579610495002804845735502070511232892489444625660740167591814489380370337662557919618609365412328960979954739288114285644019262365398867641459776459703994302126781584893664729553695077108857558522659267400988543928703017154950757096165529362527022812196320173948826317037929250683371920453477996635535847412962563737209287483180299009232022393022306653877530173885992643970752687565994361732743724774559659119533685587780116322700520661163520045041926088098491092206536310008316500566311770929585628214973437572502985570411442522920624054398266110136544954731628590472253580455393515591523027103532846065305392367868993729910727052134970549695659186850513379534108858972946783284583154344735606794944287344658034355631261425887616594873157740086095912049977455495785062499385529850914255119017549455945638343216083437693218821099944643499215584528301155711447470492467411784855372553297917347170956694631630017791450956930956670428789689340862217813396514479316536810329552512904805581228495977521873944062542296463730969707617041938768936345367952483105153395165482724674561053470801450550089139942095294333490983460565451890732321511625216637821035353701779531717777711748937066089614256145242049628671354674492170104011409429052755360790212656468915963854358903253293215105959395171879267837672854746363493930356639539472642481189688056017881646024054097673151686212054496501711537755508983821954365871295865189304237425638330995603400493332057680181306190715353359286638253963769061529360898774409591690763212530751758005975906292817379447280845385083915898761772087158742075134941998631697996645412628910771994158007806649365518422497449725662889667334459839268175356721824312642251458152496479915047304438969822458549904556973354987839151792799607847280375870770575343166659453836372363252940867591765121436584222316352407890937192723055082289903256738097954400807480000513417823515169158110453384310849872608784079148010298730560542288927663145862446963957793255645560003645425588783676598712488228212685404536614360088261965516576923840356428511582444146543540276260298744514261558620239766597244695099392952136160378645091553993069558705876229508383426951918856877505733254545673406475039396700046889736353184202861746931051586946896106045435270855951847212810397686956553475670100705940724741971539940341264273865455534935756444504181535585060876030124861360011253010915811953705168837224080227032322566479701572320723685458448565924178693242201062851105846294613528642270187876545660780816431298079694623585793960679898212261798299539527639182097891164334523360063964057301873741796408640355319889312025643283079676791875304812131782698267136820615115626831206678915885134662084208098278951078339685869156679087145761708848496707326859606270994542267884469095096755365180285494023430993235162026074196148871880828628979989072729369933479894300048786903469926798023416374779781224237569604285219946937236602484661013371383410504316972697712347606334541348118913007678503486555293224378581421164022970075009760551830134681292687283662033216680056667845010561192647611770953756206509753848378962174761806663066088607233125100150862911413944470826593774308296562233383698610881953274473169880385820433766920697844499931971036422592339995112462404211289363284379456819138199618286086868526350181155618050172508205242422483819887337950640480978268188619941794729465305402610409217918731220819107613398225330637975647141834713435504053755961571152878568360433437121576849782810314571400169451853193283560222879504513295254305647880221622996383456760028792350138729841515916218122705782923193799751709654897185566029132456621433035760987359936196923494481174137239416595126990268055846073100109863693329691644582780429802813647735278112045908022999860709274046123831685503149260590140392382362581680357694138621545484003992309058408609221305712029342044642981966304538418461981718642328357991266738156767150398789239994777305554272751669683497906471949806238336170996372048568928658531582733011051164700413035615692706961616178102655294591453391212889783072667697091853094877419351645072928290567429044272191548853316299171898825931889951628434381321305982363484264046898775287914393534037873397795220823583502062576158807916630835049120711921964562702192648478081062044458532037793324097007285497382615739372456844108430425684120078040215826334299611130516020058814471656041232237611545155028771553282141866831027813848825936091726790525670437902239844352238909998950443984157975644389293969107009783079097787062241745672279663902365876281686861846814351777222361857591005072871552490312299035549924585042474021547825496520318938883055025014462539146198781391736282061384171798441611165674499320805615351164120138754569842283911975692341108768047861691462396015434621126824400177734031452768205655695615671500099353554795494949830959217107075354065408955005227860981370094630734672206349041330847931682279887643729072412216811212087956487529969890904352952460273568287558062926271305758697088724280631449932153833577949762167732815943966143762494674781236448046172613420537620059424453160997983410511173351815109230644336351025523975647169832293188065750729059415247704293806486088733255896962851323633450849722123240348414403059968254493049423997348734358929560205972646987385756836673850134232332640880270643724366295344684376886206976143622461620074328304455713967354201764047391015450166325176056385422883104006248262102079788709190719458197639993557576395558659962053296674448364625604896880326516775223555030634009767436955055314964428001604570737447591370356448138884803839121409329504680992775140336129315581522587653001967363841369669086649977960662767928492391467172107553695151364552822127842982790733969679849276659697631268266273640301759814651112146217383237987148077667148187229635711337779772297303308056308903641924124014437096017358265977389903298857895781368464614647155391238134398140256042623835226584764030005947410705785551166063042691701887438200454651084041634983383754227586146774789301622133615405817427369641684946901831916851308337446907160900280059273040776955767157467602624557973568018077382633373229013812487461639819524715545894370063884308660828312282415127081044198286939068933540389133374816148244534202607262107511208596506346531567144708316172166205381909610060350114952622321637804398298480047185178303833631933621574249401472330801195089789111319059313725959738491013015550435216913129349492506969778696924531524756488486376143400451568257815935015892741952118318865275734161340892978560800999930018555168990896153337593468741803296163020346867102176626496726738918517419310608136912868278638848814672364683701576166581440088056749689298608354050505532334953242872114512042983719854440636064733867176683423634827323410993102608794465511762955946359511737014939698857618712344333837929303588111254022932270808727962118896963765262120336255423840925241427616244335955443673710269965820292411013023819139113412640778304760117569008747528625414314754360311148616457954887441191233938556527414325696899890856879330889832809236130172688026475234226129131814179611496130337919347397162437777338818546898251123402422539667380817062197423957721680490670372927447442425222860743996628695026300218688148799367501273636348988161037059632206232102766848420875459660198090905400365973153150081880824568972737100347078126843930655068260874358678750663482470433627888896818821017638850170738163471729651148589091046092257646987972551579326909969995912282935060651661565277621844795082153755582922801325292859371177570890744507536971517798576736839747152706523396602763078042088288587547454005626666602913885501986926295209698321440220626985115354145078017735807832470791146282896000333944357931498603334576100849504232215490121082057562627134445783629898394656541416100762079317175247331107428882657009497761950044191981747311467180989994116921177883204440249865492413149682672021590049070790806833614751372208553810543812280327924207104214562435007854471504236174868211187538758991251416971662354936627691124397321837730754852710292617349522728076171309423282244778385470672817103955374549984469493634508940172054860333665538037915725719800246553167860314938687229278985353301614799787073898130237678602631440610013939083750105257736116830685845011401852297067306141420637682013362350540434502911992476034436445938954745786644575591001670526046356172972571880640383209953184968412764159870293473689514830796423825705208009797045216457972334063229221667917540074410528127784242850854145000859398064007099978710803849852729525601660910774539650219313005200531689361896998109493071528330191796572285510134706814740284622236226969156119787720312437603324965259334386094064343459205492509040805672480843872091316341053027458250109389471656112917184359285377879220605053116449204472984477003285113531062508817221468857122249698055119451375841356137415127170634536022766304447112232563303109583825190813863157751038820755539774331247522574876372810759041275377247543844900403864075254963796582151583036467861451363368822691455027152258692122681834720934924401242553644342239296197643136549547674491441782214620696869703712826399577262465475184032675904139172974333360309785688960684196016365247271059337899381173711620049469516318178323074046149627797816492963128280339903026501414087295549425782039714477879943288041527421712814775670544974113288920774047891689113391599127106144022661678223283788245815443799228707730038962166329843111276249952864120679805037858051721402685607208075059104679269789464909489281618866663900243952721922942639459737045422339897273905342659268496669134354460696003062973824356429544110520287158292985751793278543172998485760318565669631468851041894741650872383637596837799491571719068164744589394939627173196954942058846535393514581819368262995855605129617472648579126798529895007887570224928909126587585433702254037863756473338466193379136201134342966664106914009951667791918216194268704460534115442135939936480379010957591973982068065382775961231607364893369321119398023678173377371729329468736424887962646083526866997268670389916255783141328278278694065754185041271910404715605317141029121181032426130242600026423972526313295611885851573952871000943582903831329060299558564822763280616508376238239191938016909003864171821079697801863839729743535105201772981765754746553178621923163233580536795332794743431211230446437871606794330430967109311809769264661592259798517112180446471058878948102868834676623134124232017440868653925435634693042547465336088516263946249297536916897328029149529876562744743587284987367027803511865042591643857280242076920077476334676482870287610721737748361287141973459911136140555777070093755270558894554409000345582628349042059620223495486197074723171268619445506160314892116234926027789867855195147127151789894451536620850342187459678145604837512330835435903033417790562842164032379814670537920071591415955905070803726561792513831505246371231694499340154764515782001763217709336252908442798619370583329003199309659818352857764291900010665535732461498814954419655727931253745582952994344027033764889083572213072946817578761037567792162471756617799988933694143207891903289128790579224729086037781793412224533169324492323087943940371150456834452218640946302406985950467611355859998181738016093830633212369221144640391908217748942044803118011757619485754579242569077735769404800241867862010233668764473206951317217565884239241747843515662021109776805526198882422312574187863569402576525366839813458185736231769654451617356045513629963636759592319152336814544233597996060986324380978799524069361448053607224987536135527198127702696560399917309338365601786225273925305052664002065843675062498501337878542379828403822982467352706717944270952502722268454204996358566105317344842650843467005290879307024533304855918828980555007376768821769239306011924201297895514404923707185687708289087340662051388987085250526918720958298104797525880300999837772156984913275115709324238075290709362219138440682372599650802208484089847687429110829268010844977795863094904375469778260885630415156580636070116840855474962491771145753629288658436462426966473945613086853500264608888211569389510894187979681992004995419035393387536146363313847492669809108462117764926978317971278192422666687543850348812306752853207199258048401207661245837614008541008355602431335646953128322137491252288761433772805375963919472533110540509058059065440580331004485678250256152368662625469188508622295507671128272193747687683628755825633343303819165345240375540418809022527901356874660398031657898680449250435693566873632488039335770154884272078935494169590220328928207622312075694358680537770454287643973415981383430421056312600825111679191017569976691903318521875069921163014345986282179263224538464356311063035964067137750320478981752415296854560657655275237908936737049820255981917351994591948738527636478545630605445560224804748092015061220776593341647579169129838607408363702650018495076863716943652505862952803880852430384887007729735201026040851725095531417037423622435980259164995065573291375270857768529672163709919338496208163377102288644066074474164012635986102833002284954128130345588167962110122477882593016204242234315092148745711053669782265871916626833026548871820627015688612128876463119610162996172984073902775950270274573533656301461671027946539375928323109238647653322282300490474385429391515025438927021397552290875460799368478783232427163000984684526504802840301782668894056122079437777840247298359149649618358834724083171729360572719819605740828927937130429013539165346968448363903291179996284501903556881688111708345017187762540384270595666426274185235274536397066015619577235150223138710338647443675506733520198940257637955767618811623412458761900660629691498963907859932783372661075992042605710579560239967742241307026834130676856949754293646804298902682153148647267193950006543187179743345278468802912811396365646153682284260028706121501251928854816763638631745983951679825260067608214697064696826866382529450532844737723820175448233936608534796331101457936961428863360341714458031804986662091531848030351968677658920340797704091097677318516019910945969657348205303579672899038998422486632056569198176895246885331357754168737322921320655356486867793204414206988994392917870338251584902312166244546619004981493093492971009380054571792947987150843724464008909847342027889268873240355634879541753863219147292928046200468948278243149785780955500685865954043530561408877706985601630958829626500816920181695826490830865072007096607781278064754369801007944606040086933990451352327673394383336647749020295358830263836870549733788834673645098175367693711358844961178153666642055868082832009452258296751054207336059727550812781207595635150453650909783505973184690750610597494721774477353345517406184009880776112142502336348414056544405643902251883691381433273794158644104115023846921885327730041527500928283029971571697785297372803579018587001420475116388503781606609636839267110266879217102959895244400486312107418532023612572900983478114144287890475449494908746485396386335689739518756334256627207070930962759831060049735885545247686650279973007256571089198002319262165617567213540573430845688588590948890010470880657734014855763353653900293934660217328219443379113923783776782123721799528388066564341496417863620128338488731868623647248044027556087582551016510517155118039877007916955672261557180481314901064292861081833169919039472496317236713898163718787510016212672745431881800850281834308568883449318615694780708428654316489125837027575335839760503223058074315464747466903963473119749201987260126627915782536195683087545647865460955693657772908776178063497109294062789929708770758951416584954517650576213556567408039898283208395375798686366627405713355296054793254327718599572685803483714390553657930328206888112681106653909944907678199927672344108897983241806896346661298199653782138617999423945382233320531611480957634386701851138823715983741599730295834972545979441847696043152160055489362216973888172916132595617374803480007243627071720165116710436496025425250930483853419620628820387216535200876753919679840981885719083188307989318558379097286685021695298609087347401109996904398359024122461080850131219267212377162518516820686093778271195564192311824943793066172224290088702930379164534951897317508358438306396223018167598298660930354869314087500183461966594548499382767229797473451661254984395163246723090581964880013497051407360087579486094648938525819966658107002419740401127047180034166539404003945278320148558991098934515110721044270215655686096264778637831390027630866197033844611814980906617018756897441926736289755781544379592886750243733682298949478559270695414953211713236494551725495505333116480172229554513119575441114625707756655058800481579870785715257626512472136789772509840898377517215566439281986172294761946991361422887394630131402543572638873446884121044013061040963221628933550870812570486070443641612285255190961978405303373134053432708735187554887414167219741870958710539277918979258314200026962707835597338347643074070365252735764336923879238462157281311692873072386002689617259864135141779462744592483271312625187166398805139733863218145117964505161676963680391137705560708727380300338953914864879910294284292242256227847374042323137334136753313037913432242153577605119710350508882118615640447016743402314624046433855628898095312157678405824183707836679838149014909697650871720357134163230028336022653975096131508879455576085656255994869901540095891122503413918530428830547368508288894340123052862039503091498821824749698237722243083287635044218465790075435900354254485013513388646317433460566785317891526613402848379605186557769981264738265122147370096724761456441714010865729725952074179785240177867041348634442251293863843302684947096530889782136826698757586979743153632503226370317322454134926027367677062940514730415783062206037309670069269903257513686524223895665379765185183631615043990261553651199771231269263764426006507586916833284033347622276580955620817337505803976417543500867944934248385403882235330009066422727407989247309383270097287649728715133559529738326135438016833281605503279805364073422242026581533338245364319664823303404806102695401951681879153787523599507189931512137337465248839108660696424745434834879656183146342036064614695252254062095323109500699699086670703728178844028547389676742568342355155030295132559100156508240640093170647642051130689267117461139323300154752899303539056370057053069705191165676395238102692630889048650426850393411163597176633764074468454968110303009183323347167284426847675163018358872383066213911057745039610761023074145027285124077843159062712717917229397101526595438134324884722510936466110975150351546300412669907673328402364742659063192518719798572863195831337670281016215066865128645228769108992132896860250795305641167247932470851937317799580085219366073384694573665849658615332837169044779920355971047171464415542788321250498262091020416654624927830009238629181396611287877242340021516539458342422033556192631068706883486115929460589426480421081081431754016806795499676370195661639718040793999824766033515230630750864970690485666426739025722141558184852018766641981917792862172985898683552974356048396671634928915149152488922708862424958819736231239679419703273908926450107764568626420705274311436966883714273093798111451595792897594439508592373888057032434033703833681401501991877330786360468191466012632641554696611325631076592792200052475581631694439218367377188803703266796130222055337330416479898796446137401358948772608537989098068446581727022003179602139138403776637768969310422032229478348519699587124675311892985190843121126084485058099422151823484712678561930256887174627848080255359695538984438969760104637152960545059705772774789864544067007835622121924635392112039898032051476107270179317409279265363152185750302022864647082532497528540699824542820052672297282685972600044836667553993741651362123276671272930801014622781379131599624044368590176491037392330122636854196480583887024456324983926315820673477124285626257046700795474624509004281977382039064098549183653539515291246726252043570465567351743238078683057425038408538665249707527498849885241054541455196655774436354882667401265969829076260449047575359355750168973123383292469538774441827778978199004700633959473969791164221030863086645323595536933676117416681328905952525774043928331918373324255533828621299158480456562295879528969097952015241492509737033274598059920825865536365734844222258249610484032320921528026197162490850470656067816623982958004878650434320163013602950581331220408146285569056005437750735397504776870311894443980861153684268879213074777834337745158407147658760513496413940222758461062357372548491530222570227783913118328008700117152032505655749041740011275910073743307832456037943953724252705711198484180762676073646636636964344449903947931508945565660812325863926284287115029111304037488729335709638513121055016308111938333179234086497620224874135721518302766832852499276099895435514474720785230727464659206006835939052203524351861063060027061565608648057577649865387858902370171156458681752560453028625126017908992500246877924881981379518087135338738997463741107490634674799001877077088987508964506523478925197715450344114607952801191820069123431560248644687796570751999288278383764443932688195918227483459461007559576725603626457735069589808010652360656096040725434036550820498889953564363048512510651112377823891612967936545221076548596469040630873519810673357830808680273169946616484037672284299609535559796761230517160934503214651765102539088378242982023616704158652364623502251560751368781201470922819006307427782346633352316825843424832771955927687247077565184610514512685437375384753516674050098296850098555973026035907158547423949722187057419146943317700030292709866927871855866332601808876008908885407435242209388833247222262657019368355613821011452320350929470728621944222953753914122912438678054524397021710831756995911776941057907077232233856336646758174957940610906366258685131088204454606686904647060040811537522217069195448174792987962045766545751784334744355388423540517476335165240186467955921180704141436147563905696882916221953566396633518357108759590198489500352224181727064725298190584924913375008654994968073630573383639377129691058607275953105707594611310874387069114572216232205969234121875865873107850992930777519344052432003155063832714790640715203385596747179252893716204347609089112467648337544209911645342937017508740479739239316805143716316957687413144391911573662448870281248446889772047266183486261206891661166443195675185253698536684652412246555819761923415891129826508201094438116370673312259827443869213623503473887766419875296064036966447624316514573815790868823622588469144923324245735467657084634783008580458217405735193353765651961854785886816523939627629827495394997920362909060805278852479991624010817126464311255790399705724454235461510516910963199330027764055911049781314753437528623928349435647246536881982810020670245012428397495534108035308504845239370816596421172050118067836224585410240402646313905133998664255857818310404831989751560656110357931487610377281170917477849230599623023954241260058042405718110364613428295833341731227365481873772580801433156962996256860140681730019267333602833302052806380703190720636327752154935418247136424250745878618890224103758136600885087761660710893075733185356096381735754078631791148229739278354613514693249579574524114981811070745682273654605035103072510215698489085256879923807720994807413054585176078213300776952633336085770331257932909062766018786505683614700964133905303447588081195572193490744485065084242477333864939002656037678441880639451086199421390557813175664057671361222615938203737561727640924056791567299162414210171384813949150337888526000939927773706384553367554411871955621450855425638803040675089465471976262090803435081287533752907316461409971302885314646212027130287706299794684609736304372425329780286662930048363973499430222069099666009315610810774268817091404918951508329759528283203153968399065963813470810322582061218705760296510577417970650976440279092795161887421438639647728702659720792890530374114342665698323297386793872929296202933815287201044188782772987601295479051521727840546844816419014491839319697944856315408379825366506222179576809682098277401811986425453141238783629342772655153874899918405932085503098347578958587784874770718434514112586763621527209469235245017783754214356743004106320257225382327007690492428408248578402664971790414200195864936027845141751742045418643723889277051477919359265703862964467056582033779857963624218225603192918474070438000520239711754890915263702248333096968886285981096935287719749930033557140711550968068756507557392388349295387351321847524128229871281894696734376771476449604301184563850744842765311220544416604152064067230151271000852620891850251444461005403487382292024772744022368443319118004999758590953078599331576858872479482723657218869959352809044267153246333522793434914485557059940930351173451731767834246748378792684395923513808021343274279329315707898001181037030979841985285636141950871721196398630789644948619892883534981669058428491494341484951420655344084350126564167758208829364653112495973849956625454329593730065983936787590056560490128915054353590531627736401065790015924596514086940055095158255377597674764075299032879621745368359765868043591152883778779687365478678406919352902622917300098273814063775322271192976567619145141222455210395789819699509890331803205158729484620098324613929306597671402760903774185735639739668996729947953126774067682876366803214383922686831030388142102427355107092739782175862657465449588027502837789202252459416243008810245533484603203004884682043708263832517962307622825185585814428741903753886874412717943653350893486900814928563661522498857266441408161399982349034120520110715154510988963740450490184122886664446976801754543086200778891780919622573240864969326549693979313583921032278348522062572561445351463985876574450232995981357418469404694253488771022187353528456720395159136792734911130351440045513752281302555084902432151025771639158865119284037487360084062362981923453982126366773712387052768817140061713147551262647426424225923979659946722549113575502403397416804588720078039493668384850644306611241306129719684652815561945812444552081631177047888337717231804621771426008311141650891684277902954191367997948523526681216344370277857589408563944199392421748775395771668708122477434166926203514359793020651559262997268504257693614529808810963907708858847846480042134713206373112253235542805004746619436432022888274116373434313365409222960877369543376740336574904724518998994141052132486780465274456377673528035594506031889009312319862985491555328438356698195332781912507563267657499627717391259563494436768529384706107672612168243420713231550131312206054074206179236746955773965252210988770196160635888657858041688410965301462624855781667037489135786310055970161837211916118328839828284452739114739531681556256228598172422803616262357224688407807916045883373520903831560527740968040436090570425261142093719253668411137551857468868723919189207160742044474652576398623859659347584179957668451110949460278057247330463064879034878197675111025918646249111041888390043101557827644542805159806496386707690940022289755049986663271473420916693618662270029430473915641835581827564730081288222032163399610758611981212772886746406416520061652181042708253899907876468975378815425194637351003269059304731510300014183675760361400795260524880564275219543169971079893746552938469367771331750936166177838335586388786298399762511310520635985968944340616307473746231869114353012769466534025102269478961338203910766271995189209649223785044303370757770351640725556636167542083632118634946425466693708979924454370265312180587870898904727211845060021546401799020743897883187182896404860875113795423474708664009938358397015596788982166561867603310774706695435246864803089709880044961934765240677763049201241968824917822937364787211296667700783980679316120913272034257770849793967519159965326977211006600965558214071070428394652995552329810283726211075857605310968041935937457656821382366840165429710289969080486296487725717859484496676113665210960550923987284320242861682444863167425309826730173735636955977324629993325666865719122944058218200688846470182629044204241010279337192444533947158809098431055053497570065459375599605030072834868399857022054699955670640255027335296126340494540989411162240420779777623968931554365219597550670365433889221009838684038208435765190124612272935971785073284403754290777012825584392217908013125021214851280639347905496316388127306914676174485012500386339066147035662045152402850111627835666340629520017957788381066434569052087702704928559730233431128512555699458001334805648658543305610887283011238234631176731435307005637779200590464229373067604400123638907449532420356300555190682026192329502473762444325441691391292224807634788578063491008096091979182370344024001020165566204027052296062834878969344003748014215493243421996038120415363022996456077957792490147206316737564478891322394264531798157945796481924854633972441231889725850898604185856808226532565946609932494864291525039019091933602080892843319106646275402994782137968425458536525989003355859812635549889745855518558949519708083175224335439620220587879723896197906681843913620112233905091301154710692010102206225561274281173663020577935073177098959715382909115811833677900008261122499192925612473135248351078343016753403099990734660591707387115140441911156686236806069040926039194413741515274069738564525170017553616846004140338481760141461358113155042921161444476936256985349894207147627097744535716459436868042817042025407693901788094014678414663510582053863764510948248029182613422915148443664615876007677352798260466575846044856608772860344939804804467137297235476596523042292292598078875211039400327062485180346553174417743429920423017468031089920328928047541495243028446777752763488859108454637421830588410011057052233657067652537684633716717752283864722676852203767216810621496534743803248796597734809154207245380782329456274379358276981349800769089760523170312325908933399768568870333604069083697645638935841853005069864087563084874002216880627196408430671633570677752273507847185300092495944258978953144403788828585715931158008635607163037030015816932500655804331212190134650491431472185964937618151888043277324715499175619129509568992198116287305970365070137236739508328734612108277132703345155484347661615025453859707713567080461990616152033127378649084692928248827819209315614738149108323208748299281809411357053132279954216116680609305525699374025432049393762396283971870745159742510092838198100015920949659850331591498587168845632315139078029729012939533429494457274848107296486965302838477949225137687394463620832101772508869741600382890044251739819962474861931683407317412877310095896081751160001493347770670851190171740598700758363724853688891328489278258963960444052654965554927594144382970012894073309986768055309474783903687003747029876398550729188844862411999915553455160524463978734067891207510135274788007799260652145274768836647795081730022177332464646401404194457559021767056754827485740840750086558482992613095146679063211560288843489269240853891218000375956575291272048072023195642990022132326718325283123893347461550252249564229716983395611825184492427151022338756312331306536126546535922305458749633605106240539199505553376962053510756193659193500803611534370508668740391645365130547726258723212449025062464260084797441612934708688910306538350723802407397898923539177417987887061381910117900269266292786878585607255707638047679047899880422023411555992501278221900418973695033457994739153224245930044952121986405112110811131488922656635156728532739152279954074259777041905434946718341900665769791107170292536263420084743024234349832189447151759604565367616988741457189493693069069128821899018639398472417512075207683319789816409691851410497156681294254458798245062785433471341379926745842130551586102773037877343364566463262367294342997481567849169533050131473221539627761190732254957313965598837633966674922000285041007716586349149887545558220918402714976535180388005962362073204443190827197432470247569743350916583388864227361779115705140481664821948121839717606827568141635119011508619136180858693362734482033928097113179185122447684547703856241244191242578466385318975289549091970218704769452770526750525564965260776168458182225007314271164570742476811502538146111131405095899613982085628494414622357383970936864246487916176513584720930565731518319046765062428116210989101259831527763750760716268790707026471094973260688499974865262098524828135923299354577293053263113458660737124045760978579648859420947926369756274373890362982068209092912949972701915472381897911918894681057029822097654042323449512770313080076669489247428498331649042567093576699415404258848645446750262322221878781206648842228500622827617626858961376628355049249623687008291336172312878477174395504482426886276679118327694430692066140420472333988772230060647545653584678059509775232064198981486372048478665705063590406627244312840303048661161371412911307754625442261282018500661096016378057073295567971620813070437758310021095300702578931160480210426613232440779215289168045277691496395910940301344126235792842720677744406393068137215799283569278918758114663422688762124286772044126817896521172087909437820293463661617075700692696747598167344142645741792360262369397355016500405105903069485779005999213655872182533699265364108589018213725007063975441334576446763667672231680441898918898859240699460798655624071041742455933873153706343342117513250992629373035669660676089374146942408793498171105393461081570252598768228854807685074756071694105208336579918958862153426577956486627425951042585812522927106056106631379314214334151440332426955997518092134363626131513592280634381139250345236783092294803788343157300278628496835533035610849270777207584044621337087997888540310719600380270061963154165109251573358697239876562233346502814223836764490790673160223675543307414915836542557510790877507374286121729109879402238037805884445367401729171115796989775319189090372952533366820196869167518142968623238956937101743618579546781293185979151016695909042822973043757897638982184983420894923136265936196342641732783647685575642694696931548672656495995008073348695188317035435098293218101492388481029688881905810421619218349977644628968434424751410311562991790957797054947645071724160681738102691199582486778428980183892682791134414031849733119696504666154271829792332751067024373468889331734794286001443436681829105868016972388227393791333934199296109127414919879420571570443366999529075283678137009655053695865886834737323409016957202125274801063015471174600377486130103846619233440442270856199163767816581955622992987181377620973139185908815311899654736596167272439342054016588407059568124807409685358793513565686878461768356882783713585533612844877561401723589466084009725711692836261498189102293620913880495016807376302682477783050142256372666287171518867836179573921967294984921107466527539265399415446934872135552266081408556878042090533443318261649844707925806633240526829113982466593913393064983898305472907393514902717744677071965429549444014934401068707429088132998857914721123232100102053779365119794630387580277389710204631227011533778655918913701680358199094001767805278871973767131728467263013630043510730166696099194040810861213819204497416972910329504013559522308948038904554686106684119610043001047327909984218116835795651004832383816980295511581941994967000064420310161347025285986009711427374768260192803797396501428737070160072453815774190218707029773184646905289710476453972139329504801774143171734040541007953973556774904655912244822695143743672460298832540757125131311248067316537228940522690396784652113600713741319822239029841680003779993481274796551124392320990540493087122682911554496362026744548205064407880646074340297746189299360017303024526299081951408775499942265874720639595737737117934477704820904955698853091508821559041469854262861359726758790293245466079931697166527810442035744710397930023158759601505503474480601036592337224318750137075495290216090185509753658022611332470970485205103792452296722356070502397741985490019749993959610857710053636043381745649752188698063067517048793490766092690345968098979062451329209888617579134323055463458658529353840319290044996483736166229204271866506913268099609910837332303340149775939609027340846228915403718830904168113663098987226437822215954792794214119522785972921049273761228598686870121248194157776345650608958034976736637911140615884210910190961469785368160474462030865521309991414956158478571868804230163771277369623799732150353688573951259607398545552428942743740297547915464645631002283284142029419532832727309975739918135958931993070729751192825328046766156558904766275235549349315461304200569144847090094164616487733461476535545814868768274982276157265466369648518247055046627077185343918943636826618126356077101667929279189700680635509638262295990076048027812872841834790051044204707491756298133050873976061868328936361932940413723722926259760639523611201594450539310414214359272999752905713006377113076027433451682127243917956182714874195436346634273508382190377588651445565882683070264129732050331527872069432029580050677235988893463279866885093494675203418484108310303940095751244785398280786679997800263527053471514966787756867029774959095319377422890236905751396803956800642560304230545487169320314800603552325618024629167070174238240819480855661077321606336452827451423794189079118336581519993354942614596178408174832754527536896584417568392858681238937200377628870225362677864882290116515674110285749615682607119435565926300869264426098211544498067473002859012332868052039501074079229905562752514388055017109126284279417878823541953158214888135575811336704891008891174396760489822745699616063631878891897481612918077571650288985558485261737141317688997252499261640554759631146731624849846071717230238784942330861774560856443241095831973575335750871608644368332969583453725678545296610415830211236973342451758150362328208563237389691776075864414661511677589640639699202733219026204815962036305395948527812456047977572386847111257141757635227833679025832527337122519723038493908918382437813558319277339276362411760016920860191623151596960198053342561933782512576634437055805526230886605221280366154066641618771358119394844165057255359552305011423585656719497015176266544533301581804217947773831752080117782413469566136700983303357340622002527899978474535939936526860572569714907935058624184857645701876628315710138860271724919225459748631187607205882402508234737592207866777308140755302433139510012356614839881009754870026703380719085616856437071630359596423201704986948993142973993483139199529604224109381618167897058833594944380639421166046400425021933786814101595404072352445089359993006204353107487262324741745891368483705329104728674036870225501753648523984457145516656500970733582697514281425056346980753776721504532696540733397463713374502083524530791935257330698143906082139387788144797034292619076137867398988765335885611578358279245348699895669480597084979986475683024431249109119448925238971310987299613300934173755146593196418824988534329658676587215594399094071590615056478132620024550191213884419161492073263906400647482154303561263809261026596180120966553029134187572809634826748460120008360585367725564485577550760318758867392005593268509451076559429652647328307441798989080002820713386088292479436121130826551680561378646839820892120833655100569748196659984311107575545974882976507911682760111931294160554261297411861278553030441806592643840724183082840949058325014907760186654214500748006182982160044891677478452644734458770842850402409139713591716790401250364178612517274191283162115762664765155653616152436105043189945849849256746529780367748893597783638331149887229258948958407127340463160745350108156506580949044083040810938753040208868644981098844227947504656555193222275076285016115718664889702057160466146279216921822778644617846097746870142805251962928977009095107973297786864595999179220842088223498407682431615070549794613507372381803421372071211544580268996038505095410975512656251175294365678079355277108485747903157811370792585530286649437182653502996748119735288753221504409874330965135916244628155220574729710671721769183246834169531163242013103219582727874663368218000739927656400267458973235586650737404044045914806223265517679889796296688197010386101691008622316290873722735661720959599914096058076693721651496731130578246529372672477191693273233036361415292020153864316150064858852365804839625714448411181041111407167722437535433988265718978411088967661352347638814515982436718667090478288754399656981688211950200685857017034385981631854534479419531257888640423990377244606385374512982878635763906526626405103838021614185170814429855362597643990626276319122871809538532730499698294136172314588986437467999112283076890328006968376590610746270965400180463095384820730053236916329706623272016666151478317497062935156377655317018289470778285877389235440116439880450291184000027814034327388669408617458129058356033134962485240040158409958902628798264277904242396480313296801469324006147739662563831898187652218707738619618538976379002056125111104790678682201986945601960011541976979099284732560243138357859934423906408256358401368307411241742248152305375998952751617859083285613451371923899491754286915165475677089631680296879743288092556480352912860129901502994780643110086160119684823431980096579327699783756225048659257560000953403805620689679821399351657241957994381870138102303491042732797162023990183338765529355583674638597973598350924023738071229251445618126368068279721851431850265638811154686145869377632571751295077869222603067960002244603028119341770470341307076973476921526567806793373577714059145529246449665480363727922211454638535508528704122793833477197760543925266457030607341600171485164180168843118873330418695459643882199913493650302824788267009861542713907507414150544663331084406657067937714115368489998970228545226369052760875420972451414917860782740187211676843913277998611931897382301962502837149710832939999759834927516706012359530767380012231003253276760574538431107111976128377007964925096655715655837351077613944969981892562952758322577842361566098955615862118446467853331942808167380582576903990483664713695780759530614864024883966164000442552065775986657007994437801711958201713840330158541097024934401690560125659834674413890161947208639605525288769087531075258835266116063697118301556480808175231937059480739977821445799164929456270676060211445135615407999756483178170900683047012359432554905580527951161995095676309114510680523048767274378403833737821664393548242873406559054550629692379589713797989380525212037368011580363196618674498434280213549206538381108518725712437629969077694298325123896538574928062807708623467038331892311699108883234321386643846315760269630662461549542692681301537248887671197821587282434140377562086797251326371968273947105523141123180554070133941287968939193287648245789258267284693909091668407079479986048038808477643114232716220622300708591554806417615536212491275248934431148759304297369629115268685570675845922180116959428602458295256614862749261366060759602462056240877815513089406451593320588956552331935896460906476125755952680264304996378136682670159552338269938900070075049463296077374380405115341003513907142887469847942801926830035227028116205011619646282453214840298432075510464807840094218632343902543981423587423637817711292770458516990957285187886357560307680889298963938281002000257938363275874124213202675861943816424029925139351539653437849415106785743783645797806791581245630257060501757697136825405370637590192658848596396948785256044876006632060752848536332044691258194607315509517809350378382889496870959608029943954024161699836831883707160513710095630819799684760890055350380108265783356782229844968883478835342507310576560892942832972729157739614629024464806005180782399036227163325820189329749488731866778178507811855019210462496212387034981306415985587591615579845084652537319974899530385554590782551413702927090711940257798658096734815341687313149561058527431093707490738316317051968509035146282512099802760163546623816588961847148830730158039737809916335559203705911506186916992282688110387149034683331547645619275232361010650134852150838049474028963545025571975938987746950449259703899370403455031915578919721016544036940541332554972512269456027765587202793294178066545480436436258856944025235167584457499407125683972011001456803495288494849113879348883469485988307627240220482489811464482606114464331501234495664813757040329120533323301831800349067927567394690516902205050843059785914586652589332219514083422028888056464184014003297456245314941387281298041001371047905837558268996035036537788668764278639469290703604305392340222276945959168371786838625201054850183012740186235348626415657747612173310753668682718810187617966660681762673045800721717781554162853788636435464524029134587421497744363239494613665511552672217036288472459593285326079151599471631392034455762656298707433102270012039412174203813313874260632203044909527795694333939808320169976005555734248176666678160019887201178452379479569295850408754810738996282564990734887834931618430831709799082521524944193411696286868639620529852585983029656008110518783386253742852254432828724206811169065210042919960571036657478087164710231593864976926592458541991010475106710107352014079383099332427626138815942853857197445379073704762299282069230159027641749401234915513137072561377804920663599161529261037676657185429932292390822822693377246383682692547256489537026927100689332621580247992143634881224109721573118583289494361104719502886065796252243533135662715907761541168859725149611864208082712484064901058960115137941354786100596176737535900700539987266600147581262909387590924381187668523678246920963307682723551620375279016898794354101621013814686929828922480978304682944753925607754247653166395785570046670671166823273108480100471787935134346350246346379225044323669560393946889155073054663802054729685834085446487059212273546860823087375509150589762880331171305382405581244215439182424659090863896516697658270971041034954724674659238291514130030735046599984789987927417938423711036154103573776693641429734579240722164060815704400591381156684167088639042837671057308753495795731318184317429602881458711532771467041763482469352845386467789598704369323300150378419540223990820532083525188978045440087711254982871459950185525274369581511872807763701552121782074181243192138336762102386669473686642953587331022068146569727507855324284159883930458701501212877281005743818708721834994818062073953546151521855607791515822924406200490858343413686701177832525984872490966272211030098553300118755504330829664583874308959499166127021228183755480148987463444629708788942173457437501730903162203174703414472532532623889470055949479969198104381130780910912537106720559534224632033226467227747221032422460162294751352673200946066559171493072588181573036209881908979274323194077193159993543829740193746640480854060977540732244585769678106763360750537412123081623387736533207188870061169952623633553316296808042955721256427126289154051398628868532028125480739230398382930596278481828007664065099300117646941760729958804843713507024109114580770255490657049485541395114925278280897563630228328675837422172729990834136256488246210682582956007146009167680450024642343566559742107807466489765785658803621289365696154445487587416625714895470209430070057383533664422163139565391990375831666143176740502776240587382520157686860194232348195327611956268520540874882099648354686099091152994335661686459746344520392867795181411018912328233535462680557782944286564380454511007984859851431717965641788855183692367707577954287848832619454069447813113268104787518516496791791599261964729369493212138344082171378024786933489038072666974218529131868307582121009447581167577875245681934890421406498922228478276052875331921931580702953838986024526065099660996759853895164176951390055210062256896362030071017756582390976892587067492015789379118385628126448654698170250638981033368458482815737358699853532114740911819240225339430847161313728688522593155665250730134389428506770708955529040823851110994035479079091156510220875703680908045487424558732581417348391520307099277661876349568677471224771554546378411843584168352077642263280350667404103874841665222361016342068945658729833340842622777579951499757006269515067445414808479920554575987690000228054411170854252127283530237043857035580469388919926933667795863823937752539912175112222866262763113097638122651267737419094463745081208624528044537736702920146101435949561493255883915023620248567841196928339296719299149369544098573535905774443375450201800338324482750236137931372548247709482190728562476532235066695234471801174548557973205512181960439640021582124966538980319428046547136857473568351877069017074755148580594521266990122573316821938247029458238162113135874395688188817763207089926106515523701188495401977132031322504569868247797150141025176099657042328609497406228434664207802638601713768852031401152084046388181571318826412545030014347056149286057093493331841769877761972156512571151439088937253905465130616290317891076998834010268285912503033509385906057100201144708292164909669868313021492931089159600515361451119011976820086433125078602443111160900164383929976081309452550532381118647621538092992752689613439045780184430114313073852705251193556915540073908580054353229573424516272086219117005843796512655243775806256064592613580011518170979568009979426957388365552107314657010428147924619503234381578009630841276110650155179412195061482107798641400295636986316604948010462792129650936156712861259085357193063607395616564233679649733016679599324763589281361104595085194647018856581243285651370146216977396487045768901835718966311271458401205756112645619795903095301139804741006780566920220061692684550826030996839708127112370329286816702353358394579132192751939659997922278643468364146829984948523408751411921152685895902269592192448662350974091328783864540165628146194757806198498276457552920908443294596282610009424894489583277353354569149340871714331150113887842623539947345549122327195950202858520026627951843133363298918379475493707673570659327161309398409412019166402189859240099935040625292320461753803577084156236250841766981326849711460013513454646134655959963043236452486784139766866494671107143339166891768255577892645601443394972263665146013840759327882797236416005752060780190411399650122158570171872447533818757495452775915070335974666762157779920586531322517383306822321226700456299240522427993684262302824655024790256555496427000316164037870381052729891119240258081635199701752065298711933236293744552982957518037151101240457472886506339685196392518640715821797669013901246288296145678064313640114140911138805134071127180324962189364757149348956829513621275974326667604813151943765577455861584266315388020670532399368685042875387354587822905071359059941547328201272171657381401411688836723869926201210872146007246314430285200034312517863088558572880540513938482676182762093999315916681964727527173361287322019525755952091107712581305470205673011040314541617864150510536309704803729567095022159014529753542895533565333437691286985888589513195779422523048357726023791729826182980597511474552920447423468086507067807530258742984156349178368450958353176504588363934217398199225356006887545957476479560579936420279552508738372941386913599367305072465735080543520981981751427447033226298750329049932574135474813436701810702195861888350725554115780045391691963832017281857640977472421631256952664582375681582840294633183836181443912910382306972733719532897672935128020074173238458235542530869572640201993030273672149416988688350907883447777263360223313876387505905447599108455358524631713480023499170060885941054745389871747080833883422887219444301636850594335421583508808321348629136802196492553356237172017320976961620622098940002168393432107889607836264030066379142871672971049529760232673436655573054503426658719989420430071687243952411770402149275297448855936991585907648916028105402836019508909830705965159258358907991575510309212702819850507963228334733416135415503991504608084236680888951354546476971182553086748706706068110128310415747554210223732653098925786055743381189650256201262557908843709505689196375003675276797429996664379755856739236683963332902056048130763291258160445877080817037117380850486175892940127566510270108496111764467875035147106781271885844147288964974727427277387211139514805837773961309831359375594185095093735550674383381100441760189911980814933696839484170972002718663636930075877265110652209031644786819796208201695347108759586039940707825681139162042591013064090232059060016985086188002331535516114044538758586209716537291038174966538820462371197342751589291516856388615976487244486543454308436893310123724502730657220317089809050043705410091280921042310060400472312636389802875276170493289955004737685947309357801515941328119246381058170916097252887422382411586992329130747310169724111408916999019610767459806248270257863859568717423429010931427925621036476122643481377985222603945703418551628307832900864403379594750665772419316011013267982593198864630667803448689043557214610338520467369215033789268374569369613737381517292602640690715594513085605593459205350736811581449423527043935821462263935844938601580367325027324094486037251023024910861160241913354930153070871671746309211836409246845319817428028476070962307430086902074347132105449624535549836273420113896891448466069444747543042189490962153923069767746269562825862325446319089246168366798167076131960163372869448675553899861933403678506737772254357547046163185180025356224973290938271871865460637159830576710308810815347218478839178950338938715021121709603286733317910345110513393197565202946394321744459329113641833836860433386249717195869680942797287171281420818124387632473289027012902736425640543604230974511230446823579068213946465240390514810768436330970810537234650320324816203576003669220075440507579626338937359140940382316294936483592357678569399999986544986194389015770386706425695533934544563370664323003498317916045053846020208889267933469128015464315088916092764957878832072298233605045104061069214592558846248615727080991520963044061953573488643221230835899402207299687289038901738490603526871727107552759702556263933558839817161242956533536505002152394593240800256343640182144420507344631951962076508383074601354060539379340295956534854555943935715810890100157994271162723689844124011496680508455544621805709371585991992647002332000782041611660871342661164741527246382729960377921999300755821009474964577213844627150901469921701022311497141977841797827366349022294414955065327543789211301635955295363234627345985798740575697049145616853330159381432294022872194424136797904961949023402579034817846057682915399470974460396964493183170768609136207182062241075433780931825712813911652054563946229938318094537351078646972921091314507534596634114961316004853286424053125087506158747550061822559116471068983814754540580711998398949080348441732920130874935675745701181884209767176083044641801434211902510253750969405260793352670116936598316262292866361085892683473419430175604282784805773844301562418862350412104384010156930056663426804163422615865563539806516391712700893670443115073057514263941265570402471045118690452377887356716314336819736611422970025025061904435230303300014246779632106835458380560082986239449275459901415973120473154482231267133059408120017805027135656525759555357237299192535302875642394343672796773898086407629789166096754647670091100687794970478651254382157507366537053744515241140439855934833408219952336843240751996947072682441432408307932079171409290977023212083962337318518253989451759773667826638864362935221778429776868288862273431167529112126393849330167910383964884409435573405150713329436693047691817378226082846743259123059973104754328979187039726531218943777791342924187987850941282250974387629696897566821423238036613498539660108488928427655110025221399586077221094178477998991444531588974469269257321405418353315214644034922658353938220836196722995217346152577649865150266837516614126372296214248459616798414834125409534818448154665800159403829872411405659994435740393234111270148160485773045840203894549371544678240372803279705977753571578362613996291748575548234097563535903259075651312617792195094015949447136861841046425212455874602459921833232883302530421323410103244630531547454609709539747417854202754507854981720774324858163998818762865038366678741667020848752182524445886193736269404701489630331651428971773155726786906502076658231603924391908919469370106883450788977903387747825930196194154518202732537313440759942579243426294620766719880357200407690247982533406114351055744075663838703847653699205826541003560960883508633894980041730630814874178630713178538445376753631888865444148624938504487977423039268751985461269318627340384485631463238411363563302769123927301340546036158714715838257305800013190218191631165087659390911774019960288749672802510979730657527202846629589802525773698260868637257205269087504020216065910763670085882709312472817127001368300099628696517584193105942786997569569362883974245341603072943127451591409612962946266326763274531293885328135757080389148668657862354776843070025064102763868685255713366442556184564757034253826446801822485608708205891232959480228129168147788143328244392308573809919411583270617310499725508937725594116843683492603125338810632019633750525541803071521001957039386368097365937350968855984214633182992193824653816307555569984167322591705751654190181234165482175692945880639697378109760241563757083308158048816808749635188477103871144661851014394049777996879630727635493048787908459370627719723684414091099218357061924803364846972757474000256887263269772439241167024565422341171588603837637726818547821352738075553559379181782917913260488344617296836128385403580956905409497067758223025123439523574556894071733130898401376316294821086886671457534310914606255319427764392103739866006864782923594405855023841672202957513803993858464335728319567362993134467704932930294040653268784824066184216404997001196463336863103797604321147074788409395317637235598776838837977811543883841076948005984905420873958483514038584420093999817150614077670537644879629205086508018433871672795539286274860119521729725271441653370929930955630896280417462575624450504036088256812565610611379796849236099736901216974914625750527174637101647686144411493920746572441666171973110844210885111040613896775362603785626840804719558511619178174685292885917410608636210889375933350511394501531811825768319716884444049111378019523678814734529662926737899476149269257820161945314301801198935142653729436101512827016319932269310822324659128432375045055017254349981397239517633987334887118609023514439483695701565808088503449161480161572641755942003411290305048068563246595583021110930019586475288003349314342490989397685592884472447708504477649512798690527143821230050002603290072957006583826673942074102469888066899597661554648535017217166697919660149824927536142554122329641656194374708831903015800841113149716964516042393713070695076343564386874981020213412736898224029539191680791661268166558957418695902631478158312061476519655446572772529462482391001837475065492049772283529535721201580273297735215148189887616868536022736542078152973432011840191963844594117619585451179627451639012101554578295743495820763634111142811548448110779703688872110356636606972498045198255783625079341248931577138418885187640757321104844532904419701118112891113118248485459698617554923280129854697389589400254126822991237256815451819115313661920808010341055195308704263656211474107805974065144249514376797544887428680095776702398379262886889677992055550177699741529947473849380473628076867541552698889989589892284426537340420793281429375185822452278916132899463794635984765490538794055010569525330396919669714066730977248566946131755488666508383931299994547953047697392189693668035375020153876378280334200790043696563318517547884210854237745433929870084315293084583110720160939628238118235531745573067226867111969937242057288078171136374969603743992966126176513079579115447395833026187532334816647742572205794023812644988720222801595072928129021175982881254402019976168658321975751713575792546058806170397276283386949391186133528157577381344551126518198989146471970667338891641820679490920060892125826236776010963835772868420245515881370280875470244795530965603899422341280655112480907973096826796190979971144776916348224934554919995936639032583193382376782124064521655192448857668552962880512212054841995912967925052901766617956518581174934926657548816252850470153748470281412875772252345566894031421519071698971058318591620536369884463693946632811304470638853287962616759277092925005185429550281324801494364786472305080093069387201634686907707567441939293604963429315847495300873635309319748410434531314399182062511663026073948711076249347407896049679193400891493602121117140004763307256059727652836360804773355471974282139033960321654068854815369266982886132221049381367080989843014410120340654185070428239596433536325864144611790423298036934534097324302019772813597583097122858619576026108331506575468626891586109179064476044334551867605593971810746196407492783898641478895384118886766792345444019564468456330122017600639621811707722654877969509318260744384957108027807392720649168049099626194750619485608425576982438865845620801287405697987253029346231236990661708948562156933365115742555092196799842558406864702494352812474077425791328367862810726118528365602100720247428212156096805241856132059686503207553927865408161828977300832296227527269149059870764080003920301945331420520644408252211851446028150086140033478135389995220205566139044039829305680958004879536317146454541071068604197547617741389789193442001975981876334953216239766996410256693287198956463907192392185658272147234012017999498087622600422509905693374326533191030198455542372313383129135974075536526370646746988132728365626228629893133274638416243272804672426284349644413162939369536770323363072563217930800117533521238325883517223508032666658650052706114076673173945924891402328397827512584221823027862712955846910921123934967953175789939111980256775097206299653821211845247637325205407322116599699605521680700877332732278555146267711414067521568860178633482450168742850853335435040861991949256292083069873791767537306443470919486781663958738452085448878888387621906564359483867653436812785879549573354184179636028445234018800666861017520150107752574277151719792837368139368547012486819486115248451544388182090122357901460694905525498984241455127951338726238952439042835556166003098230830830236790794644138615218501085414713454909219705054542157469334848917457598224027562900516894741208782134940859592505224790145418880190105715705120685747507031218565518370296077319623248189521381270070885544886015916538387317646894545121149310901571403873663637760691559822519679300191741423112531409117061996079172188256890620121307620500331242427898508389994126717228738406436698522871217626912893517208605414343363512816760264301239351079504212524259636745700396908552579592317656261902013095377051836810929146820371864546678545761841764134292438169691526614920243967015509082296921905491976307822973154515990952235518865800247943934396697334223231841420087906435720404971183540834098850550045332594784531865660355448375056544198484383969887167608140550878220225566805738040582730040201989997131251929763251858098173200507703976997162691653451340005695453120936080898491433159493517826373534461515325011222856317926344057251753525679782477717094088165407432454898288902571853915934453587430797349101603142417335964039593232664827934537567930894410710465856458286915134839957179099146364638073969415146149017288839721778476245514347729615746425370701092539521678726725750459388176027747669012166382305886039716637012636588619585687908436196549787622472726236685500508677813995730061720068995896840775353151189450652761741685872588847779809713388470027100549089142359965317505502629994534565588392906629329011258796435335625181366835119862730933316556933647496429117028536560535030774824643034199007957200457441435705787637604225374779953684069142489275905274108206119745951577689985767395664433591286952046187899463739134780434872713585887505727110757427519892392248838685901569570990329583858294557188485142562091991778159230520898358157553684276493804252781829764119514121520529291456909761098862763185971481194680159223066304767299052030100099193902056832934421627516947423250998431591766791746492530526109950029209772632290721442483486863494792837053275615773582751880654916702479574001827158785445489184392478601852805286562799486029609711247659999238218086591955867502428574073430186765508747828401339030156995403042308870037330852324282229949369890440698690870314731761322513137046206603809410125339534844351495344875994164682944052440778293080755184558775339223418435747522812609524852097382490989417473783711795895728079513623207123777094451876185891344573504246708879432190082112863558821551508171393393637749111572296769806445261832648644765189314373774240866667984390579082798854372977206580073799413391178443941620661743489164735604839843845883228581034969097445345706724510596193012633087332354435661037408850362912288446945666261174236989191265583513206847896536126826888438179572964081147791798128647597581515366956401063501114700767424172017201566357660976606605223415882677231579433285812052867944138227433492331191218230088515224119493307660076427904594162212432835913488981790707307675863745914036850073759839486824177497630599474123101649395773324116545447961548246501607351598688589532288922624369303142715321137229840950049582247583574050792560159262814094777065470303592725709399224167483984144804172937382054036975123338309547640779467400636786357826979440318777112670856022852164886157971901609710744770030018532958900994513163861669980317785716431918395455091980407422882295457212442134232563097461489864742486371358375703687455196285868588151983437004689982087704194042136381321381916054731940153475392144520646323713487740454334766683473169090743395338520605866658999953437650880692921201907077160224032126370360400043413062368318667956037952298477783444129545302050447690861022817016749358663240157346520148907232115839772615231049185193329447140675729174692186426033180458961768165453169694902227631476378952824053821254590502606537087361797188347079489380437096640712412210575963026452909349036229256148947886616186154654340104416524841029263513917149581634090730341262563707929025638630465320812434372466335513009332095288211197102022034319492627487089114768315454184952276480519348779500449125278922527921177357433692173197737033272184364820723741099386513052081732931720048456396532992068480663581144383114875770194466431483166424696401485380356806621722992193020491780434792062739358159790358608688352628093987185127464055380570273631301125945466049815534865678729514814272370961288509355296314445790326764682848281224043309273982448791476715097608638554373933855277467844489993525896466465117164041922792336974037903843571818056315685421970322919110349782765343241901865465234893266632749688086132401455894608302845239277510841263477022182699700027701697951399993614370243150677278804574511607352213763167543021640150081498741877089716993293194009787010812626759719732372354204564885829270411291925920946523813258963508846981754670187713404199252820460986498287565925320065038430254303396266997383170287122304158108578843752786160891039131327336724185047376626996626967010475305646187519696760448918492608291932682488765086134283168697364553479849779514358425406145428623905003831797134854692984417279277930257051151160155826204893043398100929752171295634030001324108516726210543699726300765702814864870815626833090660183448194063739585958192761872901679402697881915926069834450275327616107274806300172504679595945129520937332079303491580316603250319369002558858151650149759119437433782304681864586372787910858204756436397996151080174781398409047574765289835908788890913642734828645994580383881895341485397272289074611206247307169131160179822709437915156030886084731529795515268997438788140830592251068424788798119857708000515509441810909845137884931871574198077294945704365636138263854325805005532803536121704114532532019126540357015951662639198374378470812231638244179008203327316142827927203188236482249782246090436220419836340308963137511939599548416674685901957726678548715028136446478790841511402898535812152008351706114311656692707330130722596147460036346782668074113302311737632468287831974753085367624544366451761307567999529757388281825605187040531712848903300701372677823276825139812479095053622325222862439582605932351038408445967898822597103812506145347292287244769632837517669401941200152414363224944650723655288987498506003433335129472029209478682180767672242318273095330754338041125665961834411246918166692211447176709217229372090155274146632452140996293111440533920233587765958984557877127606049177922036122365281701557876268000984267042828065650735130253756796196982469652791511799187687395094738247576388056021171209284509039627607866460252555249853313069984328890989249469112426405818146739357899657133238298795775136554616288851066802757910929166772694854168502346670765230270300399780633593045655410592645815266216273931255928339296667148165234953742448760196124459800917274186973274616680544316049230961263838891928548647311005020135971786369210641919829623743454955129833824526138303043749610348855970570424217583876151907873299736018845315147903123614101941569073148456601993048683732015232203145836565421228054407866219687770121369952985338310704508475308396339594199090116278926270896687135532914169857025405895904959992853388236240046502170431813940536002083648128598579416371005683740750011326814418253644908929764644869999590884630093545974853258810089979023718107222398005978435151727801682409403466197550886593148275406884691633537634458705048112000588565376013363712214502692375029868366900282702391522629768219698559927444624351312467556044813131225196209658293271203605702512405220447700981486099852974801326009290425588685736829296473496353121250283809529992586265217267582292630018088603859422544309863648365096352944095300204382941978309580089479862310615248528458095868213993606366009127384536075443445817222464029784555325824939680850683942978935680107054061767080365053872141301335080426142352506582075446140928038726920239277629669743734186251645674238841495424973210967089847997586361319774392820726818086481275598707922020591893889175978773094116523531985326623861130371274363248342604260377359369885430760986371917311448611566240545258377313129122089510228409854946046302543277151238086160525603123919871227754588590666834609832846182573796672771734416635243165059171233237242272922227275788715324052685174304482294751873305896109947506257050789658134218123086580796389475988270658684520056143853611759450329971169664774655384848224412030689468719587021747303700225158465730412262636392491327099766098162176611688337934360825574733939676360553288396906723042877482960782771728510900768288788178036728952098710148874721861337468443479078817223216899695573300759810234633199697793481542960889397321345418265994430529569106287195406726272695718683877835259497245401568070686379502391604308924086119811099664244656308379117249708812057993934540990224911934345790676716217167164155719197374246239885551133552049465269937230330129359192275501017238712554551820515727432384427335274473449974823281488447759266692696232578634019956035291114706769242287538506885028125497844805629537645042932860111345346145354137277689315514110042611705082637346149391553822174728074640376319911658226476301942063148546989257917712040822424949398849729259499268163439198058998670641265339683945227574693996220704183582089307707609006446802877258168244134476653362432652557436479740632243986893124672795727630245797049646411227478451127569343152300602808413519591960209075455828544748597450725010669987354728996892799637966689802064066406768230369090532424619674239590102770008675434922263320435382183571051787979405325419163315226271277380095516086732587390405183045394803686777204500747989596429809201165414927307069990688178116376167956292873850728146135267993575378785440987534742292814821424442862124985823140051828301595911088181382209730913090686924503872373758664367917894530919167917900043852198235204906108068250962529665935155203335072857243416599373546411698402565839116727310965583478568896257498409310525531237994277770407409228684218607279632299461277113380474350960958269355323887076950391975293418224189588356888195350715513386637322934703195090987360171103616291451709919363674985091869183512480914486103273392488599802376077855927689449422803268135712275778935145537739668578311742435475295084746731451249239024357128632849023560616837523379991086562950898332752202238465655950572794963880311713580377870279052962777602874119680173963780057778402624418185829312228151878123932527422837351136208523700607333633672602674608664159439004738438744720924131195940851355266235414940497634784806427307778079853961542942737053705486238283214727146518152182483323425933466248626230498927238418754746235747960257467251237687224095591510062706339538391308800470310358856376672899036527877020035032213254437011619806790287359949216241440719689074182157454663608128489803854602024949421328305765570659963709716679816305843106676184379420394189386760619633580905188113415441236666567420888453483459364477570806862001602506033578255244948157510131034145160085789144726972351586646404702101611040372782305134562933461786885757234719026952393369175872982214439524405184957831084051744599525728313258462392373644229658647795603647708585921810501011399353626385124735337288553599590691054225919903327638069649234197052594417192324204918571971478930874070560602328683452703593882095445519729688424500686972872676302087721550410572998089976749458231355525286051209240505815101793832862893068385037134652267315593266048516502955329025516757695788672901672089542505724595663507920550912792115692399995514199819155534395001251378141856407000145323951826231256341355555116187253417864289260336735928265730872596637658536136887986741010061813847891516751901650951968045313764582611585305666683416409154420726840542740619676686779231769010841129992498236799186084268457754074006343698392299287400047548609119070046457007696346176191371398121460888566503593529663841347518198204406800898597566283136205477108453100021570189085527074886180594616421019890042437334554357587443420994683070515891240698132820346429496729024672951475858733667704097791549917133243849983010459415267942251572219702530660796845085461471248279917995895130872334114684327416224421169901449059597448250964983415251115066100197136851543405948452637577940983665556116674579652516181970544576156783948950902044772770203732737742512382330792467007575850112086790285737345387945042955307004561005982505593437913395783891794706508775812309037881784442748534256705441685803184850941897012904618301323155418898010190317918229881874000854871437893449091267540772068516509212032863421630842760793237028590638899917185593805601482443844117742033984287730363294142283141199196870012097992711106661219848808498367179761037001653444002611851104846940775892921714893091639321408175056166565499835693272197965836758611407135175759262297973404662179907860559244199845927718341719420228371869633130111309361135086407660322827316668534513144349205630704447252035592893613290216804979342024203016230704678822404676122842478549713459308091571436023558248548893626513998197511771266636476052619667361126963637550284708896008099436736244064296538974128452361339417326753763926881913044677978198156047202401347863515948110377829290019067280427709147876765874680069521499331139462907492012268092835174083853742889987679684137739010247211432053498221619483188678395892892550896390173883151833452015883337777523410369316638684700425469525918900407667354917565026025760201442505284699807405591399986790524183737639591699244180188408830238100264095693533224393765126071334949682182793900850681399764966263106167219939805075570242721592621104320112110133566769035354730905096128537173797076955487541371229662405335515476072403901428640109240690144606658902062567072873068577804182476581480104350380377018393813516036667769306437294871305194524054722862009658694113059835374667231146837065680690137383372189885067647414086053924014316489961731730088184286610165587148257519409106466937358128806273050291827052856762942186580792328903564006197268135961940046562191381190025565200133600601970127710272484779313971012364542636323549531457812210287439336621966448464702098133716160425130990825078767666509716524907544881079139329889563620066883163242389011801648576770312978416155759817100592988448478946098286835815291363317868463622900397563926990016350078441984328204286068169167159958482261906588955217257096231459298289689258424354265236232201721383744208447360175712121934622395356298776650046390136123279004297381072375373288789904749910507615241656108806686253656845948160544564781859459834185441929979310835801536330668996479559461179718801663227361270780478594491925247623930041540754064380301989317420097088201567740205074608587555261350299584993391702692727960197961300074315956413207069970681381226963934091013791069086312342512489710528170359722632005863673030189086542043256354750928964548345698501889080799243007076171483593239263267976951845638833099187689141212271551635778394683987523750560173853275583814971027999132162530467526792466658790718424484061383352296520968470779793655766813708953082139530045892903910927438705165799980777589330545714338102625095050294126159821418061637020281754239810105490167715150829866165970673403673861016915117651888660925944160067702704103967764819511338532256698809559977043807162868201490846472407872168329937422278123994640898043679565064765516456901574115438685676347677692656085598827723637172384101772848480919637170626620035368315598308945902401357515739226986244754214349131631175099896519542386133949057032101205022782800503064259470159581422234598925025597791860147300877532116317596534252486620438183990292033188985496197447567048102179930462456599113149299001318067460160656475171991889347935176936842448073125514730678702477842466682025030817331481002662198913113863608862970670592571270999733271556015507953901382148152063897634857753295327332564858178953592130460646091113641226479318629810947544388392558500800053655102645752406763887544245246830091005054218933509552258936088439449384526601749635186830053049137194859818341580330143209685377735915480696477606628190513512095787799189609996225752597572468243149557565832034152036008150055442580418638614977746099788608132242490299796457731971318428831222874073129765406425161203997956195382065357923769489842811892006936532388143331488604198103273020771355985992115280072743720061206713012530442209117953957438495798163136693626208690884052818573541418849478378707400931406988523946986981973237532560069798565622759343417775260121789712432117401871955540033728022461716585069682721131101080475033382295262595033768514451253183676414257181489586571576652820422995513513440736099356385835594174379157027660723774920342935913000291261206450633079778387086016756037533644902909347917119114390955174971731798290337601057073057137138923789292520982512295974808233431212934304065746768005541537662375814947282897939958233701361588485660213840885430479785437279765875318454088849084360229352858859244626265472142508569114001739782443361548249152532243835869910775897972132590452730461057342681845945969072964974338548455669803263507704664441112088680058733763384512180493586187965829650469178784685378510764394369433558786929153580736844172963387225367422235979941757178444273350337713561449385534982975235422426201616089507481662429486097538366803997309645063130886354471421693755399859036019657478091971784669625296559493620774885403964347518216926878013368730070321537802208267756675902539374607703206052456709414086638236855786968360919142877979097809618494432744976352473802475307607644489831490719628869452122101527560941666550144038046835467708410910239703343803877590459288004143325559270429865914069178409183824261375282993831666567408356048345040210662653787501800543082478735849441655864869574230978477698736706774767996340935321237943027995420255814921545741327769529757598570942462822449787019420213415934514252588877722644545267805170758125124441368139109448042694517234494618307693588318784407722020689628833225161454973570012778992277488517110006572536112455350270208824830821414722549899795952604127598915253632438393968603065505027021501917319614802341473937252761915644485963726784020098828641867500975180707404985384067613300329807572779642209882675770804160819014560412538034818339669328751406346740551459298172545164055740534745898616811793525289876807653446242837700444259315990124209269808823315258026545433433736648037507698570029869850603093447376682943514303743243089138269536805185104539291519499109130502703277066833928858313280946230203843570138311437682530564439558054369019554040703048079709036909554939713577017307577033709198421628613894044466888070102736734653495594575986534836895048694778291135745565308383506070670414836653733620971559928167203965562120884323111966118081724154095435135523688521419427523752544710395579178882823429386654374779027787989501000863838602422754925050891348519131919981676030242699351846964524565061485493961761826511478671935947410849140091296962724762927361376865104717534425640658348347405349595643483248528665516561672680768325672515357175732888777625633146697404983100985160151516800811191822880182999936133797415249256125487939415702137463929257915894699361401574349569860216703405442095081882647824232974078643500957920354460843705412722279572167630583783773237598885798721295359353168890190711114289220932545327311659767461792991276588653478115656773174147861480846989910684408744537799037790854748974430186647279581910765048419386962647107887472643820775713960530524353106601606099464084607784126318900706882017696218195721943523705683353403361474035369981473252358910420678544386525619291768131892617962373260889596104237967525422116528321271538729559312739924147293628166855764600056688314997258761834751010527414118124663234485491696392786652246705699808536079244611482034475468763618904277419514354718238558719486014536202599765337811784850412773503718373984047347086042234327634167186676903244145264148985007721029833697333597584968771546280641356940540834070089268864350451961101599034622851140000631337820577229958855277200760224173865098469231992005509708891686497270174239155916149407099578305418609709904043166105113353826629267602833217495542653270245865915795981381778126202859457726953611102822481712498749598395600983607717475683280299173408204282803427335583790926874015296943737487152093483757376304332847375430972831905241143891292396144122894718489944620435853895197965041529031038006868315775991092983524474596089591660937148203603564035257323990070047925585076217902359705828321125730461916820593122230240631945366597327996999135267540477498557609964428357365672319686991738780758796622266612050283861500855555816660406784407582153523871672046134250847000858670256132711810881750970879552691134348142539557401285996838384784336224953310361606027215068962158765894737025337325099256602128997484578707729488770728404859578970639469501173471789588470265821135375389444773245732597198511893789444063738322408463498343695597202481188774475781499979871256516631268168172335108305733315830065431804250754991577426942060161205588332281279036963316293951764959823222719884035604192561457873253518413651189233127084613645295182241890680752786453448726053363173798651940993632812719833245824696029571474107309079531782047377278824887646958478642988797488788649459815947638187810379980890401406714294456036247086138554361265058256870885915350719458233109697960473377396398135841539660076358978225748137125623833540306232058698259913936897593655141857191148970026172240418459158378240287459946967329096164352875949913024059550206086669663114024458854865794159303069750931196702220778203951026904864480228578940250725260935821113610091041251003628542355118609080553409117700332997565440678728688884704475550743107693609948806817687100866955716866552862551108390994882469951822652650485888163779117441702471822937838099338628201825291322992023731440736524815123485954279713045016085596706984793305801743506204632360501931763939087118053816706229062698036034691569028307199493408130622628612639796230095544778057822078014012632366436266669203072055886377507664338592685051481914953639355226335961380361534596721855690358773288220551166293177088625357913230482285809154887917476657363103028677083438471004953845559558493250354796485394666091851377256859892095756856132062095227203992734767363281597130827101586351862709738292547500915625123410957768162261258912124282267779768408467422186908500907039956693646424608684768632528434615702574623244898331580873681440139331238765891059676095069734415181764822572399431575199787826670810375933508232337049076649669868698771986499373017912154494675415501692446759923112831677730174964702720865197694712842396372180245025017203081385613049041707646752978379391328412292227528081910395149923136485438455415871221097901199777304378607694665326381377405481993384254997520125713826558017571827973601095341398286919212093657674459348376511937870340678227130582563617403029561962112578096741519801592117162437760138401981022955833421696517052085584593178429513102482413647490851647336062261344316220048177704392713618144540159368685539561951931796576038373278786280585907908939178366407252501636973575337293305714976626788890515687511455007083311848044670495254976305904795702568914155453462908262831463650558093220585016998497331049081059645004437354454117982110389830179088101895752531239851852900544663948116835731969267093486101038815204238910802543576207541399835422129437302673649584631736798030760182949198124193829975794393293854579880937588170916818345333894160017432031296244482722673799397919756234239809426744768253624371033673158453946890583922732506483597299437972777666308412099897760772905399341425061234235684140938101778505173632860278673699525343631439051289820574899302145361015018352375393077080504178121955816493528091769831335747004015514653932192881223992832178525613701496957837174086550231501184073007871168646789168173955874269450253284623224999799893816647669166784306565127130759019512757180529804382103614174635944857646092391907738332009330477566918863698502170885649025327615698426583571733056667368181176163523685533070617021568095444929935671014501603648760881484034653748853734046086423613026881818165349067135450442507762228545408161956932474096857389241743279517487420690392865923023975499692056207495372489118797852949792980956477522682886818912386192953035864193805085479317034001971365304411380154445652886876396375004108187619397588880666804315907483521925485035243133604226431626858207256773465166534939754106314763123834012727076107418297860810300686380545095001483360907867478175286580658328128229537955590659354896201527561296249323722514968538619395004166556645697340299865624666314780039750002747646539427160601048423847869746346470848085224652294565250350343722131156786959904574797287995718976327371401479430056339969271108822042904530433339919798453820966801508646834095912637318865199910009674858672371257795286368720308406157240478379175240950723923426826036283396198239506026938662383739669435656275844036472805203428895327108036647883872816118220163919663665549394094262405341420612343416445322992599323119313887841551229342242765427228746843955549617181874440473201871064800393983606254170818845149135666226269196484435166020640554758006143794921094426760391334975609307147720172492008973529224750314479273522074373096812828895348273521266151384483330946810623502954062712336374284992921146987857414675008899955758003880128673823335222909837075432917250901839615608571823533875134358660888742507962098973330435546971594692904770509302096756730655988974367094265240038966938054145738452207367838266326238034196529240628806716478479605326332675648403522475899497617834019763180509925640696210000082686742724959416116797695641041285564959130258151960129077015283388579859256748321650629052331974403885251710351595403976676672199860936635249597984136311822619598789756469932138336210706890437648973550184101996579944511546311839318437790932752288969696503632428721010088906231855701808600110296298228979524888866718085193358152119539389705950450292860146288567309208072541298603664210752391124532392907985814939075099099393127978214788474958306247546268400880729394832229530317891759109328722347389695331929872150587036508167114714636040321889703307801387440334577234087762825671923826328374588576953851183969589594609672855188578186522358366415743960266435514236019285056935120945239084640855725456113578695749525566662459837542972317027901131827329527604682047131373140388783805108749039749507618686355119431744694681294746402867552882593466996821144485510299170495245836847979455315080728664766158288352120534178855852068256396402114717312740601628369777332891368139115918379155401879908381433271169523652039088434292587412054590516269442071372612540983093736443623474903348299415515026925960329942387183545217241366100501676183998126614683603754003069734402935625954329630389333183585327438226302425101947748182903151121014514339458604222791635425409913875149100311773931633404832833948817147714222652653971385837674255231517755670340379482989232378605909470038726673043783607615696077517775000905074965466477652862194677869888907357355913750804205682026505743805861391068818234279417044079225996859971474425975697622225666366859445033001916482198388900177622985810345459951947851902072114254481721250153824528911424833678016648592762649196495040487143886731483314154802584487966929417944736289377866673502341306599657548365532669759882586150585976704086974621293519212888664299714632414457612010854535918285214988189483710684564096491256384768131928236101658371419227473624585376239451149255986730643802742312303911672572573481796553665397493189545736148334523367075107118603654106850980221585922525938995897203538606340674699901828005205317989694304050163412729384249343512785862040998634429164913771485583078518656977466220241380524207725047804318543700271291447156358145238643195663210158384304093921784164761677159722369661326661131596671924803417502371842213161849030428412464159904495914656342616159212185296757435771488991806369366482227690834770394220750730416821103868572827384142033727378717894034855610955480980464767656199175029876651775148077941218090364522845683309107829855190605754007215627089479023714887925371221319400720148589558584932827602380416636537147194088765064462227253258074918918532832562936826882866412032757504151873098413704007458085409068286580636919409922406114560793266815597846771032153959165782934860160991049527386407381861832568426285640119803263534144390037040509094386453640829159009522456125243414626140677602589842477984201687921071744300340708415027427840479727355360847201242405056259848802665425495068655506022607742056129117187422807136268285545160426950999728899457942217423161616033666036959098294223226632600628324617299908413628630722502787327696518679737511055820670513711736905165707078324097975038591837514766036607943593127937299715135134825617576270095973556613813018858848195918825990036470701898971517839267431506677241180998336083549843067313216649917656727980302845910428014336156466037711383552393173274410792229092637078013361999297765700749279251169170408266918539911988154044742793931240326534562521750386358477977468633157941662458074717993868368438930930995305154418069947607666913664512919274619945663606505378737436593088121788073184087971601987026425190287305061224277032684076217525087843340444530217269973738563976874916537943578603314343323056654253882053859306697083793689814477137959183538967650108474844201680605245480423887145294765281854646530049947801028021568617917350797207564814553058845430989202317775902292772398635760270835422560534540626070236169527019170777899482576448397131655268073732466457100873766476776403167960925553959859272704337906781760279753983402842174909830482686068733514826177129696249423028519105098486621518486487929670179935057034944628361940460036627960941548759947213538930292643697315660445775195034080532672692038731305724540971220496268535158832355324612480378250178148647807977108100434175851004781902511727811972891364850391314473971495684934223527322674924754170115484472153892465025566641658495916995639617914864739702322252249807600446694248855422058678423620658185225104095350307058066491775156075795394372089801187631617629753615519597580866890310528471551506892371983540284735586791731940884362762123879287628615736477107222741916152243790547711890280258479340059602582875330672835024380014552999932878332917734770858763993776251932383130542456546131614495546194232336922112715671688206321243890916395191195413565557236918773602457890816770988581373228105324669335413892591001485397435152196580509917097492067850597380777534854859017039212540565072264319345201306920060756164370384175574266646250020919279582563481686890583595843636601798535808260204380303117510985723620280903681790359207244256877349686960161996551815712631644529606692404447008935539811171990405426352214246336364672972203200700173297290985954037244052176210654024593374159738500833103810936407577702587891301853250792997724361557115688550535215178042396953086519726780149305558637977510147936822457387386496972936012396188085238360205409112326412864556705668822127152408094942411954136564725200535968252848598979589568463245391868863243904085298826897698102130342620299425103512797375501112084098388854881470357461435130861398603349747785928674648410321160662913821282640766599632235409438466644807301480897340200389745091848884768582574832145389246437190903307749470355739182461759401227137911099511030518574703339367774172334615819411213858878023421812287839035708115341535633061042212877520493272539540451012038468867145162160929119858951089457556430708357274627561828563764870159559250275960234191317552777723242042008584866310854965358731542976893345436100112483253871188549440245417794679636984808543252162256395162421125911025860396657047695204161783012867128270486402150311339755542624491492545391382645562927191940918605072855213332978710754259472996264634805319033666515747919241389865505638524605333302896199219172014493681607819599327729751580651470005532640320795279757364493144629782283233560769354471839386068240248786235485163811156976130195609679513805174211281812349198492288108003054104320827652121234297427616987629349127051845006818603013632291898258128179661881466667452774901242968230998647910410019562287239099459469966511722513767569763505381383104361595918573886958905111350990801616025692530938187736601500714083231889596753443139419037768841914796638333233858950703996479690134171591625359102538417355807798203605837746506223958092002995631300733460832534303868014697524680554085082607379089073985718738065327240007500985935564819425611401393582896938390336676686982179952095734814392363398241807830405541057304715074151512652833956164884555298581129038483579694018470351705575052226503025672294763516182965985937935770825810342514950861261616112215096432228956568233231044055969740815835223322731262288219168299060593915028216795408752518207519132113635135778426902687600008015394119462991869352691897471725038366635473082753726323109051524691928870069135927232296105314580719597989336628761800092345705609958004614830432895633949450224890560417608539544655875935112747482390530970689887640276741345250793453764667317802788666243842696155596825820851582467033243702868308834637847677214929118830406731504364513725505296886237884146603977491329788205663041552444985303494133951832073501386324498973792638453855386618860067417674548722427190551316603394163695333536945629275013337200642777847260263012704554452520617418797216719551885091412232137839562954908714731607151728615403066725642817994987890991879365666814290889120950575572817593411559938048851867710212184206921193071432755629235089452933202427410862944753500519494103943088462422202660513356251514110347388580427600096948273759644878832945479713178853891042465519781701873661550512216657940140599951353988625519243947228739126006893641068789359422919199873591660093575057674939276307420021313637771575150105097187789053250911737655223831426810271075840897363619816598908321188195584702622081311470259170424013268318005491732503475251109526377142688556496702235666637293615804388821943448909548264174465180922493871839079583586007332773241317633053653622357065720406638711930279355483698408431212779508657979952396322154778396726264418573000943563687994559442468113269905664191709731923812579559808725920055137900793931225104350335882490386983297118274597264069804140162365266876306484432620162073585572811814216250315774102271964038019379518401380160015068404955136008632348278997679935057627529041428640505614855011297152861451237827945304198991010731276472035062688114274184748383899969389286264780795817725983739763502999888568799208881176524043149723958469540529062444225088345529717576829437569250166674281446154943651201749351172598278815989798421636577965344756986864858197111188878911283806184272711663399674212503961865659739467729190330989188236082807508272880830104193689110190493555758120266014364838649904502755738109284367668776429897777592591029273874317108425148245070300901370607380332319908022006687370285448626700318360209621851299697173293217980119607354020127793681716867551379845675071528530534215576006317180200970577613908027898707054733859275128174288977411328868234423773603164927467493492824784131420574929103308045338774845122198984582153636304709979993045232022555841357457274808161440964759735802907672574550753838087692373468698696685348170094822627258844848928654625992609806596828902157181773009842207037571334824931227690445753580359261664447463018244919343880370851064276247759684203368662297588202331910081508306168155081178573219039978019176556984420090250133438428683770577457408949324836742567911785217894444068160866307611790054648300746872793952384117346982274614688411969065251556375359061510652512842617652488463345194255418104999920926296404628669939266148015089883056770792892479546274912597719353350693371532771312734237599706320816347974328819202364003520667513419459047811501090189390152276588665310941733367012946472084527114158468958242419043340200113373050737064296926926269183099508172706680055117911228444217740896813753337303067767824165864460629737449712979944652464308920274965699661196117353039631854540139471150803729516532124840977080516365768870127803224709965961452904392754307897594338919580642126308660446055096552894045267993661875403022988004149658378410055795645103834816398292753158936585375803265742799401853403261017136313519736417326423099043033023102971875092185765547450001966347683532531995479975059180610399285029399736974140018032003550406889097177036867277743680106309101160551846584577050879550579569244991547410337159056249792433034398006433730408346374213605389648374789601255895925585983406328186250986729803898717594415702163043036515260319180621031510758131431845600860533322345328255762011951367472628604140234244385397015375573792619793080779823247361643095498447650686919159918787209647847812931524216200470155202651143778497928395196919427193266348557453971853142908754390047327555786351349959896329420167972964488190381513169021725349466460852477175685645689501280038147698007624882612276198886489333215859071481491517274527785359526664646452135698180053528477467355837936043993385552674808590131088861397747012080622690395053979077046668948520194731706208202825187219320289337299760467871372217878155877905389926346830804016634662263181442275991729119562844994964195900781855328142419839091639045719003780630429003049248975621924424858295854239192262465187379923486685188095468642319062006108696570273913795741333933455818712974685075021764400481789761418915504510491746141380382144324969390648015197921855401322504741300202721087515895376236608719607026531403226902254362880636991073613344298498519084104949050521690833014427458207912215074952869974495796719053439259993900187442498292869572259341988845692245202772704819619924334582847872450983216785779326613473872197265308280234021978865417550498912114591800562159940029276602947009659170632376790999387626353010201315008909677518206625117688083926250680327447099767631017046869247566687161746817100315191726818258138019674031149566377710084118044409994821192551092560529115188438486313366079000248540119567323027008331388591433841399269224000925508557975756648223889260020354962865054466287439312323418910770560526301246315634240288255365896394408338961381148102400122953995426692532022730055909365180297046517657739231130981526222445701699193409925671617094275457488190840156027945398374897378293268746878948311108923801376920022471834921521077766681731395007881240992821796388127818575159686965964324505759481066262059932110321899147667736699286591522385539831100431617629477156215409663683819475784135589481228849078987224317918574201227629067219506575185826238627242382486040273011191788785989624755691310280594288672522469130043832851627726640652072325906585115194054284061090391997307848900288582145461964899606709670629271942125402552262645690122898844707212704520344957641629754216708585744545700680825844965352614937448327976913470878290406198989563743798512691316427410659656589017247699364098438012282643125832243462437482938200942161496117718872067424284356166438566752871046373429367346070586306782575690293644070372662046998898345325009894267072644258836225041477506237323173165068532741239701016450195866712758514173383645046280155974360336922838346060435460311235478235522850819767179452054130396278446698565151742880220996835942465859578361041088017274509616312695203118729006717384727193169043566467694663508241519163075059098874715992334545799375739954388437821178076585752730369809518530114736417135791882405763163506421224045481535771630229338307240887839803556572879883538034391212111977966396268123668336441810662000145133230384899559979237606198434553664816895738059187067758723777074467682703197332763351374606101121133394214932243706957029815360966300852204942487397492245068826258181055032929587480064036866292153988528349039279694635957280205532423652588534093365038205899952914832778882248341223911145625158012086530685250653829084516114404051899004889842485799764423639090238246780858186430016889031707641247951008923956990292606192676529976253879597625412760993752285380451957378048305703999843442636526724784396628954967580692223511862184014376971537475616353553125311764111947625302754183358492967456220669889546897741247251874968425282313917144729322285919474628052807312066145375733993285175897095686909297762861027068947333935854610334627957762331613719854932455260301309414183858740755849127593985884280124029552082221090963811052694245616315372437218871387963373229253502616192360362155403463661083298723854552488727247728405206309755422020717781619251269375460937886952764225703290289035024248051904464664826268885213865500774809151245312401423712699877461041234284705604609978460385843173502713878802892248830530641656149682542961768763662125524978147471492296646619134490244041447480173243209327879417095045830249478209780937084384741921963216214358635067347411916662025560745458719082274620233514014354001746926315451996609529750555606015293536537037634550362943266024245058580547108978266525176263916954109715151891289992773656363303993441177160659615793439479974297292808638861797824708365104821197618485758357691336442876404200786454378890295398763155906426994192876457223180462465024252884175166272856273097115874411158940811292720820001093287293703353449422098292120315928013763724822824708387865775190313871652486233136137859986164227489457697816427551200501659901120545033520484786023956768019831943508367396074776641818791030235764861579614111864903392883710745621213144776969013009791358143960277505590824769688818896369834492026719543028415327298277742833244087263278254502700948175499915606376444174194825843109218936601852481389514018776275840981829879532569524195752500500993180097011950261191020509935997618803053937960426311640627509339345721169238088960668705714900857841042172060032452168502302932340371367175544083156066595673927585034328877296341367487135985771910620730952228780711254106382284584197242627601347674956132900990821344398831864945270837303754414226723570081690896633708467379574552420630930841859956863299002339036909959510911432230583974283773659079947263404771852655039896121479665693637671884228141136347105608475899774238976399407254485461265026036308127184563752258618397345963105950350548233116978926286668179486191544238680588356175828855484689384013723261654452244089978261144648532842100325477829991073027165818610043649195803246873791849896099172582643658966690130620838114639799815607840062371079624584985180578561052045963844829871525828741969057273467460832359204660110141360298832884341088343358349437070369717853454197335904868529508258744873835913593115594608058786040696324853382191385779501216305684366369847125994847553063699367570894316492268860636690548463892174503742086900058488022332184863310501317134158513736988767873512182756929386333805442339435022462835236035006058275149954925841811211856391160694972558043329892807731520955394471181384239657739253580960993538545487492746766494043447016485530410502985217494520229854738248149048163221662739219013924020010286230408669476173081304007528246183472901951541522071973540056706562439954633934633381475063139850548978647478619043953947321164232292697061274556232199556479265466248794830604088165413299203472905291465701800760611998681028757753823418394190432966901221603246389586805171201303138320667290931238121282667896899085360783677482016902423268580156638246813908303402180878050843115551143184012026431612080332812398133750354699716906845389154759426504503809765866489428907919805839131480561772130477462722493335657614377400560967049497039253278487344293142689327263863280453567832883124933799142786287814682624209221613523448472230672383341617664857696763665304559675431330611945528369395171027148264635261411668763361401152277390062623898526349554477394137985893790505952022228325041815345501563365326672846956571937353354353503491526407104386509116847816198732819247056439231055897957171006730041186146165386431344119981735639715587504876256714633766003156316041664439332475989645425658315795300311595151441310845150038740272409369316860618831962677160258517355327797589111139242851436687606248028755738124176222925942644283301116622097444271929617495406593685711389105601536188405342607976322164676503432056135736145772537922598738651104205700228443870736072702919368292271391489934664197371624293808623972309476953455769155285951085044676564481465186056400410204457234911555299381193032518918508380744907325006045543920685715957754960369162245504663358139176667299843239438230154864485772736692216754521656421503851071994551069908787906784166577603525252184440591914864373591062270255055701266401938256410881496411040797319326909167111386789870628373974713076363249693119098304586211297588764368906429125355931926451206615654272839590593587879310262265155415786363975817101200586476338108268180116780862975493879922222821987410975985260454903558421806252808574211181512147329125543905154350416417931106923376090355082457407481480882953169578201277380321821309970852617001532905996862597187722631486056860706573999354368215278896361213226448706653072778599853450478020223649856284025125180195688800334151551888800879440721139819413581472184651043841836126331719165770086335469108309555816688856355607369860268867943878810243085748062390749971361849152411256725609608512194263151849346522050492344374468993577815574297355639395415245249712402652934836054316295356010638112719797816181756971619128193326352013090308761995682931334124802161291475673525699077980021582813910370333973518630467256652304035679402792463415119497472552862053101879990243697065534765640729756904820127950541658769432902722692140573952391109453692643779608884572894695531296827454555856696582680465974258284248367021496426099692340293872739794253070752758312385032394756629720359533260955933465714175787198354933317216872939011397260669751273513026129990939549310081441930115920337785785365286497384588698039207888136631875972250866553689512751465203405672722389454128144273883849818329105702033516034652102900743043067178218463392173209412612060664962510063381865171119804897171766664891110358673452663366124757207728685988117770950356206324645205471674215437957919022793492681375063567625038821545869108064476212086578251929391025553863829472446059613210759743904522049501348541855439999675474201346512933169330874753032291119121923498698394857189166394135002142728210462635006365260279512211033458411630166979771155850075098490023737118589250284778749547323733036142875984348434114647472687150130288470780579261124178691363635948361572722220061181677040368184127402241710125259960395010944910658572587902655941612569722238896055329032346501371735845049788856277697793416505774241470159092742320741132486477127628118145365779314475313943713750687668931096343936993151305314825591724867388623268917463972533303123406560465705894028599552507766356075178431693658355977924528787487998158544227764292690739233848874510623388944156978343888078733814449452943603980719783226496105095160862204439153082100444434770521638073259597382770664429436939879746973353116964403690611156842515549890975286550694411734941302559293744320263059427392969783278693543821338543813241251688178038360537334042817912989257150238797243015646919235260818843483083390116806371088452622176459298675448949442708701344829636338560949998674291388306152414710841855734577467745413357576227160768590661862347834849547566205917000559312588675494888000386272698623832182513114407902071972146342851775913844134215325044706628599350914346944190636941572479486408743076012306248439138468633192115563558727067218934635807131158412444054606662860624722876459700361623975393832245988664886798974905024010537934198080860116078984431804958065425099920729049421371167822767613509548151490489517851234619399584174066278936951901750794575074468639167653335550636698527886653145623693823432789394846343989167797303497117999761533895483675390717974024222538087449578380675684190881931228704541973895609057132140633722877024373858305759555981117532154887623280487066115499570600043252721960635274784887955291574081400167235296582054145604307779348387343664424252115149849892497915273890348984803576908624203374778397511515652617025343106519925379498180694621307747601573852935229527493094157491300299588489319629932991104931837612610737163072695626014312613297731781683755286978425713623597601296452974841152146872919301858688018416065859319360749019144787673366525321668883809444824874455003399555426684108045469945815218577504790208280449392086447334358819011128048362449497577831782487243482294136005434525281279642754148829694177222686892739136571998172045964972358341660244714488429707244433716963543925986036378881864577843727924331914122847087544551618410185316069823777090264719614538710924346144612848730069588999339822810369707611294259286517678904108821999985066980845704165154098924222151687383264361597284473182104046887674589863811597504995423363825527818948912966589974258984560974899057495568660167301399032849970251789364439899674100058055626688328711468112251532964376658685028254094707153158215762518457767612657924343519782306762694482606783099321531960953795759688785078936196551301879869069107121663552684516736401019134234828532154928268391455322364135351234266952164278530591187488310223031170131220564893958364325423983769292164804028341259231405736699738638188254565108612295168886805321518448734420423811888075460782815743418012514415089928227801660892133939888716869880032684069969965520048004204742168220526857469318980786352275543820114670132322331433156803995079862956561619749251315625593408317696929051114986164311369451680898024052662605573230320156479567355062078371368603827754969985407787657408494581449830338307204852059118099741196667168925595468114073364736569985656641964572403595753231185203744385163337837749662600477804461288237971404628201576439036482974111770926767668656383464413556401871075992810486986272691190536978065581225383304950107744722206414789526472057488646404534041105648502068822506721920542405928581468618053528372374240275665574556340844562653253145900257126303690581949590152044699404807416144345323823475372664296342235363620324945725675327811472047642227854177741198441840015404919294395699409648886776992951361633532141242895893850774983182748566763760343637428570726827755526348810042409538326990532202980515037522935780256893448197380303084393442026329765856705587715663007632118842585322471117782660349964676341721082919746983216567852065872021176012538296205816576560491180019190197525340186021960668905803249922098567776162502525513160605583468846217275003885375144592692155550382011765036482227074924744618470740147237906997326236781379283143497592935579703523689517859976141130258146253701551984761113897831520233431690968221271697422639621032382361757922422471395231822298782083154258784574888913113095509333737876406300170033821099538379637377856360339871854113515601847714585377012797129819532793969528622010915454752536281201058362392074474559751075540674069295320559209390981193581877591790158254805182769208825217441967409639840171701732676477251449785364729681077776659093808668389848508321105107366985806990868858391080647055244199872702961011473474850916336357955529884844900611604402721572220095840391145789042580453651843583870836175161078948517755654247237590054832109184002519415766003132170729461685800619726040864405605417709180009184655551974418836862510204817145899135913650706676784217366907908572463487616968912989423834002966006034152928421515012479455254044973508828852392204048279451818746218840082438531331084737940067997049485299069132644263770006876173711801916793395010325084303454750408726111046593566861275673989652896688688622214093818890252075182848993909248855077795393308137566518384858170664897429766972905142793650542250367741823594492042491879393477575243251247250000618546856798381446140173404925848464298578162813937144054040343289661525684235901864672890461981159240884442218984856069778623687517481358457136020006503548846636640541088635293963212238159238011088514159349003875856942550558185429181902416962403143981517501612082389958602914627663361314333534887846566176194941570421905195544519206210850882661043842818976276750719143808422822709813625144382239052196307976898909726495149519457101005047574351465351318889569405825455097460704993265522669707699448917600041290139907954816278144003036393487573256764585133745869709674865545382589733136088155949101803082717995727930194615570521743225287149395158590816336194073557227809009879351950051698008279457214760331224507591014519382543329211088238961999865687629866269928554772302050980581999369630569896496551839604976557105426407474882571036848263559314674732358034812423232544929004063395655651206860380928861057978058022207097160194619399198139360395504129904894485297561876864069213748975953276338117717220654467739888682688031959414412566770094917907097227757633953357739071916941985415996908014379016723521081668081390489430936424353454000623152451864818205188137271115896005082078886704434100290067254631674276067929803084996124971835449710255958170895931322297338794914754418785501620783395060601960512012330815400306159149847168693255299345479189447107311717440319061052669596810285267130881085145496919233041370101885793803764393693784141743103320094042508986767115059893137300016353208910696128693219195299735710707662824054057093506154259120327529786365512670836168295111545479449454514171008673481761271694264490375698939033987160213678547993855450863056298594297886128005290197826806343464115760198985283151754897505029712705423251561618454116539012830023994821522055560871546117451939378743103830407271017935936694993066756866508901861957311487926274000294536391312733887929284065482516291428418473629525894256904904696765576064539780899823926955207172535914609182218816893152096993752467827806632418565581642305609888552038301008231748893779385133901007286599983308777162169753210445277731643195186422176272135884238939764074675916175879955051948453985474929726554519055900323110371404881549148815636667718592402516300640056942928386363657207088241924751924821825439209032579518958808495148592596805566319952760800800176144487266097208796433774097507627738770592212466109302363744070739032863136458978072984884936122544805754003146403894043234589226598464934994232300221001543446911980664430665585111738547239153411491805174668206978832277509166624375515874168404410331878852461037603118802175701024170894921573382888382237920287464087584369820839612899440848197525395372756829025323188733210389959794283108006905231866920761862744508440386301643225961703318929894396785526216099717323298352013548366523887125516029673101945543848126576080607747771564465889729093583381226330341992867983461255602514450081241935848333760980160830328461598019681963313621417250926060816713653421463690738246360500060979221371740510780330212262887282452288049790054029249955433391213005719575531317099329727404785120619802160381189176143250961035868381265844068284980581409480024946739447439912849321911135510615029598340376233781165291075741478558498219607619421757424493513618535195210763533702804663144557571465452703122437324748253348369098855722027973733805813010262083711409333329227959083682071268437135125664576363526299932628315976284692347946581101292206842808417497072921677998534465082230815612711525272787317440737512246026855754515993738429222035982049115569408178671594264980786430949126989370104475110742133387622342895990419733580632083226487682483670012988157786074042911142318455608678402392354223512862620712859537946470462235206112827640414055927765791813343676248395316026181408496406562977609517061022149043477391896927483599944980314453279065785036671961432579818375643563862686147345183594110107897236033440890603751798817645524324481189224718248807447246059459128354718066793853532008701158425150363956828452977006251334704312916588752616818879923905359052427432893618924744997074235871270992095998833887322310138327784296978366635758392866881500437261320722643052740481056003898617041458574066784732036310683476683145232053673264315933478328662504727673236273692035065738992986563384493456332227662408368383412874364767724354620325026149590178364540904468922072022101387036638164159349417245995354124634392487395212816942744141623746787937909953934177620794615487573778334363922798564748984921444222637902628996249438509265416648698011506002137072889323662808497260768073847436573467653476335353871740208293094837343395419681834237039035348080156198630909298609504172496107814635728435024525444906840862455660608763428824202460165530691187513061425457393384650211999904876684388596115936534874481396362882081784650808661150343957026366923499863689752064877041783832020706750929937322340513177458275599822795736208328604636917514922847412311130644323795333732052182340058699560332132466799258660470232293655389898588403487378799289343971905537657862284015341630018815454494576261018281206370001501144845643188095326256155590862772084172590042931942055517690404577853227421454423918840673326072691511043465010360447707172131419293908199711007986728954598158106734208600889393616893999900586507747526183349565898732905557697097728866184608296830602741044625108931470612532504459316779410862256364527393534879369545378406341241455432166209654355144513698286310524752710061380279822442393803839461463057531965173244962268022421650392672535388618622615674065326901467799263973528410072559692203691971331125318488710163854947825346654896284029933110242638284692138522453135364600657438833254580192305267520869365252248252246707366968323476561218737369998249106172415951519727137423840118106375167515824942566611607197953490061841703403710978959012889791686485906952338012831127428095342339417008390366601838060607573390312668831510961441988946939025487363254912102894945818503180897675487718324772950518189830872238678144007466703406191086818730320677869324292040309057808463673001854402308837051465901844044981601409258241314024543864986761628406176797099349064026517092663795606004531838000298569536535186751609205788758616063142792048671472010753278343843407566705606380091932090126102096577008045556841337113937410381840606867552232476040572281462737982090123571227453885777199406691151066813750443111715894520636977671802581642930151514093730593543673076711541765923089291346628717311501385848464810406449575493270843998805672404127160173745260397176038244892250940737721198525918877061859338390881507413165824391142456144860227681880118922700413649447369428602863926691970761431973201811021637250852470008404875917584959403886780181118810513726225788739884133366237291959568544965424891917942213924807194026031741220379407349722304363823956102196611617095772253574044161937425792375463471564038242013053707445947201770983825589095502767175176184156284607891035627074150606067934892799489345794864750904845571776175626988267187350095741280641196411644519872613489858761069409706939967464828912213172673517715182714327869702270532208496092831905807438113185691660240469415700900425997338051179966749650160412809834081236298536429012798573276761943348427983140151346698626326910517630014605212220059882951240877513864517309519187408236903078713636276085159101694869308833987719029480155791835034887885960696595792740372130791921160506369089734957135239434500071724880566192696083536739166016228927023815848010740608285235853406800527248178277454291708337848411139861170458256272919430547356976047700228166705430598184112390433039868578682255184933668071361131571888456360317534780162856428553806688429262416161722010439679745920684171309493490608500184110076608831178571000583083453750288284371056323254021785588125405126497315468848464898912485698791158982134189533516435067542479417170694687447094876329492666572822222468264895446401257999086438936053078955001492376161672945962471442170837299057601078009302071325182170664235242803178276150239956904933286603798769266341394086009264314424342699461718874758113623600212640472594646064297889519664008538604065659612851080673836083106130365811534527304965572970030061558392825875792013186381431442831790435603092784980900334728314584829964830845448777144780470854696953461622030569472635986239233895275220884608221851878328085619726871909429315137099086821589648653470279786450550990879840444355099946099712034804473165766921778765406208722402248051685033061741546360523891663787821974542518601985534642533602254697889065760524973563735295285090287519280416008341044045584381087241199808917028442715797284896617603812012292014592388807679008435790973555115473224002153999444591436791613196426608926255696235150276558049237507338794618294377720427334547314957058052508683497966229342772096059153522282050887879263965354875630990546209385994918913102843670186140721494144924754151569005144807897305188535772258930839175564852882608725911924795008955821459924501516881487216572347258597669986120952734058323949872991449432938809883706762487375480108059028481846697533267350359517727048090517214469127231266149823215677265608692550507850459768695629773520291923499766105683462174626159664092092426370176320968231117201795520629797641336057878962135284181360200237096594290177316501864044834283535239465304586111487963427369735710888851777507640306356447627711268517881964597344582444204437288694157178862481578173347373060518248086639897818617150746351011849120903203870634179255674167598236488889866762496167728624989734585617169912334493067313476839538440600058801685425598726753820830915118502765848051153563513151870306807065803828521896231363571560392290793187449155777449955816188671918524188566038699882030853724228086696051454083242655037770648494741025409344763745131175987566567660139083786482874192560214265630820788440015160163319515561079677504672047451533011792414714576741267463508625119726690087204337751880578349499164266366396279715555301423221520460582934619875404662037523218293289165717731426810664697563921320699857044635804133928346847101438583156709569294791324769375940438638788394490325820881537380689006085380863137921334369356411659862113983392922038192186743001313856476241286828417909140188592984312921034541257639413803709236399503103459701515871137008367345570555687244612419453134895642468291805286475672392674279042550803661287524278973865920431417124457102282766617868668362568642601014208026520695946617762143946014651136879119374090010794126200538396395880658989226059844706543491195395274290958387756920616930008532530327930593866724704309457754280523072533511710897158170077381146478149976267014432678223873891182511800705138080050081911283793105100748711457852431029038764856868083300654139495215994046496628038857826999595765186750544949038793379006309328877810293558629320589999981130978421550888948035748227974903251013291760130094776891939331681948888381088635492539730255203723036308427475372219742637608859385381281222524938643290706002602148756778929499600542832828478652921209796725575476605995165349142150745070280858919353539620670271033278897959024077383346040874249642556609812068225894500856695829847531480616168272514006793484093339515946050637512342597004269951356554527800920829965828354743059309544665225132827798650196567277122176864107044899130063892011120315282518313331366378761969239536259256786150313255354893139915293340175130660699783167380904811859886476098607899151189820697115590383154665205705397600105382141704211008218598409287092460313301605281087696497413009345476085848120326010589196002067624218756680860962958235650280302999685790791985026548518076397841940208036541727038917134977781550402981417988818761870495280231227838466822362057316566889023100341672312708776585370564594856196189669469117168247757775083348797977749561588999005951053436671434563191512500055665741283661101737079373536522809479371808811609979030024707340678946829065481837399694623094283688687042100748606700129258668359884946016165943512447500253033098359465291610367567122801316799753406509324657823039258494056188573605954218587897059071587714148823571274026820144200167656395888533818850705731837536288884379126456635003806861120984978928956420307352834409311402849168078558438217837845065602176975655282783392839210262214140338467904737416833501128121356104506338197569319004989941814134976800634805931851078200421247353150971377718346716496930151460704413453434518676204677528704165896244193199469900334268256996735952487172685389724737180353900726796248000404205925987361333076958286702730530481500253039951210817922737676730155641119423118927130526832349539368844467398587457787014476810552265103066017798901352176164694174955114787048640676634418279394683034692997017809495654888493238795821499022411125109189669942421030678583189932106118434633351919891319473879343717128517872587669684751988061385691762286458038970727649121736446386884655577975329679558223735835329075797618279014364029848520425368406437081256216064731369364074616096727110164866705200206677749753002410787572035196126166889828928398366668768496424795609308622937443813436027257371550810652498586728566933523224609865781591823622947578817434264008553285332264976702858303163741467304519379086796320746418573884697907758405280270077455818263441615652762148232960686352319306416641863403447727513268750226848519346110262777119624060167913735577955390703619713239076965360919216414389301976381617940978203404118909064652788089913753732514394864356912299863583229229999178416855130314206055008381999714415119580033047206425335184624179915247461959039911904936193756184743863533629775284529805316592133115793840746718349653198211703613513101757838852478794427865396129077002490630952439320606531263491045713490304483420138380020634313360108905362345729421129241946114638966357641470974822526600589288211331598253826420660398517496534573036412877583172373765728756876048849583017559340068737960406156271714556329045755585709352107757113681440000339020975410749722898106291890167722389567086687855940684949006914002652664466358865759545487027252749094471840055253541345891952796930429633162582586090715932782025272355932629508906497528597800049731501700507243418338269740799338628652131771809638998763881158471022098593676644224048127072961937681195362572288865003366598754639665807995119672474744226377872575368397428566797052867236220170510910664782397866735722458730304954176825612910783829988805749265496517322932890618605187248807537075807663510621498097462784534456487909783377625817230747134927642913535914611399589774251920894969474895428670575297022203336593803029891274011755830368798357626347076463581989139675160324797301184818193235176171551007303704965012730085741540270680414350298712394804254393599339947879574169392106247770194514746354008889869414239286785841433583325690007559615366269862925588632603232856140400347968029394965781355943641328829989176135836593513300131511088204294329056345526915421701379751552371439300326260860710333298604477981076359973753394301614583400668996495392615844614931077034337380383040601029475717855120440801609158697996671003782336243339281160099510906070266583310276620059250199353388391168288537281075847423880301383819372530511700505444119101927545782117455566432872753716306344255110481182332585312743556950082213269295268159668749142029944110349677647195484881313869124957879653572314536552870720273119310275852071293953312769621212876843948100228641897306966840547275509240335665310701784855047156040582990388603141928995069263411493733512940883035513222597179940875968699567872231443220502043965818370700620977887346806271537231856389111046480135344963305897131371488638319753821439108869585990090906921431766054183829374083168821415228666514180481358039196474098745443128001944941487462045448901499025774791299946201937924171495967184081583401475174437447808550950136572596781558442795075660859909077919808144612026990109046321292496273622093039844518445284136727126639010885647375836938594934233536389422274771313066455894118603035546256962090239669535305002074474712181654407568937364707494715159716357748835365417936356777330082171205455914908445881151509020727646918019475537488406628493279565968759106532479207836176507055356292628676665089860649741263860741651814945086272483682812391502220341106139342488914165549093439186382723225355964627534326539348978560711523579264429818094561009467808649518368247999550290077098930229673811511482292236930264078610011787068320038019436733247509230137264656103695564584750530613521501525673992902033603713681169749994090785942028623303983177137400229055514629110686475693495171615366053502854325999983129567578703638842189969970730052130193625278097724378017188795728429046465417190157270651017578719664321824515629792040502977716351418232106409708755544017664665559215526558599353798397662104015568610745943240162019941464194772983233960183147239420665764924858823279133630319931972905799849661952362410487088264639007018333795115737578379150892456051283737007004563180567491518785335993634648304716649883618088233490393444546548523191604500702385148960388231011746530042302186033994751406253261730924595727809838332893276403821009088681245601087247187427951744401280687208946938964964836304429359911057377251547286292184782489614515898730669357800672039047906223695310003651466019542353211681111835733898060774709396902279300543013437283583120026799965315239113326536943294978630453046191608998575589479912483583663016893256746107377949480288101055134390377601929661827716686393010426413427894317912890877408202188156509455125826680923016081785976055395729740659953142064773083031772190719286955290211908957223368573638340091724211999872609139883899846087310599581873791073113180336300630821070059618282690278996648075042175961482842743150744239431298463147579392729901534368061869531085586057642412975716730601084243070131247504393097908417410764320458718602959911407363397380559695504463857836193401417500811982707316809660823410189252361998821692142031236219813679124477106922404201534588883935750909348556863725237114256173718610317876397237311753238802672212546738225546068955565168884259442235644515994381375836133858692661203135579653223566257842280860970451645560638435702625092259197388185418437317507080420148911492115011001924516636069019604728710531283958432172344776575209259874945374155056325284613688596218665810973544305936348941120348279439920558641909287595529266857546627835848172333626834572018610217559466847397953219276890764284606379919088150165347220906255797765891882531023770945982266835725255315239702516262187766052736380467859827297957017144000165385270802561156238818222971933427133635833038379444579264716583576679231802706396852199779423150553682974861101444054650009829517640497003556870223394541870263039327873437732573764718220297584013443549931505509082680493435106656707948993061682985697552290064882077873649356812237040796492329324330362784142733391468606413840485310370972483011210993726981153372899864971020320399460425998612672529395386600693997027482194749736488735324145271909026030460646553855828708802833638660713574515328879010278465487681427579856814916121751387186323153056660721042341942799424936679890153562589202623678529740052256516996864780785542524808570453744352085050461362962404081885798545578720162869021930523424265182806594047675562032652171420670850215019234745486594265439555300233568935467465877227441993495762533957163733349280009570362667031863011795307831118296930703359115862546982241147678325304092466536026709965607172954259219503276519194287234874004301527109907411954594985013249644382214029452574730466350524456944768509927580813829668916090102681208398695558318741909250942430858867868498485318919363051838417541900767411054790275614157264037688553684619917730736957155624878023256526892050287102470940529399550120090551135701109914665159636381205434065417317521836272051388690960592359962449264823572717931996595037203794999214412802152360945664892712543712087245934616201808828607997449695988584468904043737974422088431613785688368017193816044608379326911503592882007996825596067795219752672894905190744645094221110746246690005650935053117976200432533826078608310599998564507883879924547568612244199437504673776507022174845449938476852848191693936298511314552473569286239211294095388720656965314625362329825164944673479696202357406235739529773922207602901260584021410625522624430059564526725926231402408180421298465545293802798856664022276043082466699563016540706488462266398648837831502647432569165654019776308125296878503883476036794518143040556500570735072132525818431563511859003412465326729545155919449299044542813122699806410294749997382701008495818268794698994229627213617209101525674963892712063800579466738780121838082734826254186966603408558828778496104232182951700789665665433701078726616675749276616529946681800897756046159848310388774007034374851884390133774761377173542552235176846341559425055092140385213269846254360259566285950131286318287232651442377566254379465554639164754823613958742771176543804658515556647813626112415743672744006474947294097842484649151399164038423881899175978224510688831708715838789407542685096333483340351727574380890166078191129126124389808574061784648930238565723008122019038600236777576531233014260317285160834719672942384172961006098607280603781240257524959598502840228766566685914788215876265181768303174971337632522696906063680120843364531482018569080953137123864109259338462772272912681775256206755566386602638230331664316850285875276147582901474993230505586267688518863960412858176585449344216809544726829086440621601750199742906901436347646582067501595128853141563884167133158092299616127329709649504841401419998569610319309829324859303552788510823970878582366886617370145100673953655674059541222870932746500447477247972767273150368282429221429280254536342535582486616522744234112064095840778997521825871695903215528531353941584510258429722924283645915846441157354739962354345312883382625290937373053688666461893320448608946187045985911006960133821383820003084879359891145477959062336951817991284744567781270424591169184225403311090653450020499455731520969872528059859042107053457600361680792704386941133227841424089867180187217695125632249625723179014111444950047466504811010746277822151660091833938696180955572928631606626496924084897410578687052020429251441040257887206302582549027684110192974829206005814465007374985730828505266768953728291468753959298388613550836669378594716080590294006849758613426522511568213444017749402961453920438684168907296205222902870227639557625756669014379124310775251490316274997668922826688119019160015617325209733342161907574623566742872682776425875148893076072878182427747176609604157591018353080809408634053908082289108033430862619253641657867390860868177843513328897245899391945740805062246551641083255824228270450807687704897985504475824153593704907012117738690054342088803841419067884363379614355520575328441001547163684451388039331866514176535583541420007280773546937114958818152098675199835596313550336026364824833381009850219603043268231724557855225147107271438170158881507355947536575262791430420154476634490636942311899095618871169777228319947622466791392810614285175872444477235892421149793956168734904936888027022528799338565534054374349114735169509865017860306878689203318336644906835285177815057225847071805485052871246784669199400551399102168003115064793586858747737577879672338889143492019499491292261702442136588413672346373673169977045140609693411870235176486899657880558967536584586607098326444338357427940151286662322325405853877222000202475777855338588944799256984042121044946451930208205252595211774544539543973228798849573371478246849648660371470694461369099456919246739238245500541739105520534873852466769396932168150111803697760088236939864608181003481039902902191392082016896058550184080023483794919216628756571189402194577447084332149312999391592676386223863925201205302296664848858484011439563235018827747703887960886450947923220378157054743982242373223370079506540615941018839845259866124785356413601609246518781241167366915559442736190111243810214200735781711176856284857806842762983831430321608674716865743852655542214287843776819210249268317193414527329413157465713820698882591508365334449795256950649655948515956391662594815173186691888819484765892004436216016231203797037008340150102159139462773733847042335313735988171648577625155495796962291956285299060919155590495795920614573799511594941861235160384853851788520036190146415920682707993747546139517831959378095578007049669301053553883022250087763719735618415722307296241864998800196845133178072238209693865253729561217583987695130108711997490082105498933779149870108910730767643694722440614786759942091312521642402374199928494618523997028106449693763399584500870151853268876146292771686697438951776080044429371470150187733812587090014118517403125672759034220111579064639828473332021047989947505229254800054907858724191471445400450840341718451072251521273606249454594809953465601175588462801189162988813596886149697235734972075863356391527748284790945038267660414978203439627772158790643382747458564580462813026861554084309555519442600686152096508857969551981026595833653421925840844411918728182454085863927042925047420785176355510655153008093142323173249947945157628881130971822289127335935820964581466027189441976623327278197909274106161928729905028186511311469089763491083678631119317259498214872303631448241680090888715387696318958571046765541765583061324518303004519981873785903761254060536832665865585329752962901379966697951741185940313081380597382516711971879540774308567897738730113570106990956880566994407449573446569656694026922985102150291978482091219867434403690442342820195539695666841700696069190205564316132109857162216661888390218224082969269614541092782253568586465093417974997688143550645066892899110539714675042117274079586454502016933236161035842297017014197354243917497340266266670297078512552212197201576537328846971019225156414187694186278905753525801029476406210367776875257977075167010674654630534199414225542911807238802280630258873550093295587228069432809104909751256293956278787820066388813572734627004683773996885247867285469002120232967366704813268737432488448675176143725351830305767331959882816635113666366496030437316269132379693329743940797610495935794865046612049476841514991386956789646726999614933357792805568257994755044454547871257967543684188736222413745835422957045931540471279285379870086914604534534887971338259252681082643912564306068743795942954353964528274708646508323568963707633531406940867813471186152060313455375743970843006724511881266897520235757353666721324678011374023976959173649237377837362738632604150427652121025881582320590602673033705092525754795988912291942525081893477848506616966937208847435237392400290424369923588281257297444049880088923249157613665698477890539284862340125671885463051118319604711204866489751124384421660116065533651485417592019926614433231178715968818045343198269295979831343025288914948351907340938842414968313678848974859622635450292843890939692472805998270755485391638444484019417799946756276001168641786268145221067234057667967447222716818047752084312583077235557024343721984518227282344375983573778983280149125278872926087313293376566761570176376826556897518310018923268598193816562027055216024997772084318563602112821417386673414516054642611010459275574979999028271429236438769191644700245011285669881584188364270519393487882739398931634861724837955178970991164707763131555318653195970371443273553594154093912982309872089412209832231684598818452202222258735536489452558157866696636340194899641834059837465963855794916628260235189578965332312356015950133200845606491862703482743581545191619153049169276362459983741345593954142552981291482684534871614624172685040655431227995711064484998985626324378048604639451477150353358419343015176752963762032953757566729499481435899828661409525671126159528589800892377409164098567283454882714026566401846409786162102504390421016915797229073704947639942523291874281680437812716392085972238166024426202785836032957549554118433375861386210036928594494406206142850931883411428987592943803906750226229873014982753003218035851776283475636554307887073126261020537863538961204524011131042103877070936066432784461969972215135419447890278426989148658463414498729183361679924299344856936108627154149278355310465584979049999439542778376484145105784124115927396971155967631631730745898555293425928589349413489599508730851656370885376637804257733247641160527998685095018794775085926838013633661718484030515731980216167128044632368113018113015604231949889011683523294153198368006274368070643606765991988959635822300484955686518865987858058510460435163582796950357845860086923213527588829181380687412123585982458893808030231820628036275497271052392368503375346706459294328916168949275441448751016326980849507752444202281952143737799077423614971040582875105995965688682537012196086372699991031553752048263967780967324193025086198971577589561203892291621039850947769553352339779549274933288239800950314433211345237977701180663325733910771870762005653019771002728071009465089256217409432098379251512954197161815502103298402539462893810609120070429079144779757472190923120197958095822085104848088101815109428211928058553113145363228937618368928172813302156613446944966093604098279802661227321541722402388030259319861763995567060580375040365562278770628026735784631883873692599430629062827719734786253158852323001722287763687358146858763239453636543020642433825071809597851377496020077365781004074939937238754137859027235188030893964985385346545938789153322058065313029698965352295514784031150160997734066514705978002044529440939988225295946101302525866777421721143477866073465357950547867137749985591854774109361383309424050422062355436291144981986327629511040453937478369131572839282546699633105380894627414755059779113217204046803134190684071436168503829373476391273639495721263433493532179164986102304962734504689513813843675160292782117679665207046931428327135696779899704526437093615268849967538896548867787119829277606072271250356823407005771841294853164065882394448052172864738503943736050261697326395091062457737526340356131252396664300989604963411537705662982843007133015139781657767312911706928916131918415059846126522342865535872909296972068424678518177111650000370168172988141041135274679804211119594439865405792130106726788668408815909944464214738351099371901443221976146212152942939246773367382945034726529049295039015085839222600781996478270075582198539013590029141575175138452039606417245735950433076428602525310552862515087183997273679602013013908007396166887793971197234247997864836296996018598899965644555515825447895904405013731111178632613599053316202154971809639613142959014755593854423975543929385843229333864494007549222912269763443370645654116114900750638837297680698767105662004416125354478894150637170046914718028150085652877411129893215184975118247652210500565043242579795994112941586874799525069270213554751206083076126173824528208651551739271619125386815188229028279355593620681954952235082382506528510062788380910930143385878852554859876940372909925552073539282262154405134456560706268962127008202425779935433058055857542722641735974201165663056825317294412486406368514092703681098342942653172742277758062226154567063308410650806814183345944089253395479353366014172946473079364000332698544413453872474464265354178403443969108599063230303684524627118516636499312657205708529741109796684800791390379095468719656183487908732588963347507361723674914013211336796542229110462713197470267686885132470224041455730593476371416445057510090268022750699372862320442631101959600583951963803042133760626673987651734776530903650021265289996162766429564679036437554940728871846555779626559568125467778032119825942347611780051312918010673092996884596808072521894557714106918862890622928752079426901142151223956463596846301823703915659082135776800415279865033376768024273307336129129433141488688673771891940920820459281705785316164559804307513832847954854436815063336562050196832514373638649547944673636575895808389412647781578658040110701930546064159593437604284637862605452767271664593107531246209507913488264617134604314527421908935468523239250752386013427298753724423836676871788672854239258937816643689509474883313160639167173138869765297582902462550526516599187251173670085789442214070900081851019287990931916477492059830560004454911071065264152402710038953863170606341064170496454034088946148468054033648301016810163135270839278790141438125917794625749883218106776955822829235712683792638746762491720517611373839368706016778885828966123959455806365732381210485422289944426533079324592050148163820483219956091117419382038853326007981381801692342679082136818998843002404979928148305555030586916456158667576669311505047806160189465176928397634527171383059686068428007246940251915567538050212774688229508170618184644562741572632392980513400198892807236319060799576919567609538423596255485940351633517974673423745559910117104739044328862549426139510465509231977561675387213296439804394475701481959928097659653268050647902118788783823420494528638624181823028206870736654131873255503207501326600890345613461961663919297582187755987006012481740587085565757591737137858554125199935249900847170190746226656099417314395588697983048191932789509151338576171237168913083695566592988734332865951981394600501793341189525048158819890095505747788340850646564148016360243755285479732383853189862380764607414183789768022432529947239627675313504069724814059030872349934323165798351160841559326099534718347770121121467933387737752002982488969533183152555580007887008121242803580758353242014951363473669850335723206850874264026275515274113935926344134101906766881729974439178968713705675491471636647999343219627367909609343253930060260366927159377078706808802410690032692381180845765221218986242339761969750185049683730095283977867085786725766329823169967002065599170308032486169820903140715799260340940066235780990404877224807762118456686622285228227038992823879752696862089611020706183347735792923541014487486497084954552862925184260610847265828007534453207717030636071714874207312781192749227135095384444049491895574459988370858066606735245381226698385920173674918686685105163677321118451827751066434314795848495600688652563703358589389285766294752899277338791091168830620404007116477066937619292305181240310489925215194704749028000422708923835949700088749312704024738324562111147851851192829366775094002966588742228883806478331209398219022444959239672868367831506122389075026159029606593266813564852126869472027471577479138553602867172018176452564424462033252358033631410927050694952648857102489279601853963677215662902261890976545552274051903042305270617651780775848778398622004111165680412765106995874532520056091305497551669906945166104836692517689386472634865119348103814790881470792068421413961648308686427230961845233283461172064529681173709758892257790254577880725089212320682871932627784520188201372207723064003869278641409550042996980520104779197189627917339944061418197000423065528107321750433405628273664395173159947869265803408721143811524418693397605370540575002741887516571009277770432378138356837039274139138361898175640199985027349726675750506477607729164725373382412377185731759938502093034221269186473828375138574597428408068883527759378616792207229797123273907220008349637542083434661903307739931910216675612155982081484148465766609737536165523768626458966659515772568450388431769862275078536436679201224891896553159205762775372360896983855563385102913980368166822764993698123247280178893115310382138406864297726440576788886892894521680534267839057239967852800693902978951688068693561959750514059183520566259031664588276960383864047077463025808889493524925616271221510268862100764167322256908798402427299619781762601349553262736362122603742392814847074256705429420022605634596130371280619350744155228104860463749659060957049176469474319531550532123727259519451932910826709059816198592274358588239513712321629478696621743694558818446528556606700616489597450870977595624127153764982369619705622652125844187221912859583122297600906314274968209010849422057158799640713109737926147040532781770014013872351809308581438689232947764931222142636947512552492691436032362695030656625341520546959440004780133236999028436512685136314414022816434839119377988536533076807075823530952339126541022859571718806230242588005800240507170130571306172662983662253922685780884600474157775495121479884241528547849483426142124734115606341017570518909189661429712764910392912878007436005160540765408529689564219963163719113331775074492834316789308104035998181593180432872775733892200983121708358484100422751195597356101553875250767657899298317458399414766373571440623623764723246836827823856654732026485834473968803243271752098733503539761053776652438902180539239231454355419161442618328399155236662766721916215833388310620617283981369500923411182512500707893378072321370626605594040747383349036476313036372509077989525865981430072337498950094914973994435045724360097470528935851530162082905026025402678479949911830214387381186613654391078521682643041034843542772934273254834740348088985782909646030477905714439585983622477174996230021359445551601101605216021331991180505575432137044679669185829666083949619114120064682332517822151463626532237470284691224576402485757098577596216662060415935502092843297223724430593886398997921471943447787412435669624700678647875526832838354673687195727376277660792058173496369579027126819730381259645456095995259473526856423172215001667469324606482154506676526650401392634610908874883257567989248124643557631962381098332864595549258410880027373500939774195102532220122806367320240902420579481323069389757574170213386984328350830919496288256382850094416892638817938259235521292606932741168643043221739294154592599834307636192566274086813298752003206346154899603136573686331593096302160595341761414062405180131491408944736478055803506820578392819014282245515502366027150324709973753550772511054740938139040326824025879375310420986858389820698503506467781068862418115132439084961698788116754695721698490886691147404593409712583907414679535248098024266359673812055220006784159130342258972340202419385227012291940985206373311142425429419746644565600707043084199836688421884230515718829866992486784232284163453355845025982113510272186490519734995027957267736401148693962703598215771002516867100861980939965062066506232152062675887552862656159725390368502833066302687961302896440619692612159317759452635817229916075809823084541195096323931905117222362614113683636212751279682633917854111266248367232532778943937650449194562231003897395574920774560946630312221645489804392152671967688275227120952737866826749267214593126842255543752912767748788036763355277588104371530383317919509216220741307522151630724000256023882636824088258754873968837282774142003138992518093469733933521601721261827253657786188817695450346153166006527195449098736244428259056698723124376341820244950693489675042703598267793794407803036374817534312325230617753882128463113959859681025279361702967700551369702001865091574072795097870467686320849244708993095431055793015542797095898675054225934978270135394455059852607519075458056068941480640031367847073884337094830084244260236386014250695621859984364942119728114602269555936109906488245070722227286989343478980719741497140276701589081903779087568001196876887278227842711659623375695064265138148159517368298357299007057170219715200149484819945654940601979900986952460818931668971945730316808972435207038698530167624996772660380895515580594315013606509409794774125686000702209431937991808174652477606035500947330645327898506786939740785807650937793235874030254612645626165359549272001079298609772774630219070812312134065320611533314005610962592792354938677205361063991541321238614374943933285284602495254748200715026596208604607910273088898334021571197315315532370568333475462369501680962284647060978859610097965016710673318278399931104560686016754506254220003561638132616341685246806474298837441181332158583971757652431737715721258231490004523541602292624116614226909272925018399707556241501313044928431589094498015342041964221814220802762421297124853111618223813221300041132939816800185795090392295774277008983356540504226570065607845060027530105524453076687544506008552302664404895813972936128035521026604119097329966685633331856110746594250576408279657478242422338171206828733697630148125080741386289602221791734708982465435231961673927757128895065414486036970702980351083984588054630611316768566429737771684315905734215982322077660184809923364911120998905591927716857244236965247932802004908549455654663049592237794882050835984805133409935792119765339140368879216462179619241376225784072865365650618702843868888914224581596025942355911127266308181743372972096082385082088325160996647887473779097679536191212408015922770775482602389416864722565407541942485437278110753156883648976996128526347271709646340769525228570691361631396479230036874452742125231688356662019033842664289250372801917445608815163462617448889554130106055692908316205895384320846575371820622704513918058923823923615624854605243794872032169872896842417921793072029596009161057430070881126625116365262944898837342008526760859051303784848111978983610617524601012608377256350930648110680980157573523253801612483572560859095759476553633620176862593590291239974622140840044921630057549624152656807912556068035258415964288852947990542573838786309757594741080251782873341471930678489571125417620803844068115981514609082958242410592274100703363822267309466544233379845514381494163618565581455720013186716718384567732019547960872518806712828939777084695704166594215357479859567940038036917860702107567610736862287498004110285696246473758837368682545975138892539601777026622725039701855114104692539009771410063597215969683070250833413503603776315926135789354431521892637261440409276147620092008378981419225727101966612580101528175381597369062831548892068151424968091111055236602524868446186491694048577149827123997601373424862499400427581133584177305118353388338102466046240612745851276327292384653369885357325492565284176297457255782096074984085685213563654389773926444574211642287658896408284182643449791721421447873482043934139174836218971576759604837955619369225036384711055219649562260309455877829635904023118224163924902943480128169324664255029424652139852174154344831587051714602344253971359905103052244992208515172151482657529183422331250874127454916192999335798487012880103154965005641962562144786424907297375795546050132448847447850542897793941579994568831561877194932783290234751101581314107401112926803743389147676522228101537069101378371226080972268598737573317542886337338790975936294225200514079726869579911466226393438431063482974350026628389483387806969728818318255242539645727966925986083299963715390281329505402488023530765535836819368613502882981957217868293230285736776459824636864065245189098500212017283438482299425387929350686193808997295035447415634686445176505631630464070608443914921310771022120820250058218114883735628934452823738208095031083895950046952263395454555898866945615234848222038507155003186026302237196302698999379615597411335465806399762220601302645646380372950456041892995004191271144697210973572223755160491891108435161373065208615201824737055132726412381859052578436821270074444626984115895884246241088663840683632481350530570600125662366197605874757312919877413352550562780082051980539547469529120828368500869428243511967113488116410666257327825600541232632751813701385664763962966384131564281056770987536818063646786516320663692895463669368949179327582750878989998016538470831454566935596284240055776894498600638909393200935331773500160140614152263754124833053942255440457222672920714969406432702389939786869632003655434522506575898618915913572752831025909002109630420739104760280437011525061497510002559302149143979651292969936155451853955243542871188041668068689120930862528238578336211667373606175486791075575279752451056541378647673229568565278455722595390830270023862627382132032189172696140678831221989234849403363650213184448371661821894402570623683588456029856152936188689434343895903314269647739590002957823079068454681143334708733215023254537577260805638556638180546367603115430481435455201705532665056360122634921683552503029679772945744637354717356089339153657004495953762438067898218373344462787563062885649630487137167817357337427123692078503061568971276050804609255724039638147056610084456238348845381698944544082359209943508744486453990176739874108358755534215992174420975604202230083405849553329843446474981192544107939514500574494777985411920593879685394531894957256035091358242199528820168823304999505646506680721784093217610201904539360684844872856974027672961428808067811486308271156595038392496729050557487994254432647887315551932348725691609043279136042162691550920187074112757818647603849012642890888083659507200653634623457717715452244876274100400873438014135157337138640758098861646072357405859527517568250795136033720747301309428479762051028944576594993884400875593900398881097174357763909167187624582994985046897405485319210680986541909994057312764430231381328922246018976514493394544772972735530454725661248165648559543781455212130747032028279638554573012506489520032112803524553101008753584644852249652242260447911959420915750686080300933813969512897126386166728595549293653443294450717809980027738020614695490479170027885078992007853424589860089967579866353254315925912243207594484996988377695712570544574745495880881570124119310993895435307944196083372846843079606326413347198638991941810105709316172819473062665283242978673142661073034935666805408335111301775043886312626975426540517802944637146071710003379480553069160915167338982649587897901178487298420333640489305045049148640974008833336204001387902427006408395951002519279247753645242301596414719998646014487454524397604349844254637423122004188176948895935090463749160109622772812539055483954422348092452453622212172787709739513054781545305076350886679789283553816440609295497450009507831562431086781524373784722561277481746406130003731735419479525315340260882268566259056185539159743917672522857626838349267396330570993090153792496309305125257201940835592338359692490638220511556766913901401587250893045733563604942305911024868770481979810897362988244296665323499665661728558062848664289867173693053190019840671364907733685932958541315001608033411365667845398843917165653241438138586476816765433139029572364563398876256400704319991472386171561896429928855462073644286858863425090049015839716118687435862471965920388847788027418872037613149586318570898455454499752142746947570196797000147123083479804044504945076824366966508234248413318486092514716753961473080244302783103256973485726608393283792909793587717262198844732893867816709792004860505545877602560241177885321507402987304792601541694730647404941850704117499166441975903222376199615398049498984470123622905584488409084423682430915479565293701668540186317140261380661686309220379965633399223517228144378870178839548792294986200989405564017893503967972231675054564093702658433746613995139154114944116171998506773564732067320199675118108041337672696215207707850792055767489878259900341969335536703992671334265333378420215394436041727505182144793176431547686262283609339157943573114338384252513709263938374024568977527348343753754635182754786194076262709195317818544235933476340540397978827946340806966128216433554242082987673250330671895454652808179550642582432316304364932356651715318241833168879721688262722448849065992326342224682981131977631207668396571087562831798128870854056305239240125312161152413499873299715475724873169895441951736281687127273739885340351552293290362516016117654062869963123338123375889703155938011015523425582961595288607000998843423736246110151123094327115285456863345266896305889736335370200080734950244185869200392776730880283286249632859618590638273036137345973519517235639872423020918751773448591291035851753038808005130249429117513765099885189760256974593335415389590163912567921009819993591933600842424391456539877257124289560384233992665258893444772531411069823257035630262662822878941846480386542985004891658198543836183621578923519834136950888779119735002653745335459091920049255826315900775103300306402536014264731624819651692311618283035431612161062779604622679604399443276954071534683238120756050426735742244436100895489116202505865400302072550559241112656669729283011965734973854065660195193523830138377909213198829339873900080032339032419322993564577616172597385952431367338703379108218366667537106834683048316882822439669026181996473131988800756278870639652087732075672693249066352008420436486890430592068962566565479549780869645879710016373381565479508139315133567967881517887218013486291026780980256604734632395029965628097724753175731062447637780780893667623556860410853594136878497075226277191176946305009364314029001757676386534756736099592981435110957322893530806847807719624462565786926951263819003106785134711458238916095004777060166482246788855310738679894521317633355074148106559107339399998861135911093408601765198243232853441136841676687469189607207036649846274835439570871908617053125861804105000582258644651417795174452781196936684896589020476103025372229736201017402082742037654714057015232461943378490329912648774336323875886690823915617996784369575985957972574716699067619473393467308087217311922806405882936852585278415882622380511349619370451540636986937175140445033417469599868727305954333319892554470392411080450612197885259873321796167172422693503433919824030140932505031821313086257033301025021284802349266796181621147804195681989739935799968487898055042063104609315007724038808033889804109702285528329444496259570297226373433719421776825459134468674854496650053168458994931257304695893133269408528472525418282317193202628649891098715936177772329395316972129170562665090575122302348545178064698549601356758725076889720525180829314886736379247998519536741042117411551396247234669439548820846232982078615396022094554840627760575018911305362004067128142464735146567517108332659433755940799561894847617542789888093574604026105363600543060098728767396869838150173663817613521703606356269624093124339138043143779173085303249111564480242064748141826552509854826884573156176316304828096536718455797644643912187995611993204728488018641257598563194259325997191026846200493410050505904945500374979604680552385445877368399677509284683437115979721111200322293374690370037331607875765141845425403539794803422953254125832016692098621258471233695876431669138032006293356598580710896403766990342368015097027138715496921647140348446133923805893191534716967584413578650036537634801284897573071805161995419701951182306184020872140535542755058844680357264556097996463400575909052502760822615515925059476189952883506925691535737757873985624881914492584735602289099635153153128147569506011777560087432805825188721381430282067447694579701849715171337953547493133050858374585195562043871189875028325242971141069981985101826471418054943758669451656973924393431750950258304957004331418334061472760834535108295475949507860571336552347984651813566916026079477052465974542859405581981867066071357890108141836860364737155926342773535716700756362911172205456250791717934617213674789564987974611712688780526172260390411194484489411861351856942782245865239594593026295949348694812640713230746997032795853129831963953052314299385495359487467085260368480186728220884204608083420649953571065444242532129288630839777913242397007104705920531596575592238327953283153360350038724233144589939634494478309248633999345890356095365258571032831568277971435232987634637455284684304929843078160505909993416136742951912922488581079432617032612156959058306174819032573993042948430621837020865514035549338786164938960859408089997105028152422227565988500214288830094807524933724932294485759088425801896891267955266513720999765507040087899826949051916867716419415591814776069651533162811014285571006195819983521227042565429710349126147404765000922087284092462364862301670782305939943109167224015253235526206291939847285013179602533274517589909895486447638016631131712684061446256415374485509744429158788607145137117138001173828113819110905052149933052324241979444063395047996910369997529791596851210200672754624848881647967112806858214347021246795894857523714813769196567922682426521611819544319169098592422719290357046067951885065940330983788535229670915152350101596097935840989668421144756574394307074553061776746175465473922310780567087753192510436293750591065762924005576428550328181793685028194231007041004751513192074116145731521177771744803997920783388832504573622762786374259353760896698615485743340283922140499988667780656794257495474936060847719409158937897528623842168022738203587394304099274951198393471294424657285354731754279388328088245232881743709042713282186864101141149798559021864772692143139489447285967089096529728175538335142447085458399053108667769157305707384679233597250730401829675788803493355959469849502205550401077101384791488950457663132569690401606662302627268408069235223530075042313157682377067166866516758928907258003690286645629324280246664520093156429252105272534867920413265159538654259517742602291645567768736531952859851663752901945970401736704723862789808111431598308930552103128170832357003908468144290473882811198942500787153511204283686120967054076348535586710134989572364047526352082604910630217320450938049861473799467412205586233128678833825868230274536472913811564277827976645876325857089590963609492941113260865213315855478186691881752051141608287350573580674510699951042282173019625111474125919526986705788266384071631114861946394374470064063075719663637006425306558725246682916521902107820592027313569759501688563722946725624130407401531784251672208819022283778113653979128062157990434547470734889095047455515144168937334658334985148599857576221250020140652782618749913484738938928491489784414452531359408464121606539319436392261483063035500374530980213387262185205465562650892311936380531695760984220490058349410231348003751808243393839833454798081602922721609790670757177457797934562582568887231165911535685438286102007791774934752107536894247571099645449869676958727037916756021524262575735018850715134895386446236964834599921160637191747153065457271616649432220025551467527699156112334184806529072596664417735743772725403330916737313345895292851669436020977143407814959455324470493299266476401825097776166819010611377762192932823723595327456200473305734356154817409228707820251757918336056499162791789217948786551494428449774627632695595341153307431699203386154091467679537512830131755492154223203686056353393093500207850663446904549796741719471529586883325496720159566913687616301033801426555021694457095759364640330844840158925465381269430778517828899551242972042626128599984582338136533322323598871803790566063844685765064835067077341384800255531011872315355916421263567073625102145828037925966333439621280659704200342178023167072075040982872578040034842256586813327457278282619960235047387129199771989493266383633055598946918882545851251068385429090092625459260278656967910602651454708314713384407575660388697170613245870078142752358445879133159589223066479795531611338574492864947768871771760294011491344796183128242037389199846188285561301407036383076132992948442108221608217976443187250676867755364754069602736880018073898012009982419962851838324359066167212512972420423522805282904375386214536568771855375643427665470336222677718453396150450298098472034014382241606217785540819953078622419833858088377522142200866791728805663576603292375940360849300921003035553888778681793381430792515931909081067873385917131459488171850555246373660900714053197945176264205393113460214821063145254367183056215607429570509800833078883230026077884062348563110490130973745034095044456787080986055625672804587936716744618937314155173669629897210565888615105251340252572435964362184438606289701865660144332718575003596280841531035020539276408555922561370978825816033224717360525542731687894679641908580219934644184967219450859397489638654977291267467274639535850781352589029551995731030427737904644178390228490635501360364944455005300584660130628191354683191468517496249123793644116891168825718812449147405667499262351082240470913205318205194509747130579007976853507893927786513807271659033246359134343068022443773058851543070552928338008603592075554573869673901129657061457606082198130803930783239342221833505996604172794222500773677907739231088254949845273818601231499846903293417930241037078503224683978542954670612709463327654056481087970690854560763832296517252123525607528075017987957737624037776421023764128637022140557988144569922196769540678935484531725438613247934863985205865950192984860124670388797965708517457896691828934742967055055458565931177081415583830541784673809785193795852496043217369263791330639244293168079090998737871129758751734490553577337434353090214571355420225673865788437751949407536798255801820025468225945444874697136503077351158920031616135970324088459592950441604670548725021167756911875367766257045035239037125387791272043069341724636274718624627936168888434061210781959914581461441492111354046289660212207471795486068764626386495473413120640398696763253396084780957846547991168744812499435938349144425686987620155859835504955324131292300845823713217073063326881102639918874976725512547719862539746246981162902874505590898173076023558037576295865740632270435418046012111752564920363085860563710688356390648205727487706488026632263442318272919151647990049593927107826146245281521559142959526822643141245741643484396005525615976013014420276043154889004341057942774213056346595060509953028439646414208463032256263018502588980946562942891062526183976634167405755913861879885316100207300997005801319078372914553319470270643752189976308538454820209423462378956576558359391605178045270556939221229405698471294268180857736678303893746334146781848250545724310878263753774966894019089107647134646049804341322095138279510581432066480492827466065721544341270380366206915364183438786629537366788131909319661538366776838104961900395476619763246484862179285749576290920916912292551680257778656318451749506779163487893643572339248468178936892147999998126445231765132918211359276808642415086464939092996344440070044736448962587937410297031767964976071140936574163735471450385990564072331581494081467698890856673911497687335999738434483361974168592462998650245550829164643446845441749884517289833988434857109813645376446575038749704547927791765326673082031837201170914944382695210457137382935388351370295004659069047137367636587315649921913201656297679349944058106597754390931409830759221499007623843638011978275888929101107916934095297522585412816243115972090719055545465697671049392270668402883456032028284089420180620182342154224958279061370201647466066092258820758190612132894327942485339590435006605389147367212677161699728419754650673802366197500319898747014409034437573941082352684091847501376972716082876512667317598583593563978994577630678300544983934963006479347730032063438745252046934440600034699180060105889654551536430711335029021133705927062650737388516586869849446533897709512314967028939286672913548446621762911845779518946218317611410457242381703278662831201670250291628862590962903223037466378277636644803367923521637005582035839486264991905658957996088411024940612481334815940349543303912269755559635477944652704374719453082921597720417584429682957893065762558780459552167625273937115518560983767765820096944386619563583533223624890202395524559765329961758712904847198236218721059518020741322090307545139680886908889431441650258222941037055801155558647351047871736537063684414789346855279276090216922256240921933435896233403056772252269412617885530341995063660747491187036753751062774417334513019112320975103377257285878597055896998026799956391765742625917894699325955077673798015128439920353104226543893519636529418115878708408649647540790769504018638522690107075042513415472542238785843483910100384978975443951514344704568961393592778143102359288773494967308629936840240922703093958792668430999099068685968329313259165078978972155604082705113060758862634771484812493086505769909971295973223921265353030678064839966122518494662085662491090902418777972109678644924522912783363641163496888122514045214991237615924641590143788033192898591859938654734624846507622588159056279445777236922116507431406411947876622631355892712250406950262655458538288842973087553743467804235517188271270332270599530828205734819266937667206394758055310986733528548342652115816699350283666610916054460459787278514867206236433901653387721625435905903765698842939295941995184900002747297234197349022732785093190531713061141793570929707692575612971407953582357630650204385754391564249872169600823839724903166293514864864968469632296504632945223392923064638356538778969489377019244719138134729957440125630091095795027393906850908350870132214727957335412786330858671127959414630020812750332283269580789440803141296706481137229750935813352786093857495058121347738401041002448663783364552967315675606428992779746714527827989458429061903256383658598660092165335956834054268588071697671436813957078363087005718375661076295392457922317782433440313982544369416498255206406984906263464260863824288861308787807560014028190499410594843907972312988734335380482745443853212155417441163657908156614844232213870366407305858194148984924713783436364542937648204256876445510191898904943148472821949534092398268526935423718714845320087599251620470114717475724688797287376131280840658968304373092769595620775956133266091567802213638311365674582813723408260124052404507481511991026517126335443439401077201069499102668406991813456575088177213068614779265086198132625827291903209927278480175686009548943749899478215793350503909672604925256244014482734354106964098503615831452233628782712655931767184983829601009669574117449855183214801608324206539968750316432762917180720627763219443249227894897680064718884864784011153672505743924637514499021174476810296023611543679384210723716074480305827293463971551052320919656446088534926533097296516882884488869009927509389046349199492696866466480288666323607958334299594837565384923865665353349029626851491686680088813508732596565482894230549880585905678268119212451308077490681103202103942377673050569138896663509639727276751649010692184827441440397477171254327002775086995727633651029122858923443125491684767072107906991064018271520991761442916354760672640722391479536334487715716648156741011347607532030054801265404341114060753073482391156925191253988589216409888525510641004230555392511662114524920180977268261816461901269510487221115446820190847401598617618826136971095362677146570980838010403450646639038643374188709734133452951079821931488751127376757467144229859931483338029919224798434494262850511761884875996465837934497765147251273388408397863196172479775183778933677146136273634011783190217580445922592434183083530298415968175975624989719480776683676784821092361688389240614699293733382398717230783653513356471949829869879648143059870661367260963095450705798883991699786837528907407019655967773807686050777635118306146484584279286663963460573904718049898181392957984929478125334432678027871180327779006468375311316095961944822773462809163954485583530711325403145686695774751665790248537813353478603569204298700573592499093511157648808230794746940645077208315663660539077548481940473957369330863687666718761507125399979427819151467569614989923085079328852605445204462560625473566212547937311034745566822078528786037880872214917360235217895968702988447967391925579380843346643188990660734236957445897631578083822266230017925101182111398137275314885487449790793036383081061970140113764306208663964671796696687340689677389192909026152028053455711956708804028413636484807525549920450773995547657214562785628140987711725088047020565535741524812713766797886854267265155197099287392718239030561193267130280953498279036261314691479701714761067292844205294530744945599418355005278852118070226119612948746309670628170278740754721978904791139175963417300174012712853103380433107673397408585326928760578886344448543926894691001505848769302801299201534460215390726151228056890392454421799538321119893414630110214489396743175335950957077483182872508161035460007203946416669712734125666923900805432284882420788908775103958885950901630501322938230563349674827849207256236070203101779015475533767270060151072306760549058182128631318764538385555946648015235383860946969480107385228412280643724285832941793845872181011409558458401781153568869933757454836448073496298711123993824641267524549431886704015683048440526419049228177842399309697509745334559321355662645209298199723669294043820968588045886680023890850271782821171469376310387516468247156339923395144672605657186817075060757439895276026510288194775208997260147526350126364794131839598456878104049191418102259658575365442888151710687153420751728958010142835627886282765008081467995345715921475798234030263628408211820192280906418763077035027049504163142033497237937058687846523571231850690666888914756407542626688058927569168231110411790962443417618572439489100587549734786308647963154568658873214974292927375437380689669355891512207659167403885065358375868464397584136829594945643467953359757444649008452930771118307712068735092192209491191712530219280215020380474791015510436820441244023949423928205192063190233038096932296991511968555209656191983118699262337787781472405067229754207107299078933050083380325543290257824707076357219094617065243437302829020698592166859152007398422279957955481171609163995077022059284951194282799184666633010577886410714179934816881900131588309032629265940749262002097086399671641402439116670125135454824775151447568903117605814223013705976114441862807496889992450345930600017430230030907074016875789845370855426725709538070353486843088711796534967667659770380853294649740183192197895828637994486825702134529395605943665478738253919392672341130238666648067172339492075634964264674532876617071838642905125626838582777256542830230369241301331959638382156370520924369158461058484040862112388074347113846540051863759987173772490352882014524951297690145812843668787592940061013885746243704872042688442621639148684486058969366978624922367492170612170169551468453918643094253482247628379577597474119088755510113317753422907443046351944963987470269438368360791095451129403205072377039293433308537971137103100709980039584192935585459688049007425311269111051811514960771054469130307710050274722900565061884645585706190494578727345903052829921928105396394595176208159411091632918610840729542653174765705287502937911336160035119004985465655119548875207775244811593235573258165263040983059902027665634511218783736038462249220208602406638871346015120764565997546710322834235291895544808777354242163851473102943444033313438661519674139273264867068375433208151032870202774685921264360488750907962168358327886990865496812411365553972018410374287689532383926747018846125363347503282545845257916661087169435197534741867277063887789490968440842425031880723222488481113074047212944572159740772624416954337707243018487873189761121128587895226260818508355463473545235670652141777078084511315828609386604035780861517874566355834918430440108914324727150310616188392856247620676282417358187634663958807523016721208069063280826634542781964275484497952927313355987832572358409138389692623982388721845792475219449632194497443792265610787787844819656611734303238879427619829843730356795419410006158484754530610164736752621884105321858755950104813071326330658729748548524053592292577900356444793405019343046984870983709318976643983545638302937808691453772502791380819296703082349085672050771987811181662451203765789619640359833798320826438003032032454287378792629993266746181956787919832340444244968228257512418648976234922349726198898248667566393738247549592513202553187377439374162806685879085260386795860005095149887919899969597552597567924409464890803278169498485770313626142505939822524091670140142196419114765655614494057155335816368758421612465873205091069266173621825151412509595199697413141594341636832347339949175889441261850349191159428957740981651585150583276862500957790340914018565094129507754333473211381479007964107531352149833767341611534707281109915068830831463749328129927456515996544205549209177659661853983151175220656198442528780459197963655349549105677618742111255204107580978500068936580599830020842035160684218762981891187694922743426642277678826644627365621741486186974999639662240968213375199585650882643642441588129329369862254257166730980583826254925742141743238856706703131611615654252986247111001499398867732467213155097619953209969115125281927278715518309340002022907540828923100186043186157828213490200942243379532427628563274479036692690040544434155982440330149760371406155277296223879047255661224141966045856621052978392583143168712617145281641717560739744100932795407222457792736280701887001588799083063147210877357131657372294824401947841830800692617228765231464001879241293693263494835085664691463258634916339132016817948539657346667528652768804399749605705096099936664879893668573439902442789551990518878771630637467179841865272007544455088780542351105021417992949534622517833967796727834481306877337496777007843364776462668719265768578821515203317610647490236532114626619585859812844003169917900162112982308447646273850908044309170530394815267601346889393901674116064398811615889322936737345366316215681482119550200465074993020553082231039019105473930594218104174121157274091091638136048376414692693834579922091003257623119630616647723293121911619104523431762178799666290130897943181011771053790628595879402852088521599634404227045153655545015905866085340501055901852086620766748067205969319681926951460191315819413723436115570605815168902224764025200518570125774349048695064753353478113714916086227979020189219065587570295972311534501816416267168740511646028874698389907073197167694359919456460607877326115299825324091174073809913503686331237905612119786213190118282010647726601666382277009475717649543529028704241061328721546780940127361450124167756449439449595298258346852850020771044792107840692808026874574444687991498560959567852453481504837848965340143295849055147164247870199070304242750794085154398975046171740771465191041570188871106321458136421056102214682943391802892497427361486713265562657233928086503451553553139438209437197178262655259593658252832064595968346321972634015225039700686405320485948139959289381660691229735143681389979707074313050642637062401407965777258504597312795247036658303662446447458290588431637496618053717155708197948008510796570589307084955309907553840148283614290219710999602013902088406830574399993195793885053166939585701731956282956269391134014836349059935273473106161187862438396825212568435810293900569425919799690240139336789033519204590083161323082746855901350117671718879904470132209227061797326926300405805364498995799087980490231148431945148899226412290122901185293052889166192852560435593260977983077434074352173861074796638520953982996295919082457456319328007117897959518429889280926726245580939115678325444170465467988792720159973993108404967864405406498503090928525657307072495273828975239588797244130518728929454946355798892781371149098869310971102614269369451734837389374759075608810695481677716261162055606417957015756761468704905496492432454495292998381133927507052267165461474669793972564526462781841160954263350835111882186320045199772546901528484337601356610682972919577106672442185113222967012787710169929466644417709714495953850481844402635145640899412966964573850066556952212989824000745886134061784590180866304785124915732072513149299033052960087303406727080273820254205353368211649292985714628316471987492266516212810385880637782286524008210089688582971968287207729819834408433418749093835836680253115144710589979223263628834942890519713467171785700721357514580336669994475687781404196341522679325175595872985132065726247551859734179253832403305000851613809384163897153926541456584719243774506771346937240980735595021510217933444029601967020016718821516358347428599176474309206637595562577119216218199127324885276979542357193191794901114894096016508543436570683906372685853598762353171520329010331566307818511308583512045795694826036083153991094759970732228086246196037503420236833117125041011860884087049368925778724666186044774549008380370809760255424629329310390356245751621758176219110050787080466369180780763576569984287148516783102547789224138352683885821620756831453952323665364104702733659166488345650803072325833352156048353511845206621959611626325619703907710774352851005510366074721367111536048856344185346617658649012593139013612311960349306077462790829133064564803994533967793047706486032623539604996466415809582799787563309340140719836034076670790564599377200264142417472844538502341527930284936550228841437940657208939592276831947889042264540351484429971578439303090003412948598279615191632173823618239348748054110185049555725286917223725137212959651418490575430841487698948978329112099542799044628216146324017964874108963635734127073177812223340117940393921258812078115885436438963000929269754346004248762956869207109318758411773970761365966817804469042611772609184151226631719112507547869747875219942546086801794774056413032171812090136230448533258994791190329958737501818644871128563226717468665793479423119965634051095415329252560608410480472884812760950457951987278907166292208261071892016458726139800227953070184282823312207741765650000453469330731832652576933818727416351227642956106987983728945757609297768117381117980799284829122215123623854010152465423012652815669333444151856099054843854038692615726090259697493950367019969116349963455825528052958621122139602771568774801163485168821759549928256904413588943795885457076973357826528758676614798006197593571779022430075702131583036883465040945487346845176240687154875468146829738277247529353370073897483265214880294971161082160087789332421841552656527469612869378943585870202062132559850304481842749219591880420792395376623259040159227417953786810691625773878936012771658694952529947849699739785710811428197188542358441290437582754926364869923540476355330501890575861616640289111891919842646224417356149601971293784306483282841443910224118435291032768806961819778653650339963473047570169395347012758446207903476995408565299754573800375666780064809488381384671078474055883031079581348731616530679928650680713224560781154166500285801399491812017839522554487903805511520711628161250044243635560306149827540876348217476601072172460457064230129187828508027473318589877273809498671546408969159192596944447942591547057629625193771323249906379660150293587958713231820352979183003755698668208132211897832377620598371055137620208730608987799374675776560117856163841622448522924486080781163515903448054381846981877527467864645031091551978224193355774347375033216374173958906962829927347908956131829319693282988342463138778014319280738018529763726025370438196993425564210562855310067598704330652408814910777493611974144646121108319582864919435725905711199966613625771186775122744270954772487338329338355707432168806902218895507492407036235479979989606722116478762474190137132288185165554494604681543754400860133809548643396549944819827635789851282656324385625063369937987850546939852141750146210212557253182486464233697825836451277114148740667374128643794914278395109157283741618613556120272411480834036213527116543386979050566102007225964409506142594670150095790118313473328385415610746506995396637719363353700735004069936839352759401486680660058086311482156628032010730251746625569355519915206296404116544540045639137742831453437270030931729489697548952387163105840038242252803672273698689333214634706703798846076484750059640927681390380985815858077920039160942642192117690205876043050318208600012541432541512129667422634770569882797889038269516145394737147534101308984192851966701497632510980337729857888026049612306846138373598018767444310786107131735271893139434509015405988988913967667342835833605817482644306795267211768443940066993425040037965826238780943146858705924055971029256620803353047024498199386509943612526898771003681822505633689583314607496503229584858024300127679920675729540638377468775572680416614317672551801566884445860916556744359420994501259248336547626981472659909780140226768749464389866627891166852176995204223153604072744679020463976279794083805082316101497445929213675618286164581784621903982080621813301903692786669674980522148086186431760500383091242942513199328766648913141990593001957668300088713189205839859616232798549445503397888381223368767966880862513476455157276246511211932858562220449541118840859645386601851089572079097153569067508101069126728546937378133650222929820657618400633749564210254552982232776641657375625611553742593273524170478537056129317465427564044505489016449172466764918566095332696781746951869734328628030309693794806171277851910367930565215214773605414373361989265091936399086623161103855322500114643576665096161242557174122843680615423636052556382230402597633737002048957444105248532524448664101985122559639376760287399564140914386671798089882773102330563938010602712542307598049744753705067430086625329513776818205579267990135076791024899982667769706962035583285429149616704018132052749301823014659358827887405375464328458275542251817773405570549732111782116199656135477487994789352602708352614314320321214879122908718094491326418443418956838557597041807408107144191998762183221218289728092405004487632273337134652400487936161751884531321269642908421748562869509585033649679937302752885332229246362290953465294856506888921371197866771388626250651182194284166928804989733339733651120442798302025177425892379049276584190315684510092228661321804947245552686983176700028730184127331391252940741292363885876429571202654735047166424540634456284127011955522153408423566427325029200284697647418676732815285763953025754879257972460311805798280282646440504743409531461842416499213147531075280591071645831293296812004246903710423321625496906103395946170937966323127921526101476187208025686512224593063521336857684370087643230564447355871244328278193693703573023252546870240001752071009551232526388417462714240525204857279062501465761696398692129725899168987969751370594348906755582248400271336661155089201160682491547711187094955809153611686128146270578725022678417536310714818354741611395356508270625388603510367669478510540009448666009675094449038034551193725566968383978640358568921690173285091618658187823677000021118144343421936768070222788320189127576500081933430456390148203005330575129968222081522702321159318335224899355561451901384920886521548786264399489378059199410078941187604005623988727794504596445191762256425504043796693585037845322283035494931958455921709786155821198736358402274726552767470153097656213856425622669837492454511286204663559640825452581749717620936119792275583981706336169994439306058018007428124372056122261259323062901656470635847165721121686162905083735505033314750781847343117938248723459283981776818343609445972726987413173292995427649150522308595286633100601569513183943812972300354428068521276336629573037761939039209688533935445098503087664243403011993868272366576143061426715767625057434252469042116129767841941357423442480260130522011080714908983325019417450344437996719697411245876162906416242288592098785777450916526684630764761794612122511296449982056070971185494159599504880270607096504878957635529283321535786231097636655249259769338903359282683975187938233800720694226466865562254220676717238418497310937376844543119440501210718618812109900674982003910920325992891246206317114008929476606147465272718721686818784247796543234982493704011062146082741792893385556743231825478187849859524675922480411020793775389287450940750014927397176902405745737529154987802379300122916469117685887455522532362828086508674201169168552981421488948504433533222829005748472080306622541975626842726225391284577211628971168957218105270923627721974642549771422923477216503484580929893954014846741928729181599021310965779258685079255118953787572557498777893222285379673303845946061444680605779622675553487134086852435185367550081042839425187630904536773483758868844703861370603866501841723087925776410169565636262039582837572255917794710149663058003028273556259097880059034089831871282141255066290461111317823758628188976498031495060929909998889561259071252238772647517292842354072744630298739647538788390879914428108372739196121737783249368409810682864281589905376659005718582071599154236259668714398974958558356048541991538027590618989267029049720553453273774679693101297034258658591721850276601529016786742823013457669010406615002019541907283482780419908757933786163067789517617425668150205365686751856217262641933883521350217756465384050156631889367231936554127415118614186609807779502178936556537061082461722052620058065493077563421635300874954866002010682127494451918148827062915503060589776072674061246047657916942437748265012710200671260904779322225676869703851761534800220321764340008423515130939010365101237992234969512998405530870997223819090518371108940277974033260087124876395796126401102574815185660051304522968753870036783929096727199111941744716229491203453256474280967539303787320789397983022147216892663315398574093528406931163031199783686875102040176489120275546265505047460033624109246099338615308564458333280049218738238619263112998738552177399184394460091183314964924585151692045363387586371208187559659597422881023256495294495226828331499511868644228936168770342623027266459592938476163787045769859978673903023793559877418261604001858807543482972703768080057491681709945800384026870718091672839750866392190478821851248999852318194941568177460749018367522328534852293681426166347652195960595709890982383687897052229099551068730697914888091015936800074558384592800413708678996895098592849162523361643562212434858794903368492484092392960019909770645698653188935757286701264151409300499053280712558000096201404044084107172149798189219479223472314982169291754285220884788470554833437399723876944664957954767072762608224952282498032508311817933369476563263112674280071908447421509540413924202654741943021212079991928191749795894607945414769041915187276027021446723525941660975458480463648164818803038398530778390649623378668354976332719309087263157219866682195960764006434701875882159852426194834054671273357659707597068893468104578831829277775013310276558085787949037693594559544493564227913472084271218962083872382779184090035488746817753321405957706599518142049398128588797830453894583734992754218752515482242612442900867534892911984091955502267093756006949819155866374509155926523730970742743289729333995454899568856592437749702183763932593633769230453204442649417180846676613784424226403523128818317978880996571955499999030564512916217354237259335737298939121277937341139522543084325622781135874739331796560254905543128148654655077375904900783556888703891026046373052105015070636986904886837302265998401859193842815039161434306354468681450537728343199242988049897476691772298011428092027554273534225084558587914620832961912982847420092185716771375843606819537393001069448168807900178274252988425464345883144450661943375664174189672589439964247682901607189572375390268708187037354324812768182378639618178619948633539387469740332777636525856906472796244429029004851297938090754278664741865126424512537606700323671131450851709265196342497189718885973665398137446827155591994479530035978121910438903947851187700462055934416420020083541143224661865891124644626385902586991879078430434644742605591130916876045093330999510166048606084263406031034312054578662846092811000431974368610616096897539799697553206048997906535428914786226544667471967927737737431924369935339372997451554742643166734734885384841349734336792214879002105013039550783396127364543737632337064282083618602679554660650933141451139183272723837753206536127083229015894427838812686475487703468436818142752587210427552926032946858068454316422062895780891729467163966129173439120117200444247451024356782058628364723446944191605222345482257106990892340164133533703255547010301248865494320246192767013657265656850085575909586997616375416195216136562400376162962689773494475603462141083966760423558160970314007456867221074714116610236330042015745896275235827626816016878374964872533948146827231463685011076301101714143011794028131757526929757269176823849890605638296033847793655608918378716706240896338740529651401847326864748547557619125089822146921002826536532184594822420168277652414026480619314734470746105472148841693048734048416881477778048681475380670234433403335945417154778145176934446030388148528132115374614257749484799559249512766338930233507226248251259733542053043491240834134351026307364644294926849964367564579525685935480301872094292699957270014740144751681604867558539358068094540095250669722759002039347763761399345409012175409494139858613319137619390627931978443220446240804817226922308784555544687468522163922158011538404744793685153287366475714278534135828645684471055532542260792309434679360703609949671939609287740622682055142986411516533420731635024356844130326567880293898329939770477270524917646974165024803835514009356830654576930041116343778993717410863523893573509388684303351732713824986424858535313271265178706194579884425797856714224320625169828632318490516348683934024319300261009628325324620914904455333000955579359229500621596365116865251280259355831272657892122537026748416111168062773854402847692326261911307649553402424872652391474990407155082585999428241411452620357975513822369216982583261854403670049177895631378328990803595414889123949022016290281729447811327252189265620329408859414945440785259819342608176401871158305711080803734672516073996489888052515102063606344724636309192010797702934649956413226217256316193227569286815240632528495679693799893269569696243687057397785179457716827410095993335644885441265698931434546237040083972435577514185130678920610920970518122938142128130340590003869261022477540296685362695526475551365114318079684788140008982689781631871930851273809385988074904409873578462084093442281312443283832793994801049622903610242189540015507233529344350049946149254522256973909202518313420639488599274770527909871786713100113079780806120603179447694341422860051471600442528471712767065958242452303327832445361887203686575569497777198289441185107289786825412024280346873215088873070252000090879729329773551321285780636631332591771152918911913070925811949189010508606956459950632877527107961648334143182700984858451932396817154568267033382215442434339474751848883316294686873568802840628625310150977524424718145527502468406624066724876450833391744659091038228031344795963688798153539977755233552240974647876904856715692933749790959315228995043563925008614024490518894604663337117193920524226584695721862230735315195032236603497512089669836646989301474946330105225041409134356203605786254619871993167906962940112557595954214424988682974647469248711409662051000630907844682638432084581547060441282720300565501804232210579387952555939736970752736909563266356377431385396586508709543406393910474363457349224882007458088860730735719291084779909591004438594895784330678881700645685588862492740621259580919122849676642551967387322423439271162219380578860464440730248533946490559085404750563412201421164403514122297382778070793954172685782613796047390734452113774902849017909486182379617968420363149431217886924113606508207514435896824474413642845477990460372304277173268664488382799813414420380449548279535015266554979319889978185589792497183856825662178405652655172262642304853649364243357577982096635788894226716553541299218654634723158777968488221391008846795080766609616888449372210761635709724595466046740920231719677447073507052771476504627972293195702349909988741837146728244928705481109170461400454941131634351394929532630741262161703836138867927255476871404116527570865642317920591413547064791770192460777408168707568134921058869632700008667283021881680382976004646941962491714603464795718786060988040355793325597492727381685102509546047130642317752294847773476444532101831886412660307667285632931990901232132878924797158904998248051514805891119420259434587983981509735991308019229063237235747869802676957979970512871786834448489927045856285190840809734396651444891595558769912155606244330905234479419280624925404117340226988907192899116634334994419154241131266922602638582649114388159340446875533244984238570971175363876827758250449367102011702368164303943260813154891769667956262394595156229331240481959701563172562319496946764206845538833785895222601729113561551686636645577665664470529531536187961288580022313410069653352752030125962484875021481277861638382618812349605220819657492337281184155605015240192549859524049890596830470689850410299444981674277037195679587150740661108205855085613023190417253258600812180067355520729449431443045693784321448284127646981986689289429915532118670295387809711620316430650771675794258133107468735774814704201601856933422042340275514342241434051796138681179958579365910427822716534484030612677614226741080481988917112414011399788140180133923072252242489924554298634200318544257266860610266342880780652096282493875305251739229618087912081569823263967400877044916094846480387020741969820616997218847868410126868980597215445932098158978997806967226025422206633879173657367885913481243950407646624057818693022684723242981026119892813407443608291785831303619825158196379173244773653943513901455246158750322339516100411600432966259275838098516189887260140472870673069497536451964329111009521602257679795644182974240857399962708000526629822263895037900424456089141775880842263930226988034901565799383022462749716871601007629751619561627971817863459704168417347878082696752475488587416095473517805237362118909720206191645125331055626793113012111006751245374473116793865782290260889575185653453094735402122375851215127279426664454747907708632393621581204422175187636933687010883307418892496614737895686760480431018229771076843838456427942116277564944250731482755462465930733364965469643325480638935564732919423677717438605173083409817012859701252751860787473303931996226407086868341570851366193756051373081457909105518537984486876891933660317745669741163247421242386608430941260154136533711496925392589986187995707517014090788332596072912765744809422409909764931785421330522394310877193317041953739746323332060820996144334240765455186648695716207038341827920251838942492006771838066326438711707026373108554288431107179065662899115290990854834813140470218797428581076192221957679322053170679763970746586896658670510325840861403048794790714783767196094969994785685011558664163552662140573396345061412782508655824155334715646288252090553612916872691189903768086726699834007733746583704760315432148497149227391121949124773569854923652650872540976544876798722816919840068715044818566046145973954761223119506833866994469012194063655228297250399140601005770221901347743650641583168189995567863418451036810535337673365993975608010277237916421887976949500668048589354783349777426125112503395876002735828035739835248308925678722742618164640036298816337824068045294070121548035117934453866823232708097480944876628731798932984958646961821067985874035035166102561931986809801492101067241052468720614102197255408615828591000923432501328311379413338989050209342928282134434387084628049326083208257766219517744848651709809251461772077853660894898834111437786702499064843802991638647876442696059720084236934946219414623287360162754387542376054289319297542716997246449210824825643083295554141077696821959659899265662951553726283315485511122035759559129471745093688775868916693549808933682561918295643055186128348170464173158422548029825350968079797650483288744070706688911058934176285145749078315199556422344594256409845597495114230950660462328819912438198582208057124174147913267702289518819510185518643256838048670239768097108368028550927660578076990451151274331803203872231308963522858492464877692174527194834056997826485463342306633525011562471286825533087071406339128761458156434433230338636661381412505779704837492049252168760755694365869930973564191652424612876061427074884115142346327621286584764293064202633263235076875376029362669855171810483993000778100105877110727891032464643154116226575055266941561688562563501286676244503139983391122121761577086561360191285756183567499560947129362756835015760805832017509955930188825476690379524758920766262361133199862620365371635891814936754121365011000708925089533857948706716993767828493252861315138046506095966947211644492793305548131922666167664377085645937532465425674372106588105327601740955678901479826569043617151818085107967157894914254726540406618963227686029953631799382726760836645616924305871680828373055989556389068013675399229948115756003442142941339003152831054854433202668909610160039504262480295376915489666964705879902643533759143459466307499257981331913378373041292475081984744162581531589018526075115391577744711769920950760449706978584482697011807962949488215237082986170942011042729400506472973831723719602982892509331111754994792242108491299452031970014212462357378098493804162732579442914056407933324593607257521518985627731430019517439873843188794598958555878272681123004306613414954871026450333022040733453009674933744989818370640435786678758528353969305053531321768304306975349371666866371286005344849507517277211437236857470085027562226378535531385147286190987782280003428281058734755018327368968832814155979905749984865554723592734597659088151576690578920554540879110456549429168379231566554020894477288897089756649862392012720082278972251562782477420994251605261147602756685727391214736671392302881486622322126724727870961886960656673945268574935447449464554003289887283935578172899530664353068156053141946196131866686621550008085147934119848172256726676240581943285427526515822412188679071594643448665746829997665302814094693244363776108971155860951171542418702841464355219592491437321543338579548990832801270553197279812112522700826492597967200359065309358730979806840033281938225703811178196287743843725691621412599019697150166869174530690835833290179667967942249448835621754288023002402567421160884785832321920929286695091477594900528241611961718601030536971750894401993539549300866045642271528590199061626436773339164761365314514728249163465757834851247140321824367879694376431960559355367759502846954799576640316459247417536793872891491375949262138913931564051254935822478512114376728264758201223662713703688570624501818542428891820648955681889532760990780022628456650638412791642163973831114751066692811322440056998894427931312613760918381213941203553224067668506233202184174046166333510447404374149211410012115410792464424209910115007799307218620125386752067198022426414700690543463245435103305616391222188956435573586421073873917748144069783658074857251925605498168452624919230205661146365935284326428415456332481970661470107934465750812768306998242163993607841353809354262483366275590479167595438560206336179775242658586323843420674656103416500654161195394596347677641928970657556108434525734350386367120976522545351362073800364034606571131384473986245253958431441748868343302374623448521401651845882522951744402733392940888490383491288038712418783598450590647188988089519909422783737081012781649696175292568650533318882910869185288132376549534792152380150490173330744997241645559875175586818444673117524012252250418238034877891565680111966164153024623159402899724201042985694128565874168984677344476892139232600297003125169613700390485801316012485930842661403843005137087163144575410195139453282107758653641765211704336483494090300665360755260233030171030433278609995088257380738944663151126037134124183993577508422887330017954022815142429972520255641363521032759083434126979758957773418189978045065366611003463994489820214328152253894693353320932581552709316929432895604374375598389765946078412559429321815731390281127461102663535812463728329842706862931825080912764758795491211553671974036783573123921845220592643897930407836353175627432432150741687093733211213123323971610531216306715222258919021368582151099800676728392423411547348617434745559487269435207220135073489365808556694900092865407213815149334319021618379043193583400464377487830552593023361837546957400318776282585709459590874863454805668245226931335852739835083449243856437927915144820912451492632051607249224645294697386183788996891327804601738342409405766120087472556630294071412720015215631595152617722088969923064836480590677408495770345284849738389439781306163521931709326361739681687176746151455090914150991552566250097214588021938259311817657479592453336426868333067269167300712445932001705108326993403437123286707792994904314900754024227206748420828202798402218817423885522839956233061365815091779374339922705073780553194939966813454024794511681421500604918257888292008560055278949459052722874444531731775544395130297551267940621240811181043938561456593063096032853010211155058961384181177296608948524363053561508128103539639213308690573053024952774168630220236192750346035580382368196639961134735897729133467117170137458366021525437311390152626419594806513807195089579825464418338348659793733811070274300226995086026930752895547091450809704875643537299932531972581696792489950657165870754441323192259496516628692856081599661432817516164880363327622831110050270535015177197238477978056319702946784143028352841055006841856710690976148956371364384430607729681670466147043542827702086801422642474964778382768078212345056754957248532922000214219049624918599726780987388644997773767547245301007285523323996743576894722399589001106450692924425868606440423028286345640647903585955136635560366853916822835903692289428747973008652159135274085294391534491675688146432612284204567780648838993147623169203080151736167012704947463743361912609650416899443629699390127729518449692505230440863091548815371165110466722812004317898422245221242417179795077534747476344375292144058116191844851557312382741132202346656130047520344485799579452734934533322859670995745352256235857133727953450343070480377129320567501321709079359075830038200943513505473591009952061322759758354641760584971724919891276270977119442461948794673076072991061087249533596877903318057165606663438574226707621796609300015014729417238610637257333208182271176316410551664622323773435827596891316447978403631876204834560647677195804507401606636380766217619015423253251023517572911516800368087897484344432137848260908578448375151249431241837100253226247723374419573914346081629597080544079051143419027171860623937371649061830331541280266949759513701087779585367513402118908981749606326659381515432858982855437553387602302902299499551202803536949395180163157401356854265260463099620051998639709222944069896710819285026698095208296280540788519911105459266608350220285541863935463123777553856477814915262087962246708657873686513703339940202910764208082778917662888589487716128909598105809492862402958530792472844439925725355376844477562330889115440939216678646791351727412870749300714369330347351642249421122926249290425720628462559453285157871903557329966663097435215521090217618391897950533358647837070607939719503255255818520895921937414202272950783598543847108224644779205889851725165392434821066700060415654122505369226372871747547536804815180769016865406266540745991355735152931901425757251541305502914632212641923359176223938437498560728750675512756420051336153968913629164110070040440545828530204535108444645699311647793877959977550904421189063490137510188702376214644869442427141745611415785806348612981311753038616210298995094249177710137903962767714264200145427921739167510302653890528022201877719996763664664334032455598455393908144836211643940367560658548674900250396564711779224081591021473947948261092678542804665487294023870952514009853563070110639867554463142329053550099999370873201636000418456107471440278107208653602248297659295479551516548273163642828512202148634401552123005926417637171893033292237936235440556062475728516044263638370758866103048081920951496666465567182543189112563385662076923723971549858011097929123061235107061705317460831508251139893014675477434231693866408729912687813908302270121344553780472824428344981959619622106954551163228334081146416083138683035916327151157312159344538995161001668627946801094220971129827880700086099711697815098613875948797268349163319114210329466453946948360328818675052828871065629126626765943501117118118426565354472577261305878733052099488882253125658443948039505461099291441610270105919746004582411948475908308090024198440204060128146030380387325042103532851754453690206606746791457337318612752930712327394233227838782926540240803571417182883368235147585159482099545990187120436378074125670303796473480256844007749213344384298331801952943313119952081382164503567811373752548038336707986285514218230665465074084095967788174217504413857188229503986600598500025980688996224162435516391905309142854893548042942255823451301919154554438623129682142202438626481840467534370419518030973385789293342532779203243524171587639122338607255995513854480455778211233281852892549152845508553790140741459184487298415556889997241798397194573701627416098679035887400941903432948883180567652674578056676893885474599358110132593139932598968670938374563302979286824477803836300481970209597224693264205044159649376143872418832432220092705585828901982476608950871500708517724663508405118145523943171310738707085538828886519656928139165587249128168024829780677749382270301356453824858735000057226961860928194281925916197757806498876346260275427990978637675730324352755045871310272757856786994032987400846713695085817184838566752828246708762539403498747804650229828423977166035745399948998044073260473315759321670788536255304465647413655961719720611426611665277245480517543058438831261858184365343465037053873169107992083408932237941344111145061716328642846220963126901966717572615097321966782512861084514082270329432337314787892840350539619524629319079903229362846060856477331833499607638619079795334536903534397429175245212819742417360683656602968494389552976418550746133842894042223416622347292493850806989836595722795543817543359903878942272611961382811933975149836080087593538053056240197777552909681629876447564944184591144362598382452647483526452659268513231441599782872025768893811427110127895712890914669001100227667811488236986472753195119069768206821875285002389062281661394787146827274365724645735043005349636002175832733352036802702537713554277115602983165238790749469486970282714565870141404056563607671299281583939223282240161525606968211839164905485807908928843603562679500552460379430553496268278114840930037384020684596628058453324634791962093126762219027843886912861999527350050402283709661477870033732679266709867360408719692933435837845012207090199152316945645783831296609795735327892624525012088202918178826601250690705825598333067579897694106659727985905277813767653526126097850960833590917279575683926967645631232760253977060623295875299665898180963864789570303107732470095107524116575062573746401382453014455616306718117049537607204201103141625630350697807362898830487871307596888905447619988180061022896990169909729004776577808213850100714680230811887263069384521799681123986262007929549493490292359009420382425311383952002066008259983344673851063738385086611095963222665617040225020703235419159809864568342636033144240576284128906400418666164026833816795397983450075970507483785971139080453745006338169407032103993310822443241597020519149170953538550949506829626787494746775078176036795834670303597111826686407952094394729194758650099397592118740778800562689556062155988924781409574206216062132969619972394804000423988023142311903479330894027065145291524352443208781090925491647598945925267724949377815108798496260950501308847529427640019155653992855605067894649522704580919927540340755859196783176728471619865495439498042644884847592261608505062989856303259345040700396656106964629881392081016899296392045770095206343130360402264468598284632653533770276170538640158479419397094114875656374218189345841852319607153279570370736745062989732694116481643805154908828528699373195714061153687307511226207226966681667928672577612840551059671806843343659434096730309985775926435233968205420516338091418998449063056483618649567661755787689733197088992862029552325638471628898117199344486259820391499693720254319628348200969050326272107457989668225039915338419549558415542333608096631596212556615993540394441115311049627428114900600675384035520839026305592986343918001680373064823292963641870585592596350387842518869998590937385275740448389242882297392961503090404436559354094137907290893706966852443357121874058923695042715971906316262721944281112637184819578448161328944524692993911695923172196104517200400998261207711626663098176346622808082181162003637349266695605843364242526032439779910439981550702161556505347444869491527251550553114540643696855162445654426403912972580971194026703217903291024520842342941058966730774521302383713262846037164217156162751281346635033874453339824516156392715780421901293274554468362536954899258602264725667186263446150880772779668149151269237687843614195371238389659909073931835158455996517116846120664392363759937592345390587330589983701687469118704203793268215639698234504106285263283112968498061211053935738280509367463006081612340205332487404445526541958061744606581480733297740292365904081094466331519206039483383937913510417412103268653468373692233361624566880469432105770125549326118797392489598833270094924781548927695129571903422952297725402743057897302509884868964418208386823595549348406498080032376123436502253705208258987219002102305374141068570257322356109110458280609111190461641449775220199910802150794697747099783834923948239926116241437046301943353032639236109099556646531900874064696971899690712821770500113066615120708091403898326154832145796263513629326315660688290119882025806253464052456706972273549234956020047837770454461577177627379893508676992920795761451450357541509947296051116831237945911281496078395834373533675386859188738384012711572848868114979398364417726457138164587024418917900965849065066285761828814337173037170310303581764020230186767839512116518460479109037559805219095794343385889021582659758252626288848097309408593021755251742632942249635524595605087822380684904433206777883923383673345242690640354598233303155406522299975441957740206209794014902249364194335251425121628788642585084505254210957775752516363792628856274843596522518612736722292117444287881157120677203525970482736350929096348971612861705627387649112303369762330373454546737320558137410532122839653764244648053756510521900931402723053980100534601897893666637788156309448235214521293985749375116939877232512126966319164150506727153328767327855587083678317848286385856047446768256274204508309750612110881042505269613066770910172539040796228159483119076708062654732335390613125260951032406088501260958787491872672615507227240165359672870522421765856854206602347962814320073596755676257176632948218480764579917078721687017451495742352688634112604114996397843196531912174760802356986683866231973913519012151928889177424260299121458075458111082116450430835507127427804193545121739853427600362856485304158786221781223364508487737254246390650976710458567116160509768473849723225365139727907447672002771112492892042027232092391611659695578540708682770480056007991029584165781580813313956813151447888560579144395202608315145791278763959848190407033735323088485462602579518876981683161617805306906960848508050412677841400750602777858713488697677687598606462827830586364227677243276433080343684115871739169131996479900972211615517463028821621932913115194050046750128222065932866604721091712955738477056781860798357299502637741996210342238457638135137224827130137708662833494931386280403475272656838139514318415953802172920390099375568310954603036646916023400399192200049880010062266242162087629239816145223445586840875372623155372802659302575831884505358018254139263781831897276064516295736192148315784413056484131447165213232824361231755750308576117258501160766389497870900703454922737490126127832402644102384077766328635571184330640632242925568975078807538866520776461739193997907588688028935116916892158381034918447975792847582620656825106230401116004414895805904453905575890924412795007967871696768739595507022985430165767845995549539990362033728140432504012501886449584997891335360952840743657832729235420753085499279502190133326604508587695696096441600598927278020956705463836066863359241186858880077097951113474224005541846212303033015952838763749774916151029231966130079103669211353044221271714838128542224227695526783800732099071551813309107510865211759979015335543430000265650170876764944408212634245952152667504895670674202039906817015676080814475436950615795930269021971312470724626030000938745966899986488371232032286216360358274830876122852667701635970840162236963108483199934136665560024081041924497169166319261296305796007173081209813776328600480223065340278831365944828652067996331029858677957493013341474064221541166750941714409007105799585166185351609057851442904952382566613483206775756328746736045264312914845090868727404759839574234014263096764081139057984572294725976957628237016051281132938860308787404909464099893616588383235700746803416772627517959591414485301767068540748362159354254846744649136310055082416623888576783258055670329808191236489829011479497444688777199647814391949041470698708757934146301247085693842513837839184839138404556161674154484464121599308655501978377576115717553417519667875140236533371953580584522559898560513466243146225773998271101446917356939666778748995862339022439262112991919526712847842355314224126442977204533649165785732212024827778098944130870333030850898114408187994796050698486450266173217059335278666740961303148554210143755382432598707962250774788124322482450116001621505918647948628269371853367658311820503412880651974516687974562693240607938793966607916240760975504736158287111877115324143993383379562141781894649243462218776216461059826556094404579958364043175358303428715112175975626857390647365052432319045251354252427294273676652302585990371214040338802095210541759410291302584710608440971162866423235311040546769231037781931060444937296015703175550493922930892132147688903642183427738227031998032527204634375671827729740723261257556106217224016505267608260227328625195321090999933097606173731801249800404940817020962548583001446238021494311967743116268414408118425787869063106947382943707053193843982124947420720582380387509223034084268410187246593022548921058541166660411056767337551260028141176198160596260114359325565428164267569932026115986108195682763343221749197290265527269122967945133490526146841220342333732777977881705938045368956804155507794768208798044783097641350887218168800859942001905366953921442025141937281836704733095932645278461524261002144620971059856747407600827095463562249444216383959879699287191444852155172392716411584788958142244143920989380704808552351094975934993766273041990812328885047716785102815541886699415989454433035598594132854203294860912989903708741271961546365969932737688833421039737593152638197863788990666683534668447201132335513963532709025019530262727003850081719695057497381003144784228462601310683558733700362761973182773682118828082981760284810764630709573788145185276185341480500225107714425648773956919794643157275363961069159547983102181212276413910903650071265545421250429095797711280922540536461547412178259951360866495807234596348379874530633994759875885189271523100864718771558929574749469074589017127677682637342328570719476308475482600280716727354946059044660809099271688188657944033147304021236247005573528577709861211239604074005046258866076948113580561006370831957353666146884147745343284709435973780717053042375302870847707311152948573619765379757435961092342018548408651140594187996843183472194498892969283322396902620781909563520748852552446698561701755621559481323599022730620561448630301197619197629312344401912334360555494487748409696460731548257157947174776619130999650280296413291452728016248046908218405169855616529871684179296640824180262772448787874843390871628310574483280878529299069090932482994849522874159807971103578316113712656982203842629404311035485263831609675834887981864713228470594849267705006118346452466139455513291041256116667388793714798969261469240088199993124567567325380280275353648232184740646313945539097753358430726610830945056018623172543504206995570026250229831231712588166537781386665160161410369992893216329698622448039207297264660220314609519313475829395863726731878300918540112394378435697687991411818018789646794180297670276505111282003621010601808012093197332010213791034023993607258827181439658480532752328654023929752102054916100776181179378576906945576145374186478589380293456237286912563814767609638780536177748916510397959997060250128942364370355987904569614707715090196451673759466230136194270842107968755324748894653626163653181205223757649375335438039218855708523559296369394354217716252562519116655183550715369351655011168145901663748358732385485595334441984972346663229639981430760649665699829116704725268318850604090238502483148478975523862693027135472826189532026021265075693516943998576710473040867921434163488642077198865569026541653464003926047881637104556478962323850690539016880878851843621541655500263467176682117545433338444310819889993466205796633979094121467072964836282666591209412127656488182585952290890693461761321597826858842374678923527980144250689109070806152904676161596029082747851545069941097985172485923283704696458352468979037685250213696888942973876067084023752386190917403022985093209678023322736484764155703613255118345266653748601752977432486397211874395798357741472088654355716515043780650377095301763183726629192747267918989247877706370153846765143290724783917692610991223694293765067460901788801077205722305889280687074220303304052048090443199414576946921497872798106221969633212816052251523437636776774928207313216030385372403845891929094711392872065826657239239431882698440169672340754958237365914662490193825142741216117569170047179859687165688995282069912145347611711192703709261836054681041910685635807522218043682749576107238121292393030199915405704730881256138200848542037292352941310801911803856755664459726182112524378890526628892178648874064001767661499241858458748881402062522245352257087862238211861235999587265156505013561682290981393075400467659364214838771204935803465054774770761982530523334310430597558210354303562798191053159821896383743620778393849322066733187260177573475871760907958264180711349025366077264429470263349651613500128674032403567746301115771518151058886510689049300396425104004348259956775276301133416362602394606540192444444950132114086564425868529208320813964766520367569363363336159093522263058395632066861986575385816603058530674404447564080639277320167257911000659580533642191669076067039951323879048338012540476246671224051275242925526954142506232598494246584577729354315875476981044991137486881638224072504667600865512280229710107744314820432751960205950563556197809598555803392999078555644726200510919346149870627556582458562855503112858325828225897853350616069441096526372095894235975851132563685694144661650639529041400821879279833594712047139998455674173075896017148770068730698673281492797395710129151411758115217339689678673460062776671687325540423892562879507682125361840472324215848410665145424793114764066170555775598414920550171981723164441516603114315274017717623627767214380062823331731916626466591736476050022089025668013161034166035609892469015673841048370985076036581179864857569235031351396005298527288939545139201390803523555518666842333829147158466641044314129368770789364779771920196321910346618252766242109545654236169789248133739228554901277535111583943184952615242957347433940658370796133812674592179287863110558547519450480241033906163395834182289821642822901425340075426529641312286371914402881684463598065558891750909477025068107086150019964929323323565298735787783183978111630246051948033682648057159669704664101414501430140930083626135551992621428376205360574338912858388265698271535219410702845867918457197517829523739879572001085155979354170184107740703327739528565436492049068856039751581483699717829945629741690393973367466483148127944471884908449375086681279464413544666529846272619047577824478902076311999514000567199093683217875209851515428492548602104887918159352117339647815850806900416307065623141355334858399898988809220634508641819373278325896508876508491611797536477188036139399040872919970784219344755405503307559210639777595406469792361803496585316498439359485597176175384430217917028355258437827643814182759736441033316945555939706216556684928562704414524067803608058189974624883691858682834487280724753851924934469314892638896416700990151579495563843758050292632444478027286625922298009936341933710511153850742494552686910770083068700712016823935966458171946637536089648426712311511976508731707319219017783625105114083540834242825024922592175149985116746092506714208388616730542704849909992257515007937560389219006276035617784052649612180349590588838275145581824223355943443576122769830546707507044168649660759073446339449390879912537495735427151827045400674811360276936152547791512950608656818451345071592872840230289456326732453199054624851490744600883239525481030071256303774838491377060428468782601467412144422641295015337110077707700140634661345267617274922864165316572095797402500865632479524691058572039685015569324765292934963759664050615220119854543121795317416754320888638048349584528296880331592090425655552790855755547101213536126744364227079904066046736183689971683901762928093876581197120512548084557703124985067162096319890290306500491327440275284845188652981380082270048711090546259993999477145897741513346530949961861032936059508674842859285939265400327824110883531231475492932451470270771479169123682674131829549771233781551891544490612991446880116619420634746545898267225505194219422768491413313943307670460595560672357608615661037937608346372488211216557133252483506285754911198479427794503680042112179605287449584410941181772814715920138753556217155921552711007825057475190503219369829507988921536009792663814068161375682371460404662556844794560992345144909700167345393842196902003332794928919722297098325062337448842534565304219950934595183919232485886779252276408296667298315702280755078036859316335975373908605781473513930443639598601043793263448957111807401565686670416776279463833374167806283969287939027434079350186750581714647494774505472541960146529224597821741282534941329421316978822394705103945908629674507069015520370552889065687045904112337969414371547080427477694572703201190882274476371256696598700225665515763730842218677036900827496517550149243688983274797217944133502216602540289805018654777485071590517384223127560083121453720102958601026304091082103555486534545633355717518788998366370750295079035861570545116433190618509037764651606289792051426917223712092453347548995408183782116358539985327651192565495011937759698460636103028622986617700291697876501843292230210901867064404844035601588441359788285543197734817769341225867182271052521068562839296577854140579119563408039829174155379780051157589702985430279930900154849693980920061002615784524308312896356259349310829703771231477014902976528196460932453425376692965357898002404749642032659480395995530251127606199467930236560552971110632044482756196260864978888491897326975875794179622592850821531261203064453668326452802406274753455965173228099771530969238893123810035484995311503669713822571502529961159423939143634721069494994786276252114949178171139680105240930719070112403142947932903601516561023627171331115838319483543345201422096526799787068256549798749242117024842745016433661982906007879341296857927752934943643141663312005648044929710543055241581923435125712518732788888846270339621151598472856499082341475557992660046460454147099017638153944224577255426170574036238115116240827015327599103087918484853777994668129457187432928656880790221230338025187033319808653435321573278274055247828682682967764573457358720471657927389375961545343416219345165779869390890340778263460505576266476559342286868787049331039683130577955756338904568810129959161774821608653360839122158986002866289676550881543503449660812443191070309109757525517556173475457538088341694155285732339386634110332669548182365680107440045455903953404293105067210243557422131700552958080898010443236687223603184164478117732356538655455917051884423096007653751184559733492705545831272102636720208552284582348821960166291076511321416381472899466393246490674995898175194087898059002097093398456637209413981332240726108002886054597204343988835310460203553265228090807136697505532235368164890098569631462467484879141184543718889693802016995515192029659309881843939979335217323111099516951223201704037058208033952967035380856989848048126143483342986065983286550108575447219697962605694424153649654880428748135616084290108660758348768809057875697063265772658126714961999966737274731449914294039440667937685528739415561046916869877871755734266255323289986816841825272547822332511146838619731497083959371028045432385533078479295589164724158263776797449195021976690104209838007084894084739285418882080117999697302304696759037982147174792853344328309603212221897322639690685921610415444079205308244864996094783277974076223315185484375804479880115576077906009674926145123812117841770010586145937280827391141081383009826343360539223975696629030057600872836255245480234942854801817230644319115937751908584404838413200631573007712130446060161330756654238766655775742818254877513819965982316265693295249097188083769993010809170296259812876845113827984019884839800450981158289165561510579826595272269015980612675175782246083988291495843135616726981139853625106204934210140485310196103804593916858770213592269499781619579484367406630582585618907800006908549607990367410415761606474694841325792388719907781525212019733926674764685179700649036761037199902040862523491438138712627600467980462644741231880421177849558524713548389313669583048298606849034980905144449119648148361000204455365404466439752812144130504708870780496196617204468709592026910067824973918600936277486545294786475242406429100222903861060686368629841183596532769021592844943295046321652142590892313352772744605416801274040150845417354973065745662060590656696782370217456816631363236606178639136862971711148708219007064109124152303979296757704118145734342472912517958870140245379562388386864867483966315062162577882179656061879622695746075608106037684177431163898824551994833897078757820284857632272533601091991395830773360685335143183182849428685911503884839054112720453653140304210591695414435086124117386466488454387882169000148713856206846564250795359587035180563755872224428898315271193527839521411146132030811229577336663767010247615915231866925855655499919613690373976651372514871506170685827095499145667241202014842608020778558531442589619511282834094411949671906748415672336646405157446921685913497193862877644884090587845674353506777855049587273138629441709275594714025522510119772272644092737304906079566161386944616879754206748243072378962831464935657928681940103661062014057830792993213919453870354608325447904738268755334912577472315062524872048142232908934783633494097686551743485376912437563407125795592889619244702646911959343834959550446722585788672393214395646880804927582585809343326034134046951560402900911563535093268102955244240948888079092806777954615505931976910815408057316709300545272007440562487201605123387746405336371215844337715797943096003055832706180248598676836833201271001382584840731662384200966913665477529462379121932259094172207771929262725456349819849512187092704336505169995226005305160755227584656998684730414076699793177488545834846979896730080471885709694399713012540283830203938918441090980161895264243689785258498337337920181071101493970809211304018084633919348530040948476845881045281075758435647142747762387974108584897884835643371206169822491483051031817703409750625240077353016258912397463116575076314956835565386619205474875136543045741064364901938118080020974610793708741582365700049976600975640003820934228766725372226703586791849124465098643807078169886946469542754914516192711166337756741523283481104543069997819494103467731283014448669793668964042397345588524484139856717099086680736814979513691223926758305017537349704571146624533281860754669395469795840956663584603286812880560313013729806676642167700394178662741967000662597635074175736804067027949451014377964998506467866478680993767834222431084902226323805360521514911692166117499218753150707003351342102516245163981550528403069452813217189600118759761922227052599511892103710136234165546868292878924768022990372164150944512303322545807975370876999826543510304803438386833812883847311733652208449845193603833568808886786672587815978882962990861177268062214640563733872871238940935596435949821562811356407113574053833615999884781383340748615868982399676434272900132768687698954819084950094172386193238511898861742354764317864520547650648901106258896894407072598210155632729630438014940926106369200215837276158326630475263322789105744289652615489843666613153530739928351168255774549302143228528537676527315523809238857547955282778331010273030555049164785011453704213602326322670011060054357093574042472227486474124137155616151659978569002009062238005753233287833869256250486405828279172175867310290443104977932781186633419677833425562997602647803391181805344897059812603567735416520982805488526032842983014519481138037712708881949548165361182583177791775274312678597122382647193862478218443576470074685425495708227842850903726386740190167801928073020473919296264086472024298175325058633659053624485535822567696371547598647169246251420862988526292257676290609454544005586361589022398542818353138097058593406078794213680314895831814014828229419313290113100669500804149888395098252863886485442303017096642780986268175005044833698205739571970190909212373618059222953019390322846639818677981446529485188803924517302879161767002577811629309502000376546347045595398685370696844994519379920882365320066860698476156709514249050769441795592790723001486103393832976629746929751487090142247097525235055224803720627064267747761060443536977585361266996266401970226215159330007644399511074068043503223763987684992749226532072763398017213578870218845874935791125872968139184378156894877934035855696649974951408002043658694455580939674007936409396027307538318603550216214779323169678848633161875461134808079272446488974468927809499684397249271582745210353111956920621626821729699150306916588182875810492050884944116597576180508881788103283258952287282738274443422118247790377783617043683283818123994080405086490548907360536186697449134513820955090438986404259161706690716647392378699509642409667857929505747634109901834118559374362025333434113433086486804455117081943152992781011964504642176133569741553841436514894476146747806896537265772059880694399683285848970925665491931747835396477191442558170853564122133109988462924997507367025191433015599056615112258402757086312585062708545290248649690462310273035127746491042575788622898838059927278237564506048652742269145624786022539789576043023232196696412409697912311332338024552951139444053701942773158806449119980379617319597843196140517173345055712469765300427765538130785643388230282428112669426258136928999259095750595728500261608128807385968053057250072322982233495155245135544296527586193762676560294577030132242090792270730919263129571952355562693871770927444121786472520926161343866091461725168118442590952074649880377439163215154002959752813419248966673152507465633063685741391050181297390255148911273291491001636967501818182715823861482780253145610617458283781389052391662743592101160009852820777062952496088397948050408772476723440604879376082628493892799597180755218620408020581389782911432796477593736010973058502023948174767070306064688692564328923424302305202757356077072699653013441169036519564311432772825459677322579619011382531896222125637583273894451442597671911458113842632634686542378383594563799946304333708001180995282519630697232084132037755564879973026073187716056748112925661076675492597738589754938207120169498499105867584581305065806176873207703128580308435467678006929475577471380653061918804008507329045603443582386743276966518665236003936130745253668008635815291723881703576110489780633201931994135912438894303304531383208275873400856947994833405361072305736565540193409438021905478462187579318707530469200202048514459591507345138475338923203534731241432836224155512879985213662968808432247780291350223857161441914844812389156241553298444508364461573485226900706699239573033182318946839872740591926911005146368314813084256685107796871743506295651831583230340551183192453721178482193356884906458482445347628411179057504557467779858000381699978277360668517556746499880562797683131110472633912778321702131858339746276294058749610268733809096104768875839747728249269730355936723829142205523060120145957811535195441732559835711614858290801352859017678880914310981486394389880437299896016027245426547846098459872807492113309881037060651565154935501482243708419200225358773090790840675667593059796830959211922546414383627552427101370447914990080438297137925626353999284575779743220915992206471023408948878583615894741973005524017974887503991546529308367640949437419480646522898882096254759938898736763170252759443742268249125213346430501127025419120384176420261675928127718743102031689115195280577225967012759464719558651413892424236666618559492551890836818297602293194018183785853704859049497760885290815160636608619101590210453086693715417707175695800939431944027700181872813116608674727892218669776525962743442698022962044099760129345189996521792858674267725385920677183145371128130918712757121613482997635795173168255612744689778554240573253489194103835046696079703642180033401038336517546767070247446523826259677437554013065994884263222879520241677371428087783599300653232239400274908002664662281056672444402886213390004311130577881609957512359907113372735020604033968148189477447681286677305669894784178863963502778278690343117909240049704322980431058252069887298807746974149210489929033943218902837057015722819163721373200168550169252506402999595973366579959799332587276136656232384025523751870091858192384450038604962504484331049016006795496610152580155904045346305111793725792124096524713645644814215063607219638224026230871818155657068876535519633178058978841912175400367191154403962526638656380955768931496301384357788336690913753805874742793083152952119089462287212852669788688798817572624141420104072162909261755711958548259029821642800138950703696352462712635184940429658399220192738563002939013503470805654679751870904033610751402699256302028693990232778177547028659289584185283618183090461106599837896297204903887615969898812194022687805046529120876676440334822317453142657390266625603862158135772425522290836184887122724770819503227254834310975248116777698702988821275137397151236905597281296888014823816205936031407907909911249933585536422779290137359677126076221106225101053689185779142730683981052902401799397380921498981769606402063627666643768569989790879690431172253095387222626139195869819609893961706413583098385733721270135942172257757443779563696452616658860508070015766399464467158285188250484450515285458787600024549140639356225551074155468232245203920422472922395463101914085614872819274056746410029463809993148249533865922774820956339710306862708688728860537091539512195319296411641692334544916613216951252894789992157881915121841171745265051080319600314406206559317807976396751314938783369650543152679836363790238522499161233423818416091288132752095326908689299714752598757884368764581655419716955089329383469811242053404119345948591343399561710122985230741686027507360255666103739890452686621188953388033339966273110640650368044344849044411361408231922697640221479627414787661548144190004859115141867944465145794103566799219660361527071431931111513792100356391802062459545616605014119391476333905185627417988235795610183316269254054582964792442281249548767969313596780302543706281399431147445035863609965673249845583352670344811592702088892035241076345651453794658673916769341109550707201324955914383060826709793852292098538897659125315290083904143134312018318385314466076852995576902129182649719441243194346754325683846722900548067687843700038516865701974390072320599607216414288767471787127495064651850552108462293280855182012969218843432769952276629927982986164333387081119679628147725298315544064013814213824824877354240003266926113746877650845483190252907677802586321027051234710295424863263000855244115824041713786217353258891815455283998561788679351682795285113110592821187770669934651487083126664794098981419095952874538912138277004438982837348416061113574686398157851545015802521026027533498055932828399802591413042367864489355960727451583942010680840659373869103775456504584221202425697133881501363361269970306543742306874282901793830231643596039306664006610095948309875347624008657705961840225990206677036257546925941783089604164610597974239270376194876223071035848732043529955141164873994994283428983460831162365825166710950418840746350644315538109190112110884443735729472047451294530778946681545653310424018407490726977214566373259997640082594868116440850286004552821180570022423792029860987684122052493794319309018757752495696095629152333625547668328622025093680087731353159483750170218451623536874878583208820257982386953186808373410445684975050004123789383458912229698857002525691287273607266319499074966478601130465078524279234440061676659798035070940220000442086591187796839520485966408130017506463728945732423406707757654693756989059880832005988135342252891778290879810673006458780556282793990180765003039900638743032564970730120637418523802872170711358821129282774969165947074831857541905425340420520761594706233039508329513331121569674399932919732325838696355791285988063764111963437782524003758320743629845838326124872651321130453171554407861688863364219979412979212737023423338607166470002514456107130143231354692638765763477683287123431437962823454260728546195497767657010078440945441043625177578073320342048208888034033545580939793380659846521714843708018415158897788952092456870814488103922827514529860067053370153155947920338827796601889029773300490554979705716519221749234801970162696165431060147694809893636879832979451213785766686752614902650288790550231756997163052891686236193070003281285485372913803659479291510920805902489236687238143614881636293746605425410514404070373043153125716646041865261539295924004713588482756472052797340958914563739426038951688435543791618066454662032793124723340445145983381577034588976754882603896969581142184840138713779938694805834472998927610586688163073644292875365964453200214338547381277618704244223374964330181326512479602128997292111277070073488702858229546741545439876739134092937128772666632890450241380216593465309919398380770776673895001486973796410277000797060705781603100995607812411884376172416361977545045863821049663338367671189607989760346069053052613660355810825584678670996374353121750199482027849260724744747870202932436414873563352269336797817705277454562589376702238932439761396092876477570001696279397738270790828289075223040814808005216342179921448146649042531236431394840097321544132765999477977539326485718238792692809798868417198083660951313807655630408001061787105401983082157084485507639695921756638208466058049055666548604204974522885103387987082542295799645600573320870627555852567614827749105743370453968178425033702969058263910990853892261168008071050622070958967497753636026172796938084272897952483277085020473712756718863866864171354288512823813951985430866734157906020709664783508696117397338273431357852907626859267668429557133433047062343324996648173798584950882172789110718978690828292277091054247060261439269142077794187953764097215862317652183859162578689411227876410538096717766587384287477599968868283369618113898090864938205336893623803077887017643255432935924076005140243670044149372435221652062591980358562844652846295382448486551223706684534917333051813978280437268531709540860732190067434509149497401922720627254147789774909399187961398958242060493148215958188511382489035804972047107347056115241718844207373490874227791894336797957931907278036574557926764525281134125455704674194628178644803624257491958891402735832356913664132919444074802537955283188076967067388673235070906488760257850639194104515762087262318042861410238793386106451816040134916005167869008465398152876303727281801194740703358649807504709447617086524829380917217693245335222757792225548115971949980747305731750350747203952834116582253450007830713219757955645583529219592542508576130790903779316147308858477732871087916916982457153990105987724943272478711939151913196478207740362155994603370726702659033051895565276688531692278190358438065450506992211731945214089897715123960387824533194976711629127984686460030747902864274180777419058252329194124885682768349151920211999955283865897555258364816443428035885471970916260395241498293688129977346093887979436171409840471859942407401953370357523795334018227517390420634641322493198227288139242184349599387169676503307281446871624242974421985528570540193634174066002303686948349881710607848562327190379918258856268977576635722746787173785739936832165533411616516401083500455600047973236752779303591150843021028784560163323088407270163986150472401755978605609876055137907049531291441559151805581377539094554353635117698304568394840970354020957710378975125426167703686312328990958706068323934933726635949666776484985161402112686781582063834394967370404373955670857702763547006362832422418646530667895395384800689440924371340812552697318472704181517786884984114020433085565732756389430300015818920262763784823499507709515434843628922146230382704332424879740833931323321594083709215359764461626403995931643054672422995012387671172476181111132175338220186839908561070937233111155872370678550455917043758772740973993230744213839798258069857117283516049693533520736793749090666769311262236979910233506991557693420514187936662413659528572837560135856410306421235467625270193465199243988007176651196912386693121524765259613635009362730340259479311391176373835325703456208350506166530058779390416937357298157575609958286464255961605227651872989803995315505106187395917161570324704061387145193116396104353298586264933587802737884614318123322448493978081150805805789598664639184596200877573807836008754188782073969559032789237534765138117087676229002504787786737992688754116205244060298035990046211711301061898667533790218835723593018200032469077844577398655178436234597434468163850958843278740646203146942613727692394587741030853958243736525935030138295176298462278733359312082053519884399296947791260445363849690385992886324562672051677222401845767225071273002846962589330747602547975745557985967812553075895404468150762022197841796180503083703449292438710587278380909263420851063661882789024816792477513599871667155094886327041779896408955255752510446337918027026648322934754486936632610427905733631176810571177413738261054463701870648104948189473487578848498481066133598385582359034347431225340717869308764021233836696058383538673787965665701115885621075665437633009702061629261219506086727147159919605844332508317050675669105509857136289524472379073106353250042135178843681222001788871576622815612265182350967539648861807608404901952287674112699814639975392482386213786084384388949919488616896398247093360791040883334833072416689882716692963547547654646375261918193322551863597493265116389240377243286966766796019024991243751270834731137881045089351439030821358753520211305021488611515527452363070337510715284181895376983330262041409144855364769182760725374477859447403201055755971775704784376078298575598371651903359831398338239977474430429629345299563683391803681751163566837871638683379018533767190974266316428175750192169619527476110397146061920633415669814919371523567424521625781387608438599938066996060218752351794521179937795955033245053460143762169132258114733336564761295714600324128381652360363560605491738886387351103365849181191052633717515710531415536662089191736852253113807319136252733924022132908684052421543895259732489046790071248990838408308578586400486668767931118681421941619707188528217050348012151248774255462597770983181115687699231989956359352418199824703443917488466647462250153613362525951626008512822769779859882643282276486611249848795180143400022776606092806410553902342371158034778621961785184881577522975225964816895669551329562329287410383914858777718571530120583310170144376198083493019223564781904797037786777318185162995191577689907446609600458227945184053413646211348912107426960334488837900749013886313657779099375707782371417874707446741370894411918847366244148480050340706114892322764822693612080383872028725651810412538287027436406861201274463590373639269191199097198079892314499362309103082764040042105191430775552621708647525713440618409341049996101715737955378902060583331771486443823830457380299283288685223627122761191122875569105556089257388775452219412501201251247699931801149522500642414380718550919455248517281637955413055279938561688344186745274390137964811825245294469868807277768240859412278767426082686608611883215607440546279160126375175448378752303036196421566746427243326511977387069807896992780194368000560223395289899552984985599412696438955793436509564936758187146973101620646073058740964274499907696890323575273595158979589424527178449778679414039204593158194661616341779156263727450181692009584322366614363521039613360421253417925304518361629145212288376254595508891175153504477887224930480011206404065622017026587339028720532944761109623180440375767298971810504308048933625296835431720559471882513099027246472285913525564953671846229236289920027103721258749943380846098667357606776064827198913532920732416219545887593215589138279428864793758895913883301593695731505745100192249722016318721569008214481439975623156476935583576930214544111731099023542811446737441469052798803523315026102272107565540558043766884664723814015161690135812939349764496785231007640682982526831614712540877216909196026259034523759954703204423705919911511232776743277657611175874178435524713831613182230699087276108416433655048043928800983562509019287416605900115370862507885344816524080224482346690170791545342962800182686298235263095291070454784654621728269233400818109253451099194751751545049032939332067183840742154873661146070263323272790925142737919163713346504704936690483833976000847543490913572878920315303984361880873856543684289063635296675973857242393172777113936129133736196295284272021350140922940578313831944513639698909695009902224981285194566616549054482154333194369064506748203397984073505311330867414773543840437143442270043213925425827225788359971849885391144123490061577432529257392189206669886299714531987505399220610865814856768515807393339249685111428673494823260272010315035313996917734106142915576064393719329683677716550230117514193954541701392898163670703783070910257604652485437890309873832684011732929040403574933495566632931860731957061101953949455811586176506197096414862125546472349280062977915396778141140574446475822430552934122377588553300776366039229527996488708579550348062494767523777575335169858061972669170109003275002683426905120471381116410835968565998477084807681570364643434924518251818286235996019710883888677880170310148856380576842022294881506203155333844258908961970454671822226078615705473624475520251125579218912255685371674796192918331526093710102438435239213243655161991395279039930141476299579401789844244689749847182965811410630278575296073933075020702967156040992467701364345807939689148631718328604610844571748365443067062976403960070813039560907296068858871929563985842853490480490487463630169284781621468258164355993118654319387034082144232712293905389543234674484463045187991797203586294140264689298227671810135212421829404019042679274938485067002082877521157077598616811158880732971149878778177950045408221928593206810599886563320777302926821825531136640161706293123042172930211007931085404799616804128775036707439645632571251406897314598012093858303450712680270321638273322708383367030265977222097791304890872066959362777031469464614346940698043268716831007593397518403604129028282505710514167059096015292308795745027159840245684805560848049628630405726054167298477209926966835060750481600302471750056651729351073183399934926804266457523044088047809553464543470229869956257915690540794070363428354464621497532857338842033693346006896387540595953900672999097925403375321694961557683803407926520670543536773595047940403633775154832717161275444652590155021369321990227858835408170447252049447244021508994384034944659206329698575246796775452986089348001268909067472767190284931194399402545190420317530782348114405681988725330991100835295364520270404680825211723858613075523863475139222654711929555522509238870898066452811054913297382376985156136710806165996568984216989356833552923756414591903522357246091405511356793090299092268529565235986697115035413883818575642993544408734951303303660451744975621034147315915812404231202475310221576964988989036330257428329343753116757132671232751951891872572162293607394824266222923392095364546764000628158463111141486021918317188692239479027479976993948911923431407521034820563444742646635033679671546260047131837995364874407615201737722557695895249155847369642045044008834428115298046491055170103101521310639640730803928523512756385668870318047822440865567031617949334587365777730191137971128348133364452799831625792412944258622639458779058739482913957807821837900147687288195255651892485210526168537221468333205704239956281675983494852372279271038746939844457359792544706980494955838526920001696458183573016423307393803905705014630559548502240847840253497527402503341092356692649152092489067721105172199226856237893694620271849540826791201648618339121177536168631025469185418983080270026954323039867968472473236956276405677051770839304069570227936403971326512244368973370056073849474123678476905057828279680730344758846241969081903742283056577163989657241729971589308161363904265228306150152608447172933777879611085898265101329853179502843281185878774334808944641712743742615680007946962804634884059240649574817214871544741243821679968558063193174988634220752817411148829370593975996135960063014370314881748165734710468924953493700880739629992265106611287321201546446425662851567435944940669746172715439283660196386061303761357996923071310469071341598585799281715548711653102832139311882533092977218684939370474501752379718380806929108959019315491017084265097332919353848154144344692294300863598505812994656534219969708908809673552094712028543586251698892476359934021811921733781587677488183002409160438149048247020194547407040026228192306357567146547805533832845338941943106765048469700425340884831492336886332234625069503819717231634211280107874378883714798523585473529600617351855594993974995481923530372891939932389233933331514576076019919557467186611912221717770640950563848221122877229053651673264018179257611027417806486045057303584516093839633995287511639168847851208984832981496885558172260342957931959220122251956144986243963832201245241816151867919848623017241612054148020878852730480167409190636984589342767809168442815317610714705625668178277485519286451878417737994751316145684491736673601793311079372323373376597626210597651774279923961217168064447032233664916489659878679599136304812478608501021023846022158485375314236201380574287805162120110510980353981220360256384007851285649183956927947310712800140255265779619916418520781358309760571532605836191454094494301740776407858243307487406632477709237858945913666586428560222600111184872880165555816839236855220275712934748046364126775788385910049559954659160190671316650673109754780206136697859649506696001755514233640986103906674223094003094653953344898567553139302151990010171207265023936561005116266961626273828011992512056991983109339383577568365201948262575469405723979649610025223765579186205824602976832889084413966566202630862503103110696625084379922294177943268708476064811764185464916805468470917802537062309122564826275335447999137157497363201898088576687805432602475036408316910366473689026494368300644927915342848900031604407287684728710805549241051107093681450452133597624239186882847777663306879483379842852459796657362029841761336105124312669135412321744869780137318400395147952938823302298484106040081536549017519350158841638755131960685258090652469855232330240359601424054529122028376064073075357116370977967653422833620784547574434922055374740821001777646696169835423552230750472409892282674443969627137678921276516596508425709388735700540750690819219673588630907767647274535479651244734816452074290199676312174890807768773039984574004100725688672910195763288942345773944857369345159154068592681795833353382779788316054097522279559364150316438680797271008659102802905837453207399015714882412080324691403161335198520602260587328368913976435539877025332410168480097705606312746952413767902248326914201628720186611444014521205188637454766239793971576985289882539698068119426112007965904463954955247316490550331057092265615516704434848854746024201583220874517855169709175019556918896067774687475356266211542751248516555535857690164427118473744333622218700758232645710698099642256926494954813567006293575041368437322252563853560034682150755557021631435339002546477555519512829412944469699903846752845657764209323854060097555554831586311889161981540900198444714467163082023120848099193076799238185668770704050770325250720781532799708615522279939975358155508398779609963170834919926896305799127092590060319227311311315433387894736332531756999507087999437430504234454271928730949703364591982698739549127541705569540977454385915988852375849941254166293119269692989305718114484641274806892535574972347979569126410396755754432089292840955916636241040857142395159698074056818463130953111751714697753317130754776383074199610997643167018782014002500942516195086363535830272202841916885434264867207529449559115197545290519333927701143439676667246548592867620947918662883435754566266798546550824396131978787491625360589643031084269227644832997219997143278787498438844580284783797368542679761258411391729275131150274248930455694133581915592117455072444631105506622335275697115000791707017538877562494239065852336366534427133741198274849242795026240498953048665912130496211266016864436396460973790761009605635634281876839012481188085551329309018281928913790188328663195967182842782628912759161616226381948529365999080474353558680555284033932075568731983100225320766858662899846295675143945189126152621300330784855005418291349623717451130855572599387404747715448216190078802972657311340854539516862906010146455448241404545421930750321356237216218620044732772771730117287674185477706762203414508914553293342981248051203461517654181020757783421241601090318249397091719376739306781003163486541774554552035466546230995805751351090275502596081551693160039203246920211852059025054510560259846198187810407454696920417833066834332776021600903708261594191037127617570593645584581017303395426399530974191254482145921591516645883438775862184553352976875689322935919309498486224500486155001089355641867238690904892729997282157203116265518218262953872204268157090780242424150928473567222081870919576618410711985786530409144383684877023116166569669449455877920729349952361554177265978442639331203541260844635386426999562997196838298929152877063580618663336022096443500796634445956279869979245124928284746553219205725275657975307691935475841209731461555836941025619640778467454540979563344558780628878659390906592778790687268639312549433190778475897939418326080934059414422051925865321256962062817818233421082487685946278875424242877952504898404198096834646871663602804548271408294123733394252225010537734955522742944342208591265969981678085957138955404621851543935283762021297660392805626486121234115932706230443677972540075012081673721843011935082104288439241583195701717144358932193745297515175648784518543090201060649441967103487263669737634282080076989401658261214790038369739477834473098100792975855112973847385601340245352984404982034160681559318517959156738423871239304672313967053135735992693816308107868347363592369769866252197474258589065281766792168236584340634882830571354363040826076593565916383377498495812615120241375519090114286445715756252938272733077076351506563298376512712592045056890987009287116700324025004152292333777943326566331234238700901140293652219405277597641056845448387777586150814874451966068700153229993845997146261387313422076313222741457606625488030532472873767682279706212552369925656401639280416765253763227026432841224535153995166083146869234463280940168287402007776608982644892687160001574810296661599682633991527862262159884862427929002891365700896133477889689425172243890093709826388686746292410134633025626104123894468954518994625896202352610770840641291458961881198967180360367369905063741061117681586026914239348461324449792799041134284969789131980395010101766103390923688145527447329064571800414412742648473488801653375200879615489981237250468272938029292513746647097228102618680039172581587269439370856808694935882517308774386314209617215893138653719074120223106041947612876932328663448206034656792945564245711608396687747776359226660197926951513776089120335511621008866371703779750874669150188215888051778522177064563666453903254593194802571432725443029537837292102849520661972062750278132506984055267641191525535153692003869825133758383117409731628088515504855522561649652942439963560856225206940704519072300362062237567597117697314967470057066655914969301654203120764287341407664129075976110547877937777130966924836679499416995314534349255630435841190104297158541921000413278860521171601450902296517378927584159857059130903437720362143687681791257202663188254644267612836780316740187150702982677901531386676966917010588118651898028612204216383147787771057074392974263049880157332929201052780204575734067230349629891470816436452433610000006120278127462447324616383426766648927834128284099491831759370219684001375055470415152304616350401042168920368311387417026771995339073193193263664695553400693153497741949326707822029559286625540668131249070594171444347755189080083160357307469609699332283885803793554120996961308189355950968506079243053081777067388331796953434831255007904557344080780211450778211776401479968420034052012835394899835135898805203338811375580400379696921072894903915767481088490130724417124340275486806743948823051625464887621830285115242283807140018652756471127278197622271335907873068091796262032803814504071013017345122847647557747761236633455135744497787776372591446646750174120957759612942673527856373600447011547965315165948375106483743811051394243711345831414362049511768172566717014388996767534329485324940562702502778090438695363196071174628930346153041467797631669186764878304163801018415505303121450142858920335969404303848428772465919681480809829698238212477508216033517697369947713159711621207707918887981378888762104193281590372499975425741203221830349754769480431584548374129870250876475285348848862020915421666374895183356555570530842259791453678313525942955013007952166040941095857207524340315597892332862663451542547864526732778551535951059132369268042569172968159257500458082242982493824890306831451484391561622322894052860974829731469438862555452180987654049315141453110229140224356878350974267126872716231096843649592148778462615498910921346793696614772747095054982006349442913944135475530350745625659780424576386552041752544704013605816612935363923461381485286766122388733734855830840007074981245235014393093660057061689730124914999025048243754258645053799181826500249974676965250642345551929389653623233334707268904046549350874084478017721564224180605249057912644133177058248351675075644207727638962861022902218741346978332012420516720927655791939137776345243882932045078541230964437248826496164968238667099330471114433000299398390816781303931984424645457874390366133465008947915674893263907530055803845036154304356924839115157729676366543693065318264797035326342018241918499681459298591908106239534164134332809363231482642228649837552531173587995741801721873644671762747079399348491814524593546920897450736274273444637379584947912526419061495392160522935180209849289430491016409912971762450815910413090335472567928732780275467736698611737325796691700254004607593601750131346228595266307865879708929423786717701705107826056578599591490267104770963283682377596009355930851071957007913132831867266431306495185592948189295504711044893793944489997733626405435518630465049941784282549701074567470767318258739354900381697323438263211766400459130841453710249324450097096153014388160453025262716079346523501125808776177237958260474070499754055148956262460544868523920116506638087911254242414783787974612925025780995247527345397761310378083281922801998818565160673802500714243939600433323941983067884405692336455115500130373184602934710183581101325795832898034380526534388061090654509062762479683862111039426314550520895901028182069140933189457678664489765005074129575148347452134444975713200287624126361210398203567952338114948714124036020365482965474807638912768497708947869655956570448947795023874294586322458449710923434265694858368948803211266954738564040715253154374450402907961820696145482452312412056701374618102609912962683120001514954551667406823537391324150278506161222038303446359487887030451362244905901550270103270248430412725234331225232218863118121168642549534985219684390508721880941403921279189215778346221143703955793715961682883846357685389277487475826710011912169468519661960955978069529763848279147636747581116211154990638653141015317215945726095480371003195803350807084440492721102487766512618476548057764422953838875178647677175849590788351506223160197817889732072454913678697726205189034677091981549335717471259939679673260986111008841143931727126103487964950900443745420167291629529833962664701675296986729752529749895134350227510577944696504598672842301864119164739118299913499945353150553329769717928289715268102562889252756439693088286304350714563436795718058036010703960972038476768286396307635364943689098625409360956012854416141577107966432454457677137749370694475446598665192651510664042861054047492644620287673199513265990490240920483819157644948012003945466356003757659714411378506102023273855474302155732749139331750905065302811035343619502185820001324163447681980541231323774003491710604818871344598849840725272877210226934892798571135053534068491776199057700221630907998588334004870863250476457558413164905220014369271725273275783841941114491531382246192836347111815516968009281222350074300761246863870614897373651152070957612230202341659393804050505150360231376861512554047064174610891642352108508532367028268882159824144121303662066145952533842168187717513897055887829523573658425125538734774063662034494372893068725608532738606190105023678432254256210401639321596703693471410438902584703608981288781393928067444213130685184650351106109625067844459840953537314373168493863626288841451478936578728928729167564468546972068308201349743508496576726063007279913812304447118815420263070969535137675071478278146526263153330406550169945926968521410085039693204282977884774108427865492756297736208563166285435643163557363973270070961757799847734387138213676911518042374450119177794969368980643727226046348955565194591403913477956434672932361744292458479853429020234688909603799754000452035461296603389739235871713046045472242966991802940772645341038155827316901392892363984827801739845026034187029292827419212188064059608386140382833939849628571655822993640774240700418876387921268113758547702017504834479351803263497008321112555911278787762239913474492196551828032406093666242521672276236240878046987014000577982932263640750897246555942930915939768371235221869972192853470863298780321420207211803297161998290907515534842204162288331232021628494737643287560200465540158849483437161843881605990566683539975966886714437009160915324473637309266416609640688039902885523413067612666267152591071998235188451626892201799279247184473881966724863201217612646784051126910330419203705348044191771614584851269555492935451306955554784890796612030566385692233220996171772132008905506353624011405494330841565211882196229813272794409555700099628987079683258210147682244385035594199643328400760534198733755918173492928935509341484190517451200740251158918248502565532973584312638964205289912036626328919804291941947612537455222919572294553248585156765917511827168629664846151919614111824968285008681972224755879384900185893740432743992046207280118022430089379921112003954808221448262586868112586976387475905177372441736990331101823968917507116360812697983338976762409367908053742300392605976103771304662611270011598114997588033083209230890835876311828569470281957427736710648694399955680862387796172454832818212019650241674779346711030922398239463120099735940832588675312263878233215143554046961904577821830614666625035142331784307184361350429071067181046583052003630832380307040646425329858877603145259207417118420867790427617485282387497446669153825598076368411787392301093449791345611543242357582033163436383089529359771664386643938040513360343650771301911803438839505539342970216958293972518138920428891310665591333994886114534673093717116427556756293343540443914930671574542175700919698437161678836295163323748913843048904427907691721065117079030617208370396077475786488310151502538971763818639871153346946374789840762291533454882046382233429050687100979990891365517851926953600287632326198601706899242517741165230765706290987080844424784262864916065450607923138144924729153409882025829230912882495175956824403571155516158366073139357135106931789991223957984164114808044160296647042080360418278769486365063932331455149699906359123776006596748505730805209538870958908338042676759386925545683041439701628446657605709672061667674709788546593934930652894250355752684529665269330943394580195620394055154947367454714274678518994893706144080988184148652741821815457165224360340391559360285619457612460571318203389019696142532974667102340735239481615830541388964435253614680809005123611152401159457334084341272947604346403697478764627310636509277038339457135053844506550874598323923922987759839598865866502648479733686869812207076801003747726794762984588874205135078494415393636057846060649406306213048680141163894848204434237528130834927651235683712961153908115896729194642587024243117418862586903801893753777903604888409006715998629374791645782958749177726082433696873832245074621824016230220039778537115308867828936688334053142207245823004158578169736952219501669427039420745322443140825637644296825293492705820367083806095963864856688655968079139732055872994654964790047854725172665868835224427025438021528815472486251139358341654603657375420056306627778574873978143901045067138163871988806156236857161448252115002929999551987736902152268451051875774199752181597147148783208323599786884922419389541195088731584216539897113762214277045343098642204188737076446843506723148968781773426099811616661265763177687187590967999206595745614721674273018496915635387482514763601060655917357970987326730479236185015387952133916977659822026197660976824587791216253797408371614863902040647958129411481902094008225989343584093573296505176701883617280216940966136765048649975995997698159985500053879460786436495834748113274594131292171558323711309564772106930625978370299665138452128399531792112140517093162547433047020651121093197521375517674534592362220346142947291950783901432058064869129501075883251233344259863524818971658177833784272397305536494432501179195959224608152193973116838863837370663930759215129138797721667980553122741060629867669197314611083780919943160846203241273240484196477048169801911197390582771290257115151566244269266387270980371080943822358287549028133175155056141246036612223965527586824922070827062251103839428434265640273300026247313591389053531835125335005885970933225149569384498465399708755616537865004463946934927122073810148019799510426805613895458016570573991679643184359835943202861585313220084799075132146913918688111366217267260066460316105132839270633232056345981539444515168234328386661038198236871816254375287107816507277298719433280797554984799088927131907317987905139279722922179170860346840398914478664214010635774810909735544323388066509382234350725527161551876490841941073482794427446693574385674713948831292791711270622648538231310236597938706860807045716121571185544057081226900289249901477156114702900717171237871974729674111288496907830305847867671322745944465107665657212956235720381736019671613418438559860306231713891220004170908901356613850457532169019359386026206571626225440974804776990023439935802938793064614132920996499666944102452224895431688341735866520012319427735585100025270483616164310875405077511723542238091984366076642162040261199924270102881579209531267415869073731700272149171936214732724698990708092701415049247537832643401495023658860114146919490147240620334114495904182407370294821081672775784951631703304535891456380121121997827475698942959144800175963293757880177772970907211322470602744368417053890513983826004994156182730977466011110815492654062274640894407939580923992325522794770142991597303784787821730906076119975508593388588167946262464809063109521407203232105611575416460684552216001743716798027501713566384371600432098432865684674679863871667707476214474865150118641902247023531873976134522805170680310885744983972425154749826661435266496503659024538467861951262189445991174000882395736394438542407665571937578826673411871260900749326861198842306030085411091346697911424051111460059320152957165305380043683915747030946242753094284038654994126073944990783949832222041204424229282240691601119617842164623268176417399170069998581646917163923492335489605861796134546505675229310036778711186239902002604123482096099449683984077146976481476352746961983412955815616147240713594674760408786623722223399982205656085842726112262225919478797247699952786713407288188873884092291557763371160385486841190763545085329002111874802666964245948403529582972157374801514940492487164838095906894239268819668316670406533807637499000152366196574068516976618795537644876361637152479508492639769760922895142363820902764292998092194443303535010497598476210335689808043425980453822863871039175786414520493002976938875717935929516793486471241076968198740985488680508108299953279299814523451174973560642149997994765568255610361945250033661046738274677434320782286537185914462290773578977044651901720406275720285088468673696791652132972123974502828895336528990854187137119245583929852282813288914138769701864740024893718022044204703025370235239789092858674454819407810012798982777374709517488262284797014093695126539332087399265193060472596163697169736662066656124883921380481723417595569888632342279074771951674381329784949823959827335165420946339887433260100981787438103184470427866820226591278491836124930224491969485174858196120986360457446764768138049533867738407288832427722610667676938770141084365160643647137242951476528156766564296897288364080448806654326173000900442699076544767721672277371264494078302712212158244743012694993960089327980418072606066482713060077265544510236374791970122100247657186438457858472797123112952140607344935097673001157274721959637922015832791393901790838973608547208740659163647048486475852300627741610926118365061038390146555350354077727426703138227763260113235029557087559894082659220214435525358139249741649455067539801039714705897592545479475557145534224377475631620810648133616086688442603551667566326461468299246579783559849955111583739647309500754310022952395727790845791944969387810747423164557901160832500529209439125699534402852322319180047339924201102739678573009332692778923555070486785227067404481707797049054992813682163934293099145878078825444287671631131548933492493364332912169178015901606183021937327773688492645661860436009909945545585080113395550747929036338428233658548931708954696734310977042737375441436925392950079197793332117040602396751226251393449795188288273200545281010917495323395457007495500084137209344984125835171892277179313427466266795783397242752535707750887723766582335866154091948418585376915162959500512518526738961740199618099001984178478352927452560705460983267771869363296028583959620008165227635682504735645015644773247617641320822706458033134747953523186430385557234197249158871099532073073503239251991491413365000431684545563604984677368211907766446259874245734680414630557475494277767275894275076207352090244874233588153921904077832337639309507513285378085374793998742150147885358446659672441981641262153152847716747878028899629057497267929202123884704049787144649967789153053040507157726628704578596531941568381481887551508268218415595547685452996383041523045334851381611073570172662619653850370979721464369369420683343998925282887852599681150334876112662518508839486014220291464502665392392574921760756855159137311883536597146902541557886688833308581019512262866994587827101326430567526356156024422804932010036512309736918749055999231012169840924435534127495566445722323332926184748159420413129764477166272478608529408746836844082980558318708497157434068665112647789506611424167358902524741329060536671840429633766963633601180054335297653190422843947771907234096477575710152949412453797196477204124933675814919085282051862293736960529157383220123581933860532507329749356190244254509800622123961684261960168016024266168495225276478959390224106910702804929161161591029631716072461950242799860851762863664646506835940220794541154694754566900451142751572610990098545391673753831582914980843359480828432287444617395314768848208904773649058087793593667194731376762649347466872626535690650097554268989790477728047319849126565195191587185200792391264877777998064136203444234399258931552083685597714152880046669547290169948250997026250211017881315749854843343767396679098995497040381291199333307753945705552856620163536695174640990422653965241631871299222027489686288003304761119581223383975333808597209338356584730342045746321307801218175751660751423444897415238297677601876878942480612742132208302729872936610798663261388387035668308995270627388731784418699024081982222118163968130817646690907739485374985857045545445653193706801851002451588855956550011296758891557590911733157868938855715822531516971071047969535232109001113694007550879326016652966828413260148020815578416649616137410030277191776263961456824995185557069073043981088263361109068173290281558575018596446989952145364356105718780094363423486961113236630394056118255488077949570293516978777125645342221058855753243591263995563851073834719751445823552351298289159276358361031081338486710800918694620547539185551391875888284865788448335627978239847268913931112277158937827973720205029855801639907889500658055134489323199493039934109922628262683622058764939133678769899271634510451180768250756077548187953977266710002973858490139163789268597514128826162893795449181100939058784678429230994176346998484614035015400375670102127621315051776050130383767704727551836728019500353368700192681387111688123105392031111085279418628751882776175213416855901371994634123454730435445161244036229284082527796609725535780949090890393665266082615206915862891293868515475128382435671258114260748434605077146133802458736521601265396475462337784657334604511982735313854843698428408681822084865122476343351791218868543715924782908510809958359273481611486703545163148247776620356258173930195137691197020211507859340499754751765470910052342447721582288437947617541592724419546942990116071981290010310272677174094439821554891720574507994166317153985432754570836849509584922903679186911968836489991838005545295727399391604808464870476607561703994473920318167582254347653425498198796052106783887409454574063852401546068116430748773506990268476951149614215881266999490101908934486168331916110931249483079029265083321808403010669981684735955194418991097059318418928328850937346311170047970840902537058629235906660960352856751898626345885407915416419055005510456787492984922036671477205326527786020098011213033261498178080978427245107494468922635853410857844366899839107073718064750144948804338727636611254829319731708985122914855316943622958323293219350606551807413651395994735923496462238325780062306641991393476444800180901883434348931385037252204842196317582069180205780367050729496630659262070367353669691242307069212200142461247634044518232654062536310597000538096207791274597972770096936046664423470024391858613681594448564878229195035223874165006497022409853987223186831877608707528262446043399171820570897825968956763078175221295511889284416916757295861306456531967015264764510685100181454490845757615493728341466701316732322646663546579794451056086694930953806493365330260414295289692382734642633770628958614264115362983167904017549274742152109608662994345764590910090604112619636794669456502460598717046643912633958640536463363940280884320669421720515825090686613716608717722257088497415493704575469305639951300440455519609852003160090425784045027530961673020584285429961719518383924545103354750650553266602014385683805019552194486717152791653154285304730068171387739864445956435383416252746088366471401160958728662684490012104724474841205113986315730716959116830488312393213970826480928909911541742516105082850673596716761012099791140819990396844504078447441836330868389312020880911293586592353334585510234785094537612965090404404392076296501865202806555364414337177875319200267748007378884954368315732380692711920712252845158275457641658389690894023155876061470233408638962733326467295545942561971843041431189350457465800622444874400584198091534417886596767158109319911912039669044516481027035511107881692359560292622227284599606466998370252940620501118071546011560047152640481925831707212821084109224096268840056181167232301832156289541509272209787237955694685019680158360010656518736629744006369851490318191741673886289591294806989673409937897287699510255108587247114989367946601018978205190373401170932905202444679475570880428865779338337696084614805528266300630735591247703637831226811356411260852618924509867213327148155501703581201826134263823935258437446972866206583144725833761906715162999673360363706798837421418320361965776143252854936918214503316544874577922701786526537543509447111041982867369747016779964819937881465832691960564706870612415975449641543297341533444315856009806529155859490759476893577543753708832465169065209101079361868795246095125945273042168077731414463698414652726416375755444433569741946498514148535486298197196292070192123235799242556100914568954456820558424235678882083551771945577898728044504630691893709445787932534904738780707706119452816500009753143598861774920045363761410940145323324012604223050905024056160398518154671051514686902011155391368223195334562147201371208826955426342701390467186018767995182163156907841225341289317660229964562289784740645454213859921925306805732761129832632930048787761010413732073692914884308393788250466860349504741304778635935729094204382690278327582564307492570265300833218587649145283488301923552525629360599996948187647068177780878975324995889718910003302021063911960357063183914983494447160956711053316283808171771898384071481180348616897968686521666647558732141198150282068082277748883018734644312516691094297116807805520349034522905587694888886233620264241699234698828522974750427518452317715437530789067372045313062011344172406147045776345709177879171572432694438304568504029007265772119305442409539120702898006552344861549225821539356990781417393694196943914425150777667365039721020995925467954145405735569700444252536647083314245884867355316707076218288215013965450248284235992329278945292573387208515773583280489803492328673266428359784586488049721638297748249130427472933171054059845582759484040593982389245870813905115919303978664459519702943338471557884713757969538928925269071576853043846567804739715743208496922138665649947455620686522164818273825927475519475008485464602992900567220531378631467228637119654707006735269462260556938706392716063034375038923360148516063482089594578778518271860802412965379139283989013047185216587629305921313601002382124681334233453518961822703040732240982266127208122782941332245440507408393174925899777921796064332707377862111609975517206091679547021898523823877402815968788271749317230173249448857303949045931996486595525845237193640096066674965807767109486027638474210454245419590707905113669678332762724995936232286410337614003691703274152436041507225158641315027157511112936797232900807735350498662108600304324878602999521142815271075807709812985472164895282151460609693966075855498264812621334396918679085868027068024687432482114762138702689039050111480908013678492930727195740921569488557442589954444813976198165406710978114984623067908685963972738506237750029197358868503914017817291304760257650438381327847225536633745676537879770424773569763864987840635947248748272343226056747796222378978178735720200787965070453032494814979819991810114520578971226199618503430451280634761716282400177452061631979011896546656055528661069271174227404046147568486579520601327931679048724996302383310703096916130376168775053199733114564195996737017670885245827594484762557346020221848460271017391058876762399075032820077079797416658451577190252314447482579795657474394944596717538126058738326532984136639358162451156401374113185154037412184976325049801841794843617781881264508533989727238708068794053135421598832576556152968894070243934832746595185663053146351552507793951596216417696405787056950802793421757469349510647184206186875090356217908265510615973488621205390628209517841272786260292474903874277647224086713639544889958875075505833014738568545946674008367580225736317794261462855361331425533975211434956116140576325181121048911354692422320942912358030293549560940275035724376415537288988270488238427295363375416054881768118355267938808376546076833199522692012497365551056277173897010322445793229744481695631331890385172192899624310432087072832962966675884287372312056455367902144175602055102264280052876347441445556118556021401289331252701850220582621652977655747051147310178705179942241418519281544823023163245087870867851344624433619505688827572058310225021665400962904117772425760073096859508287430306735849341577448846759448789628616412323850594118532061777683524610976090712044737915499732145501223058332028911408867552280954982477576458783813007186070485627241922879761021588421366174976629438984839409552946019428613169448234712534046832072436779392477415327437360114842760252043261137745759103044549021585556091553151045507258940329696146500526097707080571269309687276813311571230045548307108713222010122538601975884241536168099937212136122867911279440743365844280431495403052907445547230638243738473493303686203833463077566489724410070000604956522213215595610274404821747216355434294886516260469031622685226470180152859481403526692175002922754336951755349539474866147207184136206195004837458709033746093767109247609268017815308364589272290753642509680845462212472656282403724037738597223939263916556692698408929691239106098539372822252802999538248374095423945738391067066903970345098502924803637496519445959915446211089147630473899587438799844220944441833556610922869682381012495296295045601665386510640515834292520884949094738079682409268661988605647555141755529921093906718016176779915187061097751076916731063499912885405392712701518706949629524495969736524080553125782207564784633630986749925172353888583619894874979116684532140451649889482086712075666821300556246753170167333309257022598471221047892217273218598325219438528181247662861957659812602951624238994167719303726713020459517065833075233123806563777838129084442507698335801073487298146121396656123457037218224355499892216377327828973126940647185206255862940031986835125431238777916560043283146767527497336056540595047319120868417144843116129568147159480390391105073812968372295789394222420028498770068314518362144061098457597584383125098961865383457650468273527431301002179694810981975373348423790601039108941303971477052426342428732997236706128976820639978059776863916181785209816835123642826576447945993323122256261365003657096580305576144933813745990576537138669007834001925159257913518407545657233517028093381373499175685610230588732655253646914177322323910314859593770191235123651673055008915827732343393114636984494276408828036734633650596730212363216745489272788985271167929787070402808656475378460287140661693960490898304022476821773099088557898986752250044311138598312323728776987442434953418013527127109496008507113853487154850170891439505726014248937944674728466083288585512893090726341877694407265588232089435929475905103609167440811629922276579208313650992655490662034351047212853707774013104773073899422262752303006949921981458360435381709905579201001634790636068620089928072891790974215200197322058025336658759746357540019412849287728908539546032045855479136493099808428570352542182652247850140423133338202308363337410309922394167824758552577564629114883687298936431895733167535936336421296611928294461765404190576560627149006317289137640732735317588396833521987328063188196898170119622359563801237036868948631434215797835293955092858738190513568426209103923379306042833169098052334450017446959082256302360691450972153201686977715051911267508392581184094690946196942359314426107444248110691963883800384486787639430370552900966008071232365145464213617047003427250002523268976882743206365666371533805096442453090793043993955867446427528826012566459166731362106885711384408165629213472259073289809807781351677257342394405235429625895325629066084550772060889986148955271220157079662555120127938695336159190820448196947040897215043534731241503258493124620486052626107880813266025377041040872061507236053439136519007751548333249371269639397818337392304002473954102613666877063296088209868631216533398696953295942381785096641823765463540920762593883066222757610390139633706764465376832575756576739148240300200107668552016091893520699697375918600703147132677541071136274748078734032678158085688071630175506974843516153642944145532715762400270355400061927139270072247103252414117838350580535053773824444923743954306055847491435020899742445811952052024292322116239900583023395874294996131307536587682475364181120777021013042945076060189864961142205541493254122912635079838780250638868134225452558676689500277587359879964090446786463483089502604718890903400228894904154861366450407757158916210911151074519625491327133117706731323950764680428017569435031571885547452929259055748836292244414917952024257054343477321920325654406304525777708526751310404646464740294156172985474231275986018449636378026345308844604866282224732535242801422831352541675721506779301013025053791832415431179186942038112559615423451052263354433056358485299124044162605130072095010286901490193450388692415682644801903784989586579001589352807882021910636998967642425848871894738185009659715367037836816223154603065216477496600251234941721849740450913621357063849115972784704784341466313563211701152737581047714750759172150044590783983762506642687673377666339130143508404733754999871797530811124572906100722764647474719805815860916934150694289391419313950768692927405906329315311562532779725665494763319294756581376210622435885241697101736487282270332492303397770121964182609336379102527126280396472383285019115303717761463133913632115774159392130832820527765430095036518792340897774809008095837465726939930352893089916600102313493146031785973271262634134369562837052533317475135713243096378256073191580460904326848337092453268659106998370469703549086801630823608881505166570015126202735103230064192479193384151735787744652530146863292302809806149667542366525652221762351393775322228965735436079419685143769196731457861746730823843094385890073996325152768930815143082161106711162800671567487213395178840309246235053418635275672445529193163790660929048194671903403891077789399277252251426710316420713195785454612092618229478540344978572340848879558346024221875595008760472818272245257469777196247698069444150454551201713694685076467761014847202737562764712801876662994328826420552573438085040025742283953169769388737820553449685221952443180098073619335306305355689031886781586207693684969002681595113371089209999074348522490806319560974106356510586691312255976324833106524736320920459312848084480241490792379836018197935342753067526217342928205337332795595691265737527453436856194141726568167336401509907491657130301443756895326528599830998979759298105747223978280131093078840293413879067353512571460900021647012379587999331067458918799079553211916286665408622750032872528116959103347910545604789271861107099866973283273917170292693971248378752847051986598048318986450804085115427998336987054704828885721149968383200454587101842184341696749658173413604204655124065483967691621618558066606029547521821964136585230659569384931317444248865686733964946552625317559293581365709302262218463721477176465518945543697011789685880845125719531619707603721712746030427047864398599717165743570160445173202308618697388612861203125734242994856868124369265275624468824016531904175494279711432061236847586776179344153086110748574442363194570316377844710826783965592184711442036142391132683822704015084638880481940398149090855962477807922855441568268564118258366449176312587437325426518155318511564351639921821490276057625253774499774946180868868100160420965497897075550720865686613251471529715815788600164994420436713134286687602537439677801453173022592361483991896939146993016397605998076044710666891247003529610123664488613678233156000382670492709005562940047472608043647068210610992847690409290531276487873923447994055634882970620424600556470142652521874655115023892343021605725277566239362307416206936677834990995037251278090052181317003206182636476300047669010944320879491527963327285804307487265017299929294947044740280917601634390430677499906126500401616241186635779021669616999829674222905845169550255402004375704378701296792643021241349433385604441585424932338495922923507774844733248169824879639179120713044597597093010214264010386884756704654223269646665688063951781394389461864197088003312447046159462791838172886636593898000960034122022207549016534654317188293757022430995652320961262624942282596956682115212918357527492052732153212202792035537556151370340728396251189612915426997713225596944176438296826893790285870846361721118345856237492452568685497291677960360852162696976080654018161634578793097590112025156125584471243288337722757100830730827735214010446605668708109593479831594669174541097204130955992612221244700284495104351509640461675253988058647942329951334020902094835851898779100506887163477189955954783545136144646069598578785033165902987102127314840993687723180563848167248061219703958741948251613076339001075676093199304040635181036934643584532010776666979954255530770701167535847070859011285518419591703376556196643241083746043166938284990386896040856832210347072377562331179946563186579992269402259516946850280454537058541032218353188015433334291457490429974841124819562210412751319609596057573945532962576218849387475392430377441022744756638024917641272654215034607505331487271215757551903238919399758577303892556153537213469796520788437996915045945503535121724284204681959201089604814627203848474374226451297298588340605010907302472713984286891855598468157885266977344221522262509647142377393923284895160330356469726312168034721162471405478114811157651334741123185339829948867526445710326404146375957190205482544559363110742754225557846789673431900410070438825845822331323088386903259377018075138634754492534281639907289944130501032877931696099775136728520528596141828185346559635666469483882404015749392047056146622789544375448419544238624493868414062032220013825326167706441444578313268358857703492489971118610048473144734457958909032110065719229753098717100696914982927249862397386512925212323694853366157693785180607567096808490403957154835301637151439687989284162487579435732039180277882475830631666882610499344921876948425753781286481300108076800760204764480164261029885297313993928922499040944724574186264795672237946847311213269887703366328221331689391770608220109783438591622887549163255450957307122286127071568494174830595577156042899203928451170508090262829669177565085713900999596477579094240723305966187405685654997183800046295142210993219850035740548484129309067960756724850186816628386006053069816648035130944737727078330119424524701501651875599356256756773982894558870133368892634488376224872543290289804050823484210325362617609220079121549666469423603332176941390101152205867075492322576299226983064307203986399513092596979566962597957420026692134102525885717611848622684631232346089766465188674246964975954555551392628871683801193445590976377104390918990546807462794267488659074170000656796705800006948671438454094885312007868907507844803133726354945464352758220288939033249112357119979467935403876712761888112985260455449449488911874529349546287482559594478773035516678865752587021558744116219061758575234345711148664774617756844889368898645113146724247712728379532466912767031670347887034947456051752894380319565783722107488236460929518604563766565836120158619663649334573544399120837350483466466164013524172781494855024630189919664796292229325130889363031613623102208062149670209415786357056910270606253362227559773414844163630592031451535237851864025634428751079227295163277547003702897912983885059765421006864362736535174376039186163806432142952496423145575703556401100918164309442911852552786803600643817958107167134991399227846812504351263601949012674845483158784114553013911214468470398454335695904569295698213034415086845327604990370012276634739225542669097071559351723626054429435099622081726944455692176848673706245204750581887463465980523321987189218627457550894547117380738455383425493836074257458024474048723157939737040222301989611878717879219819905985379826373036328039416171597017187361590849131714339653977748481657170178678668692920089490348683140886966328350428179689580181584886207832805417486573659735901848964944239525848945114460897874335534631820313417604758250292578038454343812127273792843297945336287163527436321588505562886850970332667958127191300871704338844889005982514928003905246572692383437149304744331472255932834831662808736143090339914788942986489658383790153181613308885316868517828826889550160258812502695549734738503913654238309617069008835545069514309913213710595266995839500310790112060488095662381976797020286544756259131533004328017219603569660517193173688238343535716995014077383056548072143812386309019364675597412307492842995132406670878575503040023030626659586420689541289097813843012206398729056989337455217214329273847400792831383073442263899716006297326543238231261769499987632845215238937831837250328231137755587531472243903699140204298403012480782608575320141949021489537340743914345997734112311372566412153808499991377724122161966375774310748080958325077875578981228836928580621611440989568455844927914072525160468136848818704875254585654372051837526059567985787392066236947011894444442499104996642987394994082977462765452352518577540356559573182039242671215166555631076682841389135040633469005805749951441155028285676921966400286563360123446033527185943283077585844724805360688100987880349456538508066555061294331345168191202559932915861726135979280166594291123524156054740237993866365567156076598056609110122237910804529375552834382378241356943598753956622728032056448639707884457392182641596391579727901689152410414138999652642958800562270921311554607642533536170827724595073799348949847769253010543186863908261963130572693214091941722852631400304157764142070357969681928456782178779802636305274657256269810231759896035080742574738973562629352126887255391053695170233241356949468189694228502584421584260961292995035238641709243889238044503799908414451164985327117876363756463199889806722280605542305234000960576348828659318453367229249788602358575352460723857518519969915786960510212769616293642460557849265846484317494562588199102045536287761352728762997650427047532801481645516819556648095095508013309312441324547941292413827407377341257586301619439860071658500188917676765650321160422197856526266717318537378568888106061365736024956718346428752939241891532216096671420517555230284586403278703071969061767863588538458038995012959726697354806526206138061635902726101941970829190542545267171567121175796381504786189297654487746581263299042484679537359483330466546503240846252539830771797724120937656387398350936106550132125145628932815045310792864726075402695817909535826440272453227852637424229154544844698231779646261953322676386992039398311218996386146724838136343352416773309534741149841670653587301960683046246254134887576556622656297556708891217472076759598447500483771431788601860338655569084454419572419678060189655464966291757433609265081432836405154836965650005591198406886210600302551309600390675399545417605467290944729803917340151339454311361702490780098853767764689637518918466234142060375278407018709183862799758320358016936856400892824847015551183078115702214868501115235959816861378687110140761611783403357747338433591814304482521759195126410933609978714335424700168380016023226039817629690873967807417766421950733036103462304842144888213223071318334488949676550990827999273555392088965355989818642719739648880446689640971248234238140835522103707232309337116521764679364379323458657447581481515439955705129391080300183615882722464822547273717496369933526595517461765174817946866474992460228245673004836805349003588428068841418723740445318663558080385835053680487329765068952472506544782769405597659437603691689674694354726754713665581855476355543666016759415361293548601095996234768639428356773644673753465736588982759958872374635172357730294702294775821021479517394951669796214187764295611608736382145680431634546997610668938183456088191214382362549740178931706663786833369668200536118123534218155507250446839307290345252285272207833071904126153366853467252265582561428595095887074596316149326921833320685807271827704447133834208744710529231886436733824741581954703445385173953386971381978201876569290919731160499751426998022649978874579837457126895731643306376776847179990521769275662372954290845327481985168787764272047819412549066545256519836649607465014398112487767113475326039751189809756551942026808499438073589359477488839749995987222256315776929342194825326475391049081586475489509945426542053127407902967951450638339380485881319402885894994500975137102884556756683420192720866707901936520692315131272696588962471299110193196422489681479234769574722908559650666690707537988331752617534692581955972193967298273664907237887000440417561135577297397836216758818247198763816073964441017129411216475096855949458823298388847251453938688572254066200061334365909032660414533940222942985960646760193515625772187607818972591126152846330002135963199757814041667258590435276351393928781179097008856325934091643497788503320738563680377436668403531012393506543878493101371351892714842608509436095930991258038422264524898704731778737557745524398397910436272456608180587131568303888859932753286516224697460699154454811210749383515814955620872432671268325593649951562708751925282667619061282089732728289902105015452149764704782601723598105158332205235936530457244046152786953469668059087265480686932286430057467356748910577616257949367054027884920942733698130707408210071446961942301472458567043783143034332994703409147797336593948940299520266601937340415907618314243700786521898518535375809339230048441173168732820672145565678298956596440542554980591156235929338668706765477845126680124282243976679744636784712460463556718178239740499100455764870475776802865168857239664750575536743770427440403063766293274558206793045465593012587888595089204147017532558778280503021890446723157266931965181186323959886647686123904117768559669792387092811906045385854457706758958009428288423964972175800193710149721413110977430003530221991012411304821235815795279671823886696134479426297905946241376490186861855803158153677720248712133567354475181624084760031514429628671360310246274956992033573120712444926861133628095024432438241050415783928502748713521864629533350105122371913145264937158953022033865494330278069609791198546513917077998013304540487243708771749250822266310056378247611283092090350470072883428569669532239606952514099611866081565977185778075064336512841519817000858251752283869660461371453965206277022865791941553821332167902228782843930457902544270541332810388406780032533871998287512395416021645861051674097475335958441505197115857211445038367719013367569411781696017479525021713720600456405678601768937100338576695280477071525729031484248517827861361676190924912355628418655331769272195491290180845732549483088488513071605095068657761679003231155957685688991693509541906068783964946319744064083332689559659896050333756846432090789026366602730873206331786825563056067033541292328725409252158327814482536886463050226875455089421713486869814243422423130920132395047414093488070226278574933187448713728961762024406370387295078179936635513329634722731426974911085217171529668862386648268753100352074398616439490119440525203888641979556548948766000913827586885714349396357663258064901995555380935044398716932229544243595375702740732681685135110460734418900461033815449999050169836867303253663380493721547509070307828593150072997531174379457460101675819877449446487367780282421107636711545456783909240714717040477526090913573080902060739175578662412478035982503602209275798728677019703471984042598841020123299842733133040665304991566385480277998643010290838857560467389104397828723330993947622690653037966142579617912512650268759528781131296218927179645983561982407681729431874333456310406278871823365391784649606815051501335776832433483825589338970022862184883017621424864295220360676189689022843757150465472188798605989015526444878469241730522297934886386834286983925452806020895419181595205166232939407664990352037285329468831018452927378539028030636638472893702392098490283028747690249786256313733177967875120122760762414974331250927666771393335770193431498080508302079131595272672046164244483058838804630973684104844914875718442295465398436931340557877683582522910053376343056394360528041382547456346074615431768971120523790836292347873452460132064901860482499105726483375780372808554569331557810630552515084404051496917234288007300402864200495441793023892446428702460682291385207896420900768599755287492573249040792628380654002830977917417078156325513121183444238674175801822075867086795799911023475370462701463477970525205530553639867929036379073234236590742389358999137004037054034095875902685406011809132258209029281593754032180690724299978705691203164186603575146033202732876248548607760180591687026666215378045093589269164686673245389718470189263879362612099635591930096493326321711521008970707150792154560296501547411407670986270566667141583032345417053136292812893014630305167880525672766780706372234444648152422937425989662138454559065996748499215965849088508073912719231907881280374282250412979352977591193370696257435124194954126327192283705975793334694046633980315054780654962932000756014118243087047212080028141202103625279124904650866034589970601489706094902212383474709409340257145915056953103512965372721553316862840395437925688585621253756125451242696167226982859969635852991926786947781527224110214143162835200131388087590623636341312102759202217876899565696850247488954880760363003103484312421916512654082868123820984384807726193806348945672156983291963553215487788292549614667217305909819766207973060742539930794438534492804405635549790911662455774225901586324490322349473855816608157032244750606741350555837092969945374510722417890262331726487738644670338870104792513308142032071532634667838380484891360837806563560039939029633453905051159684503378267380546238234524150037768754937127773864202311302397337196673587119805201522842895904965496151997878164697631773831124811985549684679546985358903632220466516653820364431292879071871016366927925280699213212442000353444457451991370630112602467295305536672191453161143614778343970465122395173510683061963204614442179829491144954821873526065804890011761653633927713060644704687712895327188501193394989835339844135142898916744527301451767161395297024868078119038184900282007456643052721315911706986105598888369955916297898882118265655567056141340296298558015220865522423957476649005391275661534093624716641250669694715247847414721846022291465197533178866508499701388832247286502967379809087505612475876520722345889580924864328810151034948766010575856111135167980848122786301790518426784503722479380138339611752453407548289556628892215967810853123980070281396253669498240267928487608759676652486060463565121987078905593089090386138018885148198709308689106532068014851945705317202799439491104132295954924467422880213071721741119643974359775709132110686266586768401295195141127244740799871424639141721732743194826724551722874970491728794292720243859015593554713259598557025641893497929662650723075479733427259687991397109831824367884995549868352097029312826517969978341469157603986855340956513803392315630176447257745159495215036236448547399051174144239185924537064816875247074210412624632539678313062510471421440605516761144928302034763949344291654284760526374962555603167785764089124626638852053619390931511257018537455046163884398569961130541915993506209755421285916987588664318018610654496094446414195614083295550465479363940852998301791414306837186481037691098063096998925086350694774624999984213879523610606020984598745177756187579406183168136452938978370075079299405587284978153040154280326381140468749634523638213625656197982483511376312549974196039006505051093403874085501722506347059927230860778309044607475042877588825832887518305184500568484453959613788984069124326872115839813728481284817346013014548465352724020025860294376734853052950789210997994436366988776981249259123569736377113118774026653689081416685588782636502596320430409887404713804965635422303852448505721330461366497582553068663789569592669352399708124378330118468104727266099963684305936613358866525606655905705354441043999248104891638035967612848824210057972675103686219869223568526053211194235717836315875627098295972091576711115345407117772044569539126739489566015563508419263874695759455306884918764841982611254587580454810050556627016796160375640027542580631424451881614652052407502796322710147323658932829469968404615874799979584443949445695323576679167990940523576881791941390989890675185624086680224865468672415466170078890540471240813563479466731429024534160265624059034766575494900258882595009717059006206094901648434475870775901138917543767056623654121876426594580514792965404039849447672795562365495803446010074716810436488559966359395331091259683263422171310836562975745420902607857848971714516416765207198615220062690933902001581088405611152712237829847185985954646286452203057880932699966322447563348603918070200498881048839542968984383647492694873193924864215029218436353454696899237651859620695496844945170592261031581514269656178425672332533444274186978423501274100872143020443796150025417148617061486314026918270132815205286128453519315207268949254495243593649212723595839473596406938450446248856362042597693891043086781370386943505236176655843039947529701394629584371824383806032896254685769585539805080780994565974351964297658760359854965873485335015712022958403532104417541433695850272356068265079603265334411948820148199457123663963746882775408904939382678904458791541498751158701284492442955093064334820416803680077127805041609799370151819898853019587053057008621726737937028968953903013694087995451829286178099867853050334028314644147240588682634785326508181684214676780706677696994059154518373062087661327999463048752617553028586675061323989887476281850187443602906090363635351348021410575338883127569659715811987261648140055191064771841505900940427244342163497989036717810429585711371049565229940202401492969397624560008511978792449454113927608644012914394515261559334446428128283195081775672566731291176245422806656730310146936235065775776237510114171992831046554087182667272732353864025875898692409645920156293273502626719273161689876788751668601005459333903467642657856985262976357832793029904956667821786865189986964459123016306526359991322083477495438171037935664697533733678989942944332008727491889555969104323127184048122255970575008231793533678346888769805623006559858969977353611187986426738635835704853501488467485517427055303539255658544470780422158044149362332987173697649622259541823580326165779530783892599552932556444155291097209218521232414812742890258371607970039992168765122796122300685906784042792809544717006038091737405485677452958827130711151995285287431609857479776255770182795394716615312215018483923285339910962307260220029254935802045995811994944132431291787857913635943621100463106989114548579390855021500055189768774261585020125037166156526920874962889533682212707848065792039721087226923122454626801537686151630587644184575022314196613298830533438482269182120295240414881574869876346046741950508396338746277743651731058956801572853238713423803044910839205093081106385491059643768540413001721046606927554321886283301271453875255805006479533920382551603090925877859622936271809837834344650439139013236527964606623123045194575642781012913076660078712649777550358447081490872495052888023759524142010773427039249469579708078655071861771317970125930203422412474577390112184221422009121178733818192471533164854817336101832152800544185204581547200315439542685959842457350173239413169630413690387377298422007583075237546646717341363047580583367971183608101988475087303490276598470402747544487034575650104955652129261471592772537659223135190184242315980367886279966668197466143179962644083089351026467329376766445088253831871865027023296972381040670838888555757399490436347926824984980128619589405025861823975489678493232373616355544085841308649060522230322053094636923075720156938540399994148515188336171125996011784486091586161739983693384937302305037274990019377139445322908391484392663917775598942869679796969190438541595004559143925508582616466531636730559132224804530135182686021444462592352733488656212588220694969602098550294745755854904049650889771432990826458298550038195083446330490970018789205910422144170629459351109579493326110115041836171599917587336006971837044360215135804616195412397050387559351978428780556892468952847050219103405916156193393646877828566989148036539602726746403607639842176119196429587252035660195886474260685839437298723265366530461465663046581821481316472759640710769597259257880832781986478032897573365528712083073859007706960022010996445176982924621450005804723556930944193506895540124031384089354904315304409691558667114246097499282532693224823830748210291611522624122392361071677027004221047592095759282115926711293400370004415795697789192277360205629513182903221035430661101568955722732448337617806674271179163908643722327067614681913095233027245593420090125757022190196296849131833569342627626746606766011633239920690471246506227421827397261193945169358272273777778925981223553259721626675665150927489155926285740996868515430545712125012150164963070896283447869681973918909616228929909734798250969718779772940068203346836270555603940597997652719733623911166343918833010966379496912789204565505323357050089176562441931983141158894441415366273625228280886994591417451372660324525160622601432167998254740853456310232282921019549510012521966322508203172647531514455699742504369425250328570962535486407232002743702746406194156472670742783455940128549250587908703909153971966421439492906392881055055868263722740078585044507451170384032819924302252486113816087942751118693450784953428105553892763334756413488750669783653509378887636262264876776120188481288418452585057634903199544844422780881412133723954437778490303714770766084649264077562933315319530693500379541603724518703045844958864897344112481290331828252622704687869893202648372590830896903055017524133878442433518439790851566325825745637998633335430351735559031313661025388673319420510169279863365608560739801279875998262154459474326923858335555411138750509517489393848579168845201411143221565765793234681485580393157745997847957459501346283998573688730900707008992072439374383458160209889339554279111107881134680358032916377772469656928942557974616165638934602648329726367934059440992897786609061241060029700608582300748351768335646516749715286271526765511253315693867296670312465325459886708345492886875816027208981738481085724223080614771407694391631745854442615271885549416118492634537872622142058100775493191059427311336941446318120828563261422340834311774068533272466253075774433834512873076731163561976697434693548810674651689900556510859872029944968013151961221506181463960542988498338358293750108187312980621399675232291552239132812072386663034727124041968160366149261108921903258944453330912699738361591965676120149715280823083101381940666390240910807843014348867539909270092587376917734780746735964381498243478315976322504855596992643145692641206635290498544641056591648883554900540810296360296814710905191069864968939702876282865227734698043861390245591838044302914907911826155452793438623100286663798417510694748773774904744553741419835475757949596953346242180277532277161635160754107618950268364697390770022815852790629518640051027195014106978911884756219172601166291689455996975196167664899137588688746492961119789249609733423130379908056853168885404183506960078931646582738542431302429236802802515353682263226442672916686455986526387779755147645699864687201910590166618188409205119345235267686136510347708691230027384173089848639456907116837088115007219532206121728920640046580379928413470580912221773258128652710605081779666257417663986776435298718842621296609727700583266060346230075857132524490065916795024909241854802869983212013488186149611791757716846338233009755579506254618142864963409291196749483323945537358400083768080536577539206300602280203437503324685274636250456453037270363561926636176798489915061895845681903111028928186179602858004925167838080484739868876824262519020076739857324138828264777392971792681078313790224138552913382293126471468152215419594552783216805395519683585085383404150854033186926031551273416155737483611977524146209570631659452524335255480721023157744954199158591468344965867240338437777731316422726648522642508100140441136046254744304693756094009091605110429327109954343777458481533389658421380094626565503974450041214467981976604692614236326548313206136612315065087300611993987634724444794900639431847122907479557604444855337927661311331276305315026947077571496942359470779364968365336749340572883200919785335031658811601414964342167350296592259869061258006100951876477162748344757976148321958328162667169508803474729620745766361168534289178710598622920858864448552633366790176153424411819082282114373743145358892297891604946009621900197077786357653152871212008719223945400670358636526123099735602197569405453354244358704954707060120522908370056708931391403878691056071719979877672092688487861834370268856522748058643730372782646000367330117224390205536629366068946479999590701804006920838653655700588848594280066483857925053809068387984243873351059971381855161567117256346011364997357110586715738121032165990075683068115210012922945300279013617286486361254205838837586656491609947372827022246283420537331951175883013503927603901459351214069797938148724149441600738426978000529730578649475091918118607580828686474145490742690231694830907727675992461691055760020146598797008332873173200026579651714151636082035768296527878560334096516960160633905707142071222604545965313298112915958185009090836135583014898257462737023659992281987418380308840236067399627131408710680153542417409933030063157866902522826719480012735089831047866744734564431445093636336580410678803096662508631863905386791121393076456857216908665435448507622755631354386408302114521653486086619572597353229561184742937151190451153900927921741883589042451738996295189166953238651686412517697464616200127312280799392567850311515492139486818025669828291091401719135500404983902603253052819859095905017208643266223354490705990474051654218963356729003808290692252208721306488748024379722764100959015694344338844827231833211772796301976403183346692553699641307572875964191767956409380138999556529578944832904153668698226486229268130453644410452891465161921734729646637880984751603050577302416930924501182064407398183449712329307536079288511048919590376436788876461878448763987956116973272269551451531329516961438746918352673122634225951403547620362489979299926105393319675225945289996580877785894184259569472805576879721445991117624183285791617446135579998976023339597722871560642534729841836795129902000202944306604490245409144108959173367729823174664118885791964035983193312919035712231779211180983233491015013269753104836786381517138025050009639199049363881486821597545602948254355560501899816065714544679607028469488541189968492951940115719520600325373843704878787226539196948557722458913232276951641957976610808343000554367882814856876718338021473736430931409612199323236070903337429463136837149108049770186502220293462912853283607813752733492763806701219414447599399285191749033152801585589797773776896974131063204863614326740896288332938157133850313808632044235122704347185242176750648880629242582408991559479989064554165750624943215158247343197818609589041042627192162125775130476021761395528196679810645764522696282563315279467619943162886836584568643835220072171694834817339446888613805544066944538888296073300002796802014879367368697244263405117954804014441421556158507583304749725222915100200947911478071776943332230910544454053598021653676006303362036967544916616604280630728165429175523833685724921841417991174964826325388422385596656440761038254862910679222846931274328054942363234554976075076269298156608929770328136342762582706493490214787509222659852833228082130609293525024908451621338639419998330411469004695732353953385679348356548402110429938106805926070672671093429225053416453705810734958448785548652778395462048450914092396626141916478174036319314457732465156646441489015680784832487476362650403656914689844889008854875408716325315379124716557321438344122480047216711118915272514631411664146929935651561133946112533315422124554196917472974006453014119989106668606791388266509097854527175932168782420649669075640579311644731519418780843736466455536903324239479321759014542861300821085896502143259717020778311386275526080766381767499950302391229228862480207029175865689947238469241329527689829638713568436724967092526571011060417035364152388024328080794271978054715480459971805587126626869311218652794141731133940026252293600601740667964388699635243130583187945932821076096100044937317926011587732344355450914512272880559177590257621108615808633106757671203352066587861569419804205176043772127128935842664134368859486072053032926882799529510989193955186129590781834542415371662021399586336158558286045335768523788273095041019549030507221510879398449262957439822742614041055100828944335993655115028328196711483927255594773192422825435420493480711666369584218372707057072257576404207029205176580572064634971146283721530889328553492132858173954289936902860442151829349472564394385859902036269193337456388686318692391240393313609096949098542554697117191117913373836131524533743817239088568072363169322569088988629408512640202137252540040700970325542357555350346336038131803909914458501517966057509317027059766098934705914037951050107111369465339687949402358331210323631366879050431506464010886973838943406421423535815926836401637607770724949044461238337020440746283495699778457218196521972376379582551793398504442544082822839147867848435775630577547047051867187674949873712850012949100000765482107362336844372020869784541726258988015618225103245467000713484239505060883382861636841385848864748661568812313145847933926932424173679915402658049492580545922577188306998926562695144011550173054851548232622097012391002786170367287240141264613053349794009395815253115479855576793583693580971153326992840902145745758144480347790957555537386686657294093075425334222992007764773987667496700684741200560893131409009259154852400479871114791416820038176807610767420014359471351868130206040972936240473634234980313793296053585044492252565141286608872148605234499576302003943347257485027709545208779280290970216864876326136343154531366389325027498174977434826591324286678891952631354733534797035235885996142817122120544374842718788814697992618124339986050330549148671193351064191735270123523534222215274298911815334805181439026937947029830883997227620081631122486305179547221018360266501318572038369481420953079168112922220410107770470504797604331772911922560647884794573700581405577279994870905018295839413841877158868527015568837605729519694990112393017056117016463466456870913167220199092701983772573193444387237127103872211599542001741912410720456687727906685491762444204628787152963043591724772984189547048987333695100045584014240834259854945668121082050497845240227452245121514023436035335638805877724925634285058817419373394176012593083662819339501281305665937261494118832815338945463510450549263861378717767318940891198169539357023874251201391764408283948162416130952622824968601603173453415184519916809862275046404109728060405736564121077330888145477485508973515984156708825829489882572290816467770345436982253640965331109519949461495584447434570474085338145828861404578600174891754511517114035994696682459675316674882621560812362613274148409622403082701882264043522476855823498551596109266157410311394747033269179738147805924271545124640024113263046443654662906399369194272533202125896467350852533322710689797216414396986249341363594491114831665759406434558239325267478614620746766541048036899880575563526607847755919784917249016188446089246319475605365476635677608827128381904206535813720918418915506656023794205126581770989367550552173006796184661498778783690381722676912822864793631387444126242211984780821796685179999102592491537241922903688270353057956057650184366775386272415323263534856815699581862381695800735975013448264257831467944386717910927795314453657653559910307313048026715823196505303837466044078140323319781700801380377755141836903193116860845711250920748611803302588197727172059230523217204693269026983050415661501575300470170739176986781628417584134836549014458436901288399713058314867602539881204074150069051725491376506866696948804825494546923609925480927193209565659380443878926242644036757962050220330182423004746240156713119321749527123053833050434632697120157109619524461109110080857478358726088539009710345462186412653627607580066852175735554584394732602064460015270371634136423571090504266440124160989486117567108304614881757334170624042208879203909307374019103699892210128057165398224433316472967926648513994090681995126741986082037588648339008018014243736118944622394435266795926957653299846065868795542051571809504884565325553839895169405233483601574783741650582774557705337731518783362271993570123179322646722201550454380469179743934328760275170616954121431554721766151756092983718634316866775789831835731078082662176547631029595614048106674446676764460889955610904402219353773841555106923343272044409786137372217817649436666567974344725524769735306738141826074350348735237850378543885592872290706713963583866221353832739767585633792636846454028468897626672503220639420337885593149574408676452757867723449877941875272438613974669397431251118823072937809861770559530624575327191187450788559516705395750508234388500168813806737366735146468906656796059261166052252243486512142705662566215752604622810219734852214071756822298896565292689459544308360001406403945641740630405865808984863367622866946260737735474734052060334064488059575675099102259026655567757547762816285863436215437214186598856066588852753245059822600160612453535157557597764522083196225882391066226387391001750752752024967880390171670877587916222824024002017699935819680665158043554437419357696154480875523988745030877312730035205311566270576350443860558897490629914790283323485659302798619099129591458335934756811979737566500194101447442073749917702454653210982429865898435287443622096617325269179797139217532639944194483465685252538994350393340076293806540563544076809384619101612307217773472178174064175453719361702410013819328170900202841714667838891023999348245089363978546270458266551247949337735343971553351488233280151504776050751354660141782066629305327952275425026953546756783411017865006126354626081419500508745445412393903507750948878488193852341739222697419008342555489924119790920047637627407170019867088781648700088490237811476475721523673480943831720393084029884018944851523575341205224893634154011016932191148147463941743554014974409083408821373460703525965150405062635304772402502570978450840507980256451341768197127868084444198501013034923883388997209478890029299601117069522960921841754501198740381441690453700764233910074360670019214020113722828265848227365554697297422999185157013264959587255600729378537507098463108987800794386829711326449549762885646636610704508012105573272560011704538927605427319407963488946025051811112385770514603536372619249502552599099947542926796758239521051088106825082895468444978926642027131916913818555543225937364461736074448380949352006424391503899788612720465383878111645765241206131010444425939443196993698384607427604553131074354091470726501000382688379772998493537061165356968228768605167760286286267477369379036936719683965026339572475403199355346127488888634460252046555079318418642869454302137247588224073462577558551791109173489497223572772767324091913918212137115971511746963971283054648894771148497899184394964619631170325812101122138118644790373401035986818692027432201455356543245177979960839789899883800469197438163140506952635119027808785025830004743002125537936531751069667435111710146371447825140298364568598263226356035518429709145144892561410418425303882121364169328882408457531478893822668520514560800437574846309722706359625525817403356156230976568711345661958749724511581460900074951331767089525507702524616488226986449406731030370817269898070244294972693360995448987291526354619348159562131421021198907496856587013700771302276783375286303473576319810307008064798984100586130036412191837950432276233239262198878516298996847168212483938410466466813600916207966497118919598824294039927008699738846755652624754139497311013510849239326389687797709808082313913906408003145918058326834773753614676229055866749176993746151414461373400609433775729946529915700564799713692494444954359164411467155802060862154631164068272235732383538108017999685270748510257497439271796013239750879732298984902780113075178339928211129130271309403768994822537082315681650002919340903942585557201682788180424274264879683470490075066772245024597829686253794536402890317469075085516954755117260192135295279039192894070585421779367948725846581750678356612571695439610519598070930568211691186041771942359615375766884790524919892452141117179286536190823054367956380796956561983261363215487048307057214363937230461739399235488527544624520461613008571549592513652852195621226564344880264552425355429477774766597838589254725643574025169993358851559026869134892210624136020241937905988279523822523413607289422000893889774709353542745099111459728153775044372980049675492050120671029124993979967848730743095613757968602114166142453795928447761820114565478117805305008690178922949635549789187307365344670808004829192417146601359671237506059858935033613513119896018022961330947321152853846020130748648899941333957619630671693406611442463726675816739667527910632368784370782976458699694600085544150769244000816238196452907043563100734461157480979668267408716743693273868791567020260761457706659583221102368367873731705328094072382455573896540569588904675940766836632403121854014890210304381253728189584786041325254130981935362534268631828701509062723478293639274195547041401348865019616529144046994638694484302655773522709793452166771300464654009755456524511404142928389368028392492512269342046168463123074607022700133858250462313423614357825644466934719832147919728151684427573555260896206957059866409405388412838918406666833753090138407532788832953001631457961835689010304922621229117092094036005163554098252360724863674062599105746974864158992711733088369872254573071394975618191135490895877327054781627075857756760907588586290480090987491613165378619663835911240687303363211189533352649150386731926878692502597177408207175988605539729874183909771170651642994548846980758612635991665974257373697686304200449449037155289981884764560172043879180413011256382637523176292599743912879095281611803885854139815110815718111791761200429315238191948747143983551467389048213246295185707095372074125846380578334633899308859005134824488094440976599793376766060500939483078455579749339735764891783335751599827395121859307025257417551922166054283584786628504419520229409090798408474236181822170977944610952036631286309525571314565967446371594617155438927994183473453110572856480259043009609671409730190563475865681514351298578269651986419293898907155972518751997580140405718388508095475724180280557998471538516735373574389846264075243727415130518117104949000929670383410431739450498170650266947039533484601676267007190327742851744764075646335084360522186696746456291552299508916215715544329765249687836180536663149141604455673491398959660359272101060214934047788086250733952688732959366844552783330235893804179180413412607100220043189824047502518860143556358617729799888363995125846819818688219806633370351179765292250677037923841967890603572797400514623671160423329308989959684372107475417560211960028230311057647154313005564524827081340726560022703372831695127863518476068377171518619086307087273783145824674011829093166782498219284692830744264315290326356851320077202202011180579507317178712824902682269162533618043088119636886393221060107189663908725982219647075989273619185212408962927540942518012413378234398676852080437112601430230410078770828817013015313044756400690133175086530725690945738125199435011035381491730622683299893658313616613781964236626827224753609770025821405918850400565112311110610120874363573243458018205733357421818156209549145091247368694933821643640526746841839543904013674046044113263205364242905119887022438669417426274176304738897901590825479562020296934073786043273049563769148836329181769079655109851374843872121200737121518334354595106447707457762490684111838282788348202764812060439445425709524333328990548172896834240497173247007878196034835287864640169611461778920059503171470597051192420125310307599575621161536102605709102101089245153577273383052653372726752575345576005408315029218601055863633345112744819027442354283073243056472468267225656678732912131189474706085312523053687299465456306597914036859107891483207925596025442562942104780562063796939204697385031853342839078025568662792813045309565720091433245840600376837666797421405780854568646899066259710105562389333790239641392882447331994567067113806696342260464904694471087918698699511603553712579451792056609676697214271352014698508391678275789585509004855231516332162870603180485041230207518920395351528244516003767824368702704811984005714452293401671651905657162071216035365204758716323631475631113728514745783497057419645849174348978988956587307605120496991773353156588058901997067437599057499012491147801224066291362033495787728404448560288655708684971732939178832346087025344521339766064455390646276314864002755771032094458853923698288805854262433453260202681579566437215185239684528733631615144455163565471575578953478113387469648512461448487620021368773025020476940138041245619287219446477106627497936090365013570692855209436340110256747606057092601647873285814589086420929078524174521878531711225623490220449573943559746117539184536778960232306482903274591108789867627333602375721418809463611609726844966497106120716418729939389110467913236883345949263351080175464702191686205343953037174039718635493443277600333453126016328636665069088262114874558058187449664708056758257384612009536162678097300231240730098447148710637492017015979619991826902484569965765833592900644997667637116356277434680023269324389668497191192121701713371092420350086913686486782403159501277804165212525731119717361480263506544502332780429145129880046133427818354962637448603800143594490300472879811532216299726849216172662728324906647585703437886142199681086215870502219221607609497834835540387603736842687418247915680218089661267016030026309597559304567306500403784829297040034480503590555699385083988322959413800898175781259432216595713332697754384261980433590208442515038200273129127969175930065448705540277314813321216440669494187552953632001174306242158215190799064125698113577905244969350507495801305691924156516725468081084668071567067762596975742600427524494481419187490227359706955327289939511313584307375108868226413274989665677331271738087783524739437666423894042206078097896964075681720055024818044448492723749815324518150805897193771699130340411914229084588084263441009027107852680767999980603147841591050642242296499009583119601596971358400279268709289382999070975175557300601158436072266615143566572480944253571946573155224525353123942313599924662449999819039319915419074947073667818829788423219109615939140845609159092606554031204056144431268370712935684137954788375647252774808423462691812737752049909456244245075991522682649996300475837063764602789384988733588943810267198359801762503536273198526855713650313462685235432685679546512889748217600410395172139854934723571853724547294062013728821206852257728069118512521074853818228850567573560389480029898286452000205498590659550230834918144472255776143719229917982517726417028527081116781848083427931637887714236222391372501432284769003952664122774290220649383912753007670631781431676097774559746003638448235213803577378994671216196764449955223245030034805554514362580132691192971655329545754245451753223639545651919082491032499664399376384535573680797982159604778804537780742060252897080113073200134088662894165511474456731218213524944163356655873024860944720459863965312063624533782856594049854261002153315398849648299972871093637063377151894999290081609114426821533262943331029027897716930903744033879518370030866340353205261428681808315794354458049897660297407931621934259955893429754895325233111315432408690149054954309590389038782379340653881418631471970814412526751177771898535894568256714003615824589936893633756343260927984542195830755280283950831047645617589661197064745299819161820922040328317936319865580564820845152180406968344621278434880767004774226493828354759472122505520322214999410966024305196064707345454987999339646941223134671995872198948498003676128110205927301439139586595577096468055254428142171277604218934497138363391889379364788741872507231064669224171157579745330278405359790511316491999602037179227745639988788011717441332647786357280643811182845857882114997370638706490194877836976108128959228108001289427489171669763485615129563771863722694603371013069935163640329432135957876584273824002772141848618896431847195708683555613208423026086285564871434585036586333940828665891396568663798918261962532076461246350986897910469213152613350605368767890739576394092864363660641006301565695748676185263961270076875394572993653227510409723732497351348526402212071592294856376914258237886561130933188988084567012770176967708990272585381879245927480358479374158598048974359218555224689069997113971686499622615278517476516996686487615678450356308708117445235204139862590895097381607445927214759408327058868657941695406637908621507354701986637302436395609014205983449027301958759175645744304374954856828714551518443399679344046699595183553465302259043903326364038032411991458055536533232305762303069707596001004763025558569372349207584101803340375339698666989037826196831265354526427154986204987560628655838926353441426848058854557837722246123915186074164622542614839826326744460613351012106807999731405500950706007142004865225489912072466997707663797897003426949473818652887614205798548093252624766590524358665522251376736708135124336742953627285421070278935942912178520792242439565566958945490415772149519915357738840206718830360155348885010691284652447911565464558591781995946106090145725675512455618794776918295821511672944896998319588134929713862770178120706890566678860230923414451662029653825980234505411272461186617251884239494697542898604215601653340100144116513517130566566895537528068125073490292919906668275971314241322305136779796444561191835637166316148092222377489699584107612969283440011734658523256082407092273248343943404934841467384601599688671258762724854175571653207988633160193531683016615178602171452254537704872637275220498376285061981879757799746805992279072322837527264628147146497721671532899571340278255885283070591672867256849876759840055265605225661282317781763444670222065306511391251996625422812327178954628535182843687843013652440819833305374079808590944870511186598362978242528465459103127864085320683612475390363631818779825175617735236238020497380594410947124562945254514411202843817345367642719423340877508873581920511425539768434959641185942282926493871521252538035462759007965954597745065493201421381212374630991358854859714955666291262846702815508714227343805522362681399834127445972218087655730218394726756735599479112696999044230941395287085783711095335317828128876139462948115285120094432720009324732904928873655374864356293855583315484448883708482105863530585605257093448716259624258243298836291159697557447067844303983052370491779395758520866352536643372300287690467207888994452473808376864647689318155015201437161345356060734600423996503858248466798862969221523231815834043592708879575373086533266022687865594131866642451705827564977714356461830524184882801852216842650634886770657347094971220001861553053680708282662447084552488548815330658324981328646310257211316009656342106222880344673352821761034586709023504322019887638902642181579081801912440382064424764828526383321274400026079827691911441402553470256352145131747031378453648966321800698516720460826217722985570847097098872879664171496433821298194033627145604272448594527756749872633492969954857847317787709951230843055513284937469208949009756163169761916860796301244663414653145148533900813613827298670527067320037931564762382151102022985655785306166284459807411531369538993217537828448210953458966493219898059972316925677194636250258683882929951522928107196147677856920044858556307433045654729616578485766335773968506878860208026806670088892760614404122230675637205167328471631763306395219990739651695124166608944503766778424041566571958170153712314903771189328668884401907412216566951147594389051022700748604640108687011890712585219073828757549694914928995877806428925284482894585209341807010523971307350477569339373800153188112801215911039402710706475270817862258146231837183718110019780888970924439793954454962902660333825762395289503759620056465074497100077778909128470820338254902477668593967289732767053374302326225222427421575616072046854724020537704314458577156497540134389358172255992411785113126115019378853667742022639200925851457605953325976682991014093680880845326173477912081454332157917462388753480818111242024877104163622506416339632131262680730174137653695088173891455199599607958325059982658639525426933733726429577242182161527516135974921996587664528701014331973727666153599393211340167897405411722826152641368367261650264759595201624758340920093617665907653135079659511823801076632527673549698539313644876884364286823781824847168629376130132037248883713248117282726169791253064652229549141456362039581759895172804468110621246878661885314007952484329271619547157917544656269942474098311774153295155405477966447864536580816169977208981730742781241794296913832950071395098510055846647053465105372333072115331567913878837372980161230890303542640692372385581855954333851764341593371356219985714773975092220538299483884218958221315766658335573746384214475366055150362437493155987351013718933826835200111393199748991757986167676921356009437157902971268784032033115499153614803211064989747681706556805741662141025651849819021077468250394795803556233972512824950855483255671104958328660271441606049847726052145034113071175593576838289076136486875933042996240681477224925701470936024619013842908052142717841049318937807042495574453303929691190945047040341267616898978572496334230947359702280844081511659062638388729734611892423040047804916487962508141781438457632022445249602025515304428987116820618349160238436796541177013506906382507346860921328859019545661533995312071267613095252737487448623217486180551231507751717117119750685639920228452448876987063066387952966691301534815878817068193519221271212181526628996653614538150909895513017784106822280797270048122339650872062147460003719964276976044242752240677790544094644536180762463207072175812833001492474941663720576255978891086260002826069295440289809373272731797555531304038928013261569115296078067882354177762520931637457185232717790721503543743849732984074870317586666476361968871648028109986084429954672393155542292286371913112709672365053902182289190867846331073583322723352093108519561351020919415777881519594273691842581244751609850572733190974016320290164569624328909110817148681940664643738865343832614219166177584884072327237410554127100929040236373670881598316141622536014904543269106572794883938323377417903215041472808610556502069212657500811375460491644845736875970959920022329406520230547311085598853061779789094307574718655954504489266276697001140362071285285243494658537948425730714741122023739115821558515568713387748971438817723736093628772806458988261249265032093073963100921712255799589383560377165560451861611283974263124545249719134534862235056103498184086126006402557475010570054048686343336718548263947330385157177637766031079577873180346989066258374722275778632256805036971853549978459530741506751005657040878110619969612145642307689354619392841110988365762889104257328249539513107247518844454711720601226446349734052437658281444733048224189254640393786423001229070098696476171817240683514145509060026008471849066703422605839104546270139984724469631545563153625668578612244885527552041631687075469887542663754272749689272134957356814039514880534104794761350553588010402729541171839866889457835470230902328979249445021623050758558191295252319965034824351220428752930601407685859799900450567125924186720095665275085026920650315313733506329677318096289322536015886088907489189669208674863443753677280023941245724683634759978888930196260333780214538140783418817551520218326901198158348922396836976524604325907300224054237831746540931781839003066066650645989269163444208653138801240282968371270466967907603469121998412102491882457387182157020225347078956406852185624466996698446733425467515437034554122762123064393604811186647024375697462196907840253623615636116209500689021974842316941429974242983919563106008066928249950295185880372773868518090096002884294261476324493740616138683869389096282302854966906363494911838901156349647224985249223998839222346976991899395931972369497488074063854219415806411157128229242942947546094645641116038465224522771564143277823617288646647877871359233975218617109563236108571868256300471458776721957241682009853228222616554241387260074055941593994342418858939451635942826423418219040728841606817293195996820329653286823958824950875364382563372057924229683694690916908730907932739837654159163792445057239167258969534767410990216234759857100496097641506831590307499395435789593991183405492023278400837172387464784541508640424767222965090961325187845488691822209075942073448159734841376917875896948750366717175506026532047181375308772978604707815141284442195940570262331305433223201987841159474766201567800844363238366000899305276198231920196908298199538355669007806891858241313111817867455380360305398879636522299788077921515115262679373277206067907063511128765094135688736648688985662532498095916367389628513383292650035001841903165784581635082001840006260402109303937103592759293636576762104947945473647098567128337343643297854993246776756774823568492650309707618813075770795478641818083664560934570217810414902126203306829626409301576591246528348644679008899180670080915677337657070678964996956249435960697206748032268413084771559375432468080303724300870197459435622623838686560293424520707401686048687824039230822769667795826488511555693591655725768598882922243478733893162941090474527891965512100849674840925496793955821441841844378257357976615941015443786813125351952914660094320616435442168949127179200560918486932011304067096302241883206264974387072660124523996418032278429392429269979579879690630062958284201593581832269009398026487913869440973731627900000141154575602492969686097734213861843859486147944117788512923586604537128862379006416534678174440275766302821044071231535997054747427481404495240219485917605542656770764742947954796668410246662226362173275819665598198730351672311949328391994579563110084772563826252448143403666263639349206556390144427649443243561865540514815026712655701688156667060189217439778427220654687374913057889216777037211675199975075894477654426123630368075135579136758473629961523207159050179174410641791139517518374975710779499869473915912627282985103574604869880923740033394239178808372092301014997526561769464621489431956664291554816335065820808409745303096274634067818876314936697906316583838378455180962599315478073436574566963681424228589428608187783249802235631007708326126942784986842073695921855811216068235024847998705693438862619165931217980582518046997862234124236894743746135762303883381174109458814180427318202250096671911987489602657816057797346712523635302220128303159243063039872275698423393331656999061758193773331389093747268964987497280966541301456153964843583328630294821449624759426424034873484129342201524606187007051150554693020606323608997895890409631244783918514338474201160051737236479530912244708512083541311740216517770485322657886772218234238588898423588019617716778995818932873149440096752892009522547950128025738433998334827458415167337315554469992344836601852097350591042374602001074568834253906815469815680641312996843019487085134980406954700799852569514624274942240191076601216781629226280053253461471916540349680498801833514241502689688966216339583699611193367796923540775462230991429494652481198362489567873315251071302482884677860433101222732965967039718006618526973689243951853656903707211538007818982375730339178812423876772518001783657994667051992249306295245067847581494852180183877918833507259036455164552085121172427354081721747893853608221586447914747454816303940481004405555645311194697263377968452489506520056403858247036633123390011337383304872574813151198105489207842902579728805924660911765796151498595953168363016782022250764156884908824668277079462506956964277790202805730358894698624415494361031822597247215706051540760567842722212699600793328951443677488658688673738854016045772518017083839537913039092507896745806860923155069807057258012429980722843796621538661120027286347837251747864239418189665724858759328673091395499582772023919607319077110897808992209216425312424501451050282232178363922798052671817197624252757157846737610192631096285274169265856462404432135429711315968658918761910035421043598356193683091054569473944101737852319436809683000720923620177593349454307028684952750294550920466766160979738370983179864151511790386568746345602660859869042383871919632378588194739013452129391608529342757749920059958935605636697662179418212257087035189881357771253164945856129787920396862401175711455532449144225279279839933656105944793890776288615260043010545574933102032194690882346661987563015089627287004001982701097116233734786661893065705666853559402243327024193875909740433211833027001717960150575506411116892145072215290622977202344987761591918871338921826825929645858247719473548251398714270118989868724985219596043096415639281563260443046549346756060683973796277346955122335557218007123308281044996948362077738790325027942027537155323521728083855163612017490278500149809459448292178333877673854176021226244010363290834662300617278733340928481157783351993532656263455814002274030626964841213413501210081799055190919393166399841839570879694093517013145457613412320503140633156923546467902093923155627815142202318918035486483657197058395223391888795805301139083447207887292507248574631704093637436121248769783004844649460922222750793193197441175364576801779049366731436961671170670350043873580265185558875494123947785426351274444531057263302631283918595047208904690447104801412202737589889116620469217588840329174240260519518873991984048802470826822639153429143831928063450344633604624727428195286184447528462926172558661849049084062312555496939690751092698236355557331147268947447490504215254660913040860962963407345041098305514161931724508316241633501756419070841206052578579030867588364017173559090009398066012511590937637103506794552228236562449668829524851468819810508045162628150862618225979557361863846059306378698306887524826542327766189473159201742422384643355865601473837479761599713603409743138980620127622228086815317976926931952575266869396764206294814187502532034653196251777272012014058538379997086332580587692634146588070686573632238590607947447238706260677411711184980771904198464439703911223953162246154063408731969636972571305151751350058515988351376843254244512500661664821255081864549152097184346321000451881398481485222747936867393182047598154597523422745316517819944203612649390140431425598579311889163198504142390595225244830703538900880004773910256549896147519711340029521478433981676970544761175360865505599079973645156182143080254487899250888799219567008454033045566554716134595479428786994968690613910207890871834236946494695461132124679521205039063076509501678480198455445097163497135616369673564890857008348530040902158024950229381798721942308759367708703430692187252158015796639575740555450398569696764003518820026107559855443516073275299009512072336467352812933487187905954481386916674217706771040882458693557004503798660387479020216519258794579311279516135357143880942392674044322249119256978348282854063570355628943505518964552821587562915916277320946243410843343491511318344927554362707142427282123582153963060225141723256008892336460736411367225235867123275269646047724335442574422287079113867909757005402259276022745876012592350664749310940483129906222973737486636677707615761950564013980767626630721489319796830673958456750304540554938112440874603442543023365775073536827364194466233383740239696532208064200650172083955052162389323303437990490998113042365163805970204523819597056468835213943762567123001560124342907581260391947180329829562918361079538259550393579233799338115077966503811009055887033921006448430710848697816181434112361388837263001548457854971964436348005353840041133316821859218031406836822508918081894705704002596025110750227901248779739505098770774288168866047403810950121477887177276442570171927965939751810163625116238133635976860209302939196226197772644219968605774165385889597815604941500845836508872498403038714301828486793566537757928108483437106828929542048864461865394455900957587048473008100373239502028097995868044176588247126782741685591975445942769947558908137518919574971293347427363847854434746082189890013622579492641009872338080821476810786957702053783695396600934251791214619245073302048163668984752450886968069989518790835458297764039442684954985563721984843066674717614304640096239235597686761728063424678626642174478953640369890743968961914059627015013456110942858942218501373315102310822546778162968370080980091767468114425575909577618587171756071927447151462308922126513667594399016460356323692552291331825098614217003114163237493539978404507944198816083793747133035793040935112982327388878136464753004379026137991404800574059308009531275214729871878773254752656247141145733470212885709988512375357907595995574174220866603243402083735506212406401759712521724302474681394538044217987770356141864484079222273288191322989637514938341167234021186281853606109103636922738999045654188407816281230378578237050575808088719330129312110030299631115616955619656260039515933946591670506842598258754136010348644249020877615004152803377454455230010612060048385086103126516236605121303154084261999681064895988076058529069306171338855605830587282668004034827023816914062728179199716601612380020648476041964124888065543255484720113961030342705555252341340823950125556712473304210782042396538196683504204932050514999467693181111862418124021131127681797358367374489026922990012624792760583016335774792592662548540092600486396899107337692307337632508897122427652786888204753669047893619851137820268870436554268320478207620027685279812498914260997171334067325022716368180946688124062307512613973583578537365652459862183403229373476922841177019896115910163955230352029992427253539834074955662409097522937033957032920343448269994471811793032033729918957322221688490001337120253227753262955465954346341229541209854532569555442719992012506445560514478924857151209702985446923987812878467088056883303503424953091020379939727513517537081753678959121075884019874761996682314377791339141753397666312475720888651617988417184930760560900201166162313571146383254393459109432137889229468964027329690375259562524200043205028966722045389945848491075348844919935069554161304236406017199873613464883108989546020049394864471969401810900319058698058290069782389669084071034944058414812073143452819386893369279320747210687060600744668298892432986574750276209275188504431336915892519996525706533986960453131906156209873297530588370387043954224146581279387154880856535206939019709386139057265573911984638940069821471811138022337218801320855237987040370365677955515301131394594095020247282742347078166089725081305837462834028049540276270613223129414547880098561184391231322088521530507428412088834373038221122740187594665241141303262116532915666760567126121023658290245126615124709208586997194096930027206413307411451658844889283679586003627739581971155826007876799892853305482436588533377985815977074821543544081481497760215544265283554595484314603813899375505453114826638886340998253846663221101741211957664215046256602899099543809244240538990052514635499184682366358384876330713597240502474669864307586943681522724352438083214023097462234481717970640824186600976975105756540091156009549880943458320804236903933224001105075545853497646489078949123788082884320312572015065457822747830938647713330517979854326476481298483669867233176491797238514077704525684778876667036395815313518646955292783451273598752950758767356064959846387115746469123243366665073239553604072992735027502510604962153170683237793149034936800525878391620276338108737551342349520027537850182085165686894207717152100096258721242461244887819733975495496582188628526095268930954100081619643355427761771152989424604962050231760221858107968920166965747002875477186838264338213382438988611973908433846566972294285655723838638908525832833724475291263955516441814634471752415318806360995992929110622368171315161543891943952336524494033124052909634367046207401111162720188013983884812518197144703948013797857254057111394009854237596329324501770036492727824666679221848113227509498084680985007413881631564268334048644371746446439654265624291177693822411352978427262515135464008861241328164992930264315285177083473132760939723893203835828742285862339662699419404861794937238557454130481042965498084663027602910581137484003822461657451493011333556788621672197467845230767357099172340593166916998647976298088688093212486386222995364948130641148873384115096574362196112731478212667845514712942169695791875494627122858111093754213311019570788213088575799717659709944110085999833394221351300037170396287218377273880775257128196372739170111712169672398848037339298192388501575036578398294138820024257348435999215055981004744781363586481068769469966686645143312795360468052191183175228832925665432616987880851193228951208973464287503330633806750430665801827902446244878223875395587916852023144514174007208920156378162636391990214632180436496768622440221782226616181097640305210365158458276075584724353951680444275213103625559812770914122386975697962310612937567552753361169041025565644040170890053135831079271716635609527373739586471841858763045011049860444055004758136565846562591514905438527969981714187701208328283191752541639850632955895940361360026346896833949136334124061928940551571664581434145047693591265978045438925701287202547138820918272014708044273812852988305020754372650412834376047710941029529812486879566104098359448639849982370164368614707874469375748027041654247565082367176396092818507285410756137272620208336033108537960402339745527947800220331066297789454347077217920733522167298968168910336982458618077102003294425665243849785595361514429397123856732658505915604730529455569117108469208520025101888050291771150490437107569787696590322446233795121188895535492526584369466875294098049397312521141182204700785663253301204091956411535279184703097256999687689820572461674245286638917691954410795925069269908304219316141586901208553299832677139881671874353557663457095811762897097323796608662414015679500334705196985531258223819564614227267712420003954721054238174030061734922204178833783114452322504149901382684961966859422048723444398900290368483150499583538435694236895763038100957965405706555841055326031977158284011195927450473183345936621782313085772969845604611313793318992601948666750571753149319051454711386090945936430481455842169260069125114301377009520668857518862138220571805680952909471218553522176206306849337689374215449325337163162618429558402341994497730978913457454410930315366488958058842197510707156213444518409758118972129216293540094946352434869902615751136794602406215485435911818225388638529126167976441588791543179581708554809176995529825826841069418269857271034247509189451911885190793132711806118657148249589918883841471080584518991005067010930826457120071341946953985971346296971914537728860196758087755154135757696411181269130493415028175035534166129066099141788415349606235649035117819132828793104447286811175618881421907053481527461258901696044061583865940407272937715060253559162680146446971930515647432573784556507023928876202622983165652754478397406553919458643296522913372221089715263935910188764160472844448974741200508412003415169739899872935946954039492725432292164213960150677561106259881859327073850994755301178028277674700902648361986660265049419016462131139145200583471705430983786949749955468489590390860619605489172433038926510165463674752801828889731818815844282652951054480769754915019765929574833690623259212449093990072451205175632714602147026183612581487709707312167755907732356154317533925493618506029167760462660601346293402623631610810833964879405739512298536980701749703800257460969760274833270116703727017204973862873462915123492211023176885263522929509127487018621379003965579217410426186487682324901427409657995695358209570059002078104276931102531440501231945476177857617892074520293029512756081546452378506940157394639068344914082194069283708767258240423425742673274271204344751151824522774830229382134595537159552951481231087204334622043299436333918448836924601745101970258342918225842813757928927256836636909126952400701544789973514380830962816106947261297917194780568234081845870878093590557048592564924378783659433249735127490316403948576297403411385463510434132692209259264120542752686992765683812791636671364607106774615724813244834576563387023443691897677336866741951556073902738292355382357474482487094035444673761106319649367883157212468437738162024815101179360956313555504612738622084569718789112442519807713232745776895298948019602228854485030310656740458945081740273372394043916845576976771962463928247760643116777259913462385828756224049660732823034906183187350231925824880228992820545975417334613959489248313660587513050403547006853757085792274349089481940890190562015773346285193478550311196613365929402403556791704790583624329139923240064428478641299029153958391616114768901839889623701641142081199123564791235842958128653464282554373722573090946104672118512119139142658881039379882326467446823263992808563202170106389867046560249606391117261848395998268091060139166173830118230078048533553109217914437543448146914261648674012170774866124850819001397547044738985291758067195915764751702506693323892655175795090327101409488661038138807005565519396057498913941858757498431674846527299129036034148951904459984086052370193645975471741446568992808573729226833451473933713665605875310079324571536486126463310798741349473919793533588797668488630123993723064472260090988722364564859770800299081684805474631058045959372111452230856927605484329600683575160668853319134000310537436977752959696480116073598852437268368186699448775499136213555030248395283380573182181900444186729130821854993624369566487299398397955985714296650823879341037894787069997795668973134890385028612991793078574903136938906655144066048192068117311424717578748534207240696184642504495485559837935192560335733733675624651095320462011936850758347540074433250003361385917575229627921336968112731362879034520603740106351441246464028572343349986505838998508912073071689257084503099546739336329319906902189495995343826728270278031223909676058522137150656700709434701748531505211840091836396524695892428732173368092971526997709573675169013598845744184529410083835545867302385711406642442389667073881022573252811089590248785207462460956835645631227279635289273506726947484147497683026505824368536068336878271723198649751462436524979294733235264341662831488382188557130023315702466826323982982878094373687730185519334871188463253008884280752219361804251137682496424774744551864320403668776722773239942289224809761501989811179030103954093834364560582456878431709651476911306524061905867758529381587109562993974003961461072801243009094217172939203534943286908603733224800104307604038379743753824608471715126254004188892382381777343699742652479738071423896048339045992604304429862063895284404732049913497918181248495657290556741680369953168686941694577737023314192948565498002554547067849937369082539356643298272633438969840470031520841524751490839194065838214593917110243645701155636827928303813282358858252620949624452013690780373075946703153055837413939710363480767996491394455921305579946118915483402926203910613831847519758112904251098871660939207144285171187439673498841761722842809916148761538872442260658064684456417265882074255950701547446588698663526468425793724909859165490307519504606266450535655394747120552506785475151781668670822724014786941344540251331846799756354943431814601559653988416630658129913800301364305089567319869716362669451909806222479343118474628344864708776902339193201826910047208622082077959449829328524199735543372144317474083603672688138036733609630777730745509808843164499605526848440166365976223149385245410029975217855453536960716898379869342139966105040777420655313048517707357490685396077427756533839475967414398518623537302503288772177694463651115518720125399348870039773425324767941308287357744895258224977358143900640689264339375649358307112353091323980183271536469652861069526767179205143987191465163327155074095425024059616422118611191390616875079519063942777927848261512946149502841941680140952593745842343653696345446713784184658928580578812466439537506410438429910805161059104937570590067416593415037952883091260908720738302792354854839557124442550810791091604690909792809129780062532899430336049769690679439891686643483577740147641276159915221353124920082430670153750547964638727890979143216641759250809206483843477802912993116500210958679111291763360293473989854852307582990413743118041089257181906241535588435363251454846056373334404076352133014795226184943463507413035995609899220399621575075144952051563325741399767869317191450968595646370721297330530096454049856288928756594501939462773471345867921043487710709398786672873713087080613727870189760888409765673084835544449678702012633868317059169366467910109569148640576835448275282617023327073670084980752294691176915830825451437242683003407027675877008772135313723223706518519023813949974389529306768269083128543165925031898322070059661772492054865508693349906226553343942796541296325857300304689984874672919268666145845772751777447921547988633544557821609779592685687944476039482390960995898048666983088157658570309230332039746788090953234394961953599608613171421009282429391159070708976526567183028706091927553348869367141124126312551385317723892563737400570301682487082633658246977575193860317347860296273532326991466639673494987387772582494235159239214065774766468164323874602789745572630276982356889960579497428024940147205897096805904440252266794457707998080847082357032738240496092715796034188463037909589058693806166719240773067840371429881523952090735865542478353692054148418696652753978343181937896710117763884238959266554069837787048670996154722386288505169080966527839481623298512697074356362921604581935760314158275856657348497049133780891970246034611430332252526506583674573519738136696607016482642200564791539333372726257819756565012679115890281207282189799829030810011458698496636443455440990063061336348959195959131433063956710515313918220451807967702320895812058462655184562252039694360068036970710427195118614382758666727084312085074524400381226714121798652937951408415707728018382584131976456809030601438170360304685900357254438160234704425860141689254489450178621498433577020640900306586749977159915987438787344996204698596528681181237861292780830569388572011998386778653365549539916662551992611036187458925612252061899472202494841477935195474301783141539544971633303231358867829676291499956642731708674234103672504205253716787481434841138230414933271609584146332156631989110593638362774317688200664904242645230543813627501187995133253404954354707585811694006751948550703528252105983648520275077575608014453907839903399079838045289447819086630519968485144445307403039588231800803136306303286867752187083838815864672893293538306905132056358138916947161307784618561706324790143755945895556301675747244208625502995007072201107142984164934967233866495290724658144828499717990909329252533077926618856344334325983592945710744625537571353578412712111700864241663962256561845065042129032692680014713579000667699992382450421115667058501256372585488680786502802404812293361564934275632024048075831992724651348346933724409570242142131883531807503813446816476802656918006208454572580589797718549784736381323463084926484322522979682498484861703919242295246050990635139804822433993817953600402612632746223499049083216745618878982844617305948588487039198125155267118980691772212439087370619248729343033554698738248868650532002780204282039632749110099607845739180749565567919636577054817704100246891715495835392981974492976522859912948781081226985662999701224968086022270527085204324136994536827691100143518002528038764796009904406265958011283325577753953690294445643856011974851269493470855077600683023063986236002388774746482594543614712839999954817111976188207467772722555175695723629728371716214776303229697551214972573558725452989574475947772133854184069706498148425907390666073957490465484803007733683589317687693810172044628674601727053298129390210730966350719273633931449861191223204531676125717990761373428288051818476426213704984220378356543327987651734169782476644806794244754083619981618027642700264986780699252579235259857799580022315049042130809059383296313946888698673185791077310157277318511174339869359196149377805328328386377492061087484492691911719993511940760397861991224645655132366408703240472232268728715373484092965829968860721675609032656866316521356606614556898214820231113706380976740284053102796383223946100051516196021957504423140767894746829065496020701983402929209921206730862971383155989313465510726615706337460991220083896051365927127090647365991884202018313970093974832137417900925078312149659734688950417045386398195594090424366113077845852377941792316400682085757789296549948178165361844423862401197826897711327635778008768111555922359892451941199748820966996785995404444503497432790600981155520953483784148127859375312817204935002613052254869873433268146803508622624456814717514267415915402840056474013208736283661924322527576455166295989493744165465871601845301015047844694977169321208109608686753499541747025307171494647138552097226416689747655461062609984175021764835323812923797156183490558183281071907069284052807131294970182871863842896589194683161273186139934514599591955819336658148764912550518290879005210854117267300370721106621172742070511019009968686406125389823662195759663574462633983100148942623778368061676784131334368608191185804976461286194647711626635279396450904148916926930187558867363994862755441991264050103559330738807390485396229774034236526461081796439162047958002830000274568753096272558269708692766163270989222248677617200817092080802524043267174638398633261594532255707848665487607163195465079189436547841262148402420710923047720576309210302568177760827462661237085174603023868075421988323373092937323915822545645081084139963905785458136032216927558578730617378680674211602388907250612355434256527740026457170098923158680922496855478056109077190642928793478836684793515452370163621364038211792658575641101320958618082790408435227123869627524165717125820387755889345760020128368368519732518753001148518760216358015182133902261630563080516818111332563258275453648026290871151419389519980834808381610639298629970665956161810823377928092157176679220715336492954651244678611057541381166363008042667613422469987402187791601229132354846804388161665550319758569550337054081501995339781926960071571908861197688884087969340783230069981960538059795766977801812647359882073268897625277515377569640936903530442130183173772409969639021791292419134334655341698749656936346255671022607367766173756037280166407763714378203632936066870831476236234346806930657637226784248117898778102838630799999105628548484480053688807667739679451471118409012170134575663455155434787145387064748048090183553400531804081340435687469951855858095666509559440094323904414558645427534803375858063464091149821801935478898580390881780786622551241864111973877359521673353959026747268291435271956759796559446519795018075947968602300306397606198234362398567799730230314392685550540061692961619027667368905914887299286575073148884177493503458731618999427631472970894997542723622669785997006945558560311098787420287424361694261405985984747997858227504346419522913798399221649086627227609488765801435612698636049310686376844293675056231755263232923007413479219508252701540389397921915387859643329211269169919045554286145352579148260348415463116197365784689345411927863212339842043016758194072461647613636162485471545951473469643977314252477659728399028185514739536942666314455100584496881145294334509146285955654109868437551900845947380621949570015516954828310051237186332657725677977300031943105104048441456418598844442760298961965434568599470458950268215173424663389615735409683960473663264031932373502147831848790913174897688311785648495132824567989756513798150200258205753032331311405815854029339265095711262391186521136935675375754442252585020382465851973775816707333492429196946572035629196049698777590130658514972522933431710349631374419301381780651347678110812987099315743641368864352975076894689912094852647550471206525137619117976496951121165603906970652847419076227461087012313621021708089982267859481464292408185156755099847667792924435869367730215616833736084970839838091013130157608248476895162267183862494261420295542546393987660174783349571971095519031068057772302985240927525606593680048415803682921514355687797819375952760676971016193390820835310961389134374730752942678618157033826929319543337181206128165740717130286265245643383643872798796849529374481148027391292855162003647091148641360606738950520230589606108955301055184801865581144635376618198006930314549043617676885838280035451710628033574386751716047152677623969163405443580165011981282651236282105781817983916482279483111845159522432839716384803975065547623442018802820445823599025367982622709548720067264146796595406304329730504285926688676984761858601934657999196431287876082325426980669938164805634475214793393767608488278450626750446669766391519494912747582481172137398150240134610879591799689068931289213539055432873670240898044710922870563404959057263051723026728783505888041757010134555719756966274594103855823824271679942785639366358215742245375187541307154818132417041447553808744605620339573006037642188620646808688892585975897977344872595759235208582186638279055507919497212813379603006529271156723028433080341724914996840812944546750584538361283678379790433786025533684367749411966489912853510625868374697392436476732650914219325915446447596614928533183687350652496159017769407953389801148796545455675664030284352744895733799424419271171017271937233513385772809546051381065889528050359515831434904996764393949791267636786630418218135358647384985997895253154962222595485562669243042334365778825893971506602633957596638982691483071071216864759079758455664334527745827869510048314582829387393423365794589764515175078722336752671130032049701312831868773599987421654997270024897071175880125580474510387741771550041135151466333496050624043885909943774561014428282241510960857491405215926551953080776244488180000039180888854532843130995582105456744774282083313675100234862334050679895567656443607851796371267834359742215720582795781122738897301102808586782445280584202364069393893522032954661204577144698921037980893182258023459783417491690237504594195616385431707633178771913136780323442788435959837426251512890274220152865646805309332328689808871221677236909620567836194863559306616024700599506401452148987538372353918957748432627076836034527775599593706632542747034749523313278521666988526513895611465838082423938444703613755740447683296438677002273790001416988424920827144324752089048391205506649634434193899951265959334655002412670195054989011331660886932916864994520215359790177832482624336671730751975285936156266351351912135654415677259746031911295863342125133684226013599002357811107290836932641184083716254858849731023402310003922864463652412874960322221801253409645436084810114060855929044291253010531732567692485069323987114047358989641789016006572744749303835565194452887856079598820455421526400457204902449172734217333345347459579696368247302303945913036632250337769951095227447903636717827445744991647329230532511257354906409144312383428929721896637957248579038278460527024199347022787276755586993926737700689617839868207014620179807435381447813026263798299687355023334787584095662400813821980657494683391227509083240389334477664525596856332458699204512843190886692544047820822532891488622785685874243845802509389474214410992644264402437284021270629949266233604344154736105732576241454249992002272815987342936717833987993108924515664106410097293052126418790697333102006359524023178584268919840869226526992600435937414650823619660265347771339628548760662963209214767941778318377678736703976859644158957363719050792430635114149501947093084522698279723744159140494305378408908925781085931235144063387932805630979747142000578782039141821963770846775894034177222918718977763002566275525221650580623492776590745221051577734173746545901887304301267623413868625251760544381645446222278311924571335855608311069840041781929912525848084830913707567436203482949985754069388600157962322714871500559664693110804666664714756148449015427903174478513093155573445887061044862510587584990252684237171381399255531961553626707901683301229654696905185324868967475889737004627730447734702622835358846620091389509186693124761642427009132227793492802359429093784828309419044166850970915441642110530584039280561310403835037858695645334815146610380368548256100532221786084927068837073557253780545106526553736988183944534561225043505748394157114864208850496805212703632026890744019899196895698524281141856601250948436309683415442669013546736626880030669746094988139521320681493867000201655619655331677294652087348568715524064805264073805432007879055513570209484540842829698396461966915655037915991052803960951875131647263275322219028719402608338418085418395116638840858486771163988145473478682252351414161885715338665668561606516347856505988414779529267178255384722655683161138248683847014334061738230121223985322970882184941390999537574508565420888597764889659165536655332931141441285986333302935742397215382800012970587580969506360696186460459413777644600649297574196592473168067310038209731948714033002078554618273218693300599000065757014342370103866599199809334398803220366580860588181292845128099678991738353438997841864540354821560401765977618784538321296801760044645935805459269418247876879120669208128468606972890654645500030539793010281132765410097537462531012470921028822446237500029431395624787115601461655521585651396843587235782157614665295959767413259181148510070560886722220145403210946058841901917365307267637419526480427538851687135041968588270707349674777458764837949254148170800786342197375877380034605074819718852339469801562219427169605199391698877181100847535086421011834434417648990017722657862283925094729935493390346971633600488384807853251900897757661853458927812824486577357685782072633383676098936809816900270408767821168238156527778547990043211029022145842225860370499248662019865440376864700593482137617847214596586601623532614343523567463685334651857681253324946787852446893768482362781947037879423869834414669789075474290392507229219262024926855441078765576009692333373937895241953557507536362114224725013661785729883323188577503921045374287816667119990669585378439055485256067915212164621996098453332724061243300409966142391309339294091776886408068400160895323974176360681287568257309848333452708112239770508740474986369837844139379328225055046878306711592600662361327471591861145184450557040435577826794220189902998219416042959423283037677038643655306852562268529838136840651077963917621066665913153645518941527146044503823956162963106851788024129956182178905523015676597371894729114180392002462914113640916454735616824951446542127899149350595937628481397047951923669746274696620241208890429994904148337704225427309871868020552880124027042436690087963040574830905531488662979079032536287969911161142281464779692122737646137396344744416223958554311151757074152394944376967517636445317743667452572641070445716590051862634874063643676962397808683088341184835051377731665141786516493996102273533473482891131199739079332118486965935315595694163121645533050992587054668808851404791843459787116246478564808201543343523338108524532952611548497992361460544756877878273157166477892468916199054181843895614432715349160338694523119655904263978016551558040265313313166880268446670769883244157308777613706129777348103687660026314720113429298727915818994523787649205955452921699974902440042732422218201461365515942620686014979729859618569060897049536069024042549492385353544919832657841534762242998771553805815384286324847206110562876368436338074618419449634316397162526083779047320299969979033192024899120513936906089174475471291456045372138010174617749605828109112811054056001223393242769018332782804244468526100973148720453325803897323728040203978653267302336953903406306691570900563653799587266789578589228854935246292324633429247140463800134245636143122138858933929426202867659884645259720986159909021543925054626104965585801744649813765791099866303694871368113834906076233948021961009117613223689381226231779007677781516734746699605986466688670733538780542301088097541941555248413607606825892634465615745701100719079574716406130923148854580561123528742404176619751464300246217407335240065938843690246658165135203799781594147260643949789300501374265074614801803043151019440708121838668151177633355366925884433631906421845085617538258106102057642779596707824591874507884483008225651263327442032072674329616173271584672875314847695956078838015154938511854861790231329471931346392050871385469674234857551931861568530381337344224180780681725569913200296179206261226120860556444013997267117501025586806080945343182608571226702131496787362139426233518774628056543364979968158589156823357407581022505702854806041996152158897645335129721537328367675073471007466654734537196660882423010933408222645650024623968623562763677521677661711143764575964596649263819944756152198193101627916834703634266897671000689013155198919602872873034024742762841391938718989910811232103444899053536163914414996977540761835228911385188972922697597089728470297040158107143411979721934473702255297694460547121149753184267075324314639647842880260052658843312829726949677202387790374816221288302382107118653796948467520195890185491787366992262148077542685267052038437856813631650052235819590216069363360808944222770673228011062116272274437292963156379313996358904155908666623664800260561027597335459112055959780362739575349740546931235709727134373123051433787203000591295224241895268959700612077908143081572823073762170687026483537669463486297656501088661419644058762262721580854707308109579141300241532628227842955148795530790251499120871029438288055481134540801602040495104231260894837851809740480786597024037345418761205637854330032173587702015747521235469997178028445095991203763722067880115286555657711518777605425290467539406371033542235357892778324089134648872661473179384598949121042158430941822457354944448325133909104011521030596054659545461600551159819823972885193274489423776650946881565738609410796253963931416431618604111850428030837206020075814982096243033863496243125179250820476678675214533412753978709783652638750305281172306105186090266582402738808193184722972602999666744222876718163040920142874266875342423402905339422705857298958941039322369209905349990104086957831871191163927403625511424790494202522448529580950005856965223746073948505136592363469716044542781948309456597976848095670941507101689740111837585114455073341804634417875439893806813598047741006336044093833191649333229423737657060130457077068669166860109987304572648195464383759982145579054936814431160049529155191221914408350162472062432108121414051695313058928149079290472083477806810363153342755496018224504428638853058847343909313060970695300394776280854395859029759002214990985004332061063166205792639041869900760778462260640895588943451412049269290273366612966710427433278186735605698344184429625383624589430940491525458723371462495340777901335853059259032435521300173473394802246971272381492114106558895276427904853031425286552431829688894480327353699195378408520763349562446299091788441075511453484589756977936044715708524489929353464632108310231973131284209781365940383719766983490568115736902939884020156063650041295562032016288239719362434654291894312822795255642186766396535337737344249009813177286332217116883745389262015714956044185495379667044078392183406376256026686911469155680539657304790597168130788001007009973069591398601494052194089902900861815243242202315156109249467068233695302500596165826583138500747359664410590421387188544070554357221853933608483162926330290170495919629571175039479048937406974431577852800671225014012174090628522558776129402376296376766801281571067321729440855013611750292642225297074555843939899106341443324791650803296288909812666286928772840122424852039198165790401317845595449911132467958699227314100232284911347530319609938292347518750785547533416070517304493313772714661197529004158906093835894555575723839993352557331399497038116675659672000109592809656268884718187802012315989330171912803024691130381055663946343107317620722487286852833082932512327947993539051449631396409203711602362545357712548148329148831753474207081541076211712273652618716377120511457512010522922061916984838672836344649722938635574971284239536618929616381834350604368001449895446691220578076743081012044276579811822314667024558528522931995616351616220577161838458720023184345025644710448303094898886400624292111080748194651046641858136864631752198124684872553326948883224649390549548356598595483505175256725568963962143374483728928000364847656592388806526396704076969562377339351081361057500220570577986894497333806629740372793082164304066894456540876287783766732481717366525658239920847666983618118932190632750288567847737450448044095995680354560981120765175166914769347375878088054226657649598991926429592262566398733567138864594014035530938061987390757063629815376759423097745095876241870339726337710375152747641798969424698432756781067884967386481647714646924688862405231620027296584984406179969559592133511107366286151795204721964486515141758773394780957527067036690481285003737484424711401084484497347946859025224838856989772978254063899006760284266653443554358918571244930559663047356891573907319571327819076252897081927055408382871060840882385818880592971951738817184413676870911812931335064480544349113786775879298057530816959120449348581803510217381030726769707706475250873909620297870415128872277583872788891294872692950510565591585887596571386116051367557891451813453506524198099706255903067964551858704080095343549330042042498800583479991088217122491729249829713044672870767811872581775479732175789483857644167071567311992776180439475048746867974861739933207996607289947409133764836988965294874978492436850690542248923837904992752552865498304915387297175985993907706971492386330216941649911795772497023435761788413169439086514725157501509652381871772819204638958741671031814428398262700756949890368050099668440304188434406319473697275219057043903807869743987441150635165904009036070025074062495712293433826249728154378372909342597172847470094545527068527206355150152989575821800114571638733727955134613593393744163801669219724003796168008672267219686799811435406039074574265839267971599752898033103471083921413150028420865559794586206086677675365937153002955234627936087090426744994905807210691744780975370211726217362744322294364980357459800811566325322484872950413895883146052070229197251054475007901679249443571890373338207441454411597283321047071270464565224776625815027252907265535476611141207824003025910715815448667942802334648956048025018117689145567540642523534852069524365007285824459101782811960872858874756267110220722248819503554198221627828404526280328986420114861645231687613903351880793386220480202394451348162747376600014068810862143915181465400890325802023125804480209926326720594647383895107236563724530527538977689542862367286332354761863955429203793648519658815033247042662904762295626175661806352478283466273978857040775607698294201655176961673930844085804004936974195887290853306656349596023201592706364238198699811599809947819604736249578458887281844924217475713424649565341395662381173704382906492592398476411420517064725971247853172892796104007423298330205956041718227204144380143364153328479041088697998339353787214179092144933968860968355172140970444214225940116944895390560255780307111436079362349614333229530220719101474715161570657793002410589986327756506108583280214767500832255959114024059431693528228985068457962648495094566724154124944516847676213883557148613170842764197374455375401663504558757832411210804243945242002689618339101790137809334264251705914962126714288759282937472296583053618387432791816956122776140421173331884500473094219444947972782677437948511107310193679730468028710082345750693630843389472244042102545028947035388503755029182485676495070516968382702207589114461855819558678972082640749526912374502976551765797151373900828794991825532718715116076971380247088756074591239020406331657943333653342997222437655125262098578527305281506959988256301453139682189687876463810194467279774826503810192933966787963866590000094514971949959078526437063462082172187097040405090353431621182236757785333502898434447046626259378016814899484913157375594827580327480835563355184168197552412388051711442422067518917313210444952989389568971136543680354733333432178131594149042880756675281722952647603191507589177933438022533864688656007212084476425732621643712155818847951302297697535832670191231952756554483763052566711156291463103192839286928345723927231558567870754156973459676630097490299195240936854220231123917060412247076176695777743121430885177825530778741979295369660023302471820294965216655063788110295039918544434087574428760360531981418654105140308995485755361414287382084349952372548783572922320456830973945922803243663554281959307283678828778069013950102004637409397968134206349120269335740674436413993152303320726080712533054092012502994747800076784927098027513506472348943996468053616454138525911211326385057686401858670273561635267721879255265630161643926259308814197566506846140130545795231306384497539816319078480738994279218010984402021732402973442304079768944960789975384229329333813246315514290662110890551116736849170965177529985337128709191330326301391699993803245563876555402736962370055596782947878872266194521863795606083010118135055428823589254027206206201131345380215099397893505289985914360707721224680166436445776241747205053746336542131815993922805756308876037892288639290771357679496109294124119080089506580974644764903707346777852627884919378115717398725273530625355488625654708380357372411522450015249257980414931417887191299269509267083101385682651130363278350349867220413279539274604076767759145516741697988167696011958582439964967655799442551170175224077762120267553215171689152571608678578720534033781637873640656302578324525215818333756795859750894146773085950962422112280557426433841793319583390830740508243945105091123646245627736279136700367050699872626788072665846850345406807184552580020222826106199219728979938351872148881104909228190771345912773538821466518716736316786697525461270251588220304649271765747273769961223926517268087186442515752190588355790291541590531714512728215228360186177219955974880794738420480165953457150915344585138287613664875857815317821347305813434039316612237648688818865149733468587877152552196768589257572571374271015647622047926406495600813102104723083760726308540272558652998368105266814255243479455341762258029049644301690420309045992784153996901469558692556578968861572915132916403008221312010909280246749894870401193713282390130964064435051420325362693702718852807541206587416609143613894640894892730266020388211591521552372409859493441336191816938793577380865366262476145242153228997244132141315598794070048744579293408849310545146147149669770929424611423036740709874921132254052495233472354324279123923858997036861091628734023984494376151102204437032239817559132994302889689659510585655339006197936225578092835628275777570019437590208370611208116892840967179498823166926392606120079397242190288216002712820174938188427046888682289589864117960288899429990873768594375380013837303795402466170981841220979852426263693224732102769643642839812152848819191131977012206404846935065232648935648664062724547793559211276606771658227520755166339582010238122547054709175085750944829991756341191955737774859257022897022689782865626187429384720287086633983475044807890244789697369221602529890623376640692804752475944047721512571941359138062954969372924465123428862507598388283721970637031431846147954499689897796645223841425546664507640614538013569768404211619380252270611124208141471160578369400733519002174925881082720682420887716432069762766635293077834837206428343769391517510629668101048217298890835618043075753990680117063423001208164303356486349786171765800026597817028765073237561993777365875609115254469888389100357962634735696062156661254457667695932563188112685497403634831377588326302729202647324039211608044347446681864649867058676930233242033748400885938690796827931049332797139298403861066913804043377101890628136079323290205826498378284594548383254909116145105931235903325867527663156459937676755643507404079955767280161830745005775299434721355884167619842478276857849536797443860887638774563328733846073523852243911726136123897108163694000934252992394640263813569351872015883841016328057486008992527307838539020128595224457493383765727919013062923422456757079767350619991772375448547551754205121817566601347369984217515702468174855576916926659285917652904899132273134566286301809564563122545460355691920362643060842483092206619290116321796823502281648199218764730068402079767490545371561951802746191110961370442867935208726465561591650670265754505335576100733018172977038498585314460800149838982611048089959606096312874248455582389614208518794955843625117983112393534058535695279291756073394266425987828684991737226164196958756591619163448481105315540397039063511821350728077658422559970003676481094689829069953094006110555609021034841437142343143383864546472282933935288203481325747414854329920521320752109780244519648378671910245389756271057374628994264023287725329943922974831445857122411753308762522841069863509813549114878902321786650460438821989078856281217952346846613205656062087274105619722796830941644103032275221066128877359210508999316070530413364946296195651741383672053505044268629181560546461265891482498718404470632606743566000663400597465548524723975080668147041055318303971124119238408456673306287536315239036244417483173587411413517001540403844969906482490084504574141728681460567339758093452831658536467699677581347971080280708925482004966811417989552221283711236728978787567421855718229561700658597685089253976889888924794255770712067871636784217052134073659965857645356842982836686472341937493858966983283621716064715753328896408603797961018561358097599848069034778786110481396203650724533607691672483865522184936984736572983301706897574236388293002852160859458723551011044661872356559202972804803709979418198352863320145542973829996204222312067194151601940350525842492732884171179030017037553803170905028696834922196016581827599512763237266627088309221905507319271591063851256922535989282405690855680384198692841937499072285225727236929858215469288454869645181256161378741992692284344357378605455874381841423167997965820087754656038926314223222117289200693935321712849557950694267520891268666270217257907897651491858099258145771922968230796046400835414998637640631370180111544427549740525392602648234751576067402672496194225139994207048814898127358154012290359683605045281860559199256455845758673247399021171231920363420780549395808535022356893737236400567097099192548850112130832047799302123304187132917030907899544354629759074897584172316717069610862571083097928957815649922478538021994212966261969299034106778359107314867067726571530775192073662252098614962307049530990710898183081367236232960085232279050418955657504832535334282034645020762693993792922886772946498269755299130397831566791524242863003376153325663643571327929502538449285995021616854663805894365202336320687820551447538938091630548113279108853131081504265570102247634286498748146049313070356532837829717475474231796354947216419319014212772094861902709275948966058520230928388382401131807219582588683010579871748406845947665846691463729349548423948648590487284796606776546754515064798761986512240660691337193324857633288392232756475910339458563360918452038217747015393069033655993074709564369284102919990275618407074888285433872455225994151337698096841917225143315139177863681632842858411944320133419796880403164705054700203802859588061150482829877750376639414258685624345835949435035531603767322150725606244754832120263858469476593835858809980030759490724248086796555035708437200039852237670714065101971813703800569993934239270969730334115736932985899167507360556563453683301153021492101339614002825884948339841832437829393755981382827897403076743695153369179906693010495608223494217614481522993578575048865543809076732215919114175634189270849843536861428666714388168578996775776234580095936216263654575567062170418069612361760784647490723456044522283613502395071452751764640208602677587877093115725638480350750728439291835404093173578352418729107164226438560158221721441355694677319411668226591658542203348400464362770201232545364950065237538421346484498000596241938198053220720597828589255794799556281439218216287826292905170488794916498315184475779231506092571495039725633016635012332162003916441769929006678960344736375932994660316172418677009314270810057709377702602526121994896318294123348788878061997105020607563249058986175127417655912913340047626586716316011622488493318876510899838899423925713994331223577816721148555261442989905145373453457334726131365419419111015852164976972046695307195394828371663697084166988658423341388701315319705521256701784230548254786249291402154987586681350334315380363736704362051666844247379270830679248188294156574132616369411295894879152551082480613873491452961254870416362127167160231370406154457072984923181202416261195368178505958829771511385430823794489636535608956169700751686087814826823215798010978338649384611367766319621238795488946573267311398358543955940429543449404194139830171983643483543234364995747384473799932234740349249247028145320817225734984035226686213203100687794449793572805818925626925033876243525384173195705342700135635720489545261105658761655587475168911564005588227931420437733561383457077734435231185701488604046805205370388736453713053425544649967418669247580032307791774167650950831513721039073116398758007934256135764788575519850353708771918862008993354163108691530836625810590755801097055034507673019183059050159991350272625244851161230871395030569654991061550245365883028608169356511269420601032416343647089583794092368805884235569044630004882936384523797800686999717802499447914309733710030177603515240716131234638411847821973633442015113478450290948012297165912864010019712275328287408281163049868800299312526728045500607177028156803869887377776189670428593141406508655972669553254519521523761655997672110361082009364908248458162178000678676172248792140357890569166869160326284323830450039376176811947509408827016544533105600869682117612841696820727252572287415982595646783320806112462445081231990351721483513257758616352945846755300455560918239037259368943723672815870881432205807010470690274394978479946462424193428663463267572750180033046852278140599339071789540325789704068515326211489055221872743701209249168461207294844193200992330376932266233198410524734744240404746532127002241075575827809908053490035959969159630960380461234383827380544198309648851327027930435157088133424925747670172021931037782249989825395561696810894446145015077471455556618544860760782853624333807008580288483795720640614849653845532919729118365413046709290941899148216734373688727198828660777564076684594148363419517332790930822147003148009738397158481252572116809748298230236090389904638984730757127930140232137838692974967186235975587073983850123382313323040215136870520386109299755705621732946901549247090950902086212054231651840478298548679384094435419239217916748401312062485874934282842543751257195436325714240697643640702081964464438006590420047703902875354643337288183163888464701149320637952820462519437154791138695767156841413669380921782996758940760744334525514765652213501199617038747984627920327835163666169261568468987139733248120572157030727442087186656678718193655412242798686129559384093322086997794124522377770075920054187916989721715608621519495184750429925810143180319512151740138634227280348027121017568476033608820027288624926268278660375343061295432829574101473994406849204664732014141941191751818686845775042857023558623528859843369626940543142137249331501305608720033419358985731786571927942029921659381322604980340749277541108689298803105384552890809760054614614488589119941167060426989751857468846711203860121095410505186518802727171131666776945609336464074343809699912267350306482796264094265597591570696184424013100827288465612835378588562735173871789441885403620277391339301701115667749406919853563923753863472015478110882290052466810517441653581887445219034083846472540432371732081073200829868482240801532375012128175411707736632220495629526835571073430003280449835727803878422459258740286455712858034313125990148122052979552423828545280374645024046114987317900504563960123674661947660758313893407559931424027627213077359089404236443657942884235172333510689374265981236630139752717039478683017048513749806873534297234069949773672466893479744020898496733799233177347103459913849857354495238206654136363998918292367387763756219177934149790565454345397722625101607057828288659141925894273373262170592425283960245933987326328478583639427538827121223738075340569798125198990848107065648017921971345161835295853340354505366035494484247037448746753665504556113911210615414453185215209942485124790719777795497743418782279641992793641429127915342276403875317036593568901464852413455812200036482027528910487236315336690857099808360399738889935857000314335439089846618442936957359446935749984711771317820996064508004702299712920133119395723690201813957682225285137961636732575895509829303422203734480483857131860453981406520576540520081603186502528701050688589463375733427016536963911485319760715948770816518926209660579515720988411507509682990707140837386211558589208085979911416602776801201305913019910895631280887041977184265921297691993791524158110892616055006536747302137555011346516799594621268016897916200015702675382456567749927212366477353004249686126637398558311149872248429512437750026838340361766587882864442787741798349330492869993609811209065181526126002540694858818722012944450588160698643620498789091733224576597263490734017813274626492604049333874701530717211738006121694401570149312084196640638320992577708445978509618346392177868174917762003616501993178690257484487422329012556151768724264481747729583461756909772145987456680551117184777771653266476779403304171515269203116121843772452565337436910299559696543299838672385188896157968766165862313097413055894932591629274876522619516331112115870028377607840157416415101145632063247754011946028466552445832187605568354585897191138439760173675731659523094969803455709304855839460816375824326176501220253468030274083607923867889635543375624410871547660238673212543750219983579972033805103621232778802114043754771868463381846713254184041297157129694333760187777695377159730430879581807721808113402111314913890765443468467572754929305634317390572298348040823840175321576106226928649015979777648071328934695295301297416139483266721113506734561622758394155367854321914602800067152934444024936386341280565268033465330698755269431873467526102115921792717756564162926805884514468521995454704293416134231939895477155690311766461719388291275207982022439850927407963398440293447302770784491650134940878382414907946145161616111215170383929730242567784351061832812996808613867958631315724210135455385586233554758669356670916785982863991947697661423906743779941376139188832738997380973155339682359945976724723746356231566859962937343539351733900392093329781234030545809856274046630225771347636276168455301636002412914844101147596242988908273901399260624142660112329895250273646367860137069888513096592645436755878969370118247281919018406164455361068148325969737563818104078747939903294526640238381946616232330831448346518699662240640934973870528389652373840320835785871219507287165249096154278390062428579352700174001623238178339235971625769754217790349275520910373168471770618978613131374689348249286579797734759128351083466351567850874174394045410805171287627888034073411029798415729469258623375592651241758462789027409720044147423570258230290216885093257795126269584755388599281923478921677110981202999133417302161521239303760005561869096489395113726348819510821497601420971321892919700308213771258889241703615435463805926624899920481467661536589220139260787763157270104289115749393245264215365608171520416375604882422652323606831494411523318902463718251110344818356361127925214965085076558872941379532820023932689207033593247164383856527732504261406148033313769312100525626288877348336075573143509468440112615627144994299689592053886916071696627995778094622278805474094194828944415211143250465860918243821518530838383520160769280904926381377464201461692702478235826578127544893889271689813114673218260646963939354715643662741366001492933719503288181113915218675557978304501773950579962350753806817360252546673599330600575228187821993664298178954763195527726344555709224303980147603108920295459686247592507121138943678577880440949456027357861178385302036746559101335271917509600141005205798836592352272388980281223298541054366282785322914304878438640369299641463571412138999984637421723930229360235119453367955247654469665535515083579517093771819595819624141334300622870924277398723857078037062003617104560966596011495234471130831531846028068306384881061359171392920142895573092165611699610145843669765208956169682545815417961637567075165734648290994471823919393608056260062203800538802966958967943759366287365168660062414300660395410162259437755648159279669619701976104748237434418601828272257983126132675330624318117101905963945727971384216931157822997343336606362039774458675092147093909758796656757186311398099869465952194211339307768304088954036770884355249458712713472896587291555383885681419204128857330216796798322277196324926665356729123006598202607122096361975458736917116190735302621192678863096926982076123949872309489382907028667981838686814947080401581058521734272208366213090319335650844646876918780056643497070452491752455127782511934952597466274781796364695894810102577244381117735587567516893032747399097784659090116181798690916303046572645150710882882267993483072866908980952164920965485402247300302336492560959747687004964356771985121502478419316753295853043238917046521349872220770170250941251178556241150075996391729362055646690486498525170491556239596427893891414945195443322767047431694144498468615274141061738752854002441641955941618323114368022995087977018972822586416836355664379107228041552120512608447698778052160411727934589558781437946468832688551094531747958343654100277813357697442665163021046254638362368779777674371933961129129469326447167935893229247700629478838842210100520202020631522894261462342168712991201373124763230356460303306960572879153055284196054168002100221083534690786360834415790778149433134386385226755084583316160812061593694051211678731695219067599433863055804299593798555723523171535931257255240290320976858635708922273654725812659631787793545204745020616616095656406810906480602814950387933646843875476994986499403518048239254180482125108264498187034020047662793066760612712624791550724712960842977047888966865611838437017504359021604134687444725052427938982369327975400375103011702000152542373008670048539706469516680999381619567327208756859112396668673207577994193094727194608622200245771939272997552885213830806618219025855250940430961615395916605291961536431496281170775041158425968177982807957035220421112261220806821202822760991881389182691219254692313293700761373080844256490742523277205218860917056395277557471804260038860116627115051372094443247713703589481605920493771166210450068703038607832354603126982158590942212814373281844615449427335109535639368291099855580368070144687297935624125916381117792238130815249882534440301303698689136962914216273396945532633302310739693238926869053612073721035030928009654635018064888307298922758731342971462526605241823044165607040490370238655862064948936119824810352261183477366783126471061603700878493514971651122365105051208119546320097923428873472510936811630542434097174087536773966321604621505229929998239542619750433986086693268592754321931316000600323058877917416758879129491950869160318634266536455338685384057598527291014370955735441562735040145667618251706357089053944883119792856292934993239681863920126527949758064043211632120662432954278307567015354287252283296044124137279680409918739052371606491411662766843170684370355552382639567342174003737897956891120602757091409743742262274043071108896627202072015348652390232507448630650868485466555219997734854606048677617867159537688839565273953540211165043933452422248517776607415971371200668825098896336415652822252399600398577509001872348297744970219067439925375482413449871846725646143958612993504250734213202649273468380614413414779716971264525413538288120635770334210987306015530901932010569429206783320256589982158624292846850843818068842025844324669985898561706419931829883835277958935164609023101174859773148977882797335143077581918728895739105938576382482050834007974723711143711166269686369670323310351807820658888024664025111514103188570966543747580469277109842700918548944852473771104874044938697514033933264031901224232902837150522879711899989594892001010254719126702656941050863872629732705026671164825892503768720877441882299694345164724735966448988874543235763450902346873039609446289442909327292067255090845685925725387101684202045679200213379457246842552741148854083708047829444775063409757470457965049679988905329102962782734464502380132002067773831729966394378128008802909003671093889554992067129702148339425794018383456755698183546050450688303409348351893798739582270730695218934785390194986966275805284457371084053768891803747458751546128585292640676135455592907089740675296984135139471149564641996358508906236301479620415766131202829701297247801098365910120127014035769705256233680899058565537897523598182341517480965882286959908848427522474744899441263576383525841960262418517058005771740308764978341008222151770422633304329092969074695674664104793713429661551060760131383455646764005126581072066166999633113486660524906114372758466797142371641147080949753790096470759987564407815298892037011538028786705740874217373509790440810930126386376829930065939685165317527199480912082484442519966808636732936187165920391985133392994491122018008455788153354793660252688608955769925831539896481977113178581072103493497689562492301085725353323564367667703440315745927230445851627509222573483525470941132944661692486808638267471979063323478022129874895277589906149980423864960455824624025911584469634986465022215852335864074694249671554981984350383797922817168993201115296574544397170846495150653937120348214580400685254839676678495220317336366503497044818625582618397780701546235807249637622220328183609924850999912948029354701989351465281000080945042131896092533916407101619319750434653507578012405317626544455620800754574661477410002667876993338951791280934239720292251664305942344971935878927960064586301155207376578648757638627676906003983397447293034100544387298408619323161317844621561502336495613814336985929396311110916474081282546634457573093194800767040980425862278377584137081584124230966688366420233578741265428716575822719710712159078303444447156640603735942985516774293500382474906155383657456073522785101110750466811497015985874901678756602800251357603150112519954293532056793961327443005873032691853325643985742122351797745732880547093716572253107222835249455299187603542485738233178109095721224546012488108474730496617220128262425357949975642231717251822658642070010398648456193658711615932970123684789823361030282084415574865372155589207210863785838212917765496639245696534368242982035092940764179160654098121663003333466600043065944533031283788087378223111668684415408435628958785885232965795291890424565913622351742207347628650667913003116728016243730397839253396141418908796939104479145375451625465558249330854028245924512266338696898032473368063060290392219682700609395220321408021403596402517035222778071964185627352029617435049962025197502439924967842403672378805978644387007663128374083035965197168466935096445945489576649115138305072185523136206506970973751257552241724232349360976806238792157840284241540321512345646923302857857766159708698081323950871702805822699288821831539603307184703830686290130395614822596711596767813564827100943473927059194195861642903470214601209738596539165802440061050599954748478111999448367796245174392669382337840024431691464766053107384469540118069813180281732470802392564397070013050543163801968234916558662342186770480375776306589582612695066574915103945520462437318130352864298466564784247450470022926594733489014088855909500106096278603063340775926392062056476570619678481485697409018505322470264001484196866821492609295990753846036498330669372079969702617134612819637256446030763705233582583178436072783717250533082671150103889688926505837832915651573189569696250270147191481312398269220732124107428070533697840253682493925666063804618057015139181066118243150429592280768879142364960202644538592125314576565461662557911010355937061638097306683421654439434998912552023934979116030301518111270332680887889323806034357385837409095722066706396811468256380225291783383149203216186570738152121470503931336530586351998884514887252588363159049074291403172571074038026180291460838004986242085251725491282926177146172235322890815679972780894781587241022250022247470995551181767199233954845967335840037354634621811360221974840257427654317639458640769939672499546510251759986497592397230761082793510027286871621059607583143296751412219944822694193753912807096474643659306155304034306779385343146516311051068951905222293837758600344716538065876846515770767840906474332620966738525039799412553723270917088406471458247693287430393604694953951407148391583869695522517319153606064814579506701368014160059125816019545719587362365470048524595951485315265201786564819196199835411270432055408839547295123525679106075476354724923333483231607776057047035059226960643499165785432454831838801912132709122919048865235060381462573748542762424165524486159126059528031424122202476233264536604923849467577524065522031728019446409559735143289135473559800326596447439943279819117417247984489966459987190928823181262198449270117832672822330738518408696224624698767894423781879767207864000928661575539657596652764310570399461026420301623575432577271617455882734631788621299608983985005227447949383347224454705655547270697491212464104361359405451165711990232605843733327609500154083087547121921467731095190799671648234728113461507034854718419975274040765045976392898876597521081423766577887117744333186121460099328205928839066201044955576825657393674118796233603562334079655299307528171017587705736405684549532358290067069068126513540420449029685987619869704264696627420582269988034702360881880541202547356578031939864502845998368560656514688202727276323031558915848322639408846847650249104061747861097845140915738794526063335495032092580180209255279798121418294231063432482653781329064156299624882554311817202074412705122005754949815573411620030525189155894566014314120409597286030329340082721196880345926244808013073585335163139094718955175395829624996022215710528657420898743907341917898183011848244906636365314506157045805382418678953386775658131388662764944500648155614492532663933077852676885300902383680712125559182344165468777482938757099179124345016787699071863183624916677656234603537234426818239617235387334437418259717275341594579526379387423958047802192472635743907747088946650359818601573218080711857578295129675782512923094608610896820849738153852231228291260535906564626191685817097428183780562915013769832282085029479533941500008449684944929852295383558879800484903511256394099765218240326137645542382263508763379274532413554571886203678542002528945976453068914238210375462859974984140625555202666688394306816093493644963061291657489287128279853042583787620264461683450450115260230039420609826342779081164251212588360799622631564745413192453587846278216132201489368239189898956330012960932085981801000405318094144447558868399287369204362885470071662744196331153639137451012012922090425386639197090310108308591525015352239070326836998629191160869860645708147926609008428337643555425869860508279340777655910195545089116485546359293998884513173932607614666999219071008498549376380332472366855244104913110230202603226664680756171219322122949816136958060328810608580555940053665305977193119875888983799737547744148452406675337800120334640918845914655478166549900909658341725296071142135362828673770874309781648962423814140281450095191503523760698561099476227679555093426746318168819580594757917719848162970300058439004915569250667250267179095772172219317437733322908069192064266367216847366992193981243855370946303966728429395033725381088839204869084363385147437852670306998485803875605837476310704417018785761869568398815621144647877478551630989564426398242738950062629394985424611029841654530725807114881512723053435748038368768333755057126987904490359267245886538295457362799543254088335840359386872057483271711317292182034757324900427609937245251755091322890097470084393324192506251423407548563473304247986333625807944667821099506645000491763590619556282068996418341528215250791699927688487348800706422674470867706097403863215211189480736407279633360060725375133694252512998556839064016656714595311509963232487513160845501202584461160688458132299295901031798954510177283427399028737672721966641819958456704638536926530027091469714005238997057848717414984960318029961590759955026528049035357211052062250470876270494432922822142710358441145381378037045380523717833268134068936673132310298995538163215335801775237561082348894426705868670392641864501595976503221023757602146942653173625402563632870686545067734635468945091279492603959730676098875159116411053726735226490398857468616904422348921244987368567242638055997591263785975211910237653463720880956817112771607905270574040029064274877254044467999580510875743379903278920647162671154035210518058050823012644909641243878905035659126958182097593026248526650968734634510701380538243108619708008275301849706167628375909494963595511867981763060283357758335693565513785245412926769844469162404591959080546933817628502290387338546146755515520100837494964660831499437942124125706065853031124049617759962158328749556883071559459838073667073537606216792406410778678117990665650586694325184576333305702638906582579307337925153218800377343719524906278572059849455159334944117675706119600561318163074761796298943802818640392285031124416162332809533036834893112363012182226422767083623334951425511701523613064411371875938194978023415929325569638826093742104837986260146912464051961471210559412541540598232730564422393404151724651256808182558815279897493437176083892221424208335618770761649133374029783528137237732655706043560070719537550176874178515661891720082665833762386099676697324118118980379366547354334919308254427202127976012736831244225247036273942773253681684396099986670168243242989088290943614099213869991488587536948182414911886770180820090961950504346116017632104337346544141849984115951277022780310653293936529599678177228712067286065346328266197240522931645752399089061079064672267904467978178833364939710503942889153285540531011772319095321950505202844979843326480778056368085433229244798174615662268021571895332208654212226735727541646290236755160586728830549338152163671082519414466714854117507832699036587823674604635991081860010310120401842643125281401861164199965151861080936322030356855050321328692303864515047584052492711468461381819806169463684499577815152422906348485766705567331206593726826176064050507169882554493210396474468787283566915155618975359342136859030428829191852952145101110869900869173209465946593526030660429818900714595436661262740504300294748066881690244076225374845618348960141792585440337794759690991966792492859614677296136703259873100259057384173729760087141640723420548266151060848791233902023988188236504682687904596687002953924922388598093580402300699814777552445794587194147772845726975877768521274281554951112137657978012030654052472221737453998830993784458423852055032639579484150511651526491612439825673828077322516788969419007074322375383894987334882885601957121948811306309736451594540152134686390997367767237827537426843933208691707785047200228039414080746723784385497287218924964507541258289906494160623803812723362161457494129439743835172186526281724700814741920832281836421500338817488746949700723389465366742931219821929459547601007652688630234736784079056814860023204436473452554236799101941224661475620455649439552447824031084792916874383055930245451323537777936101208700165458435527393690346736709136156432475727282781743603944712688688908318580693676556447826300711283427385938063515204471177596331568671987645663504888520129579004885379653469417765330883589739293743323999557430476750462182545205544510686706452859020835818600526823407623729878360940316126310972472368950036714256687133450495022492781694495403380826395571941777847355184116793336776794479252981585707281247766963302647001125361412515183391305486443415318190214109548132072941721205563333429837304418827626727235792076498387018254125962186623578105484116772323055913881385586326782194449193878588783568218323346443082723713139873695131823245170641050112183058765405100408883658984883424405408012308228495166234717744725111546005062368828076989591145958200840577047558789444849490093788259827542998071445796119151562457702467215422551966496159028149944310164379884925953022573100363004175976654324442058099900901963590499589635114832823673291698199660460355528262592019172033852042210858908969312507250911363401716734469123254491921644212228289074750254496999809414388415922203971244617181278230783094572843276743716690685822469314053868897727376453670496271930470685082535312992439892303945755209176234310047531269533319013350925877576110697735566868086579571097261159065467427234731608461429906676593744155107620243892951903128818701214478468139627312856211791207426397497703299620297341700191703302637700996725809206862272922265624886691453042010482365944518437695585730388288108442794335902845571482141793153290412493800984870213894314338444306294117574837343480962808520265133843572805708999620352031508541467839639467944934993378593068633892976385935190374114365010606309215275241032296046409539817509513903802092496371402566881842521622802992100318353897126829692402350150549209959516523540756922564312552997578229864196719078969634038803363016684535466090070156804023999352109287430864358847076538639804318844973269097318799980439640428569913396414211636121091085879297855749065414913706901418644483635395228477229798857627257583694579880176885018953568992032687638852728383272476094828265861148843817852120507695571564170679055670044963505590260372583773504330915097110490503884741220906869360424037959495900891007801024764781455842864266119135746400108294248920036474022074920494411353667373242981398473617510526802040615027569153445702145270502356823628715317981707528191695620249469606539977882517697981015928124690169986845912112638486930389739090397322299573455998998682941109972190211950161344094541472749465816251921574715528987972477217686811209924015737003586470536615411212478562012515872161079306741874457002917440017760905570554969437842299131783419938005295451273853582587386265763508297016729604603501556626823781101837204642208518700918136928423174797056347384755086954698198727736615520466932525586292340170845381189468061877831706902473126052841904552463750133099265216382504359733124962343024091431628020901793059022752278186868920050471430616384116103193069595398310814542493830783530507004911800219364673735179226026752796818209639327007144273844517805750327829868118570981842420898014738381936585641580579135878545147245436043644437707326007294854446655589525636172765732100592858931769013526297260381051509036985057045744297359921431763733247514279787280539274114472024450543071813234826143720042505430799515047996036898464428307988420725747362807423480878612808086288577118783038258907579933602504421111640764823291342386261500519587806979979123272226937919792909717346383243458131562370999673818471828964541173254593366234816944328970769291904249602339879614834828820927364783669421828002880037257991685445825889392627384150696187511091773313276078132117771546323638625307660749639937874584844704371581149639101820332576662964957527352147968075799068896752205527712579374902430785310194286503613529158925032952183736397147428951757067514486910473219155270990069201003508106109067685097467866132117764458627959303903146223458210802200937292343838643094894531250849489764674251044637429913993675954639367255341921918272394456945863154302254149786646349966830360389441847322107557772782181695048805804907809227776825158570904625960479855821767154043143889323502923240688686632056330248528033534245140550137906683569077025342213823338527232743153864695851803800324530495239051863366325275579895508071068067760424205025325166068075531742862982537964981762312787895244365342703676702353911232021912351459469870799762681361590710174090719157995028358641301519170405618435736202467849093003968052129850624559773199668523499948234211271117761118382768198123335869720222793734251516706969062371755213508585733643341337890827109018660083785766041013507779222983995284776477025695761692952231537668202716848041873730881379111159775391767392916070095067445136396912694353122194218675494787009579256617042863078806373342225898754101095313384056549294434257761142173444711869762858780720013472616631635913976897428385362808682159355472375168027628301129857289860841025089798140734178879470842990563775710501688844216055891867716867993227563490597004944998813813115448160744639919891223490907181889916562795836374242266416886082322112745888523237554766520648028002903305711983449559787681307805231997354025038911129407410444609412612729349397862560920702915200268819208372233575588221121088100199074885252077568195289692434591631033679084580161293868799782336039183242429856456956353666375758968292456258834234844995917240810941987739647941800808876164078064602017337777191369387887358017454559462705488682087331833061269390223614760801416055786980026136187060523152745577811670955268405474953172138042300974373171022501102468635623951447238707717560269218803785445788540378908093633831636933021897157168172142618143235894529892162804728680619113928790025891215100947824785652875044903263780047202354119363799470912998082133542763733568378428683214304989151566205774815248596071171257724366006887872886535711984730720556839600628281083560271718240905701689545633493062273795206696071634221415550568585530425085758107709707088424347902723898528770695536213331061953863693806063373745727492434585738399018093643530478408943570304479057794823573503741165271115272782713847655429529447112082723123657992524435652125090183265622998839394494705934640197361060083908373912044423190454025365201405059145152404937476828943842931709441014598518291822407661086325973810900530147119449028427844078312934424160686179176810101952847666347153650450657494595735809541722421348831990267557429841884303140583819616539945937697836640490792244863605904525696988976175666034915432230428468955606718482965787824095260054136353294147226402455364709525395273295585743908861448920136514553033435393441756210086799378439451171891149144129560988281049496816443164427749531548425090980959382294809749224877608123695781513388049886246275245181326417572058959219524018565552008346694738138431871014775423155025402336603527827365549222228635812876700996404610960344525574123307545844943909214632611262113443321044685290937488581923560202613610115338134375625996032088066801588785826215927713650569584493712939898806980221811384841179584392034813371726550420194065017258225902981441401079475224812805292968347821983441077320550015208496915266570417052310679616502951771660498933142342679734211318442269159398916205080496558274841911024315688515066860054562957900180333346711912670222186926630316787862605278150447248297127008536453708035672828467352566507041701438849304408432461069967372525539714837204243200391925097266368747843707991546632080224783877054910842955382659392227234694031579941519750793171369095922069175941383783699456280735860471573975026065764605477844669461816760795075421806682555976490848189870675127205892766766547180220023140145719293199396044572907566256097463531359717165721611997537939051106550661081555551641623038194673941379911949325861017612861977852050527401554053164936255867802419890249375437747652169112375489181794497065999759500807726328653972251394578097105666813932782844232825001283603117712135353566506298894605386796621576060908929275867155691198144161860299403562389621937647925922945282942564324981230092140982150585321055241522965532940036177719045198255508637004320232209862756661881326273683558679519600956218475360866448566674169394986533837994560020242044265698132593556987507758720417376529555616625347824156988541266764401778098678003072036065249550353783262510812085869436557308561922747532082645788917029002854760620958839122731828453699119672182939547504102388208904808975310479830114919265156776741155439862138000452121372979080224772179462475478876565930918470855633340733133241498913495106205189140787479134393469740445313881996272864859459912717112883433363361701341812010830457239738128653497897464811942416266980147258625268264648450434188145805192501432653413578228037959383167925012134075673037179033658623698883740556616544400964497339134410892428915744803590868448762772766332581933668726195889720149709686891301610251394221024303699651614422256041590360360693877008462856432936873914874268670207900118126946216346178448055862935568318770214985002120825187509858369663623729328636421138186161424486644137263486656670870979865140429564337050299931035833736155308283829149522442560124435955687196572188387457418333054833572226728505386612551924987083742016477244065670848511518595990357345867735765182071042646333703772648254500392113181347083370667054149145426783353759388694940859429333391000256503852311860662006489608878961547638868977693539849057431636277476992982989263762743740769140972215610825734788790198838695667321527809010546129136140860825582019546600488530690986171540986565826868568582215124091390488264473298575935385889012291460938329184640982179915823096330803301776876293955644494847068264187082241879523433670496283987346175768878250868871290395602376348231140359503940324135023790519954173301098542030705380704873157149437831183085348341323206116075700672886358385947468385544311626678881883993407821490483144659551189464927967400387661942178251439834093600672831970377476462535376294748571368580233211977616060899301623431907700963795717707288426362335241458140032984183055328749060055130801694782999155068278180302943265935154607946220357491349937941000189318313616930963431318914156929034778519560380414168125796194992090414476085820120233849877347445901836142336747653444471920732142865198974364520495460240972152967486636481340429969649928857876895123567719468166811490572824479833034373735728944446870167126446134864883841115580515754342395454830692408299496488477735357591119463865079844240952514398562825157729136982636381213274953204818086498357595753759451384101590386385133748338226560337614534350486031032793332939453595308499898015490191431615889559101462110889136075981465677358698551587714965307906619563943495116430883039856360123767780808532532228711219724415523130092784850999352603056215119284134401000574699040991572285416441855845254991325013647172996687504406196935278370798626130975035015483537975311432639342050832335344742505593981788338689532151478239760217321735748853409140660575455023032863291914858496081799370095242452792393149631134846629325184544226588906166396509622613140827664217119792160979646495865825554633574987017289812101152062668381280024501098815387527859152340283722973353758559051360920146773590415085191436633825515503806354461587595917766141277801242823227666847335785524220662048026081656128812759564113381054635825569300649483387230801923258043459411428462848830053954035044708563793881489458135858954621295667311196311240954903497797058273483257311519861753626247203434267833078841766604777707489889597570256583137642498418201989405118068114015194089356514708984604750149283268025082709187526160074315091966264243021880110700210175795989737706084490670271004834555376999936554260754768689202581099608596870380151764628424007710228563600577500990783250399072956092469245488121301061100672626445671034336177959322123421358481062324996519252526933547471949731825427733948856876631187587919847109035112416133356142922599861800652209982822185326457006729002508178438757568389691867136473640416223447870248759404830107895478549886066002125904784678301450953026929904165542852111314133369827463690375947059763417489845057480127925956758301396333978529431153285533754408083986668377852023252024574585026258276749007314560039918433414990396529746432848150578667255756861824694023723529433135494592344054974072225593541049723187251644626006429757420050104008866155391051198681137411572235292736544458195494991867484057532316209636876087653897708991460320765012205545810783763828524879999478101457080361160222214439015975862279497557721234093460002242668398183646090905068507690003400308127308320488897110394953266709510366960364677237406785879325900684680206457912625780786488151311528877043114942911138904868721751364619445036968295928954533069306561653079687009880699417186852381604998427013025315357331836988992483763810663951442335394496363850470115293711895960446180941696086904318724215148891854080097577526958399099344038480123404020519626709739830644965894281463595898434241407962359937090091284988732618582487041765035858221364821815023060475110725020461674250186366562576863933642098534002951516116631893882504103121586451484915260737313303604927287887988166687951847970145221203579856702747227091801398040738621362683388259176990259754008382244072025653542690688027741307676746173798459684934871470401377543149793216897755098451758296544288057782482079411673071492960422034260241729744278327990593687613802290303145648248716888326082732105703515284375769068155333905430844746535840662642753217416561860910315486661611343256478640588494690576215751713635799753015093814039696561508570140363387387969428582987010204460791251406722296832493657860140016345838875220018500817029005040750282034092015686542368751357265337869184048328058897906799200512100112329062673044940428857280442451661809476727983064166348567831987155543788592291404145946203506882550394093637709205058029689499245813214581955606088633483366904558754600527161970519083208120102939955559218094783181977475796972625317651224525219045827566872749501117927470058346491760534436218633100943731407017394326531516373335348686359093928965260604142324168543140098378906323391166870076417486403957169443833720999846665284985262044340682406355016253787704914235269790982172553758951163664846094427799188566951396317953352861418899429070205866801056013618841803899344257768911267281684790203435313757599617471735879694895548936168181851509229549491389816842148909134354735008796639707564012094923205124668907524239462758253489154210844031360042624292921675957774275234053062636187902196512774811208001442144538774036144760448002212125459535618841411596265647880228944877620167288951794820960977272524607706665398843476273197374987109288772202070936219253097884823108037437005127036676857648530909299060719757542537590927062000643291198197579595991208398625821267425360754198904958416768496044165340524894696714848213824566976227083286123681971384029797338358616142607032725624211813074573778188957609760763658097412713914435206083619300507334737037699334403487685384285146090643813307981847803533049374742148418408383523827743567470173362573189568811337705697828754387556246244694849812345062616632028869988851496299852017872526472716495870190162938446716184320157804641618353852702188112990081923687384276156200330733380809431458913767327337623517268270351581428388015224184109240750527421226279712710221469262576585766341098330773634028405063489962360609638634028960262315563065096558076294842560901937370054944854912574773759978180559090829188655287451929773302203111292696227246873803472593152744980078114352559241432050257187817694834049338288004953100822878940015624522348801728934031444871209184572739812845510184765540465350538184743303713271711717072352157600968971388011451024543033438456055934730801512683540206481766180900492041472285006560112740795434860039055214556910821208125737072395973613803201580335353684832437923606031308950428726553056796718155860178202754047891318052986400956637184019594979385782777936107206016028128724487261155882942836859761644878790409484550408423692138741426953952879926472835513916846744699408300205379796586318351493380241088386373012061050106129808652062719393286766039399306054694271110890202685325117527776313028694875838354149158491578269609176302289252265170549951505584369807309777395610224996368271810664180208250223542164268155712014133631484648370815855563581731288630021124896966919812396741097685212777273168564575280635729603736106516585392888370531804079554797652723694239736536573412562568974781136826982367681516659385362943528090403301249831468154838751862932961655672737406383346379507299539026134568384097847759407782667506917422839044089490472171402818941432350986243613578693149338277295402444689469455640256682508866890093787173622591893624514396273483163936072846481935368594273231107050324404027359094853545517846899125090990967439591439885351394719701611477814879664569378049370527553279197403211311672500503038491498916739954819346926606304051324050613981023823714174020551417622687713194160800310668282642953229313851544101164002284217032302771634214861287873107955582499315442393229985365641225715511011977639401115821645218856603723643656556078670568916387033388919308344587469836828457999944413165152758425289031402179498441701416067725000285301265923395630283173048669912838040615065182292586332645277082716711215213721678447795266912709031421445732358551069094288358191040855405177242336915159992536604842641276024915860315833264544343156872784514882702728571223235414359085114671688021350657838324427068762295500774621765960850522970010427549908469918133665729132596545452548951843166166438975534593987635874959352415391646218451571327822450172226507330762159890636418044303066150856090072991348483323442030520358492061247997412206373541399881394085513984996973287453225108528894342544343108953823191630008021393961189843063791138211836285650012073290446108843523155538348377868463052495270567280889586708689090095083521457619875823826473974717942093327956236407081772340476922355752799302746011372695358309291766597423480668994829968110847295845259316123759013809684819729862808538876921558820227474837396686136687660295484874124065937256641917967241406391866001992217954172620644008559244962750926881268209154514409596619168871935869398778305620056735752067755383211967614310201911510169229139253977223080310556116760891968526858258114294788625299770773314478622570467536087014464229641097021295646742412234522878359137637855704183277591324078934330599833977265759493514072766522300842280945242981866097389531319087170020809360361078234953637844346306113485365071944637207322820552500175431178149287420750881638413430991726062139656631708285347592541973952152108699740510853997041019482048247212370110205898317905624229947326984454241768723994629341976348366307043937658695250457246711675150962295587790305238485099357955253078425516461953692194686695876802347314626050778286406323388441859716432856956474275377451587037737630113513499193439994774763118314857403620965949090903783426242400181805008979758466236156504910173134655417608781344773655266698462981641908094864999633424406064608097046756655209322469504141559944990507033899373793092628152571663252790608810382791815616207686948313857235959376525628369926669336176384514522770392602024304883886350818535028102209510717217601972952450859826351533021701642458631879586241276906430780991467637337153114711906713315769717772588768920266926098138990612253428832431495767811759415234393814176069005498448088400821600877121371075820561070773961667222487284547513336161097727147882661590470679371473834086464422839919912531952550421338491415155727295086567373519688609899124443162248519271545107668759598336562425428885396762400815421875495599173742398992791358953374984889486046150154827555625864146111503426215578068623323216491019293212308200026174178247102705929382540667966291946340380244247999226961556716682199721604132658053679129804400594684552654310961591659382574370174980559877407185090194207872916437785996244810825951636077635763693554018427035305365257986938478643632674802281335383776878294246527211545199995145144508798395929991823773606718516715854679582914854954181107117783580556385711724779688423610873024085983890194823386672329638459689377779544681995907638493268391491199029314749942766360450556047954895806817201969869194379462488236396844344764979066479607155768545599386613037696307207508302642481416613513622592257631426505726383861316698607101105463261799654160103823090584198585383974095291596090794273724971387120175912230995381259421027341456289947180859508072636266315729132070520120736326949672128425114980519550401298537211531925898571906816940273823848333225560999424040325704827784954468109045000786025491782285123619148309828068001092809326454847031785772988889453865073511069132845998404810568644988326305673738373267186653496847558077727686365547625427137352154747664849234025825503316273052731183244006966400555443344196826417973976999503792502066097110832136428783347338749373112775028103982598166468426773120927781301907697110815721934380876016257688215781726359776194382285512213477708379249188388721248463167434474717432202316852913288529980875819722351700581227537499283832972715831143813769276569422111652069521863430134286183079558796045132740563111763200662161215477231170271691337079344337440181009480122253916378635540761323647959500952769085286695067272384444379255008701686165212381504682389675678813988305700970556529910092477126088165232452365247905814975279835960962511506102282293673032745567279971084766441280942168088726307702597899024943030916832706875412189251832474077611004806998130763905884261329834086055532184867400725307546769730855543954165514955324968594070325386211663956260831699241707587721594259513125001561571351433131658716560788745889322153549935344794560838060815294842169807531691142469207077937702599330630516259627583541194449608144649935154342343537355783214352408007100332850949696770407687533491952772074337516574580476382109457967182860825167293643115930955398390456345788807435270409327625644332476342676409043774530469613607139642288348243261125397608312115260527184037054366940722725664374421399034764849616741630835238296483585146804346201578084930051511684100588054689436907305560694853901274426222577703186238574359632923516825081502101662784203447069851545974639838167846746282881487795617845870433102952908515453292242850675826775495410789221948531342854864275388729512012215850093663056781370271289789210819110172762616367345088580556150818693108621531812364845781030897197780729803752864566945823983205823325318228437559356130862776255798326676540184743080473824498068560927712319780987991605141600130370579084367046243659026060843343910008358015277293656289790685437437625708933697968068561291862045984844010443359851653807773571794026324761636123406224365460886520864036399534603501726299883117711037029785679756106255394528177963526800727379482795363796273714444882528366451539393179179178133601212749041844066192918948301222478603640809796466225313962330088586427803834671984219660281907520306067931437712005077717664245618483843091808445876938312078060657621036033013858288273501373184125025030828141069414735469869027630350923261198331438488191467702778066488301083571415437029712965778344324629105261051738615372607510225014503881617711989334286487987100821085989274779391416329495837266418405479957826517742033219165886454450659580774766813999136727108215702239379179170050793828087357447772591696915152759331810997030419563156963096005162825891225104075250125705814591450300381876006315672979055565737178077519641814600094785970670447511482788056980955786514144119839227431768644457037534294991539996209446382527204745053556650796842428765137007391230071834965165537106163432633703725094299978644143983241631610740071485091426174570360371197139051646478885671373086238870378946502185699696501053358551130964651153525624980847229816528986491112035000594409599901814253258106875430523767203920827208947242893957817596540947673823537644516469758317719688909409017304905373544007610403542317825165353481058691620729327083812017578300911938319407309823119444424611712540692547173918224771118019999902151547700115863826212818106452754741051172164479861860816975178522044187390907191170092080700967379299844222541206961879051819224260502908485181447977224379349319569758433851853608504682815718519849571051589104805002399094262329437301721590398979282526797475600496741753825905702111335609828181618001968470232344614674499579457775560956315382263732221380275141865753324938130036784463365541001124509015730293855962815479198942204858048112824079469027596548520228900929236983633801094757491300883383564234778643178173133225339845325227806203193965310262184703730099975526167132277037770106052198128591535432063925098773713993351282289151025036002547797872153853113874663190505427109360615321969278589001812322788226436066281696234752284209641199947606148417940280107859654382384502386633889851661955967722244017561217079774772614232483246386957400463382016571547522949530529393678884207040683337505814793801176158983007778187825612320085675927613517280602294791414217830324637952664330794783100749700746779615556693163447921352068054359786462857761133105699546563907673821416254160667131695086099381984221660935483835449928657920015105252525097746447640982992824008708744097636145059766722071445387173376720443107419121191964387913080063777771562701677649569783954283733366500236443621241591199213550506807938188496375188981692789601226275731080421267667074848645280318188512448406206612156738712078338648758409371291629287453076520984810298649731399451272659978827647053296442551271685713805619313576849707471146439776698520039458023798718855337652885597739400948116436918266234571162628746135702805930252231889117410282300322496200799271391289152328840853789212690926056713554499925616510140977900214004652647030551735334473975559369470921531481810539405129506980582870551231856015178065095363586710214022873079035467308306152538714373698220059388320290870639156967825514362578491150999134268049415480690518425888455456831776286144312636457634884121987484408193929545915054291345076337722551918214611548729108315136027824309794823822047093319962465163629057723341161627517413221276595778265795283445108819854249694317133253465326349710551913660431637234376987287213040531818900415107610203836621999942318576344181389572767131145753456313849876180601737367494776597079141637223782550231065026190453730390458129971881922467049625063395894911522267709450017432561108811700180165771196696010992951153761729857288466318716980379456399058177361619683226125655099648333728255644347241808927601021901648537638825974944362655627430414677125573062230589212097137794446325813377800316334452644195413208374225909510635745864657631715198153177463602461521783843885318258210568226782124407666066443800269602331169508076557098364339048446282481986195570808292124189269530414660798996396673476671729678122378015518936437407169006561291226563202412967430738476518439589421073154282620036073281965605190578145909525580164118565691656520044924628987316010209081312640054361876107121824421882563240751425855976340092671620050465029727329663070051593592600642092193694270840503582251215234623291971637368231419856601503056063422358332098862077640318896516463393821218685675998720400399544331425326460004889901975202915914218484031377501465337162402905187186741745283750072160652269409418091595297053951835972329341861592729091389071850509291384294086230811228901971837434173338534199137685952072211415213466426728264400865343474147397239893084523307996287998569298427578237285131027586730982014191651405429377106312724879747192569282977864835375048266050035777387800839544974628268181709384998963117209296689199650525449830222025645198108653969505680971108614078160003087521771479884691762329592156302052858276724691096915668644405276046637671351929550525995776179421430601993177180603963374317619226942797426881455715864969703642729087800775473753405875083696829169901533260500198292922642296898015153967492278908256979759750747196980815983599832640858378273742975244203320160737789324803887180103174457203545244814483583479934052828274088161252506563899080611540462239157606179576418164112658010917319155485453183563966577459156259435193989528854158972652326067983833937397348226540312406183783286597713861327961072385125191364010503898813439355564359725027068927906733214918174794321082918048525376041983930568351236124117164203707042173893163537175492493954237756485459707069207282136498285385218201906936640086417557262879580441043579329730745140760613291101844619520066179037689063007103621846102866362386463165908763462220980116688691613941527904475132030196738095104264606220099401762620456174896326993766882452037297927508853989420798690344423749840633998493878437077604928479043422939313344384190421115234193061951341633841043231117585489715735835314593189032981406712772551458600113827219807975588279236976647417154411130128439178818119819755228542049597402975662286973898465840798498648373048688656682465079438234408851265986270404766708175978245956722481842425686082859079641899249794572035277156557155802224342204242108471040844959753518218639888750887245784137402655497953175646953800501206314215535348326907813025079445372735028073078588793305775991024565773260131294864713026564011227308204704797225804776954894079424255707334402548868863748716859855854876521376525697074956369067941001219902232030174174504300850192739131005531007594652590714449952127519328472061190626293238494947410158613584683513481497461213108952829233305654872531363517316412378801260490803847428131945497026006966406977559448339768671473736825016814134609832110106603284572284403244258523505142021651804868551890829976985384164764931067530485426501679807040366429235008926294806417996082331527514865451732974940533433501639013394938615993250161627768287067652523049917075678842738918391983799332367393347770270504349134989265936610192003173627384273143676757159994854964110251353705344922917254148934200217388482843493395940625868912156341165060020263145904654378341736783304031117332331951864649154321903137272220963365774678805191154557095402141668760175519030858654513345955492498253193451060446009839266736404693265865283895384646513747260656025104726786319817026397343867560408159262517434800738031335750647131946438262534126614267871505179522823736528258167098385231653173647288458432321395854145675024861667550628917858632817137724338918510000607026883991663536757616845067161839428722372024831364471717045887045923267271465137579174093012544660756821381273075752956147619182106883675740811695415572070017386372884809205684782204277861098386259287109029013926519757726267679077153493156112019136561204643580344196398944926498283487365966686342021609085236960544448687486467772219542728609879424665861369360215754614598251661931783519159731954898991529616705179410262999105963127582586042736178556382121535003477282208919847342688485166007851798359746862425921841619872846065248100507148089974541321028603786955461673981514945997299379878955479054911986766901303290670913308936632222286925224557674077602901007209474491803747742917865899262834125501556137708125617153251514466810589464323436181571328422587592252656777710594147922177352231180550208270787950077611562446045611880362016447699602460653748891404265460394502739640765111628349830929096035259156254392838532168482847361390573863085247424558473378921980430108161131006259902577789626333384909193230900146193249730271199928045233408948540244319521568643712415010994140474033937693965730595218090653840216778687383295208569615666049288542989766836270671976549389844641773531439400926805783764808318324016122895993427362644897370215297750035322602270087007078834496992108564520931237850279029311202022872843011328166461020444749715334821680015742160944986883592182637798063726875675956194507128078964810968172322773547387731872272558325485713378750366675749993128694163888910392114947955804424718167681683449160018693965422657544968829988517198886379402299639432809417601715739352783917223722798851977628893275135451344494303830432706697344132915310186793178052417922685243761200005886522118735605065573287640281261902976078509504290227738363144936814255136692746196714210940048657270591299526335835553462861653253467698838521877257241202212519215866390457086091217761585204841949677150566433445772483499412955891067409764431852053388879388376059820042363560681921400060056506141788899703875640782643418858925364672749374001424341247625111974904244431960689668789493629529972379612495473350601557400907513026576220199978201500807468292325463291010712243408173707830950042709369145839270620200875566628071580815278283116896231271376499380808509817548575091168935395720095410588100597288520702629993621018864793196677825895939981617173945889278514908981044309569307081198511408094241430935639585417277683134303705155898528543809473612484937986329188282883323801874969955241144271594826471790633208681361564446838241161759449464285638718423325173895706687282097517399950452390468171342506113231500687531090038823456140411431946690471189285329803839556398555591988002782846084570596879034912784473087361904747930652929023253180299689473212057648619206523719642492787267103568823814678137700885095449495957235406335669020074207113442069421627883296161478383092792011219227172985331801848020516290081892274853118348559254342368430695918744677450598951102889859878248547626822528047378331114001331482093475641421912188010272516760983798906603701296006300253914857181334110977557795673500088007948037718724309278037486730076094736443592583374768733284292803978800041062749624941711296686460379518500091569646556550413026335255105213836667042497504263154128586861644957024021641723507590068377517690772646078000775740342835027226451755885267113821714455220744851958319586376422057401524090364186435735926067174192436517829988094223783733602170740811822191180128992174742362837039953276228264392030183948542244785807266442335497935608771298943448992812609583110379780518521635803791770535727813305197615989721155675143285541575376917106816949194737331935955686983326236108121709458703754898925381045179719391873768037021120207798834784662368257074550647833316198881170861106888897495524814019658641356985149773878570634469449083481627666458909261228770982556914833030631721392432809819225297041714772422882537058146062237011188837575662824426938709555462502537438334715823400550164265073103715061238480577270417893592339409356584889870366942584606522563289155094412320764296068715463324128941032230335979853676219029763392380988212275166044137789179559340513705519935050696816124750690739125219982689629118051516661654018875874444512246805571176075819999001633132858402554297891859165309009540141471795110051654861362148160479170583424779909481467082433491137879859952119952856933150576619854947326621330346283871649537038910822960903454531650736934525332879971861940651517707983428175898179143740874152302998035831797852048021578507042645730097706192166999192205692130147645740332908180760241723087174441779796499548911692741199514843289121427334880884717059981498901194684894186625638432765984753994367875563668525283573870732796851474041893690165494419835211471467613549657102113306279486229555391898539389203320718789347256884160925882155467704970976995899754408639137654763030693195864937956434343516195709158910945473892347433423407644429315382643185517785735241916060252495240622415030003590956497027161610726464726429299478184892780655915857877929106770980310414101026787715368328101004346790431430964528338434866685807074565268368675183883143598682976361444513579023978926841206242486569890481364671192883908222209167739855005184842272037257529183699215010495890073675209253439193024682232299857079622728470503297307036015425642189161543373774239839718468994080406134213136060961891162818354833965742589884227615916570875793709446201541366674888216056879129946628924247149092927537724283901241008500288699313976883446833128433514555705647910431245320661274127641267375726166280503030399248326836715329077154946491501003655078326352248928928968397894645010576393559554666497011717948434917662475818249370915529857612721194369323649114326869437723497170371193905599597303709335663975724411442416849212803733385970261984610248645449674923733521709153946084833668359335670891463024723407024758560949497078972183975658125164022286698344560191174228083727024934208486300289291140409825787433251073376742782928253431135666260867497459056028730006450166730158383984041767820910723076850553558211013255742851774447706381701946999957920027475131220922512243067045513722859539709892166489091287064335542892885581298231544041326864798019568416069711765086377987819726075127579440149909374022166409359218997967078337124774605906765567208861304921350161471176126452985918645717212403626512109611302702486291989518918853410070349184797779614445312993677887042388742532607682231211057921034099584238581099397392018087577704062220448573224933818558713105452053058534175305029243935745580481163609078575270298269209343945642147772656665465545991237451596122043540085676212495397708652567004239057163515067515273296451360038657538088667703273619956958051055838258209734264640646807672569930383765309841581440911330002006808941128423205112710521934344793976144638978814784880324951373585939214392083576021815264276982776665394382904341924652721579697238305562521036874678523390357365528610948346366957222058548735040446330153230986681641639257404131429857461331403880397577466957644525957976040272205823653672259521369158609358217600690206384720831037711449144920108273044260950145635170200125998297400530088214536933974404806017244133792157718570283169306120757030044693535339212079626455212494940076056788200200740781804616316900069905503946019046023005936491630466008934867777298704464620745481055383817400816678385418920275647697063764334036411562726568522713967422443288007275177735744630881334870868419487368089117307240370562402598467035446112088110145979436336640987058819242730543575713740793331195216956343584091669522130026300295156877924102479816886804332436423358149592239684185122481151520432789139069449907808846159687166593591830041251716582190536929439826722556223439978892810923822239853619252317481028859436388852427065305919742665257715731735256147209620815146922340954503798211927419794489010792893229464111722267186565305891547863187616455852625901157134538399408689660695252925597829702817871798969985128279594177625460971276409299388517960432028462518334191285914185437460674483305204007001004679293577164513474627495229632028632481539720467673516816702589087679087749066505397088630778585703868040870398218652397616004009634942197130013625306896849545272632833940110064621230946175023167638451243545357608402215516225797645911316327303285369589555596023556653085725275451940445085625435176037186819566866419641891255554050514611797884892508266481088488580904593286546367903175294571607635132830590165136320653440867227056088346949618610086086063563922784138274841843218995093200547925054665142072132238632284875382226509905701079880622409587434333861534550404249564853013286442501988911319268981077034330962156223744322299476124976767938015266790178458663149697723159058158000594703850968345704965294758842882043555046989439822666545113230049108604256924934607671094630862140027023909763930676842360235480994321707982107355843379644146191946767851106464924028695432949465835697842480565120711397499742091438562691858291739636692032851452811599217546825147927872940703827299741940303221930778204273298286131483541621663140430464888482194197177528025081674487206960000667331651924346883469086535746257609090602946984478634173874211239415450603944472296984986675093373082283747828413666826345328880113258480559639194501090434156693668310921639834541996062913083523221926958963992164831729273944744298981505572860119479204232707702318003886832228207992758311899172292500077124104164277248798610530488647211018741645272961168481069556384364513901567695620415015873517323138197665104551003641601650045945645131782443448135065888559816135361535021518917896619545160278767244197268559980622896505048679351489842176716346995474532577098311342665769257731422563677878890431779549673464425671591805896616772187479946322221976003568653932554890053147174684531875874822131361492955356008272964753065710839124480622265706903563941529086386514440832878209104770513399234080089825831190964154903244200647768818054351026893514190837377168398529635427108690027506734603691995328967344718250624746191827510654416709310236053847489533361418260372894726468844380361029890371123832937050127328307787955309764964976844750245894685971104595741343040938777886261893486964432143661797056008416442216382190076808183342503478492544645769633722263789481359363976342907868056042615647292434571716450522503791554554879644964295430728454729474875118123712241465118908939888514076833135527713946308102563692765366427095332173804342367104770065393597016136030251913952709365719291866912840489995639831584586498658709765983192012507049388308749293598793901125611467947448968655600087739511489815161749996621730620580151892937358698000803139772385092885493977048714479871384258235866300796036927653576436482563547064286755946106683361080356954193490564689086669268121267205842863397081792315835215769518844844173250778547898500464461513942760603425612010871445782567738741179576395325769123886454292357630604946900789415731744255419267695395825967304220092557669627524236133593910670050359168127785745328604215568119249790350429011383227979578817977958319055677006471735393793170334882775472194250945401200787706140484084823140655149641690253899967706119133516985225532013192356592721631572267696531863682585682687745689954509207793312036173776203156552006937404353203738733345460261820952326955154557710748316231782373080736800265239579495013921135292257490586329236167108215248491619830644726400292729122097647805346816839254113870112151508226089270151701687506336315129828261974093260997187342212400171554709866807261328842856579570657398673223653599969904680090474584101491823688451378980175913027158443896181437987469260747741786258168351612723844422046070013749238027623778328233840335897242083529288480019515241127070453947870496002955317277002506388190539467313408455625654238266708448090549250285021058096588687904050931312157716570271347308176305387718594583675737968183172210654300367207897765003874107981929148857765377029604898497560632364235468545387999215947536902548852055370233708249911265414643890771323851392351202498817270574663513128266870259088718892238054509361306493451314447224998385856784980349811617824811805702993700375797838281247597615081429044971886651769197246686092422239975686136751441769856434704238638105951920317034963448765953923825552412272729060592918817127156590006650054873104520287451632237081967228023346833196572417048227107159456581050150576797967781593084790305891330946209882860601184733414657178947352598615985653141699458880305930659666617854433077462214095580574668357945774988828478999709599466305345462042424217492086010593753107214223303547184182561411880684741925795914462928773474022962939828619379424080646383698706399868914736854580088938423722241359731326345241086405362568467408350260676614769744368814020821629488234177250176388729980924567340308979935298158678537300966779284472212530602433465944543996308864102801895196041904043755223211997283357350298465722459289386364371403071808802906157049346679706887199007720605979161071914761728585261799421106745890445764849663119387009519158812840303552301179313078287347504712053604483130137809983256662276344713768808356067123425242858469205233393481455977653876715967452172560309394500589012517228987111569080218549403192828333218008855846556546657009338072004473004939505312195290683699561396188090293701843364387815137118539062811597063327429466858484883011832828509975841365973571602799770067846865204411319900256665199726330716083902029412721020490495609551351956533698714094270039861690514087245761676345150115460308406047183648833929218409284035318327423739259201607269312758390222533727301532225830062989129963546085148660066198042635185979642589675832696536188233348974066692993585871124288515061395322357417787149986318239286728036331012548474256694042393930818125508531697253337111972918862463156990394223491507312155772132398786010436039523818098293088963727649027267233341953869259115414417898674810104266148160160723965288869636549820202319093728861774904205206224311635703193862724058236317916980433324041401414578320269754766192489037132922341465468842917997258222669176260430031924298760547013168615269949229803136427721589083642077571278867919490300330849111168351843902120605908767857990032607372184469710977449092403117792317874743294031256197448429361379099906634313982811807737350858461785457731712593104877332885377471638154149939500615494037121530163038147396220186570370115042610727235312760957220578020831555030165327179470030457944997000438808391045155850217240549210504647639974075571050037176290701991147204054921728021869139910460711923964150430320348396247849157625307468892880410023638981202653293278792401034767079786409975648392379607246296037080183092464878256303123400814248876292409779617938236392263441774909496978147810689206854741841717787732715989153329117789407259569268709315365568121715617244380723731239248108815110107759115512353973746039677373715929054329896306667912392665970387523210925683887982103195916636807302615887728608838035799941960552315489448514349195939560156854936132351311282536627356456624002657564798370562889318970234540000108826265123260002882565095835385472926753269764056383100577035077711431468254089202863394247029995597062115833224698483672425109350967799760282179555970248768625172018976280322274957716846977709016181477149226511634303620864017190309281458985288920274207698181246498699422847493672754758912421649201239324268639805681662407002541845935674513557088687380610440216931729956058396474119322875008837887722481137857106264803438520017595556478129009113520640163336908463887700022225520885323116195224748724641826740755107628418866229031247661523602289790107950339525703742061733204654265039701647351925042021453087965935933433354377697330834088992168004823559777635460311355435936658600156043240185848974839622331072828523744612331781271993505211886528426555828137105182399830873107740695978080508589410237846003758450636729479457515180685737001937503209789155221310612174426887103880245239837432271032782832579458882317101039475689673985856445803864977765983794030513608870478995525612228592116951407096263116446821365730805134926901836523559726875531361906068559090495658859622131959143305496670854984387936582390848172930116415331160108986155260747202807199034388683992599371766020269180407538142542863598362086237037141764788949560184219330372059169959597964932725213594605237041083570355864503624687379035981645493313503140096784411349899499553993409416583751551757140682819369398239746296290940833240754657415372602915164698198667674358171356051802578917385103826361464249630021025854519442237396695105147549435152246077691684317346464723411898010410495607954844279844712979330830060818453280602919603955775421148203860103606429791172851574703877829411036877297809180002134430739135992680626953943900026285880797960468661989629655217211929530969510158155558699008768653628764577357220714172306218239548839930495534958073483705619093266716009304102942182720338272514924484914917250856024876539304455586334547099595923916980065302294968617335569469315235828511726337463511036432107259287790729721404822906264866374592152892097310876534021854004347863662469941983513105176134453264021753126273485752944835650385310253984139114298848981249647011461247285596311533530143490105849896933798260773844819290115128939453815970468843741189298008473522210765493003394937319428615217278039724643539472841800521429303991518471847039963977133002938061566655275459437047692405698705829707370270672439817375522367795740166710004462309333885925864287034110042811316165599351203065417358738334400054339396346658230688074300739170492288234180602320494645831743138774603288380399431037792021373116247566283955687804962211198162195596214263954360488003299439385980346394671607149719792305045112993593965247365792301553269176473392234921830737388592298678996826397184347309859175124836301274738725849095056180765424312948167206640643090883217731891547858214712575253941164130135223173276439741845353923993792310541533641750984785924754430597740597553793724544826685942074955633707220669298929441216778675516741580547736151733089334725690592345987527551750181054920578556479820524045256616202507982435926580290333114244109583170875451228371753787361260621772295542712465863519034742337102771691055659434124661844533487768996515885987060593987886050689134903919451608833406532300149544435107753567445310000955784452429683459126276351184804355900429166956893587261110228423883800113005020706382204461067576632113714529714658410018746851402024413896196598457547871801246217634427267532401439785450261183375981807913660594342568006181028747027818148259579629883405175745198610285993680850598390553784368724238824813969976792215380835323352130928348713644504092440012695482270961365762614584599752862596812150416010108516248863772427629786935302070852201029302034438452541504578983355845174666878309093835342152837498156122140550577627159338995113907538688289461591199170885530909909497651712269628065672672997474747862650256765982974578264215728883236463939266528315620217190711051625233084505776761362167177293485694706108957588509009401094655449521237079854065466646221621339005988563747357743435841618116895682266054919714700074563330478163208770362392758446483644664654324438650354976624355563187467119755195721936703474386890637433858510790063978128288053671670024783086563089379984813806263171340339569180390892769275651239981938388263016578057191733925224542084967498015193218987468036209103144345619449192699808996116819001120166667975206645483367161729109572684480484220729186396979909110784535829328944894490216768120774532616485783700754830299931861993819182590563046652610249963663641586144282566648651745221060310783136122070212360294292186343933092134773552086541325468119879956125075074039040772179171516009165796555316696322463379778523815881621165927898526323765550002298659971228620425944666860419613395480493453124524653067242431804629514882174249527226121020610093017844886631053602592976981004277618313020860100845579042967107432224190031983911881605814463459709449153106778908956164941556371958690191762408846941614424416581403588251983121328151605629216573544875466394699716327706179894443710276173877505440484886251350661547472731253703535732627996578471176262501611094471658685790847813879732940923691637666626330698517244368021999965906982152694513354242552444640896620507633273360680660923595365091975135666204400621560148476337833461693615901436152116397802274670688772899779181874882411661325973025778534278500049082372380173896793847935564060918408363357770366794263709524373726092249037062263287893673328237841036326975562111326880132494653658705537925289618282572808843389769033320310781140890593127577561002145401874347160959007792256101606906084661246353357933481400427738630953035209801704106849951826786957766776920433521412345429517594863016554653740539102439207880000373997119904209835877491105977511818634895088199359500429422421315818273598173283942902999515418097539401232423845132468758803877778704600003935704954962829318382415704447905937429482477183336143099190347302105722644917641088333569393259944705860251841290296123819042856015326172704064202980089427026919037944440894004468163495525511827335550301726749615706630430042318286256077922428901890192817286820919620238621999723071585830528697909256919450004137076394681573068861825924470431527103966687572134401272580974448683325725497183413249337111008793089593192198586218253821796655102451828888022828990648659826609344153211540256991377198781278599373250969746073759798794504570144275142689157604868150271669919070918152920569200747926646382305925883262057675745448818180509161678592440271391359782073481565124871853454381887521183129206398983285777427225011901878640120631576981256269218472611852263301464501386928475751666057860815231512686925227944507062296265982360927113574366084019094002862572736407628922417690926817416013094024051124617786827344481012119608033891898565281755567607552762821234029080139657154286743707833880688745545078236148983936250884077765128181713551824727416571681032822510642218803070818395978298389440908561204782526989409543623042506322444746759759249876619526283614208854433486110686425531052661118758667088391551958677840319608241151190218381066489105036817995912278865112088777712912988904444997424027567116905370337468239595774304445640321106717129176399653607080732680112082406036267485106961588487683353011831915048051095584383356478431671783392128673055727025073960456931392437792714189065989399732904382576026069154149560692970550623561347515809807323413236453240996936950003105366446300128936765419104650878370782389202244255781192236602413566078096269850549442085096697684907279163551428203550787828398080801131950417856694711468947252828975258589033003087010480267462832689334841043335594666873972740867898553186868986397378084820116772363982171341210726443896681054323348183729849963366062837977936653978525879183736915962449457842273746123679762335360379294411432101304888662865304323671973080510501754902894640060244855802346492241607162975573824473100271884068196466084992934130457852656276362237754209634340258388704778655651149162486250766477498706350291771636382704953989877731422659768623580400944731506028251401024324488195404539917759403387143690654753887745652493297911091467316196612950436875381440604279316292687221168133773506728905059947795232758589527116195106758281950445078001233594625218909476204254896125481339830350031779832576713648065029641933156069235313685397008820798675337774254675987994323439964963531003186089635501848961326019291230147259611472311799681746315171460565407277634000286455089724607440721645292006597806085544160344250379646924125460348508677564228128440664326685246055035852116282024319784882394238945510066880814456385209279925768356642776932926836893093728999974859691117428726985563242551009160493076603097349346100034484368925703799037853321629567684151223020739806859163869680513222757587764659572099043422957847980128707717134254871186669313107447042517414572276208395856985422430168038238422795647393202922749055003594417541641436210902040874135853645757464386806525525787417013928112409097376379739688497561836465178488242214223860008346442283998178147833182353698114970877962836754591580226366966640716370796926323222390737342333573243277156508825498344359570731671145963561711284896299737938487616241343786780445045413570305870231703420550086914389353652508620530861397115047262151609040493609273209134849643684695287804834625931727318282265317231272054511688442640692649210953692035172147576106105007844244584648654678542838725679235774357122246561868135081375126649373157714422488142611575064888363443365517855400157170650153712498727106127034165417044632628668836434863239688176232573941704338955456288140149014076331671826511900048643876761769263883344381889403224526443241378284101674300174541590696926283421693488626103963971229674055694725959641193533290554012378268804527424915549131474706591105790549238911019531297782991569593825324749523095393750214246843243400109062926958404208367630322133180006045192515784536952192035819788906892878274702390575017293400968447365238595118959904351365012427471849425053797060395313952521071209403238562842899027255586602252390809651298560456792171278333722019982288597542015281046327070750864493750593663738420877283324210021957180554869467880790351657669867517580338765848591462433681632975305000770687983327798152209534253658847231797018913296881759484977080094107908964273250809448977569696214452618911105902387946111528849829272350111074284415667197750187735992968072478460394397829004453792717204331761119489726832105199837964663584185992740451640040806260140677333005409305630327466247080691394449480475132147562226940579912411351487615406750180760485220648487225502125313234171959067337133877674820328654395310314761548689635397976409853190321657117786822165098013132945704459876082870057376660147150766616481469166781602000004680197462762142359465878554637567536598569831252006102188311926580184612239677484824231250954747714074448765769377386347531864384205037158128436453818875582936780074727853053003771841683470864182848824840153654261166314846388215800374102943934788882173888671716264311602922345071090005088973411233583421428637447304756039749724469607901318924087402768324866945453574075912668208101365682491540031295499372836968161155901451047960532926700856200610668765983758305676828382058661452995266000937907629819442033719770183033055797163992593999156012550316254551466627321995467971727923015868268996145123163146759827623034668795701604599133329692515258830805470232917065900587051792628713981624999664806321214236049758097081189069921820448947892187732869157399710388830286101471589545931556999635212909985894279142848109229202315135466452326037031668009148105373605827421484813787610052577554527047431966938081654872725447241939163765531941431380730537939103852312984985500789421360137864605568949007364105066022756833219192517046390462163688366888599665556717751252472654639183842961240251903741814543815999287231151409321649231524284601991450236504531207623917742620085737334211856189653217914251365301047974584691146540589615535191937520019339882576172687533374138168500805134102336434718643209284829640384954822967639452138725558311429792080049958512177841672517347298022444282868569735576271462109169004802987714210636684509586364614035170562311772152987548196247902117786626147505274499523952450862670165154883866842713710460670157812637689793695924058129382230056960664051378307118487934046228284277540846889815951502254939412139421665077763607682400696637878046780108570425613508103212147842264627778042647581307017560711313503239333795459637770988146856840802408953108669979891849569396477201224084315226898833223220625424782821064991403916540262056269570526296546647936327848613674527249050627056371550920683498617785332672520463823577458178061830267846683554936906001535968218559577299870290632765901040244362897307982832294760784221897025258751595323574637088939089436909966428606226116661718562168829034942958120644016966219331857004586547473377122516145417112930905311773584807553373266606927618025244803634211404854228553897307414580457054629572912679988371960227159421206183456831790580964795713948881748593573123049639367639751709548247786164067363189765458654044218932550426708498614190527355777243716013389590552565141560221340479111392487234660203121873187731268816221234431104907380344574499359323682475843328111122037469703692490313732203946149877411203563915057059923368011362583598314274227348942441666015923119329456681158354182471738830543790937251172763302324617672485485799709384064109626821237241999728913284853138234784757989344557728386600443286978142090697443354455523912701549326833861322449117766007263489805922805787375774922457721928677922333148235465645827640660210331787616031462791270312968031525743210835731212336408268348099150460471624766824348267723811747690345991264406142843973218183659526435501217114958582824046511411637064037118850143577341456707933799740026787808007822334196842474978316473968996614520686564174400168843348973758306162495969818617624881900292754859298204330295034357543359175763369785457248569564673281582618904156299498082415871699109380300888591716500500156347415113990965440088695847955544274015602291171172597172494186519889268640944386629557486277254501324449814455984416588862704605798973317737369792391927679749692507781995868581366349259050337285574287599364855194313696011613207946739528795299946699611430010985074886179249899430334559610270293262056298593138380047926210625407474179703973781568986854760511615948060554269426191491963698060541735769836436606710436725904957771239692368502178063166543720991817652645993625597398451664726251922188039457247187541742776774691330995241752379441538140880088637616905097979382607112245656154310390515825032347888492056625744548948635870338600318277646224123231495665215330479937970703266195138538273787160162957500580051145544167868799789024706271717250154406841773386646898756613055326893732273853362436162133239151767363704745492405636629941617557191884825109796097976976589832849420784838443031826218148449943362837346446316679247880960211995812781465878847154355161866754184672173266625435858411076818173696636411268572238585614922053695766265983182930925243676612619851590462222025100543541508155266768369278308862269915053201750646703684880064064731660642450312021679875902294561358867671322171399892410443852175242838249476537073048834014923218448449131341290404132630355488648903454565185203019018334274955851662240416531887157392087758405310497332199621448056715137258621348445763282001418061632467022432123549716670428154883987658350846337384587854189137103966033502148873302190026646482941664807253954346388446113964638381959090123712343933989089045561682669262396349484905226174550679126139718102346227253655972732367949919879604242897323401063448872511652879190035354790836037603001870518088620612617153155037048244841158230366374638171689814812464828049134793769735926847472099318363105103148233985544237921780171577734331775992924492301497307768631909896044812476093836279983521133040073838718719996576391489487560180147621985588736839081044738402488012858426904300172378468960434351535869373997604548689548415121077220772844250769974279423954086019359782983739715373850527775261724885789005708274336110270267377387068942011876868943297067851431375189994345991520589582625556344323785222099283784455477065224923994111898208835432616709632684748631469207686473901211657023680697763629639080518898890544012454966022460266713496300838673313451903233570052954419100035618202260780654317079622127459661337607870002851488932486648236354114861315472176741441967791284143408602687591609545309853303416518471303416734045547367131640948223412093869508061096880291881096291535101301365363375986448286649654031700776038753772338602215638492124600274550928799106353016590577074226308550994802783736550485120171606907236662744735306620286418567584758697510704726847251299655389046202444810224904257347560407206290145116078720373021566155679051226334306118808894536818935007480863918951103144717014417740094331978572569755883751192915869259066209509802909793411099895894375925446169939293738769358987298280551797162949109757604497040167739584138079142568477322883978952000576680631328289355640216686062592423004148104107695138932379719413661799915886461179172674548321241830059643395213510709553030293817881822843970196164011561356887810152482548976510426753749278986768503425359696977254872704156611958119158779764055984396202812142132305316483990509765969625924568274215830861349585315103998079283239272093208759722418699560311825595773718196333594365691874709772322414845701328822099547118651571850658288321956100413432701615854922023244251524516811609818550618547049710880563708081285427195360325430419092137139050797023282370852035272423731308793910044265503216899757155726283627375314166672172869518831882818386442081767256176037835637009973672810245640171552569312416666451480707082136127204395030046692729960167273342706524660495621249933115988577380338976479668053613121833312270586589550645055414109028960854817455714134705743122116537350788457260736002295921277197914349122371379857241167680894323314091190610001168657885925800116003087697676936831124225802975028423016556614542712526898153806597409455894494330198998183663820924489425064551537375527961922739533160348909765101021402764931681333838652115897411769438314021162903612028993750697072013494493206098931132270734018883959392198587785429144395880301099737361854875595441811629739037811601682374417689230655797885989899381308872048077665802956200246706220873532773932470191712633267055686682957350155991271742034796246203784810653673333181806029044131562161457913172314470124417813668385758141902238422797708253206796303204832567065629222863104993379543394436345180837493622305331531988702053036922078020360097627334455173186257912200039180264261453089383227184821473161831802840693889164162729766570579278421127320721284867084997943112615941971328748991010967187814751033472498322567085467403140154210197698619125511467907927781567298594664652848689147991868077424896239328851028614889319423432595905573029053847911624115676782024947087084914671226210991146461396988329659364753854524282147856004494454136681316953614849153532057696600289672840386017527439280521638211156576585963709246782304491966309478167510207959721807296649935058473366146742327965997389956205260886582741017082673123318525606687311092345606855253911678351423885665136673166272765498427461823042098611568139055244396058041330709931589818974979042505688460204329169397513067122835430621323498784252475403054977991358918383304774366314667937451870835842022751705679390678671846818303005291191033146998438418781780042038244134539383542336736256660456639590320154066353927798323393699378818757805025342354033971821362079113552537476062253274698358707321798211838862781415397953147842739675647551443149774631948126086275423960399232667724692988558977018252232323539099760370163060961983340933630580334668153150420396490545233210098726625932123994085748160283591045558473987820305989272898505495835891644120184687035140235658530751517339143515711008952069154458153229196376203228802569500348356689648947105163471399736160439420112035489468728280679662960067725034851155856887951112902944388219465883105387739682583042893653419740257551795276658423554224494648506332082048593253796972445287230602720887297034341585960419140495272607947051824052432119130682873446247899348439707844429168056072972808384893813777292373756879959093852728310382189154770529595494389293299188639240774120923153227211402880244824972431127126670287649359498261101889859719167800110403071679043119915451717936816190239886013653174614288313010358781415443919767862064580753305117611998899004545454903910204578670028243715110151132387864256348606399806395422487125938477045531215580223721746441274605386935636042275057345335879912017867877310911159465198082936788544733809362464407293876943081528280406127480225060036777411230965333394489859201124714646571265287606105114831433163356062177228532446081451849623740315762026217051501725641456216524866063352163465762471324561977151803475811666399453316402338622285350285889083287457051023498669137613541736628794078277997970567339119296705687690626056259306631384674361248603342689025578584939856346320824388281813228691901386449909954475282351168636957733988454992012590607366237521617538951212722461051951235214095038624424030201584021611842202458846463442215879814022779680529199113073644967875815557032325071840171462985983539994265147307111989778782580927859934883896503975419240284649334116988321236500508660073852388123798155761168188386118572085357702515213719689332409421957939709040263689957060933318327146766710152007459570213039286067548082200999911449014196757539545156104240383593864177759685728879908878522730980847379738591879192619867091307439200367532058322604041579527641749630538680399176156614020191029812297432985428347295709148607380291602700513233994938109511900259843187836933720430502409744522094292219908766859861507351097530303623792702400223238820034484332483526557476267976037001426444901452578305551023609904675802224715840713069999189104685732281301841720307816478272165253400546826394821088620939539510065889887132522468007416310847644292744371450951237077176370075478064128893042928750068558292694783239729676703841094341939344884707794533052526303312185107950538945745226127936185626737053253088718282662248940153102629813323459914610096167969483398216409463960525415746429753104433538904123128388065256663483031179357361686204481021276034362941015620923805771638740645275780728627375695207062707122299172350325474948519918884096869586197983586722347135131914227140509165471057523426039797907191671107461033298914170137008597922075007410688992913387500948979267815220396839332331487847313361912744669196925915492872142230555476167714980383831533924811167364156356680622679109847206366529066637166085008049818699521696331692465972418170585733701112435120128080362607212193874506085427325816160032616275793172966513035409495017606399333679599556743773075033873481391457743564169892778999990455332584617553153326064986204420734608619987443259934057930594797752578208895091279546631836832039621592730118616859486670092333032371022210381878760561684223530698840562432988622696423124441647738730115557644804695139760790476086717321611234396388376179444556849822532328168462097462389475980156936621266264235357374466447055152978007175194366115160459596445409905543093420543718723298295918622952044820067510883694042972034252104278226559381831072143904532348032082519804096613702131162493760187745890405477498808831340008449076783323614448527946528781892783990615385613599885332039637235235324607638655208801042397409930078037756502283942522705751292176228887924807153601849128406717496332606729630484120838920904969501622749217084952313106282595976679955170679740167020692356139801760865459734705202629918036170670549829224108311875058079620939704178997483365811693331045608938709412142524961143621997954517434710951368237200560394546943714360018673306048657351228316103941310777190630356438832961877489111641776978814799721259933369376669761324928192918853069540872561798161197676118333981632584192903734023571102733929354346163742667159138126911843715088725961188522839232081384887786478351010224170931131777050198488671700297467081833261238076238514779576693864900805372204253174987777060869756573040999541948434133917770028010516698541377072735595510789374948878436614306389136596219231211634943301315495115937484924933574799604035993184718091153401612764915627340098104488730478498901809240817640411464209410624586540947991477571908735294399964839276379370307818616919229707095827272899539862418794214742475481618715589311699212402264412434965176512781385885821260919099536188962595042994507096841165774282349520040550961928523375200595361617080446697897659721825307905482958283602600436429791665775664074739733278806581430367141476297413858245069575731181449284906731453263672737718147059178562885093424047791749795384343799775524631608548176796785304290333528512750725757091354873255527953215730542927878660534480811165372328153115155545687733070665316291999333477253379662845222382148013787291728283358366470192934176166785826658680160557961250695303631346759045428055323236481122797671330854479575262943324102387816647226775830611663064708080779877582812478925322145934019654076526751330786173870374042591598019557965841096519285445957561264737813261431684166916148810489959155910142229797820722392325047925776698510042913922632773066964017915674555789092090185340805866771950957377671468363675564210746987959566391994947434177154354308712307787543305804051141056320401341678075178790259533613436479908857767856200593720474838762215785291522908683255543494661818585639342824137005573889444448920830324009681365489277339276039812701887281847189947149552720981540604983702309300231995071360995118129820620721085287115105812965079850491723880319306517229476432186175140592195845537106639710149675520137536736791226131810131214488955601032082451086498303393982880213185834106703770397921176171424370731155848098670590773548950942630590764218169104395232113690510887345877545185840996525856410859524899595340060907415508181097887881654874309094341159376883186986296940302183950779530241033447288049716187956146158435576596669899805852772251878596587369110505984471584086100564419294892602181959008949394497479638015346590691224544902202320254498898724216087695104463594798203426858347301435477105903983063886562426908099849624504185685441879973712637162715028262373757460666376990292977080342076104126702801612120568836235697552149061797912884394665035904803155057179360130127706145717160879163431346711421700611192236059086734463668165916161702989491866442591992867735666722297919607972559336858471516179814087765206599039609250813444989406732945525168968837130672930509328143063153769053929135341278955586540709471113704587068531469799419264025199293550387608479620903409108749077965221823168106491866102844558065683599489292550473383441729190192124076280811933161259370161558090140866839457840811391358592153961441497174943693509903618486982750539706964700658576822049796313387006337959596062490152897158093347964184475769585092270511190381180537835182813238940073526267888632919077155768738333297404339413806090366996528836992814907839059393172098775898828399777639984004032929720981773218333284618662887681284917885324426213703194095963875631620715197075226710114902236456574885419721755213767010654049036590739575775205817697722584421260209680061885019995388193746168239773063217898308161835794221918913662456872832424607849855178097940866992439858307883082096957901019315226924825463182678714148335204193452473017359279868919259439467148136779940983189728735796660364486128109894448346471328800416159632918024242241096893101066501458602048731859882817121134691879529097423475900519429184248091990502626761530632119334323506204324468725945114946559936883792228451010435520153681449872692418289923907221261742098940809475706120241297692181761829352208780054378043386624399095960817928409593227409215913363484811941976712630638821246666841298537347370243461349467610630469963310573057315623120552821559265353005983094636471254710290125295835917468089869700869751290306169092367045213158274519764575315940916366191790383108955682047026132658776257774952818487792403766200882365097827898061996930352284132679011157799696122707849448929126700501450215351700930024536075365866755592870434346836034975053355388918674354999020656819458317972657566947845999939527680662940084184749033472099358447305183783285072605571738782793911974723497434741657583102173539710543711596013717359591975529701958750987971119058440118806387617259654837188571380663650755427752180811977759584594731013216999592086202374666571585570764235304526825887747906392932272405351116931741649454638361403979053646146051446289197523346115084515283597450447661845057884128673118457530276799470741399420896881554746080197703686789557008581960365713822347443910345836160485208689458605687962481519499244188439717960663862286094985635997371089357649140189106164861355395138878432065407858878605223836348960075242305510510940481570437234867530648432501742997280430989692222304132949097936800350833206112001309274221919892241944735825513235498149759904529059743976653622774699239299536540137000577436938748552154587652473329016462126171867412287747960394713435282600791493744769418481294045337381277267662712267275745782367650257445407025935978154501939520900283481796893286403144840940871857279985487135930024888204270712837355827997730522301005638367227092505860521222741510763302619648225093170485690635162986784916778108537999715996098624637549731313103916717035180670030492082327888743591200822942200949019754109596263216392037283262869034353843718295843489414849787472681759915655722012527248063555520218967161277132397683226591816054197160615068064555089333597522193434719178494406309187380121492196395780544972943801442102615224981195645942528302202060286327145549097234224305477397937135186611543388535412944809073386430637966313368324261922489821509390456015623900395731100336044407447925064064392513099258776740426821958177989641336953123682367612701094618210160603749338598525239859928339173129114257740386392839925439404822761443076008617838324832703673706262600830352897234182072540010179065426075541594129452211829848521490664818379464970343289723104232122972340801894538949959582795484589692644494707376271640200312895344868196995979046446120290192328962992607807592281078851458572264773606911542936528285414206659786122018746386683710953933534675073071813092893633395242198609244700214258365205021959482954979289511408454993955386434198297395783493705454573572070225914105569815552822436986027050746141979673117907085089929027896952074317426544728735467200026253116402768475195024784838392594194728077290359773317488397229332098858959146435765919587275390730546547466610134510876533105047292521207896406208420709691877813866040345159029944411597003159844039101409085077110505062546863138706372056592633632204295766468307961709090924066403230422904166761628170973577190479011737299076613290092863648031710767780158981895935938392495240264243158919334569149908533873339096207346786923749308197086780782530215800933578743761776201818298011763089825215393012688981056055633377173380884998233039209298748897948432871343988002638198453608731455906651631677638082962913557454751428480516071558575386531525218952202822331871651517630699734145023907542633012299042953278667415489056471130235699003945132276878256876281961783590838619309282430142657069304047654780313814429013575241332876755295228802530472728296515043934648535927997303061769797596405799035023964026218447126417834514848080906225194711743060125434205323722993924099234857683796013334827285269013115267324375701364037063996125874950388348364776858567530407437700614238464343947193422474431563318637781971272987339854060574693313998621805690117004401957439815838258012391419343025723186185422410342464445747031214312671544511638641482517922922875676587652004543488612293873209786307510491131060170104001355901363451365770172203133096621327448277591898808271700811002579804955886504437958764033410155246460145729985181980595633790023165597683334914320157728040534221892890723801624922459560073710110350181667085299889447572105063226324125547180903579046443450613948300754981463666826405762331671783387051632670315821959722713977385262741551318812651727736571122762105867398105196013321342939456181508843518797231148022415854057746113748939986960889256008588189321323855144238184433438041107294341516393954245324383627641872642048663949041885506881142967931616921598233633040385059922208802060425006813497223421278894680296400871495052946361738169080888527673376456312322064023922481430515086538752688870292847441476162864454904748423959491570408584985919085066514783028347703685744343652400044064274019137877407787908887843432748958166710262507138560544100877507831634179096564722381698983199313089769211640189247148690723881439291377017621238027737905730365222358082362858751739487665489673308914221077921320282100153178722465214014540254533035104481564805302538930830832977252796210127860082054903171202366283626092409349942070134109317697470373683854198413088155020903690854134105263389644150837035095331582089378774403589205372363953987532606498544393296405160672681084187785630001615294288687663501641401902458943682862440913062312534966947943161435664479804553375000383653643644336929949372519781850551799157222670019651228715599827667857566398241361649519986169632286263842706610191335780326428566214791123308294731355189183508447850214162535132079526365322365230617282953148326816688702443719347293446225612897839122344604828637010445308803211363580382098759322810496600439776539660596126116870153501259220083420720491092010065156892553933100759294163247566026814982404547784007086705071460951704106820261349712699101132112733384400743768293731355378109453884991904410778792441466682876020195260598571903733667705518963449635972637985402004155302940706987144483143517470502024975322228126361398582904134715438665156164709964286674616055614248350214748517720031400617680414150448023551230042642113583214340892338325529558688771907613839654062568039350252007808569755728686896243596731315776009065506435252230530755917284621076794087478147137400159684755335954723905770048449720840341556773416084100568727883174973929736516971612416659600719300377041034272058698760085973674943281411895943842429188076871724990794035822968240312319537538610755845487302275433045774540493531039458431931690579955383066604678736766202522244454299206390697309058560546581716651479456935514654603351378097350664764582947063196507365558335062584594512404730482052207756229343282465642690706847143408144730049886118407408325816825451744650483156118916536513529057305323968662898044477975188378428301602551792814948341934913228161268630284853165439406123640460889551845414430801061365000282424185642940851790612798743673415339895789057424469459847663567720122092233581138653523224992161170579980917158188285738390616773071265118273565367701095297254204036262583312030847282535807673829235557110823902793233851446811517848635133561151747130343986858263787054967554498443674447587617632751906107623102692138131901721167196398695374603752588406960597864025124933598893936662201899379766206406989161374090467782573777275994383811130254229266651149050705114127182968352098587961252519248273205699224631114153773976953922515425718344897981365954392097993268604848816964608149612842632625567355231368995641896896254345119028876312928258632126264736916184839276422175163087234789297657979320891773893604871681218102081406078615115729079503229430631512451612551413402073813915688838446480998950581136128590897402327204307308143110259927051940142011923980947325670758183507457594638022348749720224202226658627798472854854124938458135911388086034702765652555308376201974037847981133417370385409848581180952756315903433829856523014389684165473088411976395317045107107912731435613842191478871413690014261959963702937853914208353298815063844232260173334335646437178529221619499373494500477008433612679362380290888121197074329738908295770526555030538677620126399347676357856757272385643323644223410824153249461616921735129498271423460922946003643105362330106610493565678895662518897807670846951192975707261708869447284522805724204353131453147997634974988025550751419255020434756834328926137235215778554156238045916863900469409499156806030848915542163258202599981957181475855206296977000600276706925106210585971781659986842278953819223328200008595351290105652494766617740870933752048496532479939902293210661740913958615258253081570934128744802169067488018507902802692115387286706505558307959581131226003855273585777669020370353808406810060750691211775554316707941995946574258234996918324031000293789203118372776556586860677033399292113185204514346227692692897085116949966242142586756826008041814192312413373111908194769953249003835889467081878169352762457656223618555980322647032333716251145370094284103194430200767231015242369455338872938111849595547292477082320334605683420158806338179452023557783188452646716738517771914436093591847751671604083919194592725852063805482542370426699070094422789100339204349194827483744116050750649149143542132667463203783170894285235289701435720811248061776889039045217834619359985265544637746692537746228000064290796011513615956893588164570567777811093218239144562596124554205326029086320317403785923931841364165110722799414624403279514439052669006372386826948856275472808344933926864063394458983739160513273868977287414746127171379408420203520522990892097058135717972893249168124418627232720654284036946422925437778155864759951765917330446275577328248816824950212669305640168948058019614966272960158136594151651736644993578406742660727245413919641001193467105864896425479403925240254729049062655523042387839392565442749171510816806170905671505749419412561298638839936408738188821042405175864188182004602550710848775178347262695948158991569728614423614796042352690779752351244598260786356653869460767557440370260995769997756303947293581476037261326527432604769106239161261284568012284716115979046976731404630503739072478595229392427706292716430992405858806352195618950243399281698979072501296009744658785025490059680982252163316413231570270030234228096221116316997796996668591276714677339780677229173422793360574447030818425347261084052163804153227404650805028776818429254006396347627887370807678382182399159035056525833456164706718596779703718783671050365650158922450408870234421224979472869821408684686918145926113511368517461450418394146602946107231953909455328093585874424482951871166131920891341141244709386523152838433971784350617923631127736264706456126705807930820737043954180770083823244861762439510791913874767127408959333779067089249072975727645153697660863593882233800885654810779817248466283062002319461958302632338770161336974943892297677507780178553243204170804698996080404008403355077240076234038477844883829203272333820424261566078570890008711331714936923688541125303000962708047148703308112131887964643152861750348106018449744002486439484612858895222646696631183889939673344984259865625178451882329000572352625480261043108688360011887914760945774557434680433476008018241441201462027173456818758627813816197836550941085438645723793361416852354699229656054394989039918595087033937739189767799700535922623575393277254106336340154988042650440864618321979002868544626297455244942519213128598424498830211496184904961851921856085982804781132453508980331574825751292979369284909703328094876864919146735101770083392615642622507692811786780048840979090394506719345321966502246287747648009827266277947561310477948674638612521320789094482641127326624779153024225049561790411881027663853481269520728978746313185762910924308722554712690861521175123593683400374397064248577145331260233393100059544479945903697617560519817887446749032703918599676958093959769271618208264355286208798813676519011624047754455427091927305146702467877905637442927122042951934788085178800934169836848099521964635135306522343341153224447016393695302518825461508873708155679226077506891224817238225158523161847229954168317247195260595661692275499357032664258347558406053455692468189851266596898000881710192387767223739921690280922931121780841245752537758023804272749802191408049572288053250582096062248051231694811907407301737432168096386967624540930220696372909188553470003817918354372450059079179637227287939739768380649269168948620341211291072484907142726012780655296914797365019721171790012314203758149921803761302987212968279891598931618410012659898604940260504206906490413763751326956322505990338308230690310970272252614573299527364765159826661711251192872259575834942614613945560531499145232677526223007953007107522120460200278458655830512052762519851365245354767900939182318207512508479320384265566260601743243154503413471568879590024549232667999506431134497303956515983334514433225870834824574943767995912796960732258234141188199682591840293828412775299529401202666510743967954079516195274472534133293837643687018369840193283116687159977176417020213029365540481982257121515214857094096688804619933539716252969517433537348903294391509854865421938532092142003921305118983717669103836929952294242230632759680426790105277771231661084770382924139718648624679262286119209502322575047918192643868808578407644804250680544933837822780389549214905367295915212195568753009824081332837530393349063445893989454049666841063018710784013055352038108341143356050401204977021205157399080304772712358971149191150295453691571890685845380402169946980649346072140206290817615745032003519932546541953905650286876654445037119559306171415948714807522241479518654818027499244691353923015987906086876730740183528228457825520687071080286375917389556059755746208290473423589495926358293459657916619514774855322866574422466285471606785336137267935469475140423821442302138786773875461024769629305252386810675090256222166279907060786177323012744500396431987386177103060785335700147771826693417039816735192448972677295295084219580937429438426719348486228144953865076404333498616282490156775764926131377421637320867240550225494979518242083340935437414801653031655964934761515148280790336486804208405669405349072104209865176245512258208377679480059280173287490466599288080287892215259191229151366901087142668203377887251577169298490926115643332724412182705105421036148030008119763466915799191083986048302187179297033406606491633399239424335930696359307069869985117493157957016391132707063020927948371528156597043743006161699397900849894456359149029207112426800637563571893602615958571580202597484839529752521551822746820536478258349854140804870020998204549318380486897529082273890867656318651810592534968580683276673482135401545504258226046759815723868173289079091870145642347440941110297432237618406058961649165693033899879902927134293112737243926480257543164647776790071094300393346596760345106111545897725724453948717394165463356876865010361451005877480456539304871376761465285889361242441371352626450282041319614024156817174031147282305287907997353186811218348074896790092237265076583099168340048989058458589597331800596468832767388975091997713148677584684624224461652956741157751376777328402644089894876614948397290981376477747905376879706374564761139400843531992163247595535169882936259737928218833101094051328166096712866867087120061031571289558071407718730407354851896670592148313515832600525812048763159733995949999332335519853808016072107432655885125128816340811741943445838184055733298270081829938220134841800804287172888444817948900071621647212099351604968272280547195181726053521283454033886364080121154302156302398886456612034666287020830259205312537584481054324090966892567255456271916871153479272269288231738551293011776124352374120995621928741223915555074248896170800547658686109070264228152854933986917939504744427146668856700845230699950774297425271468456382700121202504426404554327211564055957825472411277659742347066390284128836753390276698685794703448185141019483413032649182482869692919356077406756236096098689065035881879261436667905761470435223103393357124922031288211357020080603755087348344138786399782637183781323328345947259736550389751018913337527004920199850292206837336219159474887518159646205987907728675585023348796138627897369644984369761708431526242096949328979951428151195562103483004334202411754229799030527288389646616624572314946870816816334462642864404909744877414882487260050378775340887925292119703538551984274735274571057384935971842721230691779153773447665537708050877157524434158687601841352342218535137030431212190989156383546722296822826806921234395416735978615379575754113512662207106292160536111521134872834605139079312918707604744281823410392686956311105229308203291116970492699766239954470571428283932503916212456454851156774171775168633462794995548734697276436881904314280630785355373098650965363111021578322427578958880531482251550509762972718835695499059472394476214185250464723129806281783246125310937206022140041115273693585504934089906449727609275223413614770653451565160407484850139472217291098710478171448662323747546315674710822187859739296846594127690956442472786627230363650924148609559243542436219244008767198064596174078251712848080705955654952521164594031611353585050470156874614783601447957786572717857671247531960333497172762942474377626258220942035874306591724666151823839698643804048666551167340435419337098947555662487952378207958680789134479516556817981764966050733556244938891888965032326057181335768071087995235048642945098672115288439000321317275395404181262873853055129342027974097384600312597085503035139262008902671328660666432864437666696356822120126028157502985400579271707370660553398875252803723241661228948712521218540100282402968824417237312181491415306146897611922493162129166832046625741887397889507132219039949616395712889188112579007456766599535424128624144360586122817450919715667365814910618418765595050393785852621929267602183512680092640197443772400143432862857063861923000739163887834953722943340404854094819118217269345718039400533895388458769431685050243686530307606847964664324909110689740380175733504231859577500908156298586047969716619489775145105824664185627461493778800908725255200787709300528849823363810553751192569151079178567470043328901911975139821866080478932586449735800862801867604784369355379765455075230883526113636317041509807953532203694969839971060426546457373121337953232583493592833164170310800730655888056176266904725633859061331485204914232989314206396883033156320006137184775138155501823974279345198816434649461084503248062698095473084718887162898419941949434080675730624149019575453224807307525552135697270116427960336487596793304478806358315598856066116553678623857768391318421450166844214470417221891670495735613154313186838209286215930564710480414277354838056178396431776427716040612761222202092014721558338330126968822659834912024211573732493479143401854444941769431326158809288011830590107974486541136717185678000433872597892439552784992241312382230349639004093261283894546218738283836877817727145843339927853519125067521718788371731408388652695210813236060585804019194645710815744825672936623694091018929952667295936792669742295148189929154232080561784234323424448461270299035415921579725350478771693685233151451922746217265882456238523618703125943379888839518972095206340759461412070165067742977217049225044528986605267528161679331513683420304350430191312249740341344857651127075306594899384440539815163490880697154786752176133222631812464979979892553427216191058947997832638935145765226084085153840531365295142865394973108002143912938927561467653532292195609689627034253723167155002235769555325357991982771331973052832847122493211900788593725972383197814589579844080550419677252508952256347828069483512278180527590028829124535703078878834237242259354847221879437963879153143840796892136406755831074653633424914525562713363185837867754431506883511078625905766730620446898224261808768230778206337938568925027611840872143264031940835493280585553579903072998405303391791691382287454777350424266940127624694957958888350979200784360057962484508926751511180736264338073071777128209716297343404890844416653761606368526562965545819311081473503853303620940079325610724818068295677925541569962724501320649990780623260003831394113658217646119178398739254758641274757876080784168871312022781170986937502049230527169596140672200017558552816691888863430081614102942620589640695731375879342943221590194407319582024891116371046555281733082219968521046979987985648455013297551681813937551395706207671636674638540720238461224547719243858434455446828550117514452912425565809688788890774838890632073874088111112649832595364271028778657090466946611646840604066891617864268460749948052156851223822860890439276223401663342775169653253007316962142191413540430439230487159765885323620748310836412301493632545610179938590110763508918722096915590520583035414338681708719889376386220677657877411875803678343260356641691910440899191392985442317137703436140094439289603315041776128880294172943176658862795735286978466681185750585110294857224920586969150254998821414871484659678943499140510747166267092654899243123322789865518173963009078882155530770563558187251009388952025226530901558532302390033316239855233071134958100568258460987701453368367833101358289582639226016741744366419574252538574586877203354943131824364451256808470190093445271829587212883668482221104889720689135452335129116591227095442047549843960072060409455691213762321441320564309554734552010927807245476219474462389281379155154009157536497113720202931670665495182062700294370264351410022991261639776707412355083860228272330129110385868587195616984541826472825014869868583191581336643707010212109164135812866454149761401008029271093958353038541394989814227516261289153692587277841055831000394855693479746488635868255569439641191590993116576874737631188363744044397827237794843819871470348678649756580846639291195939364682407413347346865569185406813256194265166953239592879998074584254255465215759707816839717305994272606605384545665188564859558573711718170279765705964343465094380128216681910622226359843737465643746415087658601647568853878254874722796580439955167213867205208090821475849560390451785407083537180460417457030225920480543459990097142637850368206956928825521978679027187212868301685012006209525194910483705267491368455011851958313372683000127858289926029857196081444833656303672184163775742780012328028592545291642969064051648511187554835370636718472417336841124037500235843151605289684545319376710124573294361974796476847765306564655238063310517371654906206660319977404136158877748614786750854158615247981059590737997107009661837801417904428877305731959625617728474968309786037824155153386199783249892013671173980949796995285324598288942130595711631498542041340803939486465874991723514468798717674220824718658496588695753721593650804070011279931598750690039383932739769113905738623380183330484297803139748544559647526757354222757155607486150115399989526343880999154448512248877021795632450869680134842987412024367940363277194363260378942917455271522802264921420413604186930335534702478203333440825568404506466055457792098586908955269738219882863711718512451551962401358873191878682002879074198507954344378071869431729338262805485898896791443997223110832829581692861293664458911489798119726880390664657579708686649610937807541997864185226908003323518894884196933370758830573385605996438735056628752629453815316666656398246263417761184248842735095429131756873661089296512083128296132358082143484633668031700882886772476448337320930111085680314362729827617372308481586090980897536692021386380382267371086854627412328103390850551994169924073927588892044096638083779991742866705750741116107837937554615935678104819919662270767909484799318602480990034928114522732757333279961869138372442548403543263546860655243594598684875818618853236106624530473428003229608400849282193106765730758556873435474860269937528854920857341493019273297506967209327482002695101217274068593927939071504263534446097197339587407649672121193559719067804822343615697424935104551788064243016914062863394470813422044373590171521822485101696674918317794357298053057350507450669704580717632394539511877285834162027104321003997105562494372180595908626185385418775713611518092710954873266675817867978506257477145026193075787135954304455210166916682195596722526959257470629976137454220828278548450785498032364573991072254811282814802744113471545614981037087538832381814255571322666020049656512409029489555935890204898055657874331437361689367069804629897734964217873847400214521243615209259879320679578618670112020655500916815231609233113727174258766956715231960691433443435411114533629270115453757891927372302491828033066247122368226408492928309078430081497234144645383909168551670855490923544404118780924722039942615784740822697537506069425152010022404719995764195839339968580504766874242587568664099081530747296435527756271648648084401363559881166680924631207323349283724902576545802227637656420323152791309680490223882128499142806601235314879955410607044295700026823809081658302316031844612128819258915761083071497578595543251232492186746951065692501410753189816064228622469905691875709696381824753664293827389590127861979530758718965993461244538297599570364410550675804702024803901152782699265616732152746089030575908273185022099925124216203143955584936595692070559696787895608048769119722528495237515138552065942570219188486253200610148732479888761285412214796800150721548309189371044854400708298116391383158224145081275768603563470028550568027767887330252176712059275730485720844031376460820060829272851358270710880067200930214807577665816704113877755595274902767429362723965522963479817622242585110208554408171336820760233183145090856055255982844493321079072542733945523864821788745485848716427181830529677429094933804721537040305961198430605301863813667971577020937447722915566961814461644775411250186139719466940624345519833798061594183873321535914211585925976533129400554038477243901858852304476925475010774254317854118601953391913443254071700347329083087656788924389754606384170940840783367233251857892959423435689872795425409289212949463868399208779244005612960239743547709467015542119271535760733452655681466272999337055289300979315722404483872382324015750018646454479281645952603334435761912250270032651635704169857107592433134115681777876326812085263054178740201386345938332237058102811565582525531129973689548260614092276781324048070101494070471626234017774711278605948240932182035754924780274511151286262688004796298795472182205358537337127114165208849587129433163064616119418145621845050970504045923774281712988872327800234947981583126071475851380220740444493110177041257643198202320610071001184592235231238758333431031644360652759693236879320743249940912185484954335124893532780311481408584324808214142025129152993996690223724587762197229768176878012595959003966978651899801021437580010977996497447032448579798676611554242213076186213688688786327590009182797985132695932243425022384149676829768421164498506760211466968035930198761115253097438084224178055385741134858360601149728239800057555059398986854544812948947582009208285196301126175189546140607936997395302246511482937003510273400883989298605192655532485658207800423194216390601175084247785542215394545645141919941297462776754083208995820279463109298060339067926820032067397372468593107098368422915687114645376360811825786446756453459439205439249555981401326329811872207435202331915842907674080958341085376707082106332755405806516021913349823090679017893331608757701643660493461585544505390666816014236512412541659307811648480678883420096104095637308493898806366747337393748111604013210929643058087539590446762625535383502321598633487428283088770831660003066701934918016511142508936048820288352876722331522027097723270049170219905324041513753277196461892713784808408939775920017089197625015333197740262682445379926186965889939495415023818666250845578587509924987015739245432588808063375154742004555551675036240596345976440806955383350292884986474450733610294200365878751018919946908051501557986363987150254398921707691766657497042147946358262886402659206846748157478911042179832110285029845809491089453924918807252322884725826656740076531911070619890253230202278303288754953333177147623994180732116745696020892098222240952752374170125943072171259046840850607677124149501807798005421208867280876359820616083286079751225335418667192850906847331554510128887556004797642162266787792862828852699668292886816909956259847058660095019183736721049719356349152747152130418218045334852301038194755055129010589143375182746904680540047497016201795578455909399386120516829203027247967198236949315175457316733095316406755352070089801224226826559860180376603184620025459904612099397551169357367912249276133253764797590249804206839485235840220610132917973284707792457149038695696113616523150827512912104783883842518000546860655708600712360848384151192617973061569349561545648900783113872350985446647746243878678040905467130450463351934564648942593506857251452442799394812533211381392134988384638505974113656281718399398513935876629293089067288771542293385661468937774591683877324829517708590286079864641237170657614700236693272389044282411391316797506711215761706506867216223363206953605451558979085390946071090900822841653919509138154557372106666239826225462198167950139735776865883383380592840854177411560919252707968602216128524674262854375848984686947636876880761992193422239364167946194402120950037216509312580460957478451741152053860302636603283022883435303052470175090981432594181798969626481196098334356274815560832623588050831336463210108749824868418386349297684058803839170632210755546202435966227971674832660302453160481291891945482895037288298031635146551715317117149341471334170467622471548121036339222914033024489759608792316173022489707957257714342870023280207107364016428495092746249602530739736469590864832793323114707039062106844865096027950440375229285022090439312632415357222661383057475581617556983466966963573700378204509706487506625438808566393675935897646588560927183838391561110921781446028800427712844782521132511494847583756832212887175208896417837319864095733060976417357565157830273597359053705053390163203326332975227291979062332891746970572795428984263620280929109595980084481169880828802752012371148572903806031283833045620706507224530075335535370253126633843600741196588395935884087220835954041808828458344352542732861985515392061968712611497976135848089685254708651121483823632057372165141253783212606228536458661549299145179202780629511140092622824277000401558693519797385905817937338388931519341643466130240591357986212592157018809514594038528166996205319506503993451847010308576887481720685096170894998769830456541410696543213299894522571585772983445133770712658088725338103784470118627752471880123993847555570833579128954187711568271346377504644635933839284080719246092411246795598470304397665392053746460449105279057962413198862068752387495883550009980773968717138777732465456259722393068137042512018215036306048013952754910264205297663673261206385413419322545332172291098602215206224854406589360132784406778734262350364524355832176427399394735331350606366564143572823004493862440907135122968089601308322297768221279978620467506212213312222961640168288330995365388627920906246479830672949776419474007987287166372874321541457265903779705058441566454280733424893141876512843929651048770997211788715070535604195946567566450682318657431449118659624298625934109260244708553912137372748114494922596443035411966741249995798270168018108023248510000403686297088082565887496027849319475472255893140705287454559515625607318246524640592810562085300283935743235875526245736466656757726462444839820796374702868150947842844501693047094912596493712035901813322378758333898312632922463216746703988920801656149628202724101525999143294412013766822046638485113054628788189558658946902670147929695507296403139668264341777345034579710137690585803850584844651758470906092775217843133128608529636221103084663448848859570656163641107860215195505312074721095572819771043209851977904898406473698773210718385709541728668380127972821962881817728981621693152827100957315372616652093804620896606197733108793393747046823462993628981052711026361693162242957466027504000691407618749251802475153956511306623285039574074729030295233307347388385178777120415637697228769859515646142180827608123069079732449041330592636769745833935017223107505361945135972836627136727493489142678739569414434636536399795947636453459200650012544793709888133561402791978818283463055855153274826163963910963077014313036572252536118360282426668790883753779101624357896670937552526895075710691903852728708259769923494700900404696653385734825664304114146076159755127228099892094878481660276906838863786676096357813296640906393380089707530186367644602958255283156830456673823520841602509338605348282160960709579540502031222710094540843903816756142977176235361877860090497526473310620781867257907423976625582182819120895075377295989187715470957410805354355475588993086652892412281374536698386773255981489003208320131286097740871747849796502164984506019842505761099099023449594295855912385703743605262740631759411127290635635198369154729698969610803901639678857988575416605952112519846257679124372867986349468040250878274042072598982624163995943180097421529913708315465733721397342369011028961561167610581837871913909702501745411100126561349681794190039026870185584074814782715754049869561757278656127999898984341713443062795347600582459047184157868834657408291755967383486280208430065546701245987452445303797936719797417869490293932619304699304549368978915818273837597386467828034900991019608111686058629700096388141608689127549318163982060559649190076366713643424668673334332967666846817752861589519177176151057408092837551457710897047093271299752680411489034268514621998022030898099398355889807850244746798639026285635221405833213477179813584372664637793127836832558491066812547074279163344494885008340613280674525673112903674487448687647107861516924300482551894891736328176322240217791330351111916777953167952937001236227092390354412972427766542404024717784488188215394661747938756036746866577941773131779558371974511482371225740285871952241451601593793621113835982213178484764498025340536508293870738762671651794871201421988788417468786402755916025933634820051550627354286116655629639941150856780197551026914060402386980453214249494200600742939799302081961940140415834521295639737217098219266522500964716352190814531403672996165804212943694067436613111195814855364575295811250730433389127379041064905997541285056030583254649550786919456718971288395928153774636656259733070168628833605941957815855174538916655568140531169978625466832318787941193733677571914348489779928412836226615557378620624126312207518925271356788522664287815667454868523623072714272758525753902091851704207720234661885758639590582763342614076159084634698563246578160039871873571885846243729786439830369776089573950198342343891385810870450479127485059328430610774251253575914598543367491446929265452144484592930751375126326288397476288986838189425905213342877204645612635165898328303374732809016618749597038927549249475179799543357256866917800742339613385595016143089118235961160070481098070805540801543746415966656483756662603171222102780730157084242160934226460741988626949967994058926221491430927762244545092207074341029763344299863300143146831909084432263141502039987065431571656616228036418450754296992329044421201471701626113009397068398934711499721319180353770278296525925029763774588285780443641137614341969764988407292093161761704542674344674268078225927977329729078613456370033351282482996140631656041051411874590124100664813480889097745810739636532625447142806314514184831526909070025431548876222685065462902891501888344995488021273389842660155502912180141418963728853095158619159940309412233084424266457959056705623767530172397022384619773059478479396008392291278517944450395649302222601105324840487888605578718888057307652908926839650934651180822366788251861662958706688262556102773538524394600755058324551049320746688652118872818063427317988171800489510906559562796164794463494242948051094092951583920565953651406551102006528473788020023653299004481587652661584118528241582121692610508699109607472015731856728156659462083698509977754083175273758578578551343619432515756939033539360449098341148310903194330277479011597974338742716239707638429181467101615832606315545513533515777366829000378300784620758171587020439574525583523524802233518304722089583504445224067761329329374843723385380424165027519392763499873202335437969136491302161498407720574482129198851690517720778079888873072025474887990327035901720267975345220582073880557445043321911663693007940707153279708528889543749253619328948087570053476750856135977160215273955323163530791412307680554853008034406652964067719984101721823073467660762320524789601212625333975574088822503518463858922685339811970571757991233893346269924464859142587683661708806059875064553687417556681723536094317447504559328239930884041778777002585139416029518606681550384619401538295761147212887098568244646284147008232257124726721072732295460085829602496698205902064405137880255115026975119610401071075396420328550514696602827163864942196781965400210176606686419989315083817898918411436338526800033896763643219982248579109149435822859234431666549385080648541506974495154441219066321885474617006699653574347580954257899115203756506449077364171137535621669710061352097464385484404226368378307160218640809319631310527812212491433974425881630164694575952140609300696480741639709803209863678799151275238896641792450228745286115837680102673215214266600487258928797458018598550297155935380748357332340991873903623564288336316088077666660922755442236391512209800590957473162203069592945219979922927768999483311035547812512077523649833855564931663315042790235304594934050352257134409403819881736265231785840597707896890500400242102092471030182912878721995691161840177655262444843734494052975650196414362487741777568444978869377900033406728769635849369501599434375366642064634316322860461717641686868999480610459457793282479414399880103874360171056307383031915429489406099836541074988170189484365946160151148661960786181345611345655026930229411223405653810678993272182467599880008944813942357401407046051534400634248406854542510689130190807467182081525430562110426893553657283026523151362228352329293107848517626161127882370933059323417599725832952998454018775035337111466054926821528877914992573494265849914699389132604660541376349937815522685580043173799189537692015665214779276072676788712639594937479396279560392151047573946089399149209828595952220043124241871784636510499286199068618146484336643318346351081300042941861372374893067377536613604125990044134760598245289278402728098338349003203531732741838642732783905571417363844690434599472263162490404901228861341926169390688619582477152655577319311826786625018926769558493572050258259787687938951635107507804828562890199671901350591434953974749792758912699679891829173736838023285136166861778414934450852087434133806943980370293845455736765252941018221668662026973874586677986331488186459019621102299301180301477433797904713506518372233595459987684136467330749622415330182338036424664201215105438760046184392122295559506344562839015014251578278821215693676277514988994804394118713923946538965442933350832105174646693278164558008492348093281018769184244179097299143732705742126234406556813753260653095728175729454926053610751456214023232332307283231653196378069690798937844500962108222150096810758847000813928174033683292059911687693870779061377700053721761559649961505316531653032084307899655767887148777502870731845454908573255028605158745290590350385840515171775423645262880405538358006140109937801577431263696621081529794904098891571437477997406657650013281010016808690928475196438344126395238463911725691168781500397136279169533136847499466485707423304258031652758159273455480820271122282128564665714231332687206835873376730166004499371774828686515556508147112381998391222931771294033403880915645234761440200412474090623682090341031754385252586514340076801111043653660745853120839490616904460171820868662007711375770160798379406917703722723274309727149353467227697758330764863497959709096596210171034365204501384194854927289918636621644091885567944469073870856424703262557285068753389415916527377917809150606892592236840652923134661777628462496117019903476742810359968703087830769049215931371719837962949129472699312241305533815309414453232489140203101519158451923095907397928247798264569256990173378356439007081839101603030708902378218929188348667131203457457545171278524357264939398159428914205785334298612619757629254224600025998670856947583883589414159084144179916029103420086881470531892895425959985330435604744894916175470552135873509642754542974872938919118569815675297671691639261193552686911691137936693988063225983767126881973813724931465791145164811225246403105058797453445044512441026834610886039828395520978791282998449796149527722793337048490136574959911736325724957891466569201468090518407238154744314701163986896785550664606533853158798498927806099348754722373192200743350891007588679214644923002924454081002051681195929518700002413268393023864532794448480745115767371036872328359010187277175297206212949573888012364517265650487735142313645169843612473604387921417782704744213650181877003457309999079677414045120694575489987905713079216690388452760847447918517605008702275941287600249774328301911857304073927288033682286134604205397237485171879762888437604352402485280711281531705237913387249180106268708471685582173281375368282985367680997079802910450994729551080426267495221082531559095625175097230244516440650264255172500417229525391724989170699838896630254045054235069976700480927657085200723668399320439149907963655989061689327435833195078385662915136823996468672441286594278378142940322397205492326566772242478279236131324087316073659378345604729153939774866919497590588111549215143234943588808649014440554718737791695491103047802204003247752202373569946803583940093668876139790657550320883205485472353901113849408365586393317917391529780908283410313748982550516654307148202581974230614313246531469636529634472454238728479979822373365856893783208327717846773422207511604044464496417757004134056334837732781821657023173036874455648472821091174979185987438733652974057796857248308019220966510290023804423173480817316116743823020804161040444316540326749737027651038831256282603665782067158957036543590314739123909888851616902888849606249419714411231363848973843880765399412317812824117564112575282246614904082010699262324965360701106050016858268205963127320801164962339367171638207975884853925300572288568348779257691540097701412483869906499339152474167655286405547287629710341883606125889528814125450002180751814446254351543028075204775801063435866685333286566152885554592207613501203762328876575085631755558821703546570326949876112815832810441609959040059789029031237613981061524315287116484951393844139393516502646594523178781692566771275567895993320765514060130111988183299215514500042904269422347733547816710353642919259394067046606505756515987930663692008252440041569293346976884247360714847385442937461518539183963737666352026045575330845235861180372568956204039212054460097109094243978231031987264727682357145120649552501443273417780036674216042969015742719994709611764917578275258208872810939442991651528492813829589564729795390405301277817290490719165716032583874117405436368908609483912367418998359524687114040860626044765268490100036728925034070833121897593771400179248728613643448872101988195166116413883660083217032403700977614770015762453496561170969231509626219051015870401544189703525761781710867549336661081190306533669871931151531487428243805772466292070415295547296771994178715365397596120912292652729596234549706890857434880554791256509509726457389241392441143796625297233049854540313914991388560531184875923631143170029386275991790502075666378011141791116348217068460408900217193889004634624168835729935892880050651358446155442070430337665619104749740060898133250075608770735384615878440853268778870617678691924743437533219250886750059149681563288678242676181389754468024848212560881924950073174044219701118399358194125886784974243756447347660785120142440841292226035719046181206384923791256402427804174981950297915256432855521227039737708154446939405498463442930797462846410861773934384443482843610630200189369246685075591547911952799649023579545170425635034742593513342968815442861415603583170437476676674620179465130774476862919801367140811149127606782742016787726437557703739071339765398904601695586598456439990237909991387627262141078356786959715335723978021550601984857100796952519685880024681996349615102791940029140290279452484226252163578736774613564330961664960651431939727361028054960666480623576111072035788992833314971373708219281776880147538643058598059629979930148667592584622098737180565486881442620543993875158861920359504212920300480464213470644686372246895540705553033967924234423406793306363998267001964382217840104645905748348797554768602773823869541753401681663549730602244929325662559902854052710428457443282450386195259392153582922426365568013172104283917073628703543870893408793847796406008350209107274144172812568701000647045597570751619419792803592190719057248935094264733031394853683222194351144755015439770615074386491342932814009947162287094294763241418076356028594559793698808791600256398280520071486451147160584420067302242754995375281956202395637535284073010192731570091061266368052942467324331992772335660428509007804363398002075045054353619149467283036774283560167309188431647029787177187684828508124409726945343523204677998193002858580216084971759286516449263363762579369828321082671818289086432881244912559887392266879501458486053166171992554994093114153160318086977636445673189043383684769323592072833945554862645463313757542460304444010339612610329097273565961251313649144618956795782816093015069941050673588684630146861081238854395212301938477856015573762891467644831670493386544130732446722081054162384164930726741178391007662538311977975097275065035471136843739792952705749447986355641145322312439596669586084070682947955148813874487818288170376191601311053611363617989506293127249790518707325719496210889978706207757980980378623514338453364011439069625148464134702706188876918129861920676151022404144014112392191409469547318583220258283276236955682259579519494364263158626052092072512222675548259305641096350734626968537430307940475387687111798714405600765684358806289327759330582702282003227137032764333876328046130013608753302327352282388924001320833395547074916247809173174896710555471638315003824794828486563516256472365906364921097831121100428483643843819936372292138765115593386206646849288642434221696697954118901664946708503631873432430515729053787533521047988836196952469225976548444513092626155508615876958748596741722482678992140428176180450305940199719873017780568655004560560398495102940229922999473647888804346617939584591015403561152298621104102792907987459000450431796079966881030667278763287883752684479676091517577608298263574900960863165875992988057728942845662580295467116384943284500432012554318267868836461132762179854540937243696274826340047029412063482377767869017852058334572401984485401639246343097956780045971599078015174267754445266117407759797817012337824019821071414960460004169070329476170577153630448404831080634799298723840672388450298409668856763662437845313021778118466021211333997669225996631116849183081106663055925979530300358662438549788810578101776963667414845859589252509112344048715086724137068117739071549657818749260368910814024547274176226538273644529578528670708728903843532256627396324720135794208182065875898009698394332411640104326267922099094323236272602700435994326604995615938937144013458297535313201192633292188426927028958698723982693530753682743262189388367732428076272316225298918114965870452811069369116363241905275685991547429385273943932591625618428861724155767537288351116081405944249622853498423927279660993218055314137512589724612911080354262087291076380265923679879966902087602322319433773257044457308270023357740962049360977515212584878863267392196667737329114553545697688462028342605571543616457436229588375978029659964733469612734970284617075080007721886076000967035389027126054128072820485265316301484200696209268942067693168536888865851924529089116381920031604771829755463835311299125734161194933389451133143847522912777296753340056005546786578520348085016932882875847981777361658721121826349184226021147290487229960029891577388082975173307674529993278291512408787352534202811868776887437289642895848111751738044617962908158244581815363348171517755183159851399295420335623597519930499587273011889908503360637403319418398037358434341923921400994376620153024627808686183528467284952211577788604730765800144680069819719819930059996103486632857585670532233386757140454988653118108416680793846363442305439130437269135234738706247926353060650157556907818092263398489591752726715301660773979738740267668471627802003978195496114804970323810674016126186247484681805810052567475976686570789811800768640046414545068809160976329948004890132946202774162655754278885878752965698714533433227456711977977171810394090588042074556886014304112072627343440566583481106139804832109021720255806342244638000426272614567912985818676491031509672700563097779310277971345592308724664522011964542752940852628430066003262842070103378056649012889912991669776546324698547134596308670914094465961061261722599370806481578828859754395239012377246673506258394022171595347777159427234037347214742907524321421291990863645709765824100228266258947182407551791138400137410789307340472850909574415186894140007527678651196609764636381419514113530707276059250784366818619291939440372119881139877439296411389523723133747922520418666339701726373370663536067628736205617102648905497974344954120267140697648559280007399104066781348450420758936541010602514541686088499591158445813449305604333264455719340320685709341197573393719816126572000645579418751952256681840564943837456804106053753358188849760917132601829145745198018087599207716286068703253102311515389409396930857546963467705755586509921376884997796095905152546746024823961391903053829818545863464175359944138814248681769473681546299380330457833061275480116052571051945606489321847719891205714345800347303866597480914301446233954596605168485735709059451685590568832943542050390206517644431152974469055061591655332162858354064734626775157874006386236545583688115980886641319523036186512382428193505487858797836480801060142362994380800635003807824353943032693049841958531529006652065648053184016584977885788056324862109910281316892243451591509018881591198224968061139588250753642185045412534115031891912513912782535275841494591332274865715720732024698165608401100426920407041224984475045456092000350585375724973830759487960409029932251879399891088709756777999160805857147439581308136839723616828362192213779121183794870720821551345798112142133333937239669365444609706136403601966882389077292696025745370385510276070651228388729755278194161857400351671723715622142467643632107510598710327656032368475685724539929279236771363332552698482194502023805321902727818176856643328953884147718557989853793595342631448802236109708478125235760449450517845470104363276723277148024413097908581371788709500168554205087656085981304371752652174235691641682978177323957228056624633198251276153469800126899635942035754840105690009479245002425209794154728907850551827819865833012921665852136367320581938967394747712360945299036066337944168843895801174183983180117703659700395315308074588301724970651635552408283038932735435963688182175221667518017956136655211496030000947590035122779842819729994387505769059660844962570577500653882513393957250849910763010468017045450623946696246506532834199955168712156162182238196791839279147146702266211866966692793504400350155162801121422484963566426201174642071297633381538567110568267790794408300016402131560032540045619879216987306946075886768801677064536047462132992142393728592076859191606929713553216941916262476335343038657407463122327358781284971318865829971113218749269853005040918082822474403726784949514217880295658651363299124104553200234966129148666956962815005960082793828505440399160274968210454405189692599001730136692373682462308769856497856956924274962603665486433924843030982661296144888936370396904266965315398686784079714426139005417876149899130352386442389901936523314907873821598540062843214897581737173240722167838407538513895288297575028366958615628510770403928806000595843015219325519902571748475585263338671547162524213925305106067645354460443397889188887532652099166818332042554695006808257885796348742486057653063803201486260883169601212601643356317252028159418267579782735943196252471423441841460756518583359355368178883329976495187162058791160644051589872334086815509836104047266714714458110134576040445575619347418337980427261609712320231179234615918472405752940282464435630559176411950383430469784983062752739640038266712170496536681169595654908145566065028927717608860930751594357008756555084819441434085321518150943775135003620195676039134665355174575102926282436558889941822718409416390199607059217371850712316528534476412679525322617499816020885899365274179983377619207353998526464234562687375360329976643830646781171372535898007145109596260286867501426973438078067238742004717894150178957995776646938687849280841414667351829269647239662448653359285780550641397703632578232305845650026577636783053910388373701250757311286895893605614021651667731585013878596008737035614204855567353180145673088826939087203362502505418830904243645577887081035429755377767068037986934631816463268246280347033258348529078449554021070758800604963863781494096327631692664341449719630207241161604166305160611305226860568489380261586941660186475613341130208707602154897536451781366062207532623496276642990155174334001375240309546725336492310945005885815695325858243888442102649737295032056296480363357562162671919866213970074864293171462637865766373876258203777365095505373372167215674730418654497314234678846850164432425786430274905072270083381738129528281262482480523307375622874226403976356900135711114060465007536780445908989015331409469366307179324529292687131206861581124325779831686479062656956103192574206745457076578274102492809272365180542889385620131862569133525026212070186891931482356766002512741508424740770767190065760792909924133349236456013806299023348289083592346179613841260218059013023484704532622325193079762722753323105311722555913362699060961948068897926633237530708600566097383106982570790685628795163443093396814922998469714287142594331290216624013880042285725456779494105590602050146878169787264672763554414160858367927542387902947947975489867040183645182290729011053893342891110492346807643416888278532689451162185357634765982373673352016503037208888651441569651913422511151838651218617593251787591547323863401342574538586996324517458176830824017964474930162769526304706325202935413980122075976746795117796969605166580574332886264643768991203846817060403154850199882743000950477836924466178777699508636817827730308643496039220994690938970556155908498016718240643038448624646262736340649043921758158899315594332846936811028116882807781687977948684145974869201055938044130064330106662540204856868247280947428442506476963973289229609812523681602480464292241948480670829102666016428171128538689094777646057624449141124256565827586241656635777303941112337164761553404682932977333096972676523285851863827272038520730382201131482545934020738740615281646087103427702298470673510541086891365086908595800758841686485158581113093921587757256257770570661122763109362194878609023733687408716006088384700788484085430688097649282491032273912593441496159324377526548381520530373495291755527580494373394789010027595863997025488081179178288492752933735749397871888207397044574310936246791778365990142377196959313968068067497266393355973475510573092397729040985688140918275495856680586099126536275527756477144380816492407455376387258748289238497271584551344206238808823543704382445910731048677710899047771935102927017369477670370481797794653969756464595467980610975795115906279132453645094458718482784257277300092405829672467291489094473876858168461879549296636995443512375032418750607999771244138535341853566845864285744106993946038662226849655371974906950807458426798084174339900813133632595408287237605365843447263487811398008708191013795910802130507574908382239652419856378533206889651722126904078303144772827282325991440010979803975432110650624847603009996486880107012839309169009267614857646620964577547256941923011777475994993487979449023657398117364524518275072118127377753333318804917764745754681850079748760423187774548614221622086146475906324550779741749968864850025659905895749444631821873809607210133990427492823223852220960281951295599910378047481201055795376402688385131096556761793598021368680255643205286982394635437564209481064524484654306444243524974331276576972972747680958749503084862879566470955849871793862273851642972481258552536724728122942141482310997564508792960284440155911321125076997716856617540611196818857854714079046325790603840937549165088304388507556244562334855132803849203978136587248089864526745414840880803792577466005968062001535551961682266248075132242446573363072887776395247559183882328888981115464906011977852135248581644605671326482421194468087944883909970999824717216670802755084692442305154449901823064315597923576229551813228447860657059285622933494214802404657165875368715738633751549643315406089733052735251596105711135308653041759645517815964814552581775710060454912254624766390544193587514519793932158013397948660015667294053993689500927714058859955487389466882318070636287413487678978233317997198952114737999991575179440033864327860754052991094684192126801669575404469032775273787576457309424424325812285324738749474448328104566738827975622940449876210627060399698463853126780276172754302587327814833135897527989729506393047693923837733058501691314983488919907703809227199652649958162420680279487726268823974165278578589390659274134795098376464337330846627553892691315537867537757591354213467452301054237011158210625673726487602846430227164843676969493446966089344211990152636289679201848199750062289674770851824213746467826438549425489621494960868315402248341827820715584430060838634116123450512370621313318793281836519111033507463629788395263322167970950592418421585429952560302817668946095063778905465155461908047129754481990392595120901583976107679104878989254369663291752507551961724776327928542461341697420002850450849774944297322883538854101597713440803557186146191070812865705936883175259894798787391872231600048557053535066130377349384963456174894097936838577583503064768594465545654171497536648314571153580944257100217524080797597312477079460664725227156703227554633441836118300543643606323762931469620103720490375357106966061661278001963287558856290318907102340076959370769810840619752221863855148158614867454322528852826784173441068934255277865315477056964790962351295538885748072350247688356570100116092844945771151412384352501990435368544383285758357589535024285629665503517526152571162236441021070092834289623444434719632060568017275000960833551844397723896414204892390889215484666461475727435937911364683355425719309123655407856161476132219441726485405879590226130943208087433063637302222856592334838706425628230590030659393258480984862898026708974355353504699160051251149402868722389912652535762603816854133355873988236379202727048341503429673504514545532754524572540030230937226507059998616452117957842147097546342121131243741002933222392535899095306357835063453737029209983718217431428741441331044183844900305399192412751530417002200393388012331401844652755224107041401373227317694176363527408444441908928083202356496290091081372694415961402812635402201187184722603928000307060386285341690629243524428757312344816069754535510453030539345538140464286985953646226079009574938498245046125442391273433350959728544209111024077949953439939969161827013319935686022999091626853732813513754879366140899415311056436349467327997586799194262184667007450040314011875299022317700740334651636705816408466612698821907214808793050293129589630817582343202750658446365666934532967413332857320624373775145109127602982663761366281891102645048727486325451029450440084635564072986018554762869124840540264980688658826507530102002793008603745971692225094495181975264336684296060625583241021123811813211355758486888037971272308850381993887083938630607984382783775965339876250218132319013542001342341629565747641487345020576174813483234079946764589100751251082101272364287127889608523603711393567010456802132814951377877315028040233819113236937385929697732432848501945630512580496419202825902859802571573727798712965198534057141945932865368488994796182290443582913605086397782342743567994060414989682929507305933584211323440139704074408835497819722728163068668814272789023634836995927756743520898133745330986050829869764761165056094228274911124090080606998270242288937472082711559180082150252664346230187088082761290045559101389583772172240085385602483921842164782651954019403061932281300573925735496095071777892629984077027675399416254132539259078999358862845772554553965581136653153219729423010175906242404521717701500796225099549197183636509963007013436980741491485990862209404336138906663736469828114645826474818118501895504534567786601716459867277814881209236170970176487362862739014383793160781105576361990581093251074148907485831273761589049473396764854122959207473741593480783498229707771286031743091138785712291354693463007250274166243792546614118162201279595687533893535524785093851801495061076990144578766906008849235355361869740765434564042444164744680934930497104149001747969018805676389614882949407698512269695928812839896780352897583446372529232497685128059334096237007896555079286977346555199212820497405393208356782563433782132220819254680729413223732438766541531558892013942293612908969518024941751606140085732870363153143618394219016944786229080739505798720356742686607722980859766276205426548749734734040455980725582603797467271952280108021235053195038214255290636095272957227578925535829823238108157773204400894125101821667588795451282259045553893116411768658145422809778893112830599330727698109289861886496505555830166287156150154641143697254110151647673353098632861180487806777770447514795732349233979413371698059123915917199385466331057492430792645597842214250658108723922469050122789035320336057917176212419699445554224106456471819443684310982670216777260309231002892694590258710449885641616552238417938829024622692048676530508723210863486694459091380472378950556539421496031328312929066910307965986892822976851571151194514337260799286038332317586276797508284040854975418972332694944909345569904507747331694824237808527093022743531573694075931359924255394145088488611537719576520454351251251869294134853018703821541055718111124412001605780605497171943098434995546444786009472719108636348480340158047225718315054107968821232668974219446657301164439578763240435083574270955110460119467377199718945079330388707212902186850846092398566250091642968715561469295265850304604346329473665369020688947316725564932144139383158145307497660090761776312489816829793973500645361102749790311322193355293375198076955492382315478552632138590156389376578405404536161059421981032452557988793047105385339108384795084212720109865506799351021042640130733659895848869605881543903095818390255278936694742390693020197157281262589870599598043444927005193788667499661523935529699068764346392505936065554515980996138829661483606393386038569559286317815327984572986806244133574716491120271597773827537910874269580981653558144488303119373779494997398063900233562521261821835578922200369349946540592964792606060423232206784674298291845263552725134629426017348721279715415445307262519430010151929902763521333531261844874173450161787485148725132883934914171047255967469077019939683272395531712908605125891454656563606472431722959997031850522081825838782411856192839927308427590156526035127112121970633405464920017732478009911027881812133405540278174513746263551692327014978550718393628576584256153572187317891581769089215575454613729837265975446191014170936404832087289433645900157803731753416711770177616885546121838874771301165567424362267184882872019511305247866642761102220979476303248341683954694138336340249872898930354909113893388504859254189815638650487577789512669298244943715384061202924705850169349681628934510559981513985642851588037297665319557417324334775266966203888006212733268916852530601704369514873437619150492793788599428074729198870696882876731243994448452456167166110764979267820078173810885192329858495821500585845033451243151447253906117179992399629842631555685763747657717932545137047633043247931789621994130269737777485211925815926637842083800349532512207222241087810975014475354216566697000085507882329807220731708029981568459300555204893673073366263962616755748434192252034117801555441364808615722311369841979326683784233010521726115398643856783738383559972686005644861064697049486555741115369204948892445181718782546356282794739948000511473744698051218324418274466732585250799555174371872213167665609164234351733600502014906719893950628946428055956740647572448850117017136395069306281247713970745163301980478113194435591876696766437002954768993897180376190195918780719256138569037282669839792346645754465110278315585470557047350307055242849791629433719431072371771206559447111920248205365819100988920349801236492485513579402133963516850230343226736104658179744995483415583176422983059482224314180556301587529895965035418295875861872656607282015869253893277982789178807619706687600029718596318180967767780069585745356507494557013975526052938081503432693878280374388063811885853826659410623809727393598957707381300941256902987513677332606813374113113866763811944428123899533175627395739935857709278899591228751216229241315653959643074765638493120451035337614543504855666912573785946460439469807734603825066395318023030794739430288362391372614376996358888229798953879484577937354559582523925772600504958450013382684099318625329874652131524149808809319591561287194647655170303438290838589821158031387392122383700390960602675832134981154067633941941229710256828575845526908921050902879356057918518600083961790470672441714650495334160991263556284698067917478296744751408944307926363783494824844195143312732439300707195496304516162770106113295866906305254002016725036630860009130983526632032878092475923646967543832108169275612175635545241950515808493893344655651322669771790883483836013659329044643448220701432259543109342813877555366369323652339097572177290191566570265433457197736745004342194597791502528176266142376272005157773678600663613157918774911409106033198692291094076492741356490015679855640175611076123131341000606195285131074836463205588400498285269969061840964890793600994425788618035304568797018785824809898828995930264531532182134565957760093408159014877477141919122799596394560253655021312734196387998738492929255989641308019374312513980320575784929319116852115488392722667745670310150168852782992050877519375640294914781839518621603887433382136895085559734710645768516315857706922527447353672613034726163920360430312097658996324621206294443147270666525917141093297382452638970629363198769409689427499454956167516086607490426328295040923825240549818222419110580114368223695876564143591882289136604629814936040576275489244013158850198103452761147181095182078514067448142875771769514438687023812105960225880805919747812599689040524441497021828050498007352762461023753193700303661626653106616391582903632063839730068254663661289044717815046834092831908132393447245324535256149859644515029223958963075211762540735727517662554031702276888814025749070374538888726819126097168080126400882643477279156047631055987749515832510526184876290056910456678808431174626624192023582031346469909546584375149005405745034436877353778641881491033433635789251290646489048945781158078417451479259062836852492652700185761991143293884432204541212545115006486105180642795553937110326980704370633355139588172780565278742249894597390844854813950935475378785921059516258018220785042792180609326593637156919780917619980177661174771084264681132175282925342625850574201272973840895437232033029784829098090378493624751811244703801987739983699234001883242709965386194546680799877169567368034249593201397925972395707003721963888968467716034362462026123105060138407016863214132603517480273865772103453791176217342614936055912860552512603946674483853480353178160893024691480278075172658774577493042919714842942585806467399249893988475942535923714840206739085090688525429157252269736684953157022882254794360198504777966095822221496994832206517873386839021089357590100673356719298908345084745502041597493221365323906806391493113772749932097186594427434355990354120566334745849994697919619270844116295541702144845216641409903246969482143023727767638515952265611780831805948745308233482751057782921913885307841520361722439504400569777792249315465403322001997026797865588673579961540535950926211493875327356614540709452983011410216857804286595593182338846255851833875337450393937387296877627678169084230515487829033364627535737823215679800776745168744949779043013799439902134018401390119294296211998938492928209141115755719581493438764520260395983919320776190038830224509131301690715642757225208545195621658543735752032213023221118678139119752700415289357791910650600185894477622488376404336141099966591083851804688947649604684845657569726389273590308214308990333913325597301206382429719910376042991799466866549364875983933917473625111200839833351153373121792043700019038167070723342119749024756370810581201244696234589718732074042829845737699676787296663068032614371646633880842971975418643637123225945502632540192556044298837267843412032876135608400611076182092292934075767008344897393568709103364925982721256671134640252364831730360981932158806342802620442729897983758012003697283255600009876467092895268948669703113899244175979332109025564604593589342650817906615781154344437021280434080999594915730936337641972348960287663075912292737101311622379927183380002245773553964383576310593840926579797871310332115979054016259819219612200394662836765021115410000932838097624462497819056137339957636186613976200183027325731784866887462510821745967947507007317573773187297839867375105625226801861841479529225210949717912201666442517900605543133702571563683929499165344504793076150851294804419504388048487001309805236839418017815229905132020433468282185808185197110614333319926622158171377970808726417916969980762963336745180468093002556356138759139437462230962259112037444235208772164437809112090617299077275135742629544217308460007109814369784842196973695775650215757073995746110529997367711134651514993631008119386310169424940165005431227982649562084730440333249189246126732924500107676107142827520427636503484951332705871413341652894263454480917446902489873042723978897170595522679392298407629539745627877935583900218291504922939625487067580417790139210788135485936598005550422377052805098492589692938339858795344980558980865408911095911358306231343580334957532512396397395542062448911625367145569114671152464405294680317369399701310026608393132708626690820268862889588898689206296127655929576489342727096719481014659681322173151942325457084646358818682102257099029323793583076660074662841930605005082977404729031542868950074963085723998232439140528296665842070997527357146198349922952437663123690597044913032375020923594213876464834014416652390753293427876125100364078960423204198019476687102506593726507271490136254321308744445226523606732098814243586662435063946518590639996525263374846916959156107520344904477599033175967165103651187647199251140867891088892263894077185321824530723877734882702778178438408379720885102257554820294539935933232229774338758045567944440203369508565867125916272974724382094288864204448410978586816429107738666329997127670006448172097228707355234591720010007133918033561924557183862471158909040116703535126265292784692039956411959223337975848056394128628974284559732510411607603417913267446368635274679468421226442080702855130161429788205354395136822033722084091547301066680958469972423418234537134874349337824498426699709978097707348547361767652141216551936729828239703855799016546912366337759901529979259763904282856284420044893814323955243672673941315537830490610126828722433797369961664379868175509471625835720830263485954031208238920432172660132947253668853432249984098453651286328925736353313295183568240481529735164528412366627064662360927788376776227365635404313645549899096121570904779910917675863898594015067657429430117789748007850382274913518060896538224963569038946521131318988136193050776553408436820947282419232239517549219603024033740262000547555329251115769902683600774282470721040350103588815796790364742312684168089385185356220202428375600279413133692828701256598444573871255938331544405525483745216657921029996583239338626998700248445459985058501437379931809761619842034752120714612456972183323428941509011470688105986933818975439545972145058347681201375536956200534591712424623485768577401558881425444275655360934135767649770339957591114057256244448242488967466670344863188428728343715669713836211651252631025443688727037822831941495331278282829721445300770963710265737687324873733259065844153582197244658927204937907907285787335099204544210851479397806867340753624218682894083260009738609430712363768626736482470119277144430468301662163375576379030123973830447980651045901312365855370826931706376971028600205474620778954246058269340483026734799925940786116152800642757934524757707936581743533125365274603419429321890822292511588612040378761314338273770832281385643033411704986480700454204241686333208881675889917914054692943986646610394326887754902278961575517542259870139770755101610185534059085935774520134101741330099173321443611083095809901139164631552536196368975413839371345388970085474932398279076557851362564578416495985501061148005122566919413539267089130348457506078342330128752470092118608619121524926824931681371031633341486671338006697293690102333037987241936000856109483828808120671542178935738770895640809914630265164527989422363556256496650066824763290771504299399443010807900417127695131890901081342118712122731978478988186329743699400977510838202503993874376202708158889434545174499404309527217710394964263689552876086013211539425694998167733632244142116804686489515612674279676507927785794938725426449936796688075502156647692155118229147074632702546860244908796431251854176827201492435832722073689388821278365868300987651326688881979677035216733880498898816115388783628980094589583155066094333600826059310318343046436023702407854108743713280550036728494285506802462332557449828690513757722452160437251898074705518074999819729230496112806475241493277976082644645537666335468416112257277209801353870656767196074622543563438019644924611336192754465573016375949723432428628298275889877693871700103010060582775284153532462469411483198590447733176417807033678659630289091608261739343217735083300798683842727496500951810291317413248994794835812922939237614855877433458101613024347767048929979427728100876549345462152950729855245306685874775871592087319216788567762062415892367641592695138909430734709603068760068207501668539303884528198793846604127404387216785321748262775360874914331982582987398146384230398121693301939281077716220014120575334555583086164140545418442765900766774309741822748396097299677055991168321907142364833360815373799215260379719491077778760043232679538741342314020542242634470667894262614143719342660087593150227322290886586181286655092831906589357476205215872600523539896706984071025821971174517269837226047137889066653805880689003295175059437864774178510306766902140952613154922938675327405106613211883288518879851650321656130514257495332207082746017637214826904572460044309078156037694187342441900470517148007605178923209984798443290628427443280059350883252585461136363645715219813599667922529720137003826726508877060393558390999301437522139530478537879435966729390458783237305311508821970154385611475322336810275912915964865554367299003524805284948338815613625015257201431425209249721778807213826250871376932554615902843055920987920818050939884424979123650850074070135848813973799065074615623512786578721650395207707328075283309482182645599322005381189598662770845634362908251510683614359727296667192717812938983698374208657279086106226290711187681335470900673510036710567418684179373932909117072152580337507069595447762326184449080262480980127922774497546708645754091810289779983549437907040304917576130605822395132677935621453705472877508792789193259635170492415042598585168109489701119805493463360475879430817611715066207704325715810448312905927349724929684118774212762267164048453415285788525874575246469217057048217796533939397940385019226345668329226095714312714302129501824236953525176374270137998760640297033969668581720849394067176330929819039872004441383260030500926723215856499959815480851291675793906993864719949273361313535972025441803421445929440208266158551228675825835037000285929408203703954368505050207664155991909389222582866773113814804717073817562876621925686795144023253642187287202304360258371402859626107571912914950052274301484599650458539703698459567578319274651197044210756580784453117819429694731348267519895072602257774444603702626009624615055869962383354913723055282098491362207758677520748906272254106793509403145264304577887041206674661302538378308149383974871915639889993185394078274466859103373201644513193134455728147029753081960233312379801750381754303364460392635018565144431275855055981016103854932738285281259271931859894609798273291946692268415139714739611008417739073116858091985107489651795783021122859012577156720589856905539634184813150183001521785756257871084859861871741426775608085470041825164166822258430250204179482310539628623632031858648647946159484492625276931089303884358994765942713814003426717225725183909050543229706924993404249219168998038086643864880906538840055680498698157697157499720460827933288564152020849663004669048053493905666878681226229475720102824218015237143144143751840259119535370446773355367751937665686534546808739264626302902536158629708119533886394358572504503896454627119190300362533202837426034505869732065040786851215643609950689983476947960563239761313966573455878253361325798394044840002904040986040872087698049683330682479333929083739092298828818985871661286790545995871867782529241464047546019245694973594927974884779994884210426361676888975036645582845516440356882633228616793824560981712179762954432416813255908961535932854741960601968437203349844470135264452247092126794698811473208353773222639483696448954291182704003092195782217172245511729181746452356286011308620829138961400241071518848934444419921396913000627112721066286156631117760433096768295612158021188045803562877812871436608280085566610759359897838577054790557810788346313294148244378330527130928733589562484482444802607652864816066637910509149924876218328716912583809748767700370335616553597283390827823689385866041064030170720010931434110302796095305785247385528468773378626523398645148500321111783810243020694887509995351091207049210583711197708028825905260388990567907576963968139248430058601666972370089121594714940943535686162982532445963033924409091322436962838680484505943754818928516183919982083471795464911350158339607886878995126767286588088924765363343116684863921577031119710666169310640361796587364848280983436845085493008227354965132568111976943390002173951211710848881965429606678406254416025655844172097046251755024961520508613751244950688921192517625930850239436969686762499587405858350064818728233398833562958810804637889987719845974846645483881060024757316411780718526936839312043727418718451351290279821011361714317551125208858641039780654852805849248441141618919596996859742995231903131536862230856648397473591474435416170641244630824197968017326569678555761235541858910287428294984439702399402871466857533329969384830799110347624257514041056684013770520592135486385473823259031481148067953777529943921360977338243832102366868304500692019229028202745099699534090197335692093856407401017413235748925599005298681014188304872092396707633112903493658972424170283011942685517307734743143576068058056909631969550184653958492624474545094638570407972941348075908029671416491566680223117483415362200780732409548485498249161305018353986865576896801824662744945370780851259933315039574652266811871709117590966469355778922550319874878683931755301624834194038720462401734447318115532959185894801303111345019662063401649404359662446480096822696137933306130152897014233148159032763996100036450319846596397675665334481702924084552481865013727571363942074876206497514181680482293707709570915319806145048028308756336432373249376872076665760426001146453146104857304079148264456107387900635741699486413086974784634981912241877725173985665847931464861566512233895137479897219950495078473219530388911473346017760308121512293143255592476199898525030115856346365906169049771487770480530418472620280739515402619576559615055464928922623885706415218811846596308090593727366729447976423362713664796720049493503941597775249989247032861339734079798698230678624298633660541650183803761160680228743865170120274121411567844219593014444704008841956574952884133606680994538813648038923158215398442485908808585359740021823670386725772017271630077783011405458675515495358465560066539731174764921324729303335992508000771595260478203579288000563839618698309315661384557101308875328295754211471143051219742552697549605569832117950175556466196385615236744417390155419954063841141800883214135889517155673105917545164273857259968542825698044809291322250027582870287186860776716501161288257617917559002826614046057765504149129386109850975855209304626889012671697375625716993252628318729018930813553322582970253528645153364697929261568072984378550257923078557074450264482105306550752142895648900735276618233237556915848435815492333864365407416383155483015317024657956262576481158124447248800882617072154762340554260957084228517419897099433222314174991518812271122025816879017952499664311656561083805716948949462120109713755682865055335603001946714271002104897151819808212516608216709138850268010723133610504679416006691895861054521258007405323174819731076598667869710093838010983830525974152020519924821991858932533526932077533582652324808015260789319184981276847418905015313844975953776511050581832070168928221604154952856860593212695968321847472178644078782068409996800840297690436869954677951356678364952911874987435007240345156292954750535976312411074733787501352744502732385016972858341617945788918673732822909818261725144953858253579009586952493263654224069535410235447198510456968610277499254264853294088968019251840368894056153887187094629782293488980966564448162785837871839092000468164387838862625468570351116867091868094504331006747782783240454746839049041479934326912894954424762056898005064795657900699121253040843557145312978797142614853528332136624672196587851195345116739755581739336644837483041193424783438979147301652896862684631196121277186691819286755259247670549592241296164507381947922250422129797766545691912063017696527082115214394916843176330639300934157298190841194979401254865612400562055373884790222210692725809225035303088609783170891669718295251566449726832077857132375028576151206695676488902067728652076377665801210586383784772052934959761696221538019595020868438394845759254872854730029140924276215621536873149911215103638691373591636531688325760958855809132858663057949501345157192620335439807577958416710027515852282433671981227620950179774999223286658804497162972462132720957768323632588567263118597502309158632899656434813358213299916256346759882087345063507010037073992776080039303693290872365615998573491972597584520912777642215972023464446205746031794282916102033032183031159821749820444379934149172373416153545082206478784470085344379560886681006925865760185777554398843331555073625549746319086663323336506967363492422866884321789873455163682023392179919704863196252910187702626266828688286930200208217649168618971221028292950743470046454819821211926320805886540948866933960578751592634154766396850553536591839226399960506538214463032079631066313405248908645720341474954316898719074029915402407635024794039838629088764980914439350917079555061692992516884133427885186138662815035667585938773401947429931431494242205781981189864835076095685033393903713265576053662365284403141080840411901772156268939607774534098762393375962626964583425475449606144032710007401723444457406646355033605240894045970411633222785876240391905282410406626378040452835336593724686789741199483897595787951787365078641849155369280661973691075810492497251771375465517215045091264099027200509398395078254195662946383386874457347143013258046717953844532779815630785470732122557988965545226446442040177704680957657823720711524288027209951645924140574612690350897010711371302217753825399267258834838274071491652134321485871398626167796163835667699978477668574114798746506290030304354391328980705114450639201192149770364549198293211882283821444667352576976880254174973159551890694462438471168267163816602145815602326463215210300524404831280686490454581994924350477645490832794419682165577411839262827616648174044052753748369215629890103372490283714240727052759115457819790144489627403819546704829676408194629474934969799882543987747256386835906597981666365143293057674605636686660463430465030647501646648363900450568567846943932236588667498283349105323366885510306203901947284246373075826548038913690788155497423198332404723925500921359013890082934512592523786988919278481633325742977130738656180541805368788806307471825878882051389196230429987386330834732639514557598142074187499567127002077578991445194417378721764986553491936129989216840708045363135316179121586920395132967205382035250865266933748131461935135562005394172335264460751571624589375597091340637478286354799548939794006136702518433668962237110192975139917935658602706989052932538909366926241601947877885962310708958385846079778428656049377096812475243141052918251793045305414216285340294276868966429851150039955246925929018881062774735124071617598335474094670818700592834393686824810635447067230860140520977247776795816337715732814648875205334041991709300242244346393976780067873103327494569231690929518714189101037775055898179014873256812617787691207180834586537918646291804850970890845859450460813941626785089486452118989020391439022481219313671663975382344520234003997383377862596736132418362920148646348293163277216937839233035027486252208766966034500524832761168777951764117952416798116123842372152554122636605414532324321961221582809196960406923897208058478062914854007339175729813555204471508666284565860726712524594824625738376133321636987022242989423449945578846489909168573710538782587439002372504572642267611983076941750462209634716802339006818617321720481562335613946678826062312424817276826743879653718763298337626256258873966251865954762392219240823088729919067840670904031862839244020020058593418617576158006199478417502197214062110981989109515640995310820661557388861042607488565452023214101583707709697347737786101155614697615742760038125812602253660319068511092109871449514547232023866249194366645632134406512429077624859996835606157715742059022903536944756672117210081205680603638596763362074813547191662241225132293816425791565368727281985761836173879241341342289387681375349335417993333594641740692334761932075179852890425598777631470812627873100050395523843129048531638152540159121254900698845296066607392219659107601914929260955132080044827536149834962346360640602247697966195754699461242062462764613319354544080237865968586351576122971894801056136966132349235698419214396047268806135400515881937020658227006034355122369338738084566944129404649684949373770037222039088582698226814109851807628187719429257693115807831381135248675946370479038796072414174815365560106360948818381649409882589662271401861318420759926049740443156959084636417226778928614347433520985584486082793716277311507209898106148293177248439827024935446432252199978650224249370282484147959829419291892486965506751968865249920003270995868365159438302808546096382797109277550467475908755961575685125633082987654291438160591170720598395165724994568953037757596654351236960177467149032811529667718705845810300227071974486219439652028660102026726323576462097605592551546880874292831658075658512266082055858949759488215335644883705129283536075733427871055599674348119154007677708362282120899357848371252367433658229409113593205417758597408176566743274307205371386321837426712744852753785696197640051369765068153922227285415930160292944741917509898817042002138322600508274486703279994389559715274290352435627964251420541557640420894871759305441670159719193728124180010475820285769544505919872238595364166534513902294113607335137991287144694321187957920279822794004330594999915202520277437766269900823132768802743898458763991763388215485819618841914944407320981644337729645519171244422451305332903122911911913523479858454184644729384545240288677315970566378348491296874764914826368598794952634824512480018833904890519208209423944154175447260526804591389347555033998098193067654049376825369503438396064575323282844749810849712785939248047063767886642840711824648554007594486792969568154432621380778913908829912957752050627096431093441649840885846276873555440091399978977178838903527339995882318903215992085645576900395894729130346927023345840228627365844477476315480774998190173431869205116898385998829179958000412509853838949762412442165722664804135352328648242560825256387531755749510690359065851323002821539484633252659695857211353656282531341738814339950016401324323435790031414497025565402830111108104240339447200762024939515881046873552883169018078582475886835144784988684510442859202190314102160935873231988525960420874675744432054810270332663551899892418166202569178817542515828572137507743981252732212265117790472454557750805659199189668939298779457488856846701228974760083604549182179679520990741398227377741951193009055930602273587009664332379270726081627468933872636754019538013240140479990372670581239908979471284957481705333125450495005005945004363930030612259390915355400099204038049256169005296753485941970815737594467870022972123189406815417436708682167359148481368974799226714570836235015833636873891434767055759284151368342242283794483137844028977720430719012562924054870694551271511747006330969466857738138806422811089843297064725659359913833910262020424041726742988780320566963367084692261068315464116232200336532523688945429910767700191704694313185473266105049129100234681809361875304356542063659562906119036506421464203217712387076057421476480296651145148942550062736893225186092140541856038307114369786325147672704594422657055387130121944862951087815754217063912247497404024278281005702712201592801161490880902074613690536350647266743843932821357391876537555989731651535113860632362161694067674609621519371724378865222504517213629610826804854220994369344075607076717730707689183627654277672047412758440137609559150612537130423234157780422290913698431595035980145328053273615888346373881391291113635176437523825913314702425435688711159155768785597663077428773155066805644188152405960193185556814132022929411548352405582142963344986224740108588582561033950896356003488713870451430531696156075130626429335448664151912794158469937488735717797585540078950254676873959464323361900966385459717702002329967358683201588203446648952481062380286758004725359417449754508569189643260664561417819952017513428904080933377165649452304748968060036348246848987233219976819353833129468810915031078511940584315978233682980529087431722558607399005382909233736284217253751168687185079782487860945075309502279274245135045515506462678535500321599365074089410905785312450740911988990799879212384011308937067838521595469582819585195973200337969411043374508950111798638245827615381972317334292085397455477513510591145212596121431695746769811802887087122951072728510953326750415671476371550634237393846899850108469646821042974004318375788652461671148088096069219901830541767809467888282615222913957497168325813433670941657716379487469871348801232111738290274845519929255821946549856874957943000492210108341665884408831243083910575968404787054882838831110411092869060498169869539592078581318864793411197806919658908022032300647392843543727945142813977390924755415541105882461764063130243099469285956594362595261930095088178120947003110302018561306276688181739043911268831573872769411852810119129545296069419122632680518705663063697127875284792401269383780685121397353299662203381598986680288721927328738618026337788560247638423438745256098896881112528659193680034580005526032344560894073314597920062052354452976921976661833402143007628086880723295841787540439275835411238109698121674714476244551921181702798244474354793918919366396580820322890816198671163015382347420555421655818736592316316114263564703589614663864330246662590449526967962341511965982833382746960071393777245183767448229899211710626111856155250438235794989986652500581219661887964546800208091869000698386770490695613361177438619959129002359539352210011596475898458606767080434891681362783198123325074414580186622831792558562619887281827256591695821951624920619771273522969754311846975242740853812914770809768059017352423716433502217143747291601299654976900818481849892459329042115543892950153065302737581600293449156749101616016627769556295339005919534411475803204166694335564503687741026032634170566640679851008385639865417461152123404265541453175659919250663125041336453836990694603579344066929867381954603056325315877177174986420706619754463313282952370201308310306616311142957580587806998262455699220740495172374895005121381721334281209183014834367080754992796582691932964688093803545167789931950087558892253422018576185801167048993091119241022628923914271824806097834387670957039946304904532401336954294865852483352269915215204466319460092137809014768891253350658089813300569051221527896907706676035331330729347791599097320738743907079384130189342768646021197903832810774365041524485884298032101079118862844715963254563915957033587031470814061344688903491818154175655446440927728494253019087368839581363153255888897299555798234794812400864741179363845643539957332301889825764129092990134098065947202996665553456415547537061673383722258269446966216349851497614598933048899472638890667115644421757889474221374870405658594643561861987850739129545452411738077713814151057930082994046326516849037383719858140114603894180567524976178189781251154075084246683531246814302373587996111846784365544895953005698668777227788167662720509608832082199507028720106362350623705125545293948155057579027199225969583144955996470805588680321319704304912813092683048767659781121975300685045407080800710065134963098243638607390792717585885044312497445902234403843604514180754308137987779542946394010870977050306902198821594446189299491053724304735290273174125465858671849681210493305854771209999641819275493983253860214457845222264495599092346492925111646131776718071751267031442997472395577700775267556091321196962009281282180907306978039256559327271818377284991988020250235548496794635136381595952649406328326998994545099529449863382242412207075590748747919261469481434252229092137942457586395002798945806724034062002343860000306330001417122469057111326476363631263939102580776008461389376771191648098943453342593299108460203699097275496952503189476422785378949394382192079618792989755300020743218969304974253029447504639202706453737539026936993735388971736972552709838278364496321570413215097099310742796060963747823557297226145406378169709712975717281294458453426337372503647883944744427305193916384173306902158596465820264654848104053792285510482581323469450333140252205187886434034283852353083450473371947717140143724364463827406126605262851994606991885015186080371302071653980006705741347137876815132900027807626785424872536979577678623424935404198501827513440380924230395667043101738372307342107992985382033388742904895701972450900973975736470256855118924242126419759934315442746113478190386271801636488231397884896441815605307363115877866578585173657612644441320335537316760375812252929755526296033937430394720752727401896042896793046552635973604407246534086594246599284157603161537796827754036073179873048375811236748533323270349265889301341757445400882263866102628256184417841427827910229320035495877254335741162242609100398120967363425606940563628269160426948826839231498760719128191382101993385472935640113529680959651902828575164470357508751023831431446665543124671048962158060280433342660200674583551839962138783526521721936797210434585225011883352887693912396353056165195021414617461907357041362762478547493377857542001040558925238599221287318886114989875462672720876982397707618103660063880088838448362347313837337213534731593991326839724879399249879021050112811511454543033721507023237049573974375513445244279690662745542539739569359040706973321354813857195122550527560012988498382291398733293254222782337927108773200212544872040810079268174596370039911344881850114715208258370429366686390059693088775896503662654476991436155858686579076601131787348881930011698028173665456866627166567697021078752320701965583371347618279467324190734241121846998845585136123585861853445680570296470335398432612245552823964348193721638879136161656018672244185020081055337263402735381278079775925436714843240435438198687840500815998446618900441611385023981749499783313277979370829060292544074532135037296797928013199760774627661857185127674701978080950480589103094825623242307903787856335518045328519243550524278973958185471941263001689684382156967186668346893175030063501675953651838825783505871494054655609430231469508783424992224746144206910613853008241218929915409696459249285978571132187849224209484230307244535836467875236419513351432368757594035048195593911800336921416562430581910370478457308815390360084352070337376460882586675483210467022570750016559231247716936575549130047102013414500742721611096971494742543352026412365559249421075271822614447010107962583549677239401882398183650342751640209227006601598515544517053459483935443174840831215557724099750432947129516580949597608223721680026440436022503410132211593714425135098289779731655884757015997109094920822807704540112646117742808315221405936692462600199202307655149546853740341303864512684638722429015183006229089980674255512750909845451307674288118331044855940484571242219882085645645913144884783482989340062167458980607621418394422126528544609519750828241998448103012871722009531011755616679876470772605376959906032488444922327528824980283963426327486805672346216687721803441374332229008229434501692036839441382864007250532004029419676643944840444875510627285565921062111893763357731655522346226697682963207620726318271418071630207414585707116739004417165251941196856288254701001670319113456228867154449213802089980907242977750608826358930413737118194647833272596579510728153784934222748538541169285198803779374172859882839626815430086281225349167556359066945941368065204184015679863107471767119747316096792416888035908070343544222575732240434109208835450951820140611268416777044920864087837315234836512395642943067479901591365739755325969586840261185868731626279769829531006970072673962021042022819539092305656095541282211597623790808347421650530406176307632811000845705105810593500337445641351859339025366992355340447957401068482619839584145259639843200506055856550716197078294404052880049476525152061705994754478301798877136849363031994493386484256229046807756428305675210237572741416214163606839943997307250322568080952327164004812723154103632520583987523493143597322661764765284944883876273610950580304922754068622646144180263495501068325862944592403861134783855989010878772885197311874215121621064916343794141255902181153212911934497545034197967871854522384735779233811323973136078123725353748292470013741494470353531738196551520959099903159133994362485240404843255445087538258143017780591747012358909335834095301310665748838917443527062630540851078606524543319078465722963544546806090779043425337770428147680580692982943572308726272027203642023038453587081863958370928147776405436974940189573717977619756855383460125122138271993723233762721608563771022421477491786012252493585105748920090493587445268308756466006500322026801470113065551669302427525176225948582635323444417065840214104601780745333589640366545596228782880492285815728381333532688699605550035853782487036529541698318201040560235046925848218497361002764802775350312453649056019493619173571613448023812772399946870359790162164003684148155257412654400099498519399379932813033820807575077506174514118962348358337851602676765283806217080760819318419284052586168762042245469401359433952221412621802525437044371888549909056657272539490932068092603865455518948069093067368435762637630455695010472930551584018576442015101331158280279885503153630475395787073871328249528291067972337293242812564722572191437524600547309869773388215360192710832882647002630883337558404715859938946957782755775845822926091479639926993486748370880558528749431096813877718004122394100640809000230423447603223829390464462125359036521840098449966011823987743177569615183661372470484755018270867891461192336207264708881627499280048506327307632831942389982890108158856730913231101813242186665494658341748268969059662659471019976258222056102358780750748265508814080721393626467035795024965966327178156463693546559784984261270674657610612678092542157773318274546080092535403581407897681160715374665501961545083324838552869189811096298289598742782508915601325623366019201453788796390527054757424046477451861287038836644354261242662123614506685976674163573544547762441360513774246363934138958061011638011282456231282442964032875447751940354039274235879785173272081833779526254004687448924034938304873173915353861415368252364852523245360847180331813018797756083821113520427329001601596782236768385551672724912638956650108204864488402626504384470667083499105863939477646215187261220481322204364360065355199338548739267980263678349599432810550955922509190770265056577314357470653073189816524634339780678342693294401067309100734971548668100979429273216192396721435882176881535889175138221336566729431916142468973740656559936226368623933782709635827138293431487104068301955655555245607653137787876639725819846818765919791786572185537250849135344890746495239665911404512275619674099057830392300230500810033187704072131406366246573475589328113266488993787864862078248045637864709633290647808941795079030764860425282750795680757521016086081510139273811148264303370924930651644940941525590268707523424441893360204849122281577974309254398409501740887209658735072730131998203872549578921506012112452222607656872686472376132490806299579239919778938884895871954079392130769245687014155332203679101687772473095545469991941992478313460401680429605881025679847803185166692861002217317712917461525304936159104987109314042377843888884755740130700786729590291170916977971264573887832712866362708057981112715786809523006996482362584479010262150995484120257140585359079895355910724412170503141653799186870481158398421624106548436277814893264440967702306576006519420951459435392048565331884944842379009945742927741280511051750321266425583534700580725960976680235261899338400667218548455733808751384418316506244625187531330944765111625280823028488849597287890638601659923429911057361953855998031744588905884113808850182070852090904174735019326724010111595766382624249398523691300819597091489830467973228899963764672250610432808158781906639511120341853376735373278739888362443488403831405166377286330437641182335335815560962598848165051794294741962845608833976467013234444126799639962620637437164232064833721172869240252428701843438163099369827538546700181597193612148081917868747606605262535371081931395131178660660131433383853561896666612757248677676833672168136583231940917954882993444407330766425538263124254288281557551519528982762765047213412880003482796694390143320908522923936661416855323870801826954955771263253197810270166433773234815377160097916584844199982688900687938040708302334237759367765440311963933001351646567000526326098975638820644879222167060200344572707603425583332173512235227371427824797205504117827862444802472512683249352707632356056813163802331906927624210756712117761986134469985724315625533575548532147431303138388581018693144244782236684780164581141414344814900122370412145919498037868194123538309972078260853333362677532326217379119463504739999849719906028582872096976156930294615843249715631506212558878607077823086031217452085331554102166943222060227622506836510981103930947020115992275218942347064402555911880056788512948742454278002460012769806262373850668888559616786158126792461272562596301473574032551401796769697327846011772983200245904942399322193794786023667039640795439323505177332967831359142581792536375768157095842966449833900314081334872118957358388673470763000316179749076146530105084332058464982880670318657388857690753214009057765688469507160807501183586176500403462274379858330844020793913372870168573005095829792876561559456927889947849046566243851228498599364267308427062878500198195141007727527374212902589910273367602658226270615371613743206689424942573728590570604408143791537753706943871124759755509634093303786484989492054836380483886669751335458756276577335955551672243537036305866240570244123769195677606853010634401824808286213305815719523580464571817189966459507960031362106228547240362507199322922485568892351838273322509808133575947661753820063645016733187405304409748705090801381632441963961768928900138209116553558711910743420992319551726582935911967216977356047459133258897905584853085034306829198757949834826478958756660420869791628289949362389097994487888358913854668400063674612236853427097738839077748646541005018590817632838063799999287648669189669288585667952253570800055866708433708109265468404976065137551373634127571629523793399249055690355825261836886806411817703130150022015930228022143053563251824686550156417923124016062064051374327872235541931059612681405023179098815882780879849376150990749467074354585649486098450073585907255415277135973760464661937001834021492761702393041727017993830899301730723449958040253725946675056738231488199650944716471803589359044354089764754466432151664477281242713345623821008534619159650812689067622618537305323198428922600137261161785859229677625447834195889192661990553059009346445526603750276690275976984920548722601154576721756716126107400903202919926697831161334018829086586951791901896406249788974221337917065525088392550713006569720206484736813052396556730768252462377543258242586176477536682432804834396578662848915251320160157697147523842279434923230684844201498945749459358965873026005702268516083715307061242909412009024038857923857873391205622761656172422432298631696771663585172222308463545518239992201631856441923891353071084109397738484185181870871819901668386811750827641552351554663498859732810006389803711593804477780740755120899401709351551783645687306033711443756343573702403383109617753758976736875360547639503529438512505757751079437683285519186897333226293876563060361008112880619426556250599745923570045256861430993756692634238847080018035551795155123804912235823828082181687425392403703379933917703372024831778814415031686618894931405565284262043062411107724762509921777886571990831817358773095138114439384116090660016609945481132963746866143654822758319312366164402866749779374665037779441329886308976265023648937809952839747401100673827433213127638133846859992025882690498802020233413096176590648031050336581146630841628890812127148539139494871216095214065215088645214250850370441373685431726130167909020778809422313706493411148308434070136795237056199238070301106355207716061363838217273330788960330883801821776827702293697061060371781865270693304098308975166682885870608421095334724792109689519927232071546364544478903051528898694023082515873768420294852952777945835103095551589579013737373790331387424002555822787556857567374296351414481111897471642425069500333909119500145546081008759728036692425614008511763594960828350259185141471970903792480274933245589502444654831120615004390531896260424537273814734332365498770499336460739529940720281695445984585997042989704161889819473655683701704785073144222552511972241239146271507763435474159657154131354153169905712267388546681534475492471214289324364690007181803354417875268259487423825044220814975021695627227624981100410397463463668457178224945626588065979309001915435012200253039724377076213572146414815182896464380885949551867047788391519810225714954892074823037490168798063727909004202429146433043547274523844914333126060677354165485405023834932079687478185081812755447942497963688768369890638381606516104170743805192344602503507117313318150148523248231804578778979599182945537150499138309846614447262167105454929237479806306002161607459971525684754083183946287726591795678882582114877996417325345684714996184417114208587795801853750890352619131404368872884472670259692293001517968125228881525969399790607463406499243550174785863116829310132843041770144078419835048723535462592675864529043330804376229083098082742854833461543578996091212624801966334361072999849710420882844658528915256371799195645545176289242291176229670685747548310689022234835703487392013363777241051333072587670966726100018171646409804633282005049921096018436453337785250403901096438009826649046287130899212887859214713524056156738934601384133510904939487404865547406407755177635777015142648264709768286727245084068739779923105690704036148638682701266444538231068863389305168965862070577875691519025536619337779646131190958183048961208727027964003027674794189889439972303231511936188298800422101261023942276388713133321996085572145483773181080290478026672843020218128037543504484069792354064248287583187788026261400457236197378715143768528370237240800147238639041650510225449644804606312698657754986205245231773985078221559645202307588876238719527219935617194172957005807633769796802358899158190041587201796984939984102279766477765110459397302052633470267614549353691547095460370371973591040551079009737428618184629177889676315342499818662476015833312582604160160320264890134363489494553117475986305368409052217071009269908000066806366785131949157178948879087422402563002142095750853303329874491573979687620552025094425259713031251809374254542844025219310410560947835755382038326858793511131701468711236853806192366492301790080081942273791434229412447196616394067071223412512211578590045619139724135542316493159995575700252066119033462981533307352115848285608103512376916987994488948753744262511940780167798953292280627658449960370007014345322915072645120541343257302092509766504255967992465374513392154335489855087668010262944799063891093169633375352645083426001986423924100765834986697334590786462911797846714392637523628528803619280456939061712751329730782374849859068814779776394982163147087980981837908702529211995393818753739553410008125669299373936597795806091082757158480150474878369420850645285052344985744589190649972483893445578392270347356721700529483367746917000579014448316644224481172815467396842792523907906399930530857709272785656240074571936654474097516617971077174895258833395795849934963859256539377774187662050094488631372016340465410525223756413760620707864511581114089173520502452794666165195119970197154565692915428967431662434102258379310455597144561145398446265569906486071523911162816282282412135118960527908220041386352095030298304258741844767002961127369072547973701284092037703288764864555927494098410031569375898355511804418484962533955346837293137547508948852395102148681674541393305389488106182134826078333051735445308552719995475434188117010521742289994764874472366715464841866609031127154105702529674626946693269610259692088639221327257836839092833194973626318104302775939320210375046748279360061505390932877328362311648304474445189417009028864888321932945972328955813303164932770839612460156714537883812505926565445563746050319809356556955212287310813191796893833462495349120032154551969896763792787415454672061348357648889767848265532290256003108460306464611667965380509003334329274902654196466515655790103074606731533900487766453997536483088417547779333444471981528241487734159536631837671649990881263649092997782134461610578980328313059963004268021073432812495853522529143765906823690180976373656877525728443886168450276453499926668487151117580478407263436074283859447833678162499730108224347610895266029776307469689688779406190477951172590454016495582891090191861327295874649421908876523086266741473263401976926984530676962144534327172013343587766224880119581737399147765812652668437589195650453598015644586984803330751864966444407209171258654141247674142113042711482374205905968286457407252751480812749087234123974962066930675856789751485426950033483019361321291037712331100687099039638640503934958393492364275761885802820457466981230725857692348103424548884361288857635142628697875269435820456991024319949700078835456549945030180775169735563789692929816122115939228398791377169604718143770363962403946594417287796983835163477153014846744972407586078076555194775055638642114520904193435013312506803561445078146935945641042914252507068093162921397735571960980357603492422741919806939504492956061616879514629792750326180151840412524603024484737437295172950439119778617481178244728393808133209791088386949659858921033327164782119407028044622195374495870242827843939805640087269595174415486632945646381506099328189078238944302248587473984524935624187896880301960626460369446897867183230515273528714797709366262354404334707639226609113891766906601704026748521326121886648739366867643172930924289925091709289769799826756626833217458327555146194797087114115253439874731160773675784757764237845650289199120309999466792065513470314010096932392674107895190228884736770907195544366806198420148513693908042394376109541013728695672165612814494830327182562214322633560470729875805757763387656129121496735750143172860267357548713033705030690221236545536472990338334232225617681017628356310971042874371765797589204107825160603684103292527094684062567334940913312420029200583988307804961050175594872989455589380847231119518685975575132133280161063395583416632228315017027879976756109417704248338395293041038932601184485528110639625748903402443836597918073048733163062499477482081371652996447346047210881840300084738265975852289260294649002168285462068500527618596704802206049114770418359804583355607809637433876220633375291206226140694319295478643514905783347163157754061684232817273186153742464542428563495762431648899132557750129993575697817561615238316338848813293795033394089191793914745064245991761025169208450652538218537744238413379429667993510464345209421642054457396441045618867783192896685540409085558522758797199845226441183974659866436498868216917553807307051744447497705236639931878196349043570664218520971268491333050305402197868343779785846784442388027449116499602326353793889217516820466716638859515154706353792929794885340966662313756911576371004804841348078868360389899401961272661742236860042410582250720474429133720552728941119774826560085041186994244724909323242688971618877966318605473515528609955497374105440013790894203426211153447460301679744563034914263322843785383327365438198248931965427341789237456154186280922201928078768429810630325942046244444709121969383639188606429346848043693995531589667186170819086786732156204971220553906322583011059363263208248355152358502687392325472554217477866724247031218727207780839817801240795484505496216750374033398012754564278527781302170515523974504266715943166026037804618786514382970859280567534745138639542094883216654878480845657777771527356918983571088616469002774025328018868116104118108011925948173035429000883617426502634250822073199230438218044917132451073626345891649644576886772972484483271039802569295571587123577855168262098990740587532762979716629887410153724835311209716774465332137097317866339076913123522115834751216923392588377954674952793624343796168216470770281369679113889335622217361732333702153130298973249692650507504744541707974336242489600263212462816641575985361803060931862414494490787394725287208064449377400364124322018506618569724582312125999002998023763554913728771980214066520320726117957898030598849433349385849242633217072773475149510937789498328866789518990387174446628370131259976185423741490047252639291115678583088631858143048788988211569600593752480429672349728061798281276372009727395434986644069498274175803669233673565577624905061888805944455577367359313272100989442521493195136649914085166171703700060877336304787860327513229870298830608828827891143787604300019699691738847310753513078120842404269668014120104486301374766788064138698021401875940160483383626712970346531026439550201762902853438947445821241632322228876984270239020752164865133654712656835514107475233661615401494342218933118484804222104994611168980262790622684119422272203341148471642602976412670772968425283933189513101790847544926021965566721732539089177669165966114439907863523765668675987825493753598145224062606006970780924744591709631958828850431225220876129164818627855939837974035939169597101935451879058754592101491859523392458241616187222497608625088216243420565174982834952695381421664270295111605650038652062823625777976696275580477121144657926908053118935789413967193956209733429617314691505213608239580603224142380424261926700344649909869534408104986496763247823408534385670529907995672328392218996607818895303639378321087401539922146766977679117169278614619500674972443037403521519645304678933686562564083478179066103366873084644028202381725082050232759798021313324783516974169076217114322062979683466759518178552914373529603847797473514281259902865305880403598230647900837098609689914350236666247492712891533958984235177364736244993076462083807631298058986033088078367900327057158406425389618233580085875258550340534210022520689440278338403712450592619426376024794283746030683315350884865419265649953359519371033088777671865667260439450869463964703692581568025157189967550133615297546680599653774711690665733671250502181917743297619130224858994427431235153925043086746009973831169969655376481050203296797174211406626801331854380260075685169892046085886056460971132725264265621351253307587477681184353729174123240559103845451099759869608947423233024612403531011674103568778457222456198231029641245299236771559702774944001728939602986041674903006178835925443121660288200435675334553029694190625518755313683472107527181351473065076447812427234658001165510371427652968535956712789126705252508533122908972723703073459920738226791900528145700347657835575779425252486196112670506001049087584475297484505965172653770105090975169236054759521429388086383989585058516454270746205830822527356419949341223006242216089373390900356354365951473065666067019641936299055852142537045147623355302665986030868595867443875537411140287339765923650623071364203250949009609407466593776470022969275434464462553733897444211320404504502403533196409802572780626110852232672481608804773001613544387709010931919623683967482830324750931104120254371377282944809923530787271596941237294619030041260977831770246270079268833011922817653817681936385627169414240867460147700922025622627892177467517391282060203782550536629052728537523580572767469360711030305480068705312341614974552124559000474550964587116954778189061019521077633329481213748908797399490638837558822834180615590112159880797053041054434441392639480655056744923550488997926524626828861237378642047161265443350302579440956299960909856008276520277106447660609468637822623406476416164409719505017986463023860883240566837644268409865553662417621681300007305951785486051895796795965364249307272489622917111746742536298801491399523854956631914820071122521194396956257955215359118333634343160588167378545834611602713299571218924846938030804686177846792086204457795200946363595792768996282693370438562500704505936217287290830503062484239791857360240926286447921278731951252826458899194558297664568989643544646448229939790757087030890598541289552542786041752285727399322103815422604646562047164626589953255079799751960837274181269069688986737090922293256926224832028071917440533369913349724590449605166269954698085640253981713786890578329878842193805827898248055429075933953633615661684493327384833280571719913462861981090978352925485474763084204778108028526244272417104920984848445257006117753700163328663385303007183832720862458268468279017738492953157354879010610981096872745220492815040798884983718515618668261200616290155903013339739305265532237878798007408576089157704308102308568791481773378046893162190494136010720779344557344939181908553950831442551756786714816065782378066752446590774458121329676720750545145675855519986300928605233053387148252545203352603516154777446286105331730413956799265862915559445827457298753388601120989387628714041321798911799449634604945436774457955743493256902650181568970132403366849785339111698078917906751920329691653223975286753687988394776165120514055455727925476821798553502563547399924865248084726144151619863391865988255083779879328550149265551254966006297434083427480298678747263430857965800817295638198874018892367887722529753270116031426171801231098486091029996355465114787983842841242646951215772475572061362841339446263999522183506306995110278717478435473678306098015169993612660815244049476148087144108142368085964125602948624280126394850132874363628348365540175636918695119200585936105806636964146428007959105935134365754922054542199271125862133046929558870513858677750901346522544586881720577318128412783145490860571821771887150272603612359748116978804319303063763624699916751926774017247776729864033730579865793701282092618684084269392326025240515727122541507999499918240249100062195104403018763503967667456116805228047968553644982664872943272807325950795675596174516511520003157559633244292901813646286103998227008474277689751710095441872076880822606310915670628249965608448284481327289015125120336236715098039747254033470915783996222750698191788883228803195790002427321173196342618031969544439365797544385466774571426176401006454012943815548721602407369512873238398295700029201133785741518791626486139541637374380620482688202557372210365988829407506441729161360702119859920889933988088503479326851673999892466786817410041841274950445843688723929597766603694557064372647397014023538167876103178255596433250691517402473668829161425495380508884131729779772885510398855497490631535384795194805712704896738333480843657815482241208844091130221416810558623692352662950846450480334659827437952433694170085251039802281491877418527103900804727363694815040827822792746899167740031227502124596114885796712382181672851869215381467926089829657223182490782874599977630820837734448564995429035169604164440198413387914106998823516602764222485775790576401525835370246923139550523839174601633393170300777983384279980148862242767262327493461261359074348362691509862288719854834285544869806388118295375050705304936199874614626981343855564027741917237325037081054941841512987345722290432242425265981093218640569643264576865441876833071824605461079211142244742264114132568675627016592740058870469089049750607061271457295708892860685845758655290702381807658764382163373663175272981158413262041029478282686906679839992762905609774587554699054592284814849014890001954003831241516319957874916911187414612358279320239357240544837015309898106893121435866420558104442332347641865059051337347652626805225251854272118746102496176101343320221720599574974684907700964123738620836206885090293564844865943987989807704024092041112744521023820110234581506413384822956389165820598243694615898708231774873617175871372835840659286166948655592818266942916570792326842696466792431417926326093017373580846168189982957630777869947057337837673936947623140732377181560343499322414815374685578809798792172923039597996812786168841893147947011532615999417026594011962430108646917648703920098580657671205876348072870691421324697744644461737124964469691706349137924332588973924286024646687495569908996135095626571380443127398401363635916275620942891574032560420955135513027201149186098047704710889569648180981557689636306313901058053010151974896000773156043743729977510630569254667849441999322865769262505777207661377377160948666762598342260271067451073384262279984672911003581556972546910697920990876568482145979378485076377676228411957072371761878647565210403880829080556068501757172314135482114150217292464982176724487900970299483641328908453661120704833176194891339401502263238134386913137189209517058124824407270570044208540676592366383808853492819749579282614839795649395620062134333968219673780854256704984299952293899229925808114234286774309909694838812004247120835899830168589405471088070773406578954917958793742472888200060631247139517002602105551379352315190787047131547307577129267672876732362946052432146950521593460436909164579791736398209139268788738237584552425400412144993424568540116393277308930209236771527860847915991251687728653676639238656391593321085070476565517214137514559669210062168294569528293150618448765086878106558041792619117903030607964140522714242585030232234215143152690435767477362732234523520642136607454676386495246072803378338670739355588358320075381385694619503251683329862214009365922617196875749684013950804865302074297966927611487202307881888768098546094384252987416347418854578743422047347354335800976096792255468521683005694508047592728998282553547480427057048334785158454003237889617135360421080756982448444681760237778257881622793397457474205834221668010199570262966972586517434021554096910429334235444107827991861851519249901835008023788586503446532277338923151948979715364885679470643000609114622575936463303767793258740700927873042665935357283919832659175832347813815259783242196063957438756411816820243950178914197146323756645751291686312573411203327029894215620098296097814135611731806980893694752774707148542903492309752082961617683874352428546801254005327320749619053056117885936284832197631200952793886770217343593385978125600227064876380255475603954397708937943965143846665755389273048180815983530282684122312434409882308579905930300625641508237199195793378418629179670189850265651278628817841732847909620624855872679803202794911728053522206838040234988840088499141503843841883683017549943106239358915844855999917505340321804264097270402625781387892483998681817215062550751461310685564063638059509285456181111744494476993992684156194733826392267508839985438936056605428859727886046185300129946500439761024083250459536699044662657406740472705965685462294958845248660844960400299126190265640137275865952946472737400837883036827273190926078122975484206767911594466937904472185172887127073916591406650926389799570468918473740489389204918709945286276341395915957057125673259905324959503086156068611660689035281108409693792708546764581008513031034230775818651906295790792535396327948611770045597033057163919379428688969398695201093298568542404395353543118270426897371564951733288346370076590774658927867132058180455617756730829134123169348168716918950827405149317891905327748576594648497368629210899445007372001361863157220260399333857198889214837743522542444013442704589358992696303855013989023435722153166567153992981277481671858083216136137416622958015208175793821777633721758102765715913818436406295638493132523891828246571301935993202704304173146333644005045841791114467860972450323049195346139739774015351038205415190102325196170714494159949238085556163939978677048725309618283443132721133107745582525890094745334293767871462964419295730382648893961126196606887269007925824617626164023045015006381166693182710559068893097487460555431321248428341802440728761725350171535598324242304147491167019843780366453567450375500803713016330979578576966892648132124527992315477705637223797260296981221215192102389002177854721463621087854423334355470255712427833856384384374249244094773457081999925206553399594214514161162632087642749624299062517606502265922249492705278394586465768282998057217281623278089060420424147690056910596846807454615196048245134671856832305162550604127276343750921704742080958879774597769120144103068437850871568974457902305857841674683253741486586972505347450408039652407490826628309980390557607404526577222503479887641154229857924068870979221215243623910555214031956209643366063237651439798406569780278088163900640000752367008256645292021058628512437542517121295053292372504936286365683940955084371688426930337950264972402967140267861553749830604239145477551257782703842884066809972757464498337781690710681530892404699162264067841814063518930599678909280236505948177489829130950041076634552319977714300785843110577400734206236388776494322484280048256761982690597249014791105274603439195450914575386015252945460358374077567324427766068944670333060503676393995970579229106263781901451951187067044738669423963164045841457991044059802437338844534945227425421935458429386027237354723567595832850192992183408293479629818122376998223563684301429224501941459479859470356713915959460967354058709507447621031799866238072342259697955405020273138602908818813936113601468660956083875096142791296516465928901339393932721471183120134662538938064740323488935562779643506024606160500412224181439355215189365525936880148100632451927457702993381103301096810992318816641957197950116475913814707117015200828291895631818750019109871689147176762483561345528105375425141190704702220687692834639997386700413870212147702578249653744506991250992374008330855606831663478016156234956606040492490491932719596650712440618374810634195787076789599544686928308394105342071557404239674067290493978095880717938385344562026120262571242746453572700238540490631375925912562962816241209492403200763487776401793484370241475361717857361005382193435020965725570434321060080243806441861558460669352799324234899079735646029182067240544846329241014793613109899901531132439302317771510395388240563401359113204573648461143903681129705024455147566341228732931619057143092562705570108922251000196562677260357473851503151154309193215187232943054934975227935029624395774013853266598280354513327971929339653569865801407462849105100072076811928175422967686448577710419661730247058778322570659640922799396491842485847127922177710710951396609660649419986107982671117267766931459469630573880794667850447147026009855125486610742291839971507130589127300000498024893686114428735904798907960303503837808887016346384642143925846875324617087711817239162411548778069692139605771900821982091816856421955689455791357457269179124598234958435025879474485010282036194469213041575934629889937623184268484652702360479893665839290266761248700748789923117240968518588649679043501002037922076341532249101047049223660363014876125625695409416919380263884906258103082297066742955790225234962340481454861202981347782290880547766124835776253042340425667702366665088045838406476960704701241917908001826957291147442378058429139317211399632145263616126850113933340785335037879029461246180885774990241431573946738615875666032189965833586939837332807307671786586681152400565117987643749525818729321388197830336009259705528426900845704139411764198970684427272247903080519304007303689819991206834574542663437867772082292318268089521463385292003562058549104226526219152075349511462293323977759751035840843506017104737740824245064396868888310849413511172067643399544728912928915707559247614343582861129049904800446750472743398425480100924027767114719278058207439372294189370089325514553312276914973808898179784688062916722940929015173331113495313969161425042089517422052332069794813103840473992388209592247199564354305406459593840236939739520627390449862457936271204453996157742947905452480216570291240983085832191568254952529927654047181110658953568896384258342891740995948170612162352074748991158862587924887161903748956674286034390235195983802679120994993882376137317588890563457412371111529929666484808943102705767788227808776051483308805671714686835568665690906013565703407055588299954738101859695667886208121636813099447366553863227203041141443701722616159959397940834402706495615423445882365510374211725865654303087675980050583533254719480713798799769128133175286002451381123974123613494925593636502251217883602616634535452261922302266336892645409338154961692237766726564924479258608169728046904625596006814971389778572217311334241359161207167928010430517329003093401224667379504200393958875579152823826349577857267362094262977801138431054574116103220776609719028287215153415477267254268474481290469725025822290643956922561559812834869043609522990325210333299588388273675867607514412415111062939167003191998227668603445257757601085293384572681898718329255365224007867886655187289289978339045266090922399850264852435429306926594833373107296530042239517316755292407755379685681632451170422372042936569947657388461647953328633822073989405688801668550036629826313473724960372476502926948004293456951078965949779423103911236762287459199735249432320790054801561073900177401241585130744122445275104864100634518323475695103575336193753014829627361223604619851829922544225009417558371104336725106584177659607725188288799200284051214447730834547434887928141669762468137320692148879296460718559682954984479059615259420409886369645798141986257048184619027398776179610637339695042887584704851368399736702393235960901523709671250092762675549153242976201746028860903296116017872386141272167897856062166644839825713452919961463568984887870795229851311512788756398853046995202810798122430572307872168503271965208382075914395702443990823061537155747723692954003500760963515067094413570055648250006760928497646182192879187109975560784135773182746017926762332882242399959799673585505172565834905246012303687912811419436148067690857887985196492206775963615544304810224691975628433836938047892608362878796043602544565783154029934082902557137229446663824877392428345065318855433111430006026097139467015705173173248461153659836765182391990554102881054342579508312612366541415305070360290814704974766359011110048448657528674704532758538764099457400511568162239055824298165812922685179399328977294877555032969326809337807781008553473672904215140476180951443374322615030391910515072143938057120588644680528588212240286361699527140576367329185467324672464656086555162278784034006320884117888555033892244372495615190772707938888433195722257865755560866654013760257913947009657778742941045339298742590737742177104495497487239396365409259366028277688539596297271223834924207293547228774218087654849003062666014721397182160670565752827921219377002393811913575919870459134161665508863613999062960988202952985749388103061206524486073430145104136323666007389193374501047581918587921863545491746497407643570625234512959769463275100430629498001444080408182293022773018107091922251849503662516805580585044413303267524852551655475579338073541159892499180998702616997661218747641150915830357354638719024189760357319611372502282099622268840196830838085640806305762731629560626371694694423550567365866849822018337341536107479686659512990808002199173720301765003965904016889532267287985798544873010784066973661477102215557540689211770007144501764130285062413177663059699815070716506728419680681977528462314563662299007663151585764204627550532941866731698083807514208009311103787037679228757631352610707175177394638883786969082954506060270405816792468054150076755597160993636598448122744849984686993293688405609523944530159523402847531474522755785159385821108894063717757412485416563200918855641007241271339469824186092986772738481830845243677308187111751759297095883428719195833505187021504163904271934565149148057159388489543524882323504313979202971573296815647850218971350316338154438295084601396816637945199105155560983194318066930074591829771973002863613653294164034135728378624151076319097851363197523500912835865197043848075372290129792365651624382674139204838666000325616533343205183387093151481015775747649811490192294786244878919044957490488661910277840071842516324613333708500289308329863351200671943247912967794547199895066889698979877304201868204728166733412511582083690199863577259765763354525000364535333650894631360986618255082829636397541004783543762356429494023191555860489038476277718901478972399895928165753158365792205648656459766168426374807551740984692131479988645346103627775961648314753128914126519823567086285041845228507273231417091763779013310822559362951157104647492119569438800320352104450642844712427245031507109470373704371417351000938054722961984984437343277906244847561626332574955895833984314105588958130030334722699447389535762224707120302083901877151113889821691787383272768712738496978080999581736589173498845635071020277666780129086790829292950257652796648718364706946440369189895327242933465583002546622409693616633565027996276336637956094918496540457639541356859447273676237684986390312835900617023238863511093612905860590574227162457486329763600854360981523543177527828729472475207354131415213992770160282338531059860925219242632299245253674445297449192717993082154690480506998271355405425303012307499197718380616639945095936862869511518350248258805396948799702701356017430955237891589193209191838696599101293844492010261203657057975893167662519644072049503651379472451572443422545688396559218469785595572657318500760761818316749018408427756410356914569615346885799383619714661519816421083762695364277216439871333563410216995209634208305144395714539717106457357526400776431187251602011465959268265428144864166452681187107402577118521526095749909671429263680707835379618880128033506170256127642264067901243252853457882137687730141083170826771503889994352966691401014514480876685111917172704864809350385678701419800637454168165201379852518376370061722655170267067890521099852292669928006794876148720022436868270187464523343573665264569496457120127370399292140167728920516127033240711608328884284043623556254430536902111602336958594200949015809269142243957209324192680454861189567531948963786452938528178283263397706147565219808406583271667912811467639119975981349754866107405720613044025376943542198654784318010706136203040349519152695093568043220000113106923904855584529415825879497773816946483312124948218224888742848309399147460188103798757703488249160896110034976139255292004358048568799358472472438050594022441702671170772577544564995739469577248160407720341042612011733710777485484658113003879388644279658771723231467472543014398490675516560423192193404964981056724659118036571370157141168984029994824990301309719392535743837769177200008187360883985250317318523728871102897009099117161322664240791208862097346462083637830837366735862704837296612654740504681254213638094463532208199805667734311020394713835428078510974280571939025113850117143922086255911603756483084860216629546280303258363481328196382895150830808292041871306909866331937009590264932711085535692656063699154625479707542921348322269041405187303055343169630610027921590959968711284642672532686740211986151476031564402925781166936582246307611709411837367588617337658544065237320946767879333745023723471321890256415773413262749172630961880055930389098327151054232466397678184408742735271721242596491769138286515778061538755345921957675194588983477466238537247339549323461848463259347389468231436528129854657288330788868024211476964316086476100047041201203949430308144956566477700518655828229671447540740635516010111197923356825232140589982279332474060549570373872185921417360792110447597049267119399567488011564460873202896044812457078999516116009494798813478003670121426031229284590909478355129022377235133259275081425577789639930189142664812741469149710217018476305646430439996501233353651275146963898474831199878633358334892868086302377189688281433940867478774145995871579516030194240854788462436276645290009532619724150922454894598105642498223299572886563624549831829665259692666689121578810894937215932886715433862240663974484646402141735213432198592787521893891911308190081885849397119135538782643019049730998524411798937109505290058964752196704527546967377636675729290546413267446157157434190578371818179413351821835544948572959131554264227475740377245647421876600506474299844969187263994104358121704903704609543632069122104891729258315135161892787521664039186233731005053236472126581714641296557637177182227878949662547517595783448907802768909956038005400744993567691755731316637464777395269570534513539605518403678706824428411364641181530299619246627191818873904822567809893959826896357394413441918018968661450414650480255355574221994181917562468094530571773861924039323670811968509999770218492890940293580598695423731017359873252387517965894322930184241741498758125479313570970436829011079527451735807031210068744022263978738992836663038516287773939655021360255069427747084986357401506841853894188250790645118354168637980179585962767336148776441717100375703891619099361528968516246279322023821712719392959186781902381434472732030731582212907551926567601791421374636223401804034449706691458910533367924000323689485103112432180420214456101457752066915262275506743908439820161162767173944819220309130959901649619830968361494179730092685486083833007003716121229533318534387476886660808477455489619545759747762070186882863021018700453340651114357422070910227420931024531688970760244775353187884704710735463371492241732712922782046013561427717797351670017109981856613710158985894776858422554052028855022065327095727623907284781407919587024893637815611251661056181580843156835839647400794827980531547598709208805489604227605707830785256000651651190565455478101532402047611991769806512347653839028295729668010791928993434450476254929693443218153422455136545481119088977700413292124959444270626783908978933634171707824857265762647524744357822206977628217075226402536478532524135115084181309177004106365378810630560011180240846623671585774463151205363409441534301195535518007100123087302579111048687346826968909991846164417409171579393654478023169449394362565619694739242134222799877031995638724841165233831751462330708302995300399693759997145132392078177351391959377179264661884272088012252600251798196515670152169909088154495631844435104046995073694123147877185083717034581201926411185196960955439745524567497420189334319387215127335388921211133034685716214575588404609074202275833676741238695104728412403227919657414929834561117864442038876146575929123102727223682588159832083799246273237569572944793237273493883709893860563644375322950183951340902143835539678211227372512987007468705101746980097603156389148837891641302326777661400800726117113986211586199353630697941276341417274191034464396922903718307142849958919934640551555862666466275766863192294005806438899639515936385318881532961187837436283068794085440066444421019657186817398893889405649562479265327075702412217145479650154762368182932571776402472497956755558307191208191760240261561581284025567473862584781374586161534463301714231450427866233223232720166698774056543001450366041974822516557114740074885904284247123362919391048590152526302968400010555040193680684528323239690781232543053434285394650483733034427627855196534605190701709058945604985113670506083627700951551621722068028663119844089790732410121297716227584603210137658869697148153695113429569569247465908639829407101300475572881970827365734150674213281414210407458882193481751450678077164492283698598747358136575607597102650936898632067198055233202743937249980647257143462812692966015018428253964888193398110368165524460944075084465207423695498575246531649004727730665977021540564626348777869152963642053777492761215622808353224843327072824151541195636477329774981139315971933033075943718171708657587171212819720961273674870613706850006971888352075662966549698958498096614705338030187600894750994472320936691265611150250173773184750224823327522122857665354269080374695667871838955289570102218353165186070079486539012194801754485267923620801208375428392748951478504095494683601819089486315854115980686273613238455119531510751673627514509225576678026663581833532957460010672220605669093986103041187424236994716970853071967624031752457086457878977805781354804578888737659791179569625371237439251298621611930146868500446346213875915731334808104549272746489015434010302749333817359293140725786109580463822649387938460876697066626456843869831028974744233324798386385947254753387016368619500862336143091861235459191128686149973426927732249465311030994740714821821269345632041843462505785730329047253364612111453710194998009404588596497643666058086365386552508255804863061794062048296010171577983040506469372204055185449702747157095263704094547368216451698783756939107240382980662350621680919789359618918895845882267181482454549354149627881582587838368044077374678048075792061294836116419078126866449102503423087098552859796600203084215864176100949036917270939778657095048120905940813121332689251729907943037420719474442598907071642146128053212136723040775167092806156627318109367164677756261508065476428755457917698174732329760459716335622660242113364968860277580437328562042475783334009063114911570046845417814309498543024463743025327981775032337264654811510464329067613627001462620000654932315925617833595359132627556887266477279734742194223512539719655885990180055750457545468240756668431370228651689704978372967443287513801623748985394365376737650848625728447178157028565310796435639678184550475349773334507258218089496778488979688786556242391108495433166429206338615636091032461866747862815999269342040721435245292024267285690427324371770442472749075303509606005877391082368417769203953887036745027675635928948282062253309881885416807131676243264078959971202427324770529038637339926136959390879732989167121153258732509946254325187315609906600435611442063697598781578643044543434245242253734083698969513928481120139821583074857784497587135733374565468971506477805227525081387257659421864967422034224543760738507721521260988518914288143737977584112988563933532060522629439951529709832053185930784750472537757456259373687494938759382490873203349929943844267577709270242653926107199514676311246930115450930052564448678916597455206609208762652448634640302722538062223738008008575732754617460870501436956381760766625048661613882558886706206841475042762809880843424512766360002456188156923852639659670854927235546895265651800957372757910662251263235174633062229107049834732250573917125312580626918456669319006151364210240517507496396383824994030696015024690485761851365206224984366579194809530365987157568536578786160235040791392511737197453091789630601596215841423320342345559349538401436081660462940952991382316881559244969301473774149464564575249150816158151744987544933752354538685142926645981671568154220707414476934985010234848094294196589203739664426678013733824162512282828330091562375369338554060535204033610521077377433612034743903740153351876820426407147078486633705614172033412683797242484657598737008822273774876891268114247432424962122149469787839257441920345321316672328504985642350546039598447521567307240901233275343920702151753238410830162881347890868258292535221745506443783447968390853749934666877357713975261384234720204848456905860018760483648672671022509411501491555325256898302175211962475593941636477156937715286965609507939787060988818733762524296882590975290331545903253938481907444980599582919976114660842631848671746901005852019974203615584486925098579064706010788107456702005030539186169455367532373693017005692028469036413375459501963528762748933210231668678839956617941465373811348511518573009702478020945225360474894783929406109970323654969460566365183717459433934498733040993702837613614192294238416320379417365186279493767529082974225905302341555398892967650548660113995418933357706545510802416750336695677748255355534437801703503107728283855561900017111029822680865592302844817457439665509309755439446887507222097304521254249606825220831731572666048540668501572314076314230152729468611192608408878865190829097776721071119415967725992161013695219555729510606101953197681610171683074366211295911684814015421670151533786649217677026375371584183575252280582430755049660497382334356018120277207077402495399614542813579269743668418838870104670364590900267652953730654308477945580189220093953390230269255459585819754672539835823009481134294206147855225646057443215735882704917844853022255065593542410521409738730361330108219166621204285589468152801437390079602554627646230013059827928517389147123700132979386940198556989548593026025268988816196119774847185454641800124377631564346276944999131526359589805612881010774517118004185569552850105435341757134074932889818171518294451603977286416024524493233371515975851429529263461161512070955218887683056905161916165620467255229958859962389500852829329195045442988426991917976303665565392365144341900900982311828056835485639983828701081193087016280039082634523524350859244716874573394353778929010395778422402317759454427114235871979212319675800259827701608270542622019271050738927543149598625704313284362311540715861887989802096499089715033433558965420811365954256737587634726611106628620223721266378576387050525984340138011507916006978248612291265972879519699122137972377210167459914233021789911476915724607486586537919974733413686713938276070070727852590794410372918464113117176622887944526986969636130369156459870952532838473259186993145118296065423037584575578536293910442495489674487223886510419208627783422062331489894151231610574649008369024923537712294004029310235246658075753772575387638244238283659879793555778543646636427050469680319046070242094786041131565441059860239847935662237232209707419977433292252713388598346372666630908516323711537439642432794431337538759716578274731972115450797600386416015646192664314918822996008904086942958440342323693810740314120224787063583428077923774399571191937131911435010715874311341560552857718387425821141453090896555332276010601731939560897843173631036508516481348064384827620921137896157788725879187369053457444039411190978847971426864383837018494096546036113505430167580219163500764711462271531946252766314941176098770867538558530685881241402580309576274154076429140952175693477445056448160907644166101209350035461739708237939019967867548632658152812814178478596779525707383145295096239278408651638069102717792790762833090734692353284266487339964012338067145041615659290698743116235282103325567473174279080956317626756285634340734894466336948492797210693271341378005896776257038530332940729399396557834739552980838632837380949152486003833673867003154250531000941095900493975540473078963748146636664981201967681375146443625073186090521133011646097983146276541546057966885775742357948068869004810757885577997427421850424531424256211745740691604270382066175787214695402789972599516521874363827834020067654964725808397811510495276162046311410434241010101221883479899452831640670567134707022972901321905441561746907131919888280983712331336866097189145488755665179750731581598310706645216085360429993479378724719090739128195746220221162616407847651062698546713224138786125111828198980559776876395675750615254746308558318417577764229686733298668219698457012025212108776435933201481594697755295714168116570374703287145576053129887965811402604119111690686241593317765065319637046723194023043103714440773274447187827115216452392622930438027642436185964771877897600224170230284088812105978495814546341583378571120491403926350203681558800028225532612613720976541276761219820036922770414293767404908207074937439158360049667270912754271480759435572301267603752185410363720953833172109388367489258101610799436064868255762137281054781271747816374858288587871265927757106923376840032638080010107113134622001487122463541444708330326637722958414625796336629932511922095731997386738337913770533687018852293168796734839438884502087968475452286608242913821546718762617138108862125208098739678220115957695841860906828899957903169121773761848119721550020113559690409637532170029832847560841277285565826510070760494411836306574945835939017467012362869278166410082985407033283444062583262284055642520643309529032814181815738352648145502115117884537662075952755080345065846706191195629406596582685918967166798041188982899564266928705057383501077877606492939623192928847798272899057931606256624458743744599687515300421669517216286137721712115946696378159326996174286338601343628484605797526832681501284722713713903621594425667878390458376625036686967555555488019799814073968128975303865447539393202528501496702388025063051997645642979604432442047313359800497917189488203516717929720210321984750095907429096565866379939231768222332086988924830133301401600702494991235558770352793776343740165114996022277002861429263015711021473442865100055352110918031127061689726797070763626628470113883921649998284078170934453054520880302417101040644877518270457510603651987838077727138725046623299680739854190762764520209614651483929054708034901600540618854802790985158454718703079434129700345003919813711530950631582967848777672510245267030032186855823904352593221895574548751783591551396124934415966101333626656159608797487257875446320931106935811917952520717364775604082447943595666658853552390087971654147777149901041624267861983602042520234241090210750582183299732027950896901215367265053111355156380950286718963564768704439245347634510855290594031385654931150983268999233973867223717070845609860911806929611240261955554224253013778289560677301954162000437500169733510502879095397013946060442238233852170703144799988325313024182607681765503539013141611569938188409042963271480296830896404919644859335082542974002081376963405838952516351273747110548794205475438054370640696308100640576347691183251814568359148412022795331194717040928366318475216034934309137433685208849744576657628905911022717211724872846864644695019983022035554254874042627413238138253318141827784537403953923848638260309413352609586765018558132245643913501990729880863417744849384535615768680741034242535357120680136909380671052722442525839103382669218777709178964185991411218762138596917777456562140216648352447279861164550780513025585352051402192514707385403835715159421102232950257480269318660676987696235323203260253502846961193419956185701834861681893114203119327966193315475280217986074240763678636144004666638599244458259824462863836666029337577790690577572992057080459686886242564300750033521861300429223555957440972600571268747642486645681592974068103681238471782996974053043807813359226339719786848230594860453871494317554275101806675428481721140503005027217763407844241296819974251738382523508855306316506218562914182178846087815933487574695010699372953838368013778122394885142837733974802019037261140589803716930484796683607800380470130389715440802224363644540979981010175937263070672918296171571677130055805525517906536327910754245786618428553461233266296292510103573609879837606693035114121920241162042328373106341288102806848645229534475580601598708540197271651375956818753007913812503391695081946430103026621861401375819738756646611545883844189424010127896583361060531024033883935593291063604895202748930674787049948003469739303221190147706603329100593819718726837558412542312368096712417657543764957688566374071281229648078761708961800435154950726417868801347916882062024163721549525843058192682534696549106546963322481462685779094864641948232667981080080173323634658592699219698393192337973579423980968202193327454985401802932808781113466145843767982290268625451916931434401257530281224075516097583176821369449860217815766999616600562225514884666376117439583668866939676776759402834530062230270859115041899860089813477910774133479833762863302667178450114396589060213790129274592205514170720624168415498249902992011201615948326167609034438169098131499142570771153963243366293390828510894172103529874603976983758034438920795344640205575424676433496276615309669739787535647540160239211355219262514160126124348910749152357967303022446081332579066988431898721787815406343290645818392378331000808390081987191976902565726277751064355821567748277256233584964344000264880992724799054890706829415743423435393065996590812777780000789964410530856284896633194784098580258456381384519474654294974282486017644520172335125744784326546093579144417147370546435767986896065990654144881356047375076563253967719024501199917008320861219936630495958328041339132906791966677052633052979077545196105134358914781379420629555213937063951464647588676913569155993072529496974489737013043776835703040217796822624786885894437195916869769759445392188901652183845831304000152025181034758994363616628786285781780218906392348373299565962300888891659366419838670329406359304186601458331054196420051964194128704369789876368327716262802380883080231230332920116730624819341708591948046567517912871957439526139208100766445587877337757234674723709676032715715640445466256075977085066387720304870929423496656142770412095735669696352962969956768035147375244249742618314712107236392026425543907384963268634952573773682421525618650159384273778333397418449577361318120252157660813236402535541198710938988039264732959041283569804353355483221417895749480593274050795886524096696256216268557465158251447316354530239780414364694388086451649177217387800254978737871338605816591339515119421425543370685992392580003265105686946183233295216814064647328686129217663734261542512912878296050995497776568689402749691531231241628683810286866997173954432325125456620765819439490809403627379795799706859033391765871924455305009427228764999380997500848149877815660510326863534069028704747478820203426314347030428488427435357134586447669800817075190781049299993118651225856661981205055099660636406428279827127734678735198008197003390312903778915350337029325066258376179082196736582798447911932333587099507798927800791459611327010861668325384263883657274879702483864132170448221683644419945216775637982351942327280337249097830531742508324252680215976533586822347318769093700624499603105384095091279338873384812725201283402371809008580695328564307139533564887254996296490507555945297706328523942968627883285431230239995690206155794183852872530806251328383553127388435213445957376202014993931868966422609151542793321266868240004304159698650492431466532867043659330710546271929086720807451590770195766839634645478764588376650397205370014207032107696412493751566669458559074194364361695294088981835919632101728143894234776117672311550218535202332503081146716972943004077276242924787890545207599892816305836291785561995932535904289897308507784633805598779935346798543751110305784613358409404647641503921971619605063751967780809875200433488976204698211957767496075939372950890084863262231141401525962673666848353711596431192377955424900892875807701315903808099775021883755633279021756778086186191437195294163661528301741647324631360144053237664051907226952938146434879159839274298415676761162109223394580178709720503585513071980445810934585183604549648931680794088662283864991888039144825613246129000016582928609836386209505257797863483167526851591609503191390856135085801504796027945872647574430364856691810614199448840975191595170397694878985007342717745827060206846011214918439675779434823418087607202920746158924990714587563054019053219954940870353267834688396083723755651357679916737651114923841782795001749295471871601838368969399409329331404038393679360209166312063809800417996687207792854131749543989967167959146680502043233461882822560285914843808398725123079232393360651627928484134008166924034591835521506539320642346231223232277774033697892160212545768387262986111456183270315815400858605695057409267746936856318478690966857799435235132502276027395560450559450072663878592716990927428941630576926440477661707465633641632607258437764916421988097955387855883697836290498528068679532677157902697831141892229160965730271029941369967880532894328637715147013328545258663406747124562073065818173087016769649948601857693496621605373953866076119619673058627369124276339321499675951543385428655386092539167648973463765302950011346493823531993349850865216937053015400524873506680622058722206867023184806341508977441342279657651504902787964882542128032624592695907538170300072388465229200774156627022451276125675922787586046240416518220770366297019562819631055959541640613887895016875918696504425295891809066367814385095297753419316028409814238010816220575065322436632053454772660900475394006625204514497923748036040013050285870267678440425151359213986015620311502385726496096412785288869992673317017354163671735946775950027710611011329476079027631428299581041931549901442720975997910476836462745764505773907426481194835376160742408369562756870866597482250823063078815811688204843473364186306078433412788692770336676466428392710554094052026937618443098948490467243763785342208256094393047254893852427920635447927834399262040850174226613593292989246824653747062215957204162887364968884375431337220889917741646450457296662082033663779424480168974470491434996303335117645725247621897499988629901564953672380878485258397633825904500385524299151040312833068025963192082741476732179417314635444814067486148143838660426115855002680356532042748419125329235538337291647709721378748230753381199053211284286413478218384196435928736964210828287669927332494079839865832823902615713553797981547989120586388210344725445032834039914822550187245455884510121672664506111980693297529656000948615597047636247623185275060002755188092005523215858823377973198034363067416575974249402837915054917829197843434871705208379463166702436736633349841662421101882434867454440356369352742934800584155481165056398007841744519315090788013262303180719556218706265153841426531511856322526473228256797312668888715811162207531832686035536428441419076765404318530735302271325660033822484955162809317757753883132642644572665888482781743941058880312555790380687702670336446819085593381436556749610637254384313422668862594006038383445604668115386165835647969679711206569080866759851014844944161188188222660672393964133864946992967749974467309096675205473798762112971439459506923168590019144002526383574722044698862694887781008464503645160524641877742357531471339845453176882211459148488196255615261450346755027802605904744095842774415625416432007107995593723337051723996491121505707768115959688790558435129162479381170868967573566795846495884880539159113185388328100475158426264898627518714480655380956064846639387798433138563564208164557041518542212075048797151882474026137404558658103146070078138287745045364956235394125762061373353088511495745524143374500666013022016662841944667809083512290417628768024335374428276684801165743960603261795372065760532337839228802294341002928625979497851099112768431491536086942294011534454171589401819758819529139822128164837676939163367851603638376978247086798695465295373685532505575804391528979189836185304619881784204966634679205996303131794262621952515496550400888100951221116607932460967328309949293027129844792348673804764505124101891467608463556921660359773763944554970955496145307339370589136090251095516050575109203141239318227428918086050990539161691572705408722470028722423053639600007363404080966662169059164779109141157698300667906772814689489982099308516921131070746868020562437734244977871111650730489487393714180330270205560989651124011828574625534609809661829308918614135556606681894441257853977186499637637932833182734525352772024990788512988133050204791136056516364857082826278544100994301808652073531591675130539793710232799023161702459766644306703621475178726278259875966168717344448280970352953075332368075825931921449642591944159258008326678238144930203902429330770807826217662799054690631857662699549140614518186655071607199635017856686576813235688871127851734845337627892485391894725841678370817391556500879739219481264090791792731214972357308340244968984045066501219266647320824496607865589448620923129290493588983225780312403419540022655567467988319930760044711545675652499973838433854298168249027319723577763409968516304308408065818064711029887373680025539326817536636659605925340037168868679822258138792576473115117768355485503956607460969670918333674727276422362499941805698246981474515496484103507963092601211911909422800289158925912903156212524040563862562481412410564309175499243447406726209486611164668963671813657611081535439798061026255964644144559888005887591207760561637949783419596109458640676350741589963424336836816228617390840679637981541891136251321866393297627976428131871504340852827121643802932487189068523547325884000435141313850351589892992688724323119233117123063984637896734525269761062266556288428239705621337344527896047975433907944257315426674407518386667978369429704067340499220709398883952719801138381894000628562905624477573109357665509364749411656599800131745207044123659532056132794273099761643482294345204360709858480956338304754432356684252809610351885667934591953168070407488274605907906776969149498116979143181297912255374914378074030415296622789516963030622716601570649887850206666620449691335019561855985027636226343781749428896875942374029686232883473406460124221456544085351954327265549003294401505338357995604181546517551505189535386240869372290074346903170775875072925273146978903456906974370790393465253415844530466412591342787479180546573235878493796305982505730603938253958306041965193596445963246625019931614914478636137866524797302907902798882811631709205189054578944589631469057320837462023883788380907241904587446371957305969879341043684210772735265115732005764634227435222916866323126883970934136631362368762812982687057241965435752417853707151183469900801709389099406279082190087060903444780038088687877835873942890242550365356970029126832170485568469508510092628414029179711420505407059648923928784760964407005935815395956226282185597658289383050043623593693481161557716746533837687551971232337550569618781604731741354061389137651481972851890578787908427754499851383653687145940975261001270437037297698625478730679611542600784814010623187320674074552707150291579090340804249576547919833310704524749763201862776315126608509246101497299716205172759415134647077830094348779431080589626733362172595975337332309345356923163329543457920386492018311827819038544657812729334529178850307253284943504819366450169869172438642262366983270933480218364935167249257696008389690236642470482746929682399547382260561835571378261130210566725861292850157078597784762487186019796567336733327610346089598677160978683892384764115846285346618458279815451027032802502997397665705190953874849061661356744480617131853213560763981821945398764284461536048738688638129427026993972389079526390626004758322094057135897372922452322390595260087300441712357951254324760797505270237177662333378234869553560406905077955986254568747877297864815089159538153487753900587846235636397170676296869102467234683072811293719768081432046896333893845273402954737384510143435281336459090181521276383380225262525544538773768831899055002482218589849017410845884015854378882281732407422085057980247628301403526692078794902959465629726719972657800102182705590796172438860545929172211868900485464879247262825683757772876556176497724176559654319307070525468105996832112943941281951302381689179304470505066161132199620547521409099637128869308517076500270032806896058415855887278847689628710088328461092345849343151197864613911606983649455983835253677729690522987365300339462600841027168596110228444056432952930211643910866839492442719426853139919036389031611143202470453502863555978769409332607678750016358868039822226828110369502760689579115412900200293542632574824974478588894660998902663615290364925168497590454534217723726047389590109153523789666028358123359085420113499213923488475729227261781737908287691371234227217931502230722411706914913061251742921140281600776812067898933466182293316930516054632953564537760407539468556303105982058128520121853863186303689622738480833733143459184594218040207602104777126019594386909749999046028177112663166836969554069561439196440086811392503105957385686728439685725121799098823710059324826857156269011901070246264656398847148511440008985331632271066151038719591665462142763849103687602712876216111008612051233689461863195859678015958361430058989617110407761608443086910130845232270439699466431034267688661056759428535664438193673253737800985095369608696700617223558510107287350449977373007541915469970561878120889244591132768433745161892546599413310027082411646248186738560691474458071603231854137522213308552391719421952606916708354134317070759218869839363484517108511712525484223936266398629889569019275202190100889561738685614287025773776666538448858965773951727395477929875173403497773916883692763977592626044899802223906567389351716149374396071990414325803165972776818601709872398483445005802381582941309846158709858127636310969123183816789389847812249747632534268745479956401354092763620308490279781028582489603174267982852976989918233380519879457288492056450505968254560480989842762730385101717848506231024166368024251126713772537595267923773582344195374154823369282180953376516074405630567964440409779985531117273971266162661794021934062083902170578593440541561830980557243371128055097600953929135940475025324560659411332683529408502346616330207880284228712239024392000746155421436897685143196934866914743610010426050565646698856935668894552212040478949366237626065889464302958888254996348883770541601159083116880635664117285262795857789091589964249870200531036386414683098866764730326589743310854270099059824226673151371060447234046885096046583038538699520626469261852602542379468070261649288791433654683892291082679743972836267697868827817606338430017928797751703683875054561441872947917546624874960512439861854957552848023964684000462941063581627655604183458124762818604171548575868534501542022760322656357920189234312527708449724701599859283044583780553942365434203870707897782124591020320705446529097767371929735732135257021494228710525988958471631624007783169227040977593628635129379069440934167786129844587466408327311121953794702202286647597924742842695452422744099954838291577421500314189139795706262923337281124305085640148813464231443575781049387827910061791884669743546198588249410414184658736378722939211525346370321727300460281838302617266637441470838592574301186300502782623186767015937799897469629091413918946317104865648982186172811593842350332681948343749989203250043550832442168452676105879288626744162625564177860225293010315656827405218960190186995789781047810911561504948297318702544917567344809864718535244048870510339563553980326688638677423400491814809858774358822525435714805530793014696291683727749922118727958595848279441566501747759509512575635563703175761239606710309302124761254424486209727411063668921952832025780628077113085467257262765054050536054571073985118354882811054276834207063931145149463584430014442668952232300469253692314759863510886624728852113566398132198632568966200888730830555519310500099511482906852440178370206530480750153145100900310932820224316685803584393240232397726743548247045373804226095530661548603318339296064111057048988615933608159166268517763383524220244221237245569846130877639218335017407899870440718848228860322959930136185732319214180794135189701834414462353567778192698011916657809547199786570536557624335890156820987732926532346176731472869686979067329693198802589997889189311198584098952278738234719973410860356153319710825346181956404286630619046634818321988441456898162253359528137671118744852047051291962744341749028596815433234539144932147111947758349158564700168986151409181089511007658929293065188815773115432482411855225791559408915802751584280970839764071530471693815177326985653089233325158406521822106653146812326775543031212332644309254999159101063560654664886543493560261331666314230626463662034203138420245407898142406247432509261683809232588835181084357601346071655663309405641937954183254204580505339369567699136926503481323454904408562892246420039134983357249323531611948747323799384415449788485939158438554436666414308997190594225464635660831589271213738226778046031379057430268549926226930742261380210457909970457080963614035141080023058523773250805607074113312383406473988571466707524584947101246568001654126792216388483417740116043811982928791683999976527623640309784514145934362730759213553194238131658797737598897950521533740780696329270368695966654120827061276020899084952889979807833473412637972592359446478746621772949078101621635591248891769570497422614103611540469771886516154787461056177812241065160626545505278598447151584336941869709413583581990672890688931323571914884198891288356749362922302040293911454929723928647715856343601499354012267198181454765961567124302434805771736073316807314044393488889806993562578317996632672593144894915441452410759361652574627298031343273404753721494657043978292269663935345955096742444648936373192503992479136858513934674474618835478764476441797492954461930235674906616141491030144080457129569767580347674927544521059471973518901208438737864984644791067775658706803924641646859028039110885825653003651766016577539914630805852148392404547090529635762784364861975815555812143843890658348990482241573449893075342173610668325175841211553288873800757626686055197637003537734586982357062038416066434485739830470064904247270768578382784446006154958923551942557281340500210548393506780646452445635429531491736075503002878667302538256252919222236908053976784562633833378040586234989835730201535562327904569543140662042673929711933863125268149768591395151025751663815265422817183426187339874634199409241994666229423339749237842354710665192052890320927687378221122270608124564434689153537803242871826591922044088531717867098236258795839470787243826563815184669143798642722842804567567301898829833835739823372299368295675945033676778849635031639297857815743730577920023532892369233395198399348847236417012039042959212480025103804212897786513396763644426632968286656410041611893391420200821229071412583065213804374768677814450147668812968742582412563698824430319712337970367012834241169622235049040301299438888003853966565126952344386495680999413812945626818165574415258564779380209561197400907296535357391318445165283029822716631348223372216368664180125627934893253441728134034562998867267598984049092681056379248324957299482165987622779545237124146778954615951435780738093375900986083585694982470132910521959836750437196183335355648660048528593212780749200872114748068993008111130889254283551339573354479923951534155512972404266006313070398260988937070692464438821195662009436628596150316214105091574461726143488059655530898793571878379276151483034887738850911769594054773825344603567356848812665878776745101145404595481692537708037189864024168608067623727172442134762472042763179744851210207535800026501687320589238401923623315432413876042985407625081864250875107311875803254267399912846262157093879871691306097956608082711281711177560576403039009123674141044701682937627854654405506448335045890063092566237091984220997250062725509561055351610749276091005469479182918175249753655609669893045847210305612140507920779070098287256191369350645647141936030313772485256597698196884341333412097948650021947821184672449623010508092942113649968985549767807053869643927059750008529994900597530847723692992046587520220160748241327528771366398900313233857189606699829262150118416991211962016970613759699539573025352935319450895883688949143937391711172809267462108131247463060690140425641203178246122544876960054518954169311547576883460811944789143819831022386448407770978696864918837027580082889611819891952443911438350319691457743616978221467758636031836556118095102674286681101384933699122468966703614318186557349310571423981486169724865480384055899282183134980229943970043341240730139755088016626927742726160575047183483073597445335630262948354337886733177685231114929773458446617729913843903852928879945734290933000331518941823475885374880030494208072879510554867981310611744625506395459884030188337692534313526420374408366411605271627533685452471027399334665013479269131122090823097919453754100572014241934836072096722167165023953049954788722114426633749837179574170094620061621020383964130567166907883187009831324169994698819521935592071154256348495780534655501863878173356988821271853660419363702606528228742536338872636848389491657014879644630256191445800403470968575985222338610218309077976202964881154251738417307732021620811395098133062431716209542278694770301381865243010372380822948220237529674262313381875780337005107514104829210747480337707874333919716408645367487634669533210173543479477502676866151850392545165546203597022432282903311467278919577458870663760217525091277198092066401017873952802790935510915695251143784985662127463809892297064115640414828384472682270350790763914823835269722796489290602263075794414955728248095718277334179626413511154063670111985345690263259492548886801186786733244064685929875273881519712058866369462293955746420432578214939451233594090490357336620510573159540657019358565144417979170448434181489755319608600087019219773441349607812661097007572168443262455772268541935584030312826421645578931492088875967656029155655625452770031534893371445134301563008092740802714181280404949401398689751398629413104718389800060024407652585025620854677631204870531785048797808682081573035700053214848083979909993641642499860105839865004613368759776262132124943083771481398808713326921448143898971483481125129938051786368820709882986529504309728807115804395973766728159355155475080583901553555701634571799977077689157175844048539354556119689029230986159454351989726011209445455052370757356391832372727721786859193820379058481079199646162520814785890433340391395793985810070578967589631215130162854701243588990685171158762648974751869296824224770875396225706269499881083248032416936359302489428439080796593618786952576526119792310263845728001043887517811230934768368496167441882135292633021288615360343370658443828107264809130843831321254277173696919925835795124352363289462929581710075624368946077991591812114520630510046192502294377094245865239795203882972717036929322416970124037626938619936237128010903970628115138677612002399774051096181853024297595143584580223451114216612113601463004964228520208059905821957501590300540593050297490449329083586556633125554374514829056420613422512240078272427493080127404254572931303875082693765620384587021210323677217118269662990173605018980233688983161817427443300711826198366420524584187412022478031840289470951715187902204992541403695805963714284908098320748545816999780290484690639089203676116818207121712485386719487429872298377291137974821250988458448856262076730400349473166767261813449417347524260452582390489323926653291593053610161782279762709706804752195708442401246748826742623622636573317121404892987795805571397380961694381960752890386215853829818890845472470986761998981556701086075311053402492276882633657744602673153250648589107845210101991875305676144105386498167137098421017484982008312113677841084060413055843363707972402378587886250491989979600483732662546307997753406904248980683293898782308944528293583563330647547432883149374815618800399522322953913152755593078461522897544602578810623553688387474385812979296970677549846639062041375447354792974896248915940423097584774854529197786541777902786467337608797807861626543271490453898498254277475407527611022110045929247408988505303037185030413481601407961698198217449426641891801875928689948562674816380824300931366623668061276854996026653501898816422544026233353913997126904538965121328725535783559756898242172203166214065068269627321028334274132910813798386494199156007074505537658327196859792953814560937006673366871610404416887347870370887436459790902490441611230580024162083015358187594275129141573963599195995748026572588566611382294585243420231785802181520263903559889872340633500952394988433533985788781195965794444758501444290872234369469574645332548133396693991956898271303623196889968695938550797147681199913450151125190728927777893281441423148943096231665930421823920338465558696413145529925226643493388695927312383401147458410715642797294097491589032962609212133955920238994682723735778089213364102709391034341355152713416312323490831591254458145401130690939288485896404401745019412942877419007226164547172266066778161096863277837231964395946242877207686051219221180003286135204157136360988122704934505235590476680201592250979205690190123995698943205038064796122356094896022093374132163413771075641140212360929126846550775862458867427978677153161057158226794846482276974192445375942507948232342405067176045268154388564299463446185371845015586796201809141497121462424183423925237977371760127543521241511860179181732162832669488412116695344639895629083366543690202426520654683600082298011526703558519151171864515878546685321271696382447573593728606290172490004784308108860952359805297873801220476243507112662015958924894947923685623226408162566009303521741445023277954169656896030904614605325858721420536000066747314914819191618009247070766911667804532222604089865350500275527462960549145977849624535366521662235147624240100451123857514943363357249059090057361215501037681711597357812140782773262051944307164671985711739077310820107082160968301114449415714943305684218923003232342686138777027286349985195942513300028411520459550745556349643602596693020742840401508116637532167448168358503339130337576470225623105687643014857693833914016166999011975100349131117102237325954546334072667728798698166143805568933865427475451846126018803954305824207959379805168927583492763902637900576655159509017425358102034383888838291571553508773948095257550241202612768633947308081425679443265290599218269674826990610664309142756611900504425328457447817521709362836418742578650885407779757728180640297053683719044598644973713221558487953986053859885456657129250540622065379483833437513017839005192703567468473199203490377623908311927147579891966135424669935600289649026348669656503453046706860804672184108462316470238764048621380871677325089228812667712765557474370538832797655236603052280282777738264650454899491769642191019168060644483252221130802691257249900310856041804359863936505084313333861443878856253901346951930506364123547599203494230627177888671602057724711465541137585897993562707610978527149705496309333744927976874556436730621733086229581835753736954178092692251234240777070017985194146131418316983694311669462259400106946557284647129616802884247944805304068215562898192575481872259721383510959588729262281974656389680537302311862133716262518634306106898652133878316230459909009769938647380676477133684761771910735060918914353619921969667817565643968742955875532232968783128519043796911670729317676497765647332567688311352176306660997388892842280908223927450434118311198831421001451596708058722155958908058432103054061799650793206691723861363759743856672084591077555796631944910279155651435825715351795176318981742486027114379924868623569877717099211558442082944347624438519600933221964669839305355085106661836721109579512830686280889588888572953988301350992677493033774964650185766289561900198581760013173592360925530767327078052084378424273190128534376323204385183638833070648616055823229633842697234568994216155042689816111367085375062762741086405670611787074940359136425034597131059320862751437242116534154610118265695720899346831311661528242338566324477915470506460508534567138150635252204972958534253518098738515251274935641000927345925173561693935846000950416604180438928975776005015547037023062734621504800389760774004558226307606747343503763839378331918278303261312216563767287491722085829912768009887654852263918224842402980793186340228579342561598793336802937554895332760577628501289885189932128850789656206683606197583434093277349089227490042762496332508907692758425437419388675886509499784826220990323809366117428100966171193287950691536765891485876913069781497923185806499985179967545191673815260405636519105032626826243310373003263649031259274786778161573713097858724002739483710360948321916578104137149824934086850874845167671415370171353359431718473537773290095029561278194605048712740616737874828419282796788060792552895730365156253025483769379784494408153513900427425286817782816819824326744550975355353686699877267367970038284448713277526109771617929903648958537596579131016975918852423009284039028679825691806996690814937953361658342751031187395040778487196595458519139606986297584981275180883343328525236729638199101833738843552493591948400076490848238782080044902358574428127427883171159828614289938427294216203540020889093752286720562487369859740854312343176639963417367822078547846753593227743350095363946133977689228798375975175291622359086685474032391636194239567918107012750459686663341108215486173504381693239084733939435311256477181800727612207874594884990313522777923365728391302070692667042833819676411218251680487510808572344996781350127103059512491375106098807149220033523683131986170322776508919920038229598720508612355473455261514197698014388612030258804240580498997230394749350563456187913451488037796650714232585268702644485225480663030638273122709514798797360061094437013990572623142633333859336064923379462918041234608875140459524503181507885390810233138862462299450588617572153006209021394768458174618238830803998788411020398093317516796621013083479311905021057675590296073549515913284369399891143321249304457744978681514879791242752347355367266482226073602116771452672920022873605525992617035411909760087993968279884146024186438982498980983547459694991006881773574373980968301931810956538163918024123210121296149457518372478394562953476344988168699870066087309882382041017167681584411785133896539422392172658335658011151060371797570311661937224690046463806991000637845916137308394026094476420389878077349286615112398613351725806541130926617528776784031475128057086676735025703517359104027095642500038554051831527733212376193252115966796298158785613715478667173590762181642432759982182369614043681883101470488127280982215503992353102496489255354179742501362841912766623912958111076823295605491452052446032681675832828816518512165082937810415653698930680326751169474555778472383863105381314618562068952584827073238635881284393463585327632135775250272507045807080782913530317227571363839174331342028849127675665751416503541261087790030363410720886706050509611518409373915382997847718131186637065172881324820742620254458184784238277416591981784955803350931298406622188644982440657087313288822110938228414780648643137659890833693050252293877853967207960225262692291702786833530916966472788226777021838388107335832449911065208653706290126326039071214100500524292037592006972812910450265753359663982282734589240221466690348518084335728501019551776977712118818725320754973693195937254700890628792212934776291162656012996776186938320914145414199379887607504930124994175850857825462533552437049021106086498460470395288371076995877722985063044944444013314924227437244372177282930604960670725327279374148093266200348293375299638332797087023351180407220018038104949359467571814080694727650457152698457015313720473601978953162975427839329477208371366325378107877349894608147383842518962614085860809454438323257657360460736246421686473754444963220700235147273934189623654963919975832114015067765055541554965899180694332591475464991328589100110336351617753215845536962442181253497763497261251128792586167694254970148327429689772794275022841952493570829799545655968883033740720968000578289039321170309317795112574170587556152360921285907162754757968462615325761594473435871762577009700207979866324595082429229598874384983414547010330381033533593947349954632945080005719431771515897507810263857659056004131076347629037460244271730728693354266956393541737080337323010984592950466426092120275118047965950837954069249429631112565281929939680127472069504462947403619766428596489330752452664342575778419688655174805406729063748512932616185366744301767876332593258583573289870528612850245447765223630713635452067981275399312832978774457346641208339776884929643838882752397496102273287703777829466510388535103353265945765593749528411347706905645336813845647023996393451683014451124450795727040047418966201538229010937313133641130994759299286487306814232732463089614903018764031305248232505650160373283018212926600766451504189018971062175348951188672485323252919696497906862333071103835020639068813927070452931240355157196499916031594167579509904129079077705879468387200814822394088683461496343138922960409595847628321472702516977056890633571044725399811440512524748638408089452956760633562815094231129969167076065713232300598588676295652315284073244497527140301989683459973508473372129398874934805929590783449473105405254572024899218537641055567529931387735201280679800633612284585777772094092228519830483416304208556971375246910556428236699949860000141137009465759669781516606897631027426312201800796052558530312177922158934066414866420050044943196573898116095679694618870861944228101305481492157746829694818931919783217996864451316091189432143667760580086859235365227837304051246813154181558415354557688423338376824960971486585453630893768135861828089321046145673837931263961318325105718296658215914925348582834211540947502170980982600208645229747769419634342363032004342005701234356456701268666132407247719067133697671188990508040962089220493589185477301030117097669051788483163115579995738680550037389981278483709453776013066395237172306889965803407778241875077926055683298115341298197485599999841042629254043211415996515075924233607468800374757766176655911377742974634552602649700979484810606111768178843377406462182025084941200388912931120307508271271170530604378674868411938709703899335615582398805863337437521366513969447114388745717981786156051395229131776192079702241353954683088478534461136757481028353204187373142256769912871013969081168789080371789168804455226986813898166132260376854160650821445869263941810659091874719462092163166094312698361981238089327459829722994077396233427664252824571049299488019785843125736983669235844262694279826384252613819314371111407979438939747586261514532413203786060633353583161139259827455741114700226508415816639237253606911023440020990713263659016629595916628144161330759422240286190757075110949261871283305254443191517493147222512127826956935553437719638018479176583025859418163490679615682909884649545033551716358046135031388121693854473991447768613754751454808306098504863275772411214571011805261670218290379463758446350482292650406335842248192875665001177237042940177344280030638027051114590800784604333356247744531298404484896045451335231120528172009332651659641025748815311477956935161992348361997445121592714359929919102823662021286121486010147517719322795707510949098109112835894338878826473331057143437145317654739553066706823370905600310440340514194514617569017828669374009064646095813660586345189703611179793736455763507576786451271113095019562650785459044047088368681895900798964621510967574389654286547579445407437512194665743086678364026880888248875146377028792634289345663219647564509204374479456563029946294917868104897109107076718591060359750723352119103337075411572768843238005266482663691455405001600764161254690185820985835006003393631260704674041257799673350782892802330239398638528681483018995995653416871795189126717073311533494001761728204679845572941222513266223229650041812930838132527583697275255639934259743884647712619324745782515057754346151653654044920631138689606578193614003063501856152293375471035947333780109548182318299222144134333122936182967607967429699556717319814135884435454124690930523540928985843885721558299860085475540583460710918548025007278796455403118172711174311760618358196135388451295922767728797719287263189205518195036191927475598402045924552210997731559390812783091701007042722003806007952113820023270390917696455426831347084210317023909393919648970402028326606808034683522850989266421393433140848400631925569095002602267131683315702906966181574900002516320609672441954311852026237983077993113904409985277776089367543924145257516875749828491165288894215309529824739128155732525075815173354671790631162361024246120667555069721821710200030470111878262600808445526520424596809288605356996330902436141855439534131798453165819956552805340885357547330905183730565053375028270402612762117055862319053176242221146105034984010344839765617285002561014281749559441591332704500864897001095136578961383511292088887033469003550794728513333515504950811253685141670630463074710171151744149167349914306005761833487850113402380518592719036055998510558391447431633330764162663969269444005346141882933873372083492395568121303482856199868253706359026303102725171252296610996212379041217331787201993700264665518350814955580942173999373404641291447956275439246563696418368567867693719579910488445960878689825196014751646661052564050415953692659628686895924685628212483993726230099237833116175154416197129775600631295100518470417188597336719366969982825476477652123753296549223947550890627806120727129041695685186004323334015047820082513621070800070194462642652428524359866582581684376572545404821252423274652185987873043266666097792420163105289407312600958650324125717342126776148423734375562370303731925425700632888030817682548278916640247710987710853625022026137108926224990715981994195719259211035493048211912052209628510612971775993997749300055167851038849674200882228282552470577859219573907816692341629803670857160069240845175003830153780500576225466901110636889357473749742146383427961162464013396722254460392980646170331196953691041696054673269949355414929974453109348289742900036293271336735331707773412946712479636338940568356129410367364895500853872356244459536376085800223478326596746275105785335466622932528880663136914856536552991801251893647719336657662737743554562166505161884739878266961350884333682034300599672209009047901233006547763838540479450196706623545524977332377661741166627754750762606700491433380901246748325405056843465573619858375361792661425869029641820635280084030491228979622156457935929547620573601682298069818867806963410872089209586962528565136773590346100142826150422906178376455198819541497176245003105852511021000739580205113593550595477199642949463832402087445383424396772690297293698203498952165121547902327405916233051103323450138544304937514179403462153912201683699967914127255956754786545759116145141890852003556443865426091553467614182667813067814102758097119445797224312228762228505046444542845042913053847468572224428770171126200534086033079467350601875731275641551423190092887565363179848043472313419595815267036749417884751648004937580197438395881968046034406794335827893305239484075459723010893892686170234128290661502999692836621534012481915459550110637210799427262248625861087829285648239096871428810342712576185336184492081267272362504928507639581910039435797188576824741218094289208950542963479786758312163683631178976560821239249656659378521656034666506709279424920609128919854552087718705910556858942455433159301585036450684575632409422004664312612753299927775734845031099103123012989944456406206627573738455345561500654092515834076217185319203985805089495418727160446884317408758106445748902544664925078558215120879374662940211913342088206324283128579946813976606304988404489585073766587811714483991694861469152372916869462540959700284605027998502697649574374449445172458026290191734444333282604302527465293269933374178273933760868800208772733316249327872656462075508400889356138153583588507810537657469695308842867185297102246902024255062369704313606150286603259050709703305861592386869807530089749200170369358826659612827103010123748012684265786151057897499853099879464388816212695718869844101173384117763662576590956906084949808356545814737178409285379554958554933675727381242471800764682095182501644427355541710960256063951883151900702764791880876555944280939647705202908132261063279136331526456312621582147503486552072853121888551077503686266901585229530443735048602262264942245372392889012945391605416453385303911610393290936018372004922690461186593493532711435106819376245496753787286555955176186042097254458301900690617908661049206587641532210330026712124744715042456751347904356505630859836522600852870612708799879517438212315541453803461223438777212294972600796288661747709811896747910221135825474079406467534521049960571057062886101915783510972080013974594996876610436236808308884008156478503565223843669072666273258072261276219178856255097006185151730423974372354714126277961742878084697166201152070101450444108684302004533540146537573906465383000559546130852206039494555573413273118530896980646949847989396509238551623988147925339280436608824151565014943861750451778774183062648648884775242446852288665092945932922347283434566248218767401096092997758354859395245086197262232666034531924247669711365604456451246016136972044667478450179143676771269173262745791251459987160391110838890454371924125534159639682908442203234481756821898340803447672509364721267508444466770674303433788364412948697109388183298778873141174572823786317110868924705398917851869749128256166185360278843421672551858654412568548168942439019149022177979160841883517505886585647031519474940070576322154659060491817675984090443993216414423552821827819750525912514213113435858055773241925063456485885919479468021226686727323933055663637450510127678126369206101644403607051002485750785797590053699951817717791439060295867178287491157627448585087615243952217717485358231983748104013776903514147609548489493122424502249078156629707609243168915644007645568466580310067957025107613795737419904741644847539118294747095392445278449730514040137722472910146903073570747929051827815378371261356682606314694572462479237024926462448167229705719468461084887074045123580077829485150948475865857700840644997473299442766797367669429767822465134969329748823558781917087694573558528965891683671443524480131173252587644407822018655755300230357611921523327862415086307044390997058360670745022686424704284167873915515865595094605610820357065665302387846795206482627363777109178070271882266186559054795229364608342494749202010577304181706693013728881576716306813568321751237799645640073391549832324463670646157501022778177754284851714463641550650779538188586611600500966700214831761300773070279029219299922333725708426209035100758961251328532001278039690407333883125897251023313463683983584579860761903406931836526743842874594312328482228196049933348461796015499136288573605105021866666085900806806658193763047241867857301458326479527274512637062995810410066678937690219151682417052138355764052425663368908500062595437875361443935319338035064251766231080671277518236216373880707666258833089794334273286428441355417670291301017010196869556446326712534704725427570519038739285774241794432485081085440264960762773064454009207485386191148925206624044638441439047609257224434406662592330005015985848538103188867127734310900793959899481042703384379479755092265258503775530392787613407557923946445918933890536322116088890825627693544056727760288244889152725600038816835322210412635851930833631382878118532135888353128983135454816070206889507416015472723643071889823035137792608026214554861327820644313288675284255075436162150738366859962151640721178318495871586851725221494252064573453246300333681519240426079274056792350307870903947912059488292644529314589360309156176001704028262825529420184540267769353394798463851413003656383012071412034681316199711506316433747278915455553503064733358744781665003134825302289179895363113719635034640071435662781707934336213070199936927582093246020903631683895945530788403652187635335271279701720574553037628614443804151653468829340454018006564982337574493985633754506880797379535297156413876682116457801011735560222115491933628273582801444237947909461804323597803568478005037296436412800538159743667849669230457765897751361664356024556609006913309310876553728351040198754727096652722630860010135905924269029360367012075265539980397286006296120196704533922464215292547546558972899377765916917532492154105978628862938276034530357367871976098119646108952894361890351964089549987113562539360544006724446952658467494366318980733997805091226176637168119670238112221546032159574050341087156031100322649979977796585372493002150060571222940529919696248947922770082738313430658516941068472644070123044891669073361643220981267283843894641877777122942985089061518612770142722298155977316493871265148082158851928853675423347740498566800703596448522449298972679656985864677718932978334745636148821203748127831470195253569514161693287169728781561513007782540869359900940438755456769195455965707470525544629697982498822968244075050940808997473054238648300503756429687436936764468408288018929714676318162607449127502808259916607783157809601895218615389067988600544292142338342616841385711764892451213234266687143538883053302603225463042260200141824884330247336822421322637737383248322599848171409792516658536646052626021358203438999143977956660696076626115529755311661979697427792473988164153658897398568980170304979295216826874219879646045044001124913119443601417462575899632058033270654779846172857825673084694987451242132930147559996161614780093070319932364806935615542873238517130707645698797955409654588094837352247984449794757132238153488432950208225395925962254645874530272003829709746531949497577342101061281723469792511815957045442193573283809029596209014186634418264377586392157401897354317002878014898063281609858954297939494225709169013640111154744759108130994739168640653808110214969573440674462411101297108856333300713809041696712636419141727778754754241117185733941513282115660739391913640928209466318470592296849550400049804739334387228726090093955276553936824449054556445081526650474594268122193992028724276239912644072062886439586004106994662071747520279756899537704936544462283374066673040720314968329122054427232024240568706752985738421574596747550996764729867613352197794881051392112029783794898864891059797648495365819748146463749563453407519348016482476813083040792182573977758211331450073544889627895798828100971187533112784925300951442167647247687255867286808840767288211569801349775384800825811191180753464511525756169992173321834220419932080360466347159743940153706893078282764447494010451713624392892482471836077061965689657413740853986722652634674829360083338244077979024281792978000155911115565928903208929589095749459264347024971819350228334683773541613183559260058869993500990195970442225470536197293607656335673209254611667919949177330326027538027311705506529262639666703113441113969228969586080752223997129098248398984410234373469057884545447850678250430244671568382192807120343257757923917310600915165554369943129612102296620062434324299765212260861001852023113992846793499887754642101072140103440332013747535196535848799385246319508514204561463227667643120159880208259068217491186163945378890771939709092638754355069455949629463076930551344906199772968085178494249319841534948603828987585699654797420662434601387850002210525500302480909519917361939386904904941105901177061673737482169054191676022087947599811882414140493753239742523879284537064911016250013764777359054125215579483889247193839184293373808504188677198290483501805848886468011859118131869681964628693382045466917823446707443742218205730992645292124371870116856590083604120596769837777471053372200561288595563149058165785448192790378127313189916083359559690295535937942142913595373628112157543737990573824031805021881302982452681320073981952117105037513709759463423221721986828227390681425648638996349352110525557282369383250917069490159173320999497253532305363771345337188098633305874187760623445337991883015085096281411087592257197444618552352016473197033687089066727239711057369213626531328857251328879106726551612136335785840065197095725556605766319457243795819416570746918679205920695870367558807786995731059930530909281914589689836424738583958665526869766416850145121054608884584797951874091773923785831782067368535675367955848248907334309118513778418980644889897400474841979593050596046308858645975872075802415362233472583358360388586067147480760754642181839037798998515726806958746346459063203295481522422722894888700485370935066327088206173470265447578902031557486845444256524722270646804254178203961991454326723632288100837591410798494730136472853792934381617849258420993889781512772455055388753060295102314311838940811187664271983603828280650484135722021701667949904201230942840179296397802818849692640528191692507038325152372134330668965555040103127338966362908826530995642520062226285408013984954693470691553331544188926198374469432882286662387302809771720865779623410332556278155809007976661002350916417167838738624657598548193507900515466438357828323621574733676438471393315600310240473580396418437729182874009896534242232789124358082197311864694968669634477747675320695028194258646901431249517277802831404860276494838881917093863472479433098585892650961645670461993184922957156658454567976779334372858901579378168179238914193180399575984887946206720196334776350674658264359791948837116233981650900894749273802674066989389261299128743070973897980278021469417283520550773897569638552854000994093303988410257240068636913684209501606608635967303048741914333483704215266907988586787062397588981033487338376079586799215146041709460330873391159221989506659715357280483591717753595985362566646416755646135112694793841469404230420287155161673800076781321976684921068292227687788470584313097063745863473966882197314035483027745695920191018719095339433859909037911557437967257566155494615754115341783249451221488558182453018724189293342330440992402727688419651718999631997198150163537774580316257481854397720655655407486463418954946136456295500561733171042910694745469501830417360558144665673310833838590078863545474216712701059854525093262802257750317929754654756738475590566916607384472218286250642323476606522158205812356608931610624898130654268342394575029969753375673628786070743419436080432060548650067372005421175624487263299588705004618064438698498423799113662656699900341367241388484435943805525500655800205018743544408766569862759385944117737258020359840394601334693166103875822095302194547029119531635748692547268198484035356002536515567626990683315027839126875854227838663324787166793174694548081902245569305024244023206220074457152944776431954447526879200462625561589298041074731128825679606712369089532822617482725054864275781691659973027154038774948945596748477422054472932407751372942985861854700285164751637473131644396111891069776706236587833692837492320141051246028643717687659308673830578718932126271939226664766756879357024722341166109275128738016466107749586921638570737320521130589701751623980306736341328861408785009752898037255421746941993091193908362917834137643964624000993396294848516002498980551173309220374655575332913769236929058592197421109621747232087850606842567440884179598957716979511499257066237536100522138107657843231096422356382340762240945525208238864144425268230747213888783959894760095963815676643439858416039250435797786343066147241821099224329791880348460654157961314808118861402912891492159245682628839540149561894623141056158554074472728018445115160663603039220246462304620464645021461920440500802600402646306631330330730698640536646950112338051470797337888767813442798172473689220624491399085959250078234866691010715533567961551131563264018062067056409898797852777027949676004721685135909736865570548410082568068300351632369877145504276306526980237448177912721454794876336501502639099238112905885519081518445887170583074185412350899805260846611142232324205400579900267904267173608787883847641227086475615577971865430246729499356845274281890423622527967342106449154259588725328215282007899925864894443723583511819346220247369893156886559714342272932650537309743663040176585934731448447123456249760229230461843803983360297966218535096230715707063285211474171195628427101935977048544925336929373903572343247340812004196778968973293482581538998129814800404477614055606907231906541863149493423233978044627868513333160477780009318356784401371183698812206115537123383752236680466928025937727363535123487335220333488434990021264431863184151703398233742218847796817521181120490354108514130489161930506211312462159547653288413599854392406337144201480352902636518720356469128443683662792843249951937829584454252019255498742008876199172358971481822591343851158900615770164526216973619507196819609299331234895943870502394956897531515435517525877049595374954182066702063000311225124726242412401776672487823187610728956019659661020907875534983247941944959408445580041171694853637642670846556582636277268818745858067410215274543125159312559047110757507011688444596709293314248620652171881965409497958071751473943314874385431377752636227143967799301468328803731961378566527139612336610165609103629127795743321732258695833289346683769649401495365442689687390168994988057097104041856479132895033158909318066179186948428748365146123990387811429322960374728980324811954456300923116195201003799446547203504438991530161506526796600760444739870041844421013766248831728120144944424339849207715807484911767785729682291027931277086680424024521086800166164886418567487306748296604992108902856865795176763788381228365883025062047498528418236821470810986205442720099325052350984862101003232399480573760115268633563372872443952185871425246760458547799617285998474587383353083465454450598204368718402514814224314886438466865424274353632006228347737559785436678251834584190884496496606764186005193441524900044733655454190455000943260537118499292458521802279525419304960056564717541505915649491573936885046336074850718363592019195514356629744527411922764517134803345761436022625359733342892629708928817055151978851688638605401219889001575346167327136147938385184524522116199498920908199894111526178593914826809766234771962390666412890127787776869608645834253750585769510369224497914736611150943993627677542201269723978033395718842577441986564889302715667328101770672130667409198738563720821607354042307430969874656287684771950784971664644193395813416096176773440990885854946720810334355932389723261391075111712701358603254559604713553400476919253367572499442892253729876160816380083488645010900697184112321149578526452769953608329535603945396422874296961531820111965471937180179748628150959055282613110672777167184300621020027810024343158156375370253304012897719443471572703831116314052286319921212875071024290313734866479751914242386656374212661432977209419812121812936009321717978663490022535970000816695339227433453448171251586086644210340470955347709524829964981077836937034692215280274548984737406894448933646603610214389428796183233904216035909992503603296008065145053468402584652251798356861984642531073971753339842644900064874707582335629396073893507525267876808506294075592122271023792393997724367286084443688194213980099522469143359999007791784844327480419887331940758519842138261688698351852347832536527333786426710802336333116636056126083494931047736829928510159464869285433963616408604664722175684245613533590504386396335928743070699775081545473190053472083912162162938053533407473635118887245187953459561034320001922276602709802916398818682156389630087110357568263241210820925458499698260279338821910708752838113987900718351618316778875696346409196126019589935487625937388842396509742079544087262297521762147158627694558540628513844908847652746695126596600560284251935242536102211928742455322652962037784844294448654563470499186808390409224754992091371178400298381581093543308468723998145126327628953333535242844392671227806294557707350098839402081331001801615614996268511480618176427892090246281693341394445175305309898239465351872050775568727244195920109160973739609025543704640246097283425866181425350010156566177714853738114428597946528714333755061688695223873602720441281005119886531248066337813388033978572031945077996015271200599083303678761670546952892812200419342399518353575004712156288761793256049767559464223697739465510960174383515034004516849309492105991658898558755896448877252190192131368564486004671227814473628863070032674334348895634604752916907160920990188768161093310923847555260914164389226561673615837998497419698637667159896369534859433224417928324256991258096548976189231245920342543570932754373022600795877593887546563446609885429759738763361090481515889777069296853102708420905938575314499475151392512971565398354935336520875546800192047910857253914040101120806472707595236378809975451793762216993473333842066464373938466989925579430428227707964547589652036818145362887556012115589308803257060943873824190701043997916126307890591437648302977048329534929084129413359516038307296047102700261026974077776930885813752048334506262693768548522248424550017743830517915712669366703400676894508658822790965055938127977523586082549433180705966623507773835708809259598572064678164051905116878321620714579862474739563214906200517685220506100440135717731766234554330982955904681215544557940034477454437481663281206620624074737403166834902488123433671910930953865828329484405012674509825045535094944816602779691504587682202757754446508471996580188973865485484258221532520290457808855694755851376140109689656381049578732493092681018523180709228996215157658053427858796362264250056055849031137040494438188118697492533235862698101177615145442917263942562444986122317190271839326394938464726435453927895587911446717416551614966484314352602394752073558438982723240732413992956887978475454526390389605407139445159465225847215005703084500123470632234895237130114031116381618813907533238327148490213653375267764877009770819405306851810956280898791206318702400196927344625244042694575090491030511092703928062610323685940284648247275074839888133096383146828143051009292076625302861209584039715031477701938717023348795995384384267737865199550258672967058472388243092666687317784735258946411291595734738896815573949114088235907158624361507437490879487679858228871564315087185055904546667559100087570241822520167649871018541763147566883959258249117936716221718165958918737903135201200916416576980263134406222948644139521938474329712602902510674822052362362399872895773960002758516777173343283708528189900908262771593931043447988449490211313565885198636550520497048139594847269865502212115304651748815658027835146934069638267223392454526533082903723240125855212637294507320797406311495943144390117522534312705201850805951085920137508376069061208171907947626453673480967224523020658938361715454957662710890716910104438587573642535237937830568139230475119539134197758694111290789406201907477030578344127657601060474048388605326824588292382878039106436609474988199690935688087428077974272529755672410946752932747197105370238718571624162195564002793430278430717148693332736780383287443829916134662318930567805024432629919503297219515918705865359325152652881598610207864990065905067527913774678790486143281209317302869724416310305639448464041301495702839152538728972411353453159713259559720956110850789962632119965977673187141168631183080713003280062379127095537275548601205526351762530233075454792199313472751432350795836835328791731864418822505698232637090996504078794104994626048389156329811868646247306935393296918352586842696988064654473550100080622968119762976762876249946718700228146332866793609044412585143560991495527462752674402990694194544201194145141520732033399439535646871341021290588890862098793534289239052442740725020641925870285078500157693142480448661971717761751993870421072497898548985258284334623974780305653180482177373431027287126410916958326871836833275000475924175939347244831390705596436503995526211520661055510886100843277129175039427251010282854435761559873445249526623009248079531309310450010277643237743129765109816035201154604380816889611044412436919421068960983652040349560756473737104840642379063179023927835493869242368866719433704192673000549219229445552547203864029578972444387229126524410477284132688080539926788537187723006345458413972858901632519145672238871213606142954749608941030522447557618162967668258916229400529383399318246301366979442265629307722945060205684901492009023211169275573889411560635422490485553481752852327574903726404030345384489100880083687989763255104286976846525974371301487183554770025699368642102721562958314335704730736648339881781784239835624889654680132886651375557055801613490408780972827470311439035576527231394706580758843610332989105562347891465913316800286263887520246738049795838895894655244311125546892040436141664990399979549884896397106798850539607203172970001181611282373500137539237124641199731229575402965162278012665484708176005948090471286265656696209281266393476789255259046352431597585353551023040691030446894430914757757164326959686911214637865566250447809175626112066477083332425530017590016028654263388046141272891094920525438579160698201128358775784882717495689536028525934056249129910343610058177967779814054165286873420462431189461556552155478751852545696820153083244314947212713422162555011214492172432584130940169907038860100361197916374296039684182733760672456940229642858522895001907239686716160122408589790615023879964962396217787588524065062994385970808066246263217746874838512091074095177050258320876145408880763834259026392347944985277053281936832577027585081119315576542952689526616621205839633222755634995341054540501928019404992799136978009067728803653031041319570382973144238254617010620190285498402864833770973166494552367462345939161246251673440437084679563207471030879766787796188987020135774465240600161610278129776612564654288166699572039932763419979622077035003980596406392926237326811138466371203359238385090438021557614988885655926338566243378348454104441824553943683368275788139846863697555082871725070040055422831942309895354717307943656643511820161973581546002361787580465242802704207141243879274473233415902213606791875173059394026862043883131813672665626618087332647601945495427689708271193608942074872317081339095400905138032635501775456654868671569239916325628951283815695172161598203076725177646249457210803281117055311408586720274652402548999654888604852084045368819012918202971184813584187261520067607381225869429829495289323769060455052882327353484897633485672678731226103232325405055171310405577655120864432354268335706596611366406275448714801149546308192220181310927355533721330750364414602409138428853140917228214725672118448379867610516406840036983797024612087274505062167510746291318408577754081028075998169488714776049099658825119765895155878522032834715588050944487749001873734555435502647853322901820452705267254600586514094484384056162587891773030065634754748261454921066835243884235243375705848389121800545692231701896360192800033664081220135153627149831034497245226908383464494144400872196487984411959629376671201632136605152911794314373658867783838314594939689623573976963032702742844350154639665969914783380024390505200591883572152355299401851059536668983463785441068115842185792981764265519592031935628148705763635020550778670462685904112816425862287108041301299980320965739182356586380946414862755919603613246489883595742677920518646861041592650924264150385888761648859231155484928153511085974788080519057102274717844995716154238880978300738965172758417271464009441764638407779852776425330193899222103064751216508144842724439489508241485931656929347814135184762690922043863742337560722193684437321050384722190403252494840291974329185747619429238731148676478102622497854946094847841602226075289072584215696059212784563452076099329514425062591771686475096505626259757160539401235983847685961395536377099470101244500466054347434216242423653495746608428155182761927189363942844240058536439459997095032709890639936004481782127205246601831660363550536473697959923677520206319424721305297418267477219825136873524242557827368351208239882452794768545586885941304802221370677395810811531442315910551411125577366317120266395912326640173594910817390004797067150894998592246485561360004215335503029027647706258482210931434811587693060677814339696898797992071386125876810031829125663037564408043948498374688433583936612101949118136588531349887443388749510562772669144298692253583175458110554657930109766024408707504421384222065341730598694216744402119040705511734572949048781032348672573441989768738055278356071228054246483423112067983189294505319864662649995189101513864058852044881471354010956979336288927915160318238407158212901923488359785438441459560630703052937450481911583810438682616683959844553339096517210988708938782783116239632414107506460519296700178672489223779789195788225025571629477293701965196532820089026297461064357592517692194943926571748368549531206560861783465359245884544715960764066496039559369072615049537568028723848679629732985887059323858468127776223407221261136402438379399839949478143129557420562779743017772733949512768571737468648224451851171361519021755914577878036656993313407207939186948085593598100640298006061035323908904714081369687327755812772427459506624755666227526329721293597147569562711134182855855056081283071170671005464572906758278644008719159904443877442072304048827490772127227184347003160073856455777985008234611240004746653350649468207433874841803031098382308261487495842937654186285141588357768579678558131711647515511228733675752494555086824415605915266535451923452786370467735648281455234258379667467469837306562751527071582609600451904945728113664400203230306391133805284387673023483256268114462452786444297891477626622436385850949867985568480317184613072782389451296185844729846449725574097069920870799577489368846090501472808077341392666391808316361163002711875331302078010611091826652925056258059596508809448772367573652168688797684469755725056154234867836855714642574382856132585530542819043802957105140036947925241618398480381628751271969774229885629485938263921192011103836713769324553188493537567949270722075368134467378309321509055537534306311089108026706711929137090329611360916314032957264142021668766830518856129139173325337756686101623634394453289243829469566584862482200691597706124211280725685296754733806817428903177226078064759394873778438780939657903586165738880103302290428807430398441122318612454737465645075843226032126180798944015323952320799022514556338659428887838427706219992055965927631947075844935657720780160501565126023488933819833502516643879952035720015049795541106902576667242245355137134627671956134231475860407093766498931773564975872366325282479349370831065551699149671016211853245157331153650508728490353568480374731173577532879084841963926946776742151879595758689908354776085737631982073620819378194928977909919544484296360975719617115740517871975843710651454201053538163727519224348506432117582508213374134041140778666111728447749984795804177914821760026929636812780665633627234913975949803489628545079891769523846868306770633214362115643856809979258357882867951976098609356364600960531119868996927626086787541416375509067699631105391828424789530446902723053267829069453374423779868638386035592574528546711106588065053594678690909002315027146982498648852013416388433511851361876342126496009348182835776516615121619953654477410080475204964000464305734666629813775831252146901904888882747273545616064537836789056495245447250957166436902400989601970679470267766402746281962163793678476125921775205715322316394903710368056101464723496249078721782991502577185518810737242869359368886576329112607860940422912394528015201741548415321027908765450198748393563709223026575819492124009065513810000452784337484593864867521859884142676460869692197682424587768300968787612746652307761586136286392764263895187801744418803707539878780072683642134674937275148837035647598582395922742668152935098773477616327820244808390440248772469123384218365998331626925704449499908138015353981351540989268664890328796491580143640578215123969603140301870912835605508262664392833934255262664008002173641544392576379653778497954042476020731735774247904360662248227660298097524762569675908921306150970761192920460273218882554836804632996787210198699529533047667725952466587021500499656450562064757571301788248801511752177606091278899462340433092430212558351737487873682521447206699143552913487142254503770459533834607936129289011728443836384087710075463384285456001849473421226270604840418933033384838109847755854984390018418847003609765932326111609868605071791895793172330200668001711550078605744173907362678060418731921969495941441132287462954487502948125187121372597400684938262344332211305023564464445050263622548511584094071795516862160056073382903965217367506599294747850839806350036517564739537038596764047898107863336323165117351317771573917359909668065412091120946581966861555522983761458729033305662400173501950915322869483337893793478342172818917776025438363604647754896516833184246142483428217652637868924797542036627166523997576730793710174336483796609262953118374581057350302540766995398121499219026182220941389056261195627489682983930009867103097040470086169837666156039689630573292672211540422707777538968182295620734113704289699194629189552163537973585038574354611229377579044087233229739488252521555729501581237944058741247732949906129101041573833913742517757596098926112976731495758164189597342972217769024351410280500114474236233945448376178164512051227355289991985011637051256694498694710205845639362754249555946972662658214742768130096103763138257183494358108378447419068834901564774370581260816841911729341277292413275721409556430380436612841447127864904916573952654457307477238177262361595213073868603363436280273925967410019818137072376496801962027669958361928618962930242559535261029225416455483520481842611143517587263941374496359662744276047273577412433004566278844456947940179252359599840350442775354470875878842688058308910280379230511529213321364061811769300719843097694303686312497623286648147842559051213757059022990849427890913966661964279671591436870536453916194809423233415747045676330031308966475586709606397182745445729414730861285406460476922491821179538399399077964474549921344641685718895866347920457059753409288840322783713917905669689164709739396532454268975039884730250253654034797254114844177009217131385930917055782580128426183133644315046291638647159283614316001343873326170252822481116493160214666004685128380523651246833394624091798950081959415926965627792120291340125285510419615932675473433479046687005865017127141701000131997098492218371696879320202660081055464234622304873987151879656120676556529394833183938964310873720450663824215324466138427752201586109618774326598931722052470359732954737990228993147131175975239129306178014739328355301121436086720918725656483904276673165817236479322149201764727695298123613560277187363648785510732896695023638889283843001679644086391355620391427200038116904684533915774546044512037728538203254782285166684235828977973426962404709505537956853752687581647846820607529747455844108305885480625467572916707599982276690298500580924567018287305559776855269392075857977270681734978808482363591134697019383153639905436790707869765941679770790614174662097887074657907436179768389790025422361471690672680271631934118270706566193881327984381745079548097530262995736221894093944420886761673379221900559178095451828260907415689456668591180656535398199748018491545782822703656001251735803250840938553928798385333859208461476276681439222612423044272963975269996763516682626623754211484088790647318317860707697662070945227651918686691016642870527240910356579625321383730433395361411396194760074341597512125679184783358013113322102341229559734794795745161954089582989324806911827961104170848058263190343233860394456507943437887513832108087601310360414714720983541388962980651571530714925434312985107281098387992510848654682529337126388512457419138641360693557939918633588879801453289836964963323555155415838467912321026203609448934450353051971669562265017945701684476844257023602826775030423555583183124271557348728000832335826727411975396860488941011371855889278824859431869051760148453299906202574259611936679130505775114635326197937117579175443520309453592932275976496402684970578686027755835357514591257574517798363626329599225961972285985594395150580508706082408595956222521607375330754211620105951545000200209147286543803852204220274398506308567525658822300531477666306587078110099497284006637047742189526009205523010711442057884600877355542642498399425167871697910313833348276119701887667463249092175288696694471703455626586621368936123971103390055250275182115349830822959189961155891337707801985304676229300941817704005923222845279540006906397533241523495116418689441392504879677971802974754032059877286842997809796964524606502992973355810502765318883790206620333479990218305183252884858128488695027717653410207094825774998553012803533618280118095175770196426051952769116687650587931805174981213453052423679536969815624776485761898964695512458258117818496619793804278894749208103956927705338435997587111935191731754394968869400895893325071195204124428952028081543706225191923488516849931783552753884675555573735256508504352468797144771811976625861869137844352880023859489034786221579406650634001084897515392417220438243931490672025069906057312404655093362355049510888470700346614647219757051020053214686459267255219616065118888337642537828499288037614217247831748935538510379747507244528076223051352326764824379401695638427210526238092933548944157000995873932270429975943081158333370144788270031902016462436614117202281513196117662892458692506094407008318139722313323023317656042053951624285700812069302111318868323089607038994356199202026679210804509278969388653906361246361604661110732257111642483006531674953817449553722434834430389066563485183332014532696690941930537760616991179427089790871372937884967173183321823335991951904845053850729348819144017742440843037793702225332314122856762490557701823101840309291172505390389829420869298786566182978743577658960576248748115113861689359986894532078781642983821896306372491346151184668004358352528532302455206971346301113142133149972786031773154980865723594904162517737249675253901860847550665491214029954232473271059224370935487579496653754748369226620811195820154729654176605657299179984067138981794214740128128294753120274349332615343969708667997580205097158320277281610588108296226146422870303241472337824633642694793677824358077950729365557154085992218864791680808048741996119319553718906312479681947523441180253384829510587575789108963781223008504421003355495163984984214107804056995832545108783358505435216864079928115960597809756005014330499964259117984533033180930405950338474215551267053341933795388087229888181446698719316098014779417515631565818426749389096929247792260607381942137669207178575102391133343056456015991854885503250465484682102276040889935264286951054302886472330298314415104479908643210538964151478036497948921772631337559663382842903554707140139303781644428932749533470811184207007091612986848529182484405356405111429046077424054068176606826267206389725270925749750522808626245249400066137965183559236307508119577215934650316817437937650141682530071731963401680436658093659106646902931850434359005897274325764681707158749300462739342421490465484639965226668002651081812891680420665219323360252143715271087514003145970187947722450280296883978204630972177661778304958929813691929378371007194305696591495928388050944081446738596864897175069505683306763277437058895392235093275106097510212044372624037815659942683678116852245606541052880013111780891843394819984136881884146944029651635914441589172792255916677546310483332353403760194510316136515166583209867707623840412030474236979997047323961516892318283429539036552670818166597448076770403771397916784016191633808038341506148310544853678488013011792989323519413258053741753327341864868213815157841542336894588376810173712228019655880634067823185728628187550713777079663557502698251838541377991207198574671597431222575920361654620545690536955387841211854013913982213529165340389557907907040874216606023756997756176389611447702422492551305639641215388031027386141238305719562174347941983934106045263769491757196753248902369644199593489255599573177032679354779662381809955862453380213236841610136252089655981164625203618989618133273704496365002072900632606940381521136793985918618173500151773919103882330422409169414778339980379152448298322355616102962739042760236431627991269611971385113993604965612748395197014166299074314659311557435312029689794841723289232699270665163403875190068100897810852276396692726309304093643509946322673827572962475288508427960618683099760139114213956345386247929668397096606919564806096083212783428280902707881462605411440559132948225183616197177156878257020588549853088877491382285218523260968556079634447217330437247401501745979327316415526985666508059949448032347295890409754014323366529774642644459641260104071210049325624446750343486177707259791221133774221482802642696622084982715765604526123212836750466422132849169343251936702703669117811662832423628007911656753560579940802301827261688031175838191003390162517111733074035299804020708343784904475070878271944139237063936326004260993803407254235094837912318091234301051243612465574205305838529969355851064924240925954315306912593915243598267778911057152358405127704603767090802004409391477941402959600302528570144868440203082566203791798122569040630082924734564014915797544143765944255762740739453366757881522248426199596854370723856212998726480717128750581620434878055671218224895126692316541769466586183410242835917644934739861351869450569775738848363757972356261868168798273505520713055293016925254313775543855534228568744118110742770940900313654894595225099786529724718059586007576034129551302084154822080464585285448765114970758527644261689634774759362353519288004557386012792568030952218671329943860661987075342397257752417004481348034741855020326070074674976749397495240899147424938842402841868809137946910291745821766665430680749151485359794948913033196031034277155704963441199891177732123666059638665378111456308365628318011964402501661683047868377574696442909939154317338776750184613451292024496003293545333018979889680398982003345226993039337446035149557881646499816712902985351202934717166273076781698764699318590554000362653384143378288519786418704131209423452864047530432555269553764232512889357146316092731861951328643992178635966776277936257497675042275637820054284993691828942192752619206123526640277701267031129890043120355678019797340060918283734641404310451797838499684895786877489679558822956900629749401422325037771168983984855842501568604050702155364208885061873459554783616123503528080011961547238593882390853382364419158778451659143940055711392435654491361114724016722191533110136312961088073378774777817848372095791514429209251755576810606452526205051389297304062803059697219199678624130142926566453750020836091684006485311002662668198517732913743362289406682293100762703182283434085886739289221177238603455651107965845436074900674593662707716523162511736970691931411016881718350460951634761180562147953873629733294179980021801781673616662797696224611370366384653931639064880776016315209453448893818998397910082814074496621882571130274296530680940753368410336009944099375000342623388907670279627649164993103048232191128905422353240915211338087640422000850230766555799802423924900771629107638453703447133819039789285399287145418687739191424243518537347596974126707857683548683840837061684774872139048591728860299722008823316423629303026777694979468717391182203959380235808603655930963735184777241617223279463397077599710284969778271196132634752050387641982748625707924346775909581505096174417396280748924498547776717774675921664094430000609664941512465168528313383385790059982915050351447189624862909868495523242330691189657875164303593616005983269824735236997575712632543685983815064461794193511169605911926878122830908951077655256710381140511638790343267161316187421925699521406415255408027412587348386670240344989099112783586286964129134536469793683387506060996251317919075355148374006646305476884421758722172108343578323618101510080417221835443113565260846266841175189383530174264106273064778676109235523239782715337646381251202254166527829592537454188500858351209038166188405742704149331091429714497545632694558509703615951101464422475559136749175455097284561337759113130576245022829220552358855489096349223073311066822663582988404374304917668545768874244284592307256497604128589368981869976789039226550569263652766662249939198203020155365866163779026975235282066421543994189725904345839535690764647224687499560245736455301828659693983145232947182402194837435653085544989449236459386717254532432831472773152718022591996935167854806605162152066500595134703976730996144978995695551628798692490186538604624794867303604769300026250117454767160998222828530672787778344260534403122605101078063419007569585374027400615993614490536645605313692367025306680233039182612281127596582080187411083392095546476973177758494160943099671251638533833335821450442745735744368045514653889660219176578728449633898316873179915085509246753869188840301895812744452747871221403402992396489554869059739570491238280946924582338966861870540698207063841153347234544373695463513654148646775435725932921713458126355389035536047185881773644863540527645342278467593263468187007099877829572502428110826122065099994867162610133756519691082851181943877525010678319303018114613131069869657653117658511302407829951909433491136727328686253107453745175932175770079029060200720469288103959012485574268026510501235010772897047564866023358755408269766053438663373829777045808073420014346808949344905269037518503692054780625421301309059937089489861903622070953384985508619079134330847652909599227875030508110105406743727553205956425655429495961425684896211393982617937423848671507190093261917111780862231787504928807410110833513013514767631131739156826074332631654090349690965296192357142707546390486384827295375200790982568186878485614557714641319272200700061279500328820033109719943243558523148540643994724146647229529285004097620003954381225679343619114130198851201048454057753128067139308891330269241064970661781723624437663574091895723159385792490487877433075443900206498385566821377889092529200109053158552187670157217948337660676550341922924291129513008537505443498941459962615524352301253871689350483297587722906765114711166522026269722834045753521415651324284556638139010769025917392419441183603154850419076213295688120796363663722230689377733926245544312907946963376135030471204506824686100934647512998451748213246584093951963318796700407764557671575513911978876092529144707902542126584811584934806925527171618158860487258982124023934745408480961532319500876745225666567661493537481673740576686832201979380165675937048192826160330109630139191128008873801757006088915475113041820436656897713226275251062491681368631843331336763832668510717011101535818259715965087334232297433175400305676891091398863808798496948300939333730271565447897473617719037152633382949621092672620520682103108981089796541825117628371993150297320508647304232503582600812699913384228683981436282183230547046210228681355831112065040491249561349168228240963714164414350011165620311044026636849372231729573816043215912248509102330396556784036603167643943614274674211877662358049805426202468772213280069821607325827140431488269799069832445027615292122124619056171766490809029419018898088354189988787408813711766672723190744034031439699593018381742380377920509593682245941984326689383075535194828137765067425794086678219411881075681565616793107421968178759902532147811205424954338212220258559284299421522858297584071765401132382064877006546433492752978851737263612823138859918657648078970794944746212732618466512602349530158138843468750149588136656179499559816711436846166226963856840716916585778968382548543727063637313875126773783368569685075063057660141978562447120032807064534370411267109068121255077833094839074619839810484308087834014671224404732427424416661634865233097421642658273028877333665968634826747439126043885341140189422195684014796292229951934726839159079274714824386838235866236184313678174523400952170964380707064463804420059769777055822142318323768468667009363746982010845471888023990680584111881874272076347474843164051447985357259592414907253512964258081230410521287267327461112754598378040450793264477425769490339559349061262231393840191060319232930073737350982096433722073538733159317210683304543071298116686198225508524703671152276246979637479181882294886483034121907628149172536692434656640513921848919621429852740358725633172536209380643796852421028719887479768078550886982186144902008227720100096648012933956750587702441145714387837412300151855422862807627048105894216103413358120979860983644542573233795398252638070552190991060249814396678811424243951282546209234534033748985361678529321051624551580491548104484149329553774634721714093958133412825525955948738646536108243169157588398346701007037987481338015666061548503306444360131156277032077908996796380052032820156276644331742261580077803183761221591913638188545206902581169995292121383515253061609606586654889270168706821915675175351577419523600113277673672485804491973755855191552277492671834363375862223856577158733282690322821868173332064169960771004541073053862686301974730916066006941081698771179795199647008206996605059421211821653959174603257749658371109390067677218349079455456372215327033502560827310655548229722715060503297411872093176455133753711198638044867528337415270666449212404917563403967911739994243770503735848820304109600835580051198260878976809328947153034285072659200854160729175334891558285390020881107669306313225316606478982307966599856784330202965785381778794640501616642410149322019394576527806405165161830358245507941218057313689457330721362707528046127521528286216316766009331574984074701238814374807905497690463907557477226348929541486483419309176776644363314351804699958089052882539420694881718948424529059509511355402842832152387266266076806656851277206726549531349336647288968428845248711201057434263880385732913507320951595724810587351018233530421600309233387403172100005078349802826649528600101579462084147564368603283037048124375977272775647434164227145359057366063353455606458763231609981459263812273413012021842025894274448616120347898733595065579495789666401810868947370752949242403247018763054794941466191978272397274041410575405836044360534610044837878779880836353098153006105755661006351203337133885713820719020063769516886847031472957532120137284863640176255378097018888814763236354340625434022184527538592469969108225921283763358840565373199497281803561131692488332517056452172104901961454081244728080397150212662289072107731251695021458353041124240836852181688137332772166332617777649739026259048138392656799965504070210024237164904864686903991262432283385243712049447663154525620430989219309078320822939813908617977988249236724384293688896678646330135392712382637002194325925405808958057045982263165619728320327172457218798367991228416979642109808501836487774420143064725472942417964296917068175129403421811192651509202182308040655726474485582204779646836899026102200458261873314959686030469090258117111273097701164126499730396183684209465127237074306792156961152627141981560440526703618741888352155528475508229655398914209879310815732539423500092460225634839904839001331611472311836095699023616207513459277319937226219490716414421781999933751602901880564157146534750603237759280982083188234016904803732687479782899394099927916247425185390098789795642294450142199240989287041893367826111401569820308468321172895809972751954537337997750657230868622879128945779396124287490804447821380864157963078142138323330450776512625204943728823570320806404681673499197709027550640671617209040669740631820327217396490102274687418305033820253012894600699237128132332170639622774767768878848399292051718841632870088474128882719231833506034579909991979552226075230021159726446750681138156454269481934436692940858315548648212641388246440550292625431870484644865161700350303020350873439355521892462328444549250941164538092612477075640150726308285199953499909978041792615254116573336327564950580079402495009411128790813763704229631916699891563648276576941334808700868443031443410203431009233595298810914634448863403133825158243950133064404507984855728827809278110797362263265477515359767242274018258175505370214123809355480851315734853722966898431805300288495969927235190731443558370969289067381818415140416977807102629284354081350720875176474964591075024136742353104601405016333755488596218644076390987508669545369907543301155124894850856542218923637458286555401656927710332200055732137066003586835326498625034114966153898362842017252681655965683417043309016310536802921619539857565030859693176540308011897375582987952353373529697786391886959607524434951493079043849951871682104155257924943245801874425767833750219549121484548295726230475405610244577377485725508616972487144872395753917129281604316042634564541678629233325241529360868524631685650598949610250522987221031289687912984814063285446860148950482565621393806283688339548512099901603480780677152647359230987674750272648876332020015437748186826801271818179860555313732276909209570331771020984537396750734827073511774600848328900770393185930938075891429237702517468246495589184697090014471523586343739466093262319328328861507049845270033810280107900345009919673127452739202732141284936549498096029801372014874422358875991447707003577739463221894759115311843504441940421458987098324583734194795712091972119017714727121367656916709929133921063420083423585287284594470328451629925790658577148567717628055751748953307102194814636968780705554337279090670673854111877016944747223899435218490417807161210964134822626059971595828571542099348245385754094201791493386359930757818152854936437645760792300050956972918851859112822921809615848416536327854741474228734502455808414105467212936486201563688208214812459592058154198164861205633596964164792872724645223339258340472605752985623849870687699866975545783591939877138517243312423006975365919852009929766306769134448252842058195671918585340522036318434889929249048289361195154042279449864519778674534421171338706256549071543336581002526002926036577820378448939413599008636275267857782207446158723554194031295342392635329039418464558274072644442832482399857025621845106555800368258492972937161618874975324313570227367094801184441794564538044726361421908838308734500692003450276799870768422051027298506962800502487529443759362420185334762178949182231048196406959001537741666826520690493679599705861517768837560207237062425663642614249123400146214528697100006062990436149706189698179008946714760037990613727556482157396291126535702756735884988575271952259445971649149492003238667014840586216652190601316658405896572048579208034335619491274686212728349492018941102745239962862923630348874463013644794389173279254239474028878654725209500910694004060427156442640202516822473809054542018341669998664710535820591171123260568095314803124804450120167413705096209524280620280736861755029727540588099717863079042194596904630358870369236329122982707698558762743788206210861092526165928514978603542806857323713951248244877099676839904261320946006198247015989605781830982245138520823005055246696418986924587477723154471460492914039027410071901950432823214665783221074978272308640650666022979692531353356355742581586063871448043990926427981889850824512366416998037117475787149543724052361123792419158447477372749095565796411269944888697235038628457605343774545558399544185214604799297811739928502188644630015594535241334044140922351792031216176863367699903319138940350888775408688277950232460209005703390376114509713652005673425911635131160914820641639019337275746741363663470263821640311562686754171887875738229789725062372208510920735433952379488385075295586330335593488539263313402212869577749778819887262473394336556819624864212472020619600090996002908801505731193593628603054879562124753127816978303867134228758962559850639054757885782520216319541094718370567637448397358489719602599822881049338240150965816572644384884956988038061571036309311110259272776751225290419633278646810878865061485516355283126672245354813737500955476179032964682353529343760366777438564331912225201132292686138746515652876054868004745890616464937528071835231709149332485620746403326426938400625096779968176290585759339419413438121878065276084555816324833494051252614261947537790064143123045657591334373429582479683371241434252249546010451250578482495677600798670947106365035551913600198295977449811280019512899304794834820360363526335859859985100681442567885213281835493400193533291355489779365820071395683934078055798984110702816195764486024058186248970759724845217932143357884500446917873611098296509995101660745111764043496903255734929209505697925168555288597776507053603873227724740293165498961993123867751392458615419165229836140610600484160076051786938015309766538342019224135050213443974510670249493578246192858183381389094704694353237111094523383757263314677318269704064789335255729328640573349524237771546506693556469640722825821123242807495799429446119179798597567107373370150410705260362148752303085441077623912560358771870945049651060589785621154282933840271193937619533760710002049902006928535195526823629859674057969367299918810661057149182024353563450347045693679399528569243139466960931505870859546027977425089813412860142374363943540245052643016577628993506814010921119136828148811329027852005049200375495934007625074961771031033758138240837515995200075978228158302674408906895920959317865190442688227582770081743900371910260295107674389602503849181018384297320861441796446715946422401756820445048971788587212725822905520045780053147922987307064708766804081947122722324796009281114969393582857704003782218999448591983822930922763987730179899453858938071985373805648393653359405809737078801383925681660060517772115828271419965864361033459735472528373753005441179606948188959236009650305937089735874658357532495285373184673864833494840114987538464513844393713411842018180189858495961686736487395003483371825103819501776042418267754152498283753234570635758685837023901908725952495383367922056688494225612601168697857787501569805764604241533473506868105807943688989839614622241237028805776920467748160780112055867193631779735825306038498727446959591784460691041309644024900074438938028214996370133856739384673428403378272165934663136581646796481805758972222608810152403075321303632223229315264407344576508814987187225226641843821876992093533891883587115490538949170524159625598096574132088288020782390918691121886533833330838085046913204652520493209527656094663630737671458992794433595225350784050830026663824129252288004690945826812357798017295981649495716550969105070738306216113482400320137753434826877153311264991141063198616648154756625893686245635035139350824435615523934899478579265705270607685785991680095644807674652484325689443052344480232602104620512257022371699633582762203751844893748950916707169737343904396602716115631073797529250608371477487479266433117376201868845070944326199338954320669145739849242527088062074517125729688497200194573768926325622501586686736175560851453098877627691598089950320675277438393392099779126315526312003921056244597196973175275636372670443798134631025367077376618760951263672686758078501214407974437049264981218452340402928326198015493109902018550095825095287674212712966050125171754971650142129994645147438481415743971439006137645609340601770934698441952229500906764280055377856031499493411667760298764836132678189947230356244727252473827338800269126450595851893128593653041974041676947717881331164893196611840604778480155014553802453325402009788637875548243263161500939452055779097956684755700140673793302089255020067010417244302316909424225697171859574120951721727906392329889606217893906981082359185451486148842178954755451681682474775988032802841681376846207653383127766146979868719477788496692876682915388466794863954553493904562759757774707731905982763264894566734197766748475688263642119770188100308236627144195281344083133503999736102526082666324889742858757226066855903912197412263907944579602843954195225056532969886486431156113556308291504061416676662330572843875507318693859874112292388181475912622519954420050296430877205576308386741976546213167152514142592149800269130221585272678003015729082112379866832426852714694429393769022527359245712244783351844480051026954287343678579957677594140019464209550605163950784284264134365392102925449056409680697930826472579506617413939357805751338452230656099559522180397362951127228080008154531019182805303131508756094580071561160397547943594056774138104491365347763833152222289692765820730809433568245817797694449760891791585069784009700437436291355357632938459954371985636135045076720294027406878681668659709941509908462630685889036216714821851889891894341570369156562233372179744043667122307151651924717403781323172350526483011197165220445201422845316900099257095524130750312714351441178408436541467196337474016753416639504626740794119866967457332320417398831553437696773130738948246981427312106641392471348782751915917325354901044808577906690244743609495149069504158491733018937291945036874176590135882000958959221106704848714782661376421403538457637994481897558308578284485445558079020674461092803634393027474602046479096991098336229443600079340044203307506319176105223869592798675339099731983610938411922271572431332630025940819582759465556239139065788681680222627313994972876312064998414528909188773290603161353142144375154870557901366147126268976131597121040478903740151858446349046133773824222592260383398036696062192187849378155868758518214262516080031197970213571170087525632476994304703689874390190169026556087084468539459977873078772747093909806687179278785007012651027085946957874269126178338421412525640675854821245478848876132365682201541272245754255008466308874066059392032578796699797295224754461568783594850477528658859916643907963041924615366062389809597676772884619047273326023717901606862600026728013804835223898210506786969311843253912166056236843681138823703071315466253107048541306972621294474129164356604802356020257124556863290748424064104677140597460365361807268025935710821194302305828594263334945414200749115546938644070117255460819497610312884309714010275052089375501664928579751454724176479506136906118090407756563901463404569399336708109694539473855349009603588167843299394834187691786690967479142073556702655712089842011142845191516278904291981124499377719611863297357279211850888317981298900149167488569985254076807707353236309261539769413484062777400667814025749548973685955812066079806061902978924467390857336627911302104960345839452341920979392013141963555850587251035186373517235029026997585215019550876361852050854149177645834315063642233400369625767635972167597341320483153489059744357702377263451137883948988375737140966788885346610795130485466160436879262559117676204633104161541159421056386103955047080386839243923787724173056629602960637580751484828063332325858617937364778479058478456645950830599951180995763149122951054627814498619278380021492063739958214166275452667217597594776075937642016280121738977134920488642012943909239059124639225903273470927863218480694189029624353227755586874556594318737276477789787708301665043169737805638816137344140554211945846629218736343361121633707889065090415507139634946845420730558770133485136622799432358741831108826228748960019686273261369581554376993928404387663863158489683027077646735366518474376304348980262843650374254501722669812561669611249431612958743226795712014336412019114185834190097564042895173715489108233218432020538320213824287158758014666094247605749160574462458697755115282083083761094303333134823795325957699769780889520873934816269063867700523864062999163325514315157838107224716425985539746768607742648897393938893954961645352960431608524084795287238842295776762445677564818977496917472302377902656853247105311977349900217257099217068657583956795087396676598784384399090965818531484959990253501904873274191553288254337832143496773778500500178583535332026737113698744798288765914490772742977950559924840406983848132635317164830649697626971948371109316904127633052535158340881326932969143614202258729090307255300983892686199754975923118053552142632148392834305835172427587739697077747278683196681866995386669661025169670830833232992845944974967830893741387988185871765296087288056066745418976427418152584559792838377672269284619986635358108527794737854267757001775779518638976242525502335033440334344049361578513169447550243369288901469490234957404643147676010569218005159504590513072616948228873025164065901097171894863901506550299709113477079694794632899682414642003703110234619051495637076720195497703441367576562428451773083393353321534349323468950856343894313190084095470275543788645560007510425786774857939469541606954662126705230891879732690715338697117457971783405414197364900914437800543989198154048696226469132034271531960580687009166434851256190021999984691376082043138684906227852018572550735187288748994955621580118301058813380937291960635430687809303624759862000215996934827592754535964765220241021512017960028374149141092600234587087222551335107999751687435129488537174170499584847808829701817412971779421236547622211244410148521825618597840072038546076905557914441488979205200792320702005340144727082424513776383730982467306576105362495985954675747635178526560473283959305412522496285951828214739198915662264927309659367484872665092509041416082932165682403367664155048150023754287681373867481097284926761775674913169978260750552783261373685631599483694860714374106948172559588880581601549312011157983947362923226233145221009508816635137893654653526181869889859244292470267362709154910830457021639894969995454673508670326286159208287088637324125712058808139924274125555698646802387727182214135103431118699699487725054020900702353510960691066797802827263360937427041951012593435171277937060851430779689090135376471127907537385491603941408668505271712853625932748271700310542180832182110254248860962842354038483782638459144657395757034513046538730545140472135178332093526109927451766448004165235963705280400840974624076491677888131356522040723536412912179571926695496406637329154106406690953922538840368701157107312699184421686118298452107420033050452222865908623494943982975874482144343306058113754064955532288970487473892851453938629023896495450686643898448666948749913087314336680415461651357741788502428687152092679999364216845248685601784843614014368793373870152138191520688659670507422768273415544356156837955818970626750758076373073441428297643326715357059686010655320882362488209223600707365486056869510180373449126218287241572549406100867134593450145873105898479030115221094165466746280581105094773939540457500662617357762282263097298780613390305820250687480759695999148558797633215585595300042349995797662772698331775413220885091022033035917409083271669704543011974601347143127171365807410303106673775462299458279860054374834544442903588983745510185218042582810187826154096505372848603436742453585315664058260692568103116089781121373398394708889266787633534947888942070715189186690401236020762916958090054756113165177549089718549458410324377951204390196087414328957458305464671528763850028295858168301005738534686263158174885137938723525204982096058191327424842262972516871598224140905848267704377299220886272812117288264169386017114345727402911357974046595931038985425863300193907587925304947695851492533076079752433447553509424960424348999803291252414568422480745919164669438251880084181396817344143992707727896668309577525805950157612844641923937493861653707286714369493938297141404338047095995349084029207323376641687902793593403331994230552461127884848896083037155175008069412224226240926325781217136724576105092123073372474095854381729831771165980070678255255108337076987752216045854168341295688304578927474289534999550958517862651447748772565835545935149062016064318868310783392822383326809229361188742484270598317785066728820908169041035560442436411228030344549497527160257928877981864039647630007837690183132353613428771892628238887054824205095174227277511276622604167748008185605285465352114655195041404983605338966562488794333644107245808396823343310510557757762477725403626221375883215315492873451069572913914124079324365750658803268696930140700255851909073278861280952055483948544384421593890789325450294150238540821474424422219931135622111991340822324487918511630199521566069157837671591485107014026881837005341644552454308919084658729942135276276845996656349504412645079431096100317899453113572519548005311044336340964922496124830591386355637201607723741577916361498584602426050512566154064580103099900763383940146653537900370316257021465574849120466519139783255435197087480875949219065307736205079768247425905738799193095514726840005346648349782563418844027822975494297456699204774583959159972159972928331884343236082407027917131899786531673047482939051411621040111755680733172703049722896314549994880977372672287871346166618325551377340728132213377523046073224277169370433666518644306599395833043826675601248287115221327276166617243125450266171563441069306448337305213088086073985472984033400208171767696424945074823669750690554825726662348285851114233209951989893607061454470374622037273171998031373806653663119305639005999745912425435302956539181183269501863943165895009085666837516969320814564312085978751050745952682253494541013042389158243325689630231819287384523503557841147064949430146223691695885185458629594069273583780878280346607810017613265972230566550972410409902358030909548101609427071762241436361267026359079954273333509759039584692702442706532157568648899283706283961035305687450584017670605389922518816341046103920857078551589189203419076482085292308168783488778116344102159589984823659275696725081219109095644645744237578571238731093876953402358153014962497919440436153194601228995920363658104121303067605199869734072159226115330522934053947286024939025412997524443315183519966508098855012072703739727745545494051426799545906987291082790531484880800165868605628973751831396205996603456882748089872789490255086529843840695170517955254214173396076324351671470134669793322305083737988566294487631016399374806541185176673814594908976238856906762976211521823638686848328335005405159001376789730379958873117245473359213266500757989226259743065770550733853913917087604788279344410595877339664642122471363902859782732094879718655649864219071743100618825780435415882504596672063082068960031185526838938674273941563702274439944956393623235349825985678420404894326522113152003001419554936475843960878874816763517945152378014870413655674390749411109477226353021718987828715196127002297285289839419766183837599512560170518323765228874228245057516484604488347547396448978228215329135605999258683752264469510071196590324294424230284304407645033573975576537216558575965317330628463162046578466355880213735810073560244893309298484258931991540199467132717327584390261425019557613648359228591525705166508921912911850658463596516199766952747704182037609918278246180102671957047287790284848310575927795093525362580309542970601193368194850528775702764166922961907181624591360701533232993864035667397156180866550016963779507235427494555933569979674431158514632215021068145998379793434266467597038235031632205213534775660047494615531406933957509654721747246721399205454151280044077162103628560906605539764120359273952456881366263547952761675844876378315844816945286432273886858162662464850425181857390959880597143542848770193936843992090793902891856973084465190491108337228548632372354346716583534756077823196039886593069753336801128945173512683530943722474385518846415388623509633631447801348304208701984335105436118950981680152039476811081188357987795764964446087528378105572715773539525723644310611507142602402974330125992828095404146057240612204210354731922684122917913328219242057920094452301550045106519805381414011085159160064099729494114252646013089132291908210871057595011554011447355895147836531566804718471383308421613391116309745028066142836970136910118542544987401852226393736933148707574751200495075675695233345237845419157135888841130975734226083020271056777699895415257105179299570743225721004168625875422665683884491710181494598681125559579573900219187949137871781820606831576185609396359390071742314629634233182625428774086126927491537758387676267863246221100559959089326496228702021872199756893383328046033842711018470527065367649962183853561141173129447196450932764564659194957398602321236657227206198754709929180471611997653876646505963276571328253111241262325968399819935555418638527903830603785348835839589760437144468572932678465506623401973051881799790100731347458346402992852715360160050319956488563736651725486660722777823836228425533533467502097072869408096667604260654875164746209274929054042340262654144599185875130781927856148936006304690116100318393483169740124514412381393346786158234441839096600672289533916495066893361583019679003864199285917360807474596557355556356471261903793313917400971580011988239718743467114810801159253524090619658403684216704280071700540070491699907155713189086785623213105036859127226352209944101446892471191024307606569057036836126627333223237707499944937794378204190811414941001348794106458845348616856182239852634263634949340267071302314861231278755562104341901493370252824210978667837652703861435314039297843588476492378050583413756369439692169515509672365749504723292036275534819415892143638973328445229184100988593912428969958303598671452597292594737137255264692623481542780085795250057194193313269205333207749850006764688372334293482403898028670623549812558731051083229491085143734717747581109809492107511329415175378619974185200446803765485619068400604627441001789440841967980045498775510996121548179565971209583503464418619195138241167766246550038735311677055214097376233868989469175584082660793857616831253890206844268430232699301282432014749440570342924351397512674761503310391074281283893163121048489907473250156719813209174799834902750931678497554988621692807175726662816986653830519100869327723114074591409191588123277217493234076621488335225913456660200952325731924759010728965857895658514410973995676304564125155599597865087238849031389387225395730355782452076873179529684868245997361442223356039355925560233391088688892345350981524641916791080923456162156520990365754366730179737083512840137389830648037028076850967730208380428518762438940622881211151539321500548732281689555752410684310975081251259520012092986148966247826073357415831236659053691613761173272247011837012975928779583021810832216135688545881404141058143005328576182127487378193040095139572899741960234977626924689439901204784642733948128001394205929334519513336628774650382394795682902688201463517550185196594267737793032868694151406873553811692623133274483203270077264867533447359021676959112351806117838284636398354147048789249174797278976394797488222992058686529525732780071769914891191756063894981260492881675008255729035453880939541194451956248478966121180092794358310575550455993501913503091639108482353347085629777627917922534043026220644163772896986630641144802950489943849925576776057961899897890417366778286474205555091081827456753579037268901651252132436247918334340265663267297898319138002649307038472452631448389400299750600145924477289023694084384032902468398194146974334669727881608755754837795428127423457423496990187070270340087382824445101656175839909933818090927789867413489438981718777855854294920321214640641446985092294682764858545081627929449734798923560968600047253235505933067162019454015600769643074299089482455162050109807523875644212202149166004771707249903200860028605225454624553572135277452043915135267603241021527334733665215713955563805359817497272302574533642584496266238168958444880470905492203383886928462406948799408273941203170484758130649199981194129698724768628027354325546870331212220035287189555546703556587198973767419447750034178687951062405979988504242452486601850908790291199018442256102598463478955940904183104162962532880668977854412361185705005570290316943922737265756389475483569993308831697631169711487230467984969488384421111026506720985138687813160733216858693447548750072257373308918723181289728785132944335224317881660518425073107366320411002203503283949157884518429387923675307174664283575366055173849740900454803394340710037311087477238282564565106624426420932332361100129336790355158828261525874489598561308514178621725841051577514564835079280733334508343549429024009920705223082618897587503659799664990333767348892136216344922350870528219442558736249857761910635883052949295901921845007190236379938582573001910672332631909173669301511879591627008547850882542108904404493692249676818294716182974476415210225021888248455485017155884528681326204305159440780504267741831954202716757616143345860381237836107182620973197207219230606697404196338869995973451373185497563489740576849999739595252562727939828412237077524085132320325551323704242484616478717880827823413014023799159194599656253313902061446708639123967485336175103947593588972671117319420133367708814797232500236323178160996086780926074829723381812193976980096034071577540197731235194682664471144942311030815927097068541893713458843722509884354135133780482967240796947589920159685020169348620282414577083209922314611405688551827809073546929312673904078634542916180300096798053979227732534331565042065830510458773501350532845924746035370296802049576557037971335397536007399185107320862679236740682688850234408949871369797394601780950883100321211021374721833557690084691574196346343304577750788793215545574687171509391277268027359191273258574724116409316941678130366579030447987062478560239066773054838349745785916144060876550650617224422941400313087806753792522837895743607679429712998111224598831252287759457192618421201233458660461834044166759578027986016176349370439559141155455005992176789566535186828628447992250227454852813753315063043177947430961450459591979221954510941389748535838716402062082458365057820594450783419744114335595225614631964935917854103176424621101355910822103132591139038922905099965112867803225739475443542172310094031812825900535465436307832872164481121216819304220355565058019014110707347014260998508935102444412857136752278835333309388120097918948772716472062637532680171175432120066056713915989466640544777178770870697973334139556104846212597932945562449582144878654591208887369371979017467979588757889750208000661865087276112785318347738254842266083890157209277901566846117616409352159183931834780166251710440706444455055297780250685922386124832941544052111075958913988841768577362700574628352794546265612898675358579055139593528394299537220787591907687532574275055051715811304652652258226791308275932752368826786363292731227231402897502284088380757161351351798511156304139985613005908409914018932879874238300859704356775899474675746207838648323513923775263457980451443162954292228353052303141444015568364982332315716265656088999735303529094121253456358051301410071684354706747112204433864277431006224662907496429126488595942962417038920360503656151945282326888049899829869549139103563895451838198342134367898250785394673884220099052289726909212980823351289558711271509667687698992620100274169587102576188234189864101496290053736606450422265613356094658954992558922417503066914732960462657752581424773332696690348661712759452282177084477203005489627772499804631713756278198059218376505371350648046374436436078750565714396033556548728028702553226937930860592136311435009104422978299797347183721482200295195050755272126697549150700310607459451621122667746687706285924522243858808442743300385575159105491875920813223781083757542292706860013587310828498823523216612753553523523031311465980565313500079173531557908809319911191301664989316787621882784975648005868606762948219111570821629477065563613767906399698535353084086230120165831817781463120878158894176226709792362767345345732610706382742398643637930923494004728737194303302839028931037568655139441773259160126967034003716293251783304925650703677256485142751862874190896286901557261542627145746149281744033286067984675900278448594225651827956678583924003813178061561061947871995536911050647550041279740949307829832896796057253118090466027677602230167850955812946637594548538763922396742054148595360782709121410258311813287387816871249834270847931836659204804781553420928094188470299854998645897107433317265778827356914461466014296898971504038811360094665891419899419916664362120695419907450586434081241240015355231711760626821163878086125155575869077906039789950409369732196927069111969855043899234989638890346342364901309922160329538226665751917475342404720736823011260630358846676100312266794139225688178681441473517632999606172276563159588658079434197871471709149477009105499686128111049166065002499539187289666750961902459639707766296403001917294248158554676700164458548374701742437303214186031089586943275515020436394542617259623028177340727633497554556609227839291853926883426685151762951012806147222431878934912810137334977031501093902718835855515527740248547850525371072635590688426372224006687474736710953941113742097098380176678246842572591473808931341201937092978292530655756311874115042455263702674987869191481235386004720990223381776868667224076476252829003769525887060249643223834185728884323942950585150060249825438324463819019441829001513057871381170088372812101172287664190364091105069189908627011362640732895516149705798641499574611256933641877245162389024970115376971065569249305044064432171066830445558242178788805158330429918574256600587437836345090728652251301507743362601226750848396479940450551824114865992433367071565139652883696808036014441843959795363679220587939785373536445889462708075167742803835137360035279742600484712216345748679130725603173536439996585347897803557366437536787084652678320037563643441482238495650885250569463675492636097878175097247862637515036903249177476603983357560623408898554283237860938581918651084922347114006363159008097798289296071469908867081651200264003153795757381625810863693380777724898421607661645008883740558394303516935126849607850853376904140591035160602092187172745427228042704659564109438621052880529361527254928905057688955668477883175927770965124733509474151916672039207250403102518787310815233794150737308491592511822647352876861891974438170441840866962647807542825124286932423586703778413330300231927550979049173179851419918130813643613114502142838770034176352190339508639860159558617825728145454682572048423649894287754082180358752675480889774180399708538924964041935743026444685299737794225372489708592215453029121607416429346169215655419013095603989164955587797147914619407315932690161821262373240807538701859341827329775667948651266761904409628557805730197120054778055244021532083852897988763032121298032797097224853228860355101613223690040610073267739403674278032340579859370234619880028297032663963732773563809901226689942433570806474302003371123687070625806804147318837187012234036071817857720996601464383459179159309576188709206131805422174774736605320103472693712404235010979905331379472054906843228354219890638004580587588587274651827318115268846563124010553069298802872281334613910420541953213641401687337586012881420119194192669811072792072690969997034911149499273483138514091126493487073966337931589811642815506438213202537505442168910001322822938616701573053873741103148180360741169542277896106169169061971014003174578762207118415763700446778853553399205753699802531457818259869192102031927570504817070107174887701260389935151359337796006433939426141025939312612123695472359399008232326600672227697561874491854610915134043263403681830842702645242907004194268305280027636782009766274472240349030082912720466772875829572508633922707093816921018693365199287553025875024107418571957383936921580503696945621441148459583386429649807884594682320704826833364566295876733344172186033130817400752991520125658661861245591085081055077042022455268403965535512236650317312713780660136473899628723332129070095240952726012865453977091468743576676211250195900346778064343596544506228277981471206174662973097037328141077518731609932533885801903603447011284534792532418152982546723890316149459269267748481109462328138719832797333183989492436283179271768391666510696614556972781974387042035972645201471174795067647320171100797336174995705789534430656831234846179698395943026021563213539737151268748840797369665041645183768076794159844325890172558195249240091254413271276521859628523478723821769012108454517322450618760404837369185732826834190393920271336775252366421952153025965051435936733052785930453608095798552227797980169160193520075166242879834086730823098416884143459165126233080554029946964444674378658200255017071594797570676538130752817475110659101641455006500623438614947468138448208598208580554074131924620665070974939386170779157977444731661799959426246769870094936410858195191198810813129573487997568422486565798398725431235872659063459511901734209976288130857729993248950130345914173342759627655954040215826688854879285669966586457642733742323195635732767636192370031407298850768198988334933111900160917998305957387021187150182009801154519813297083854725037705083380566466330210582703117728569005144147052054638171971571080634217770109706724500522226119377461815575379808437706917957653510745567930446429447004764639834758823827814120753933610446530249849344169568740629561221791180436522248418741724028271231101897227851964129354393598723371387938299684419287267411197389345912492528417363344896924659457052026300543826000776974877471277537602533986710221707466504091421632613664169403335974071969375286662996139157374951905070941895963857512782775180504323168728107833832107574756563988779937909952593488195703097946324040713904051823107665752220012591239022658456857036679640180781295994825117577638487144357468144709659759147190910012698249482603015535740209911166954309748811099601161394746603802654845793613414555941477748664340906237659342572179933524361717115113575165128034430188547393834519412020626393699190658808994881767353027080752100892011347088394641263277468219914172466156610398711075432291047760749932893553087536998941892339517952629461829267246698866456151680802379148146303738807966950323286421434818931791326774752188096174750311242979021976436820387943945078180656900243383464261530810463187276652601283335090810292732930776258563100658789855515321513347787199105779604063363613597033535821019363035222134187491604501927035331156073627601063684678267414922531557254129021166432297826866846108664373460228664994125337661212676063411734421456886324682442122266546166480249736497856850395748710582273972093832966385154332284212636158755578293043454770150000826160904018619416406981974137640284393908273384996480332233035252544220672347353918796241631023831691644689039303023735254868946500217221452366820337491572103769287150280357143976709177014977516987459853364748003614298549282814726951391083976919561320818986752042481489537980778213097154855300947332667696036708138024471448486473870361262207934116898611576996015002737532135703445533331868910022432601427377807669747786152399616009085085582446515055887859340163281938368619969692784416078808532530017862520302055748059742540347944675290957834935355368836891942679752169487557512371225435644532316678760409640748418492643511587391716154944536908588218122950938374042704215869924675081076060845194889442126441062345529085540849531407361207106310178943488708795822768266908459180353792167632084018083351415940944386460822390358604745589055632675549086132342662990663219898645817306962638465701069607304125473560432019626031057189565986972076212789445771315050637012271224403977021345488637066054841698537656449108829880337833815158353731936160941515385535414443557085064313830032941962143502889084216755669491521081852065269512046550345776557853509105543177824242520331232627463108281073128096371308265534033587940008011676772933943586237742823204575282517912445135739870088365302107280915319448553519954160272572075137085250012654444780674131212642679572915474906746304325272156903891809631200509332280103471220940447109172311197096219055323305444626793734962204667199638967317138519737901389177895332354194173363090229362475280701979769499507559783358335230824832810791558531667927193435493988159345591060929796246762436513273382439043054544977480456309116322614815900864744404886665746389992767414266611702423592034432843733074759505404400771384784632277463984837600061511705797083405926889192272373998204853656181947287251597997008904763642433377603984301639379991197954488780204850907807417194041888913301059182814020868668029994034808514809494944466256013553790320303882366564288903453343399715602293198896419732154455789703569101872357705053015687732563352693140199248297724414007079610149728444052266649203825385115441503732541593789261542431874342727958205406802416632413481283540911800408141209169102948178021032222226184609282145551651055008625638064615535211719287989175268538847562993868388827104087317365951005011258604720688503774340021495273955640848682245827553470895221842001105966537064060070115574740937920344259659721644515468482367018543915180637237543369953521308931207213359171514054448693453812115361501996180331092751675386689853479853493257747207656029411522590081056720745661227889725292754373544978715160046510877297653051190644778213862658862833814854997783709110464378173258334206243990301579661188065673760870212316435072108135943737297498176195047826963898328523382133516538581458218628141334222908350513230160080203298649307212555881637711302378565220523455149746760974235778811687275531878969514356630352866786332153046310827709502282807931905485351926331149797749393399248071257407233249809385918692993798154689137489803976901593735231213875810635453506298288809742463122080922072231826636520519972938152897212169742228641665665503326650502747063123972411493472279426013710627658503577149474159186469095234496463291933250797994251553488257811266461574120905965303269459667151459294222008240799610323234863504298277328492305644721722993763599136425503050993242788650935948318392835728977803868069867067363817252506636353117601635347925563840934290954352431668150680943249652598722067431925571749563916317474377389850951563391778327381679145835154692333049855627625055295086777817829550095013905284720893648647373381256384400647310112002769205816082970687239239505834194838213427150966147484914397452577239797675364867609836165123988658736920991741574620605502353244970162082728575049487218853480702943159017402412414490289849138772888690189550834024921247067165331720238913671029858152490922465640706129681192985211422123632494528410404582043155420822732549541192874134812239898677209718794952906598520697849526794566529273376179568307558730431512717625468578384207988550168382430038709088326359051274856906955460089632255929276963785969479044070347562459550152928583720905955949132201213499420444549845249989340114001338674785295268425973605024364921518197027246405301766627263847714497323079799644697383104488153224621877926427810770656054895796346858104281475705756654886846250814968032806229567019900967238523013486479303997512313663016021451080540206840767116478896954662734974605010497739534126967112935300070272315481093679139877749213975401559078854758767404019790856254513377888922814812225753921883831068592256794146923160445852602890091104139017545866218829346630142178965004136941704452808914002853076700403265962606699388927973789564374403294965352788123821363082729361997557883228884942300403918973663786650784897079547544552892164904916560211148016978919143670639833094266193281697021618780790186709577934612866770530367940182253576015311644369059299721393621312146619603609384621691316791708318651233864412481733761528513953631930209383417935865033862336749364443970783586586011562242652544008243804666007441767163102140247312828534688480541822623178400996525729215170059829960263947726090167641703501225547604114156596713102920263449936159158693116135681276339785717720294865300852716389724021716902251122167797945378550026463674934107324934063537160875969826414468607878716330035737891522038498482928490470618254830595509307805215155056549370085846036577253253725093904188953169311660977997193159207969260050134606522993610762840123448635863803513482204950458911850658057126600950573770760096426017881849975308259269112776131100539270356562685087815674105451220914163793631522097451102974221705050617739955837400486587083045617214029735719263147638743308685446481560074727981809361798265185402031769306670376629303266246992783226795036568563633148014414557873026547786107308339169081289622891803886871815199258749314899660503507665343156656771381082413335280849769027299296714910057782250609624125774468804585450278898340020520986063572827624910881663896210528041404662326642959725904416027181955353312573661394635266445119305024875197018233899595623875872789694029558444579374026032044885968007028858136366936387085547747060555846629690642322409119719291432072588913827808660803120059872098450291069770323165692506682829005871291609509071398114644217525506068714505348897400350273504379077338538648604493054196661691869353761246965725526128415352016447835441684908762056012601847450602301666327787451285501673540310921662034362909107660391940257211859447660056246205721442887803939373323973006512975500231291779875699748334312858126669263405131949189844643448269521394831933409450231848107947892822363115976103521776870117825659056595541994385526826895354296446476445023650313635351756149137492545211088877918448527139524994104446887631465259225432918657392029928917711087646873896605750080778475162157488512828576421959941129590875743413941197367845373793154403022438513663297574585727505319065727227186284132268410192653566285860420790182974324453077327204093612733030221914471569197503056547949750678089706960212383921575469453200587310932650993739457850267322463614558972881535082552219278605689834113826334055010848705120376724923741862925709484510269405310841680296489128129664978806104811432188380434652709909152187703307483842836802816656793239496313083309398219064268925582805550973174565728609494484784505389220716859599386367189559727021697537967690287401562911139603211597391071552739905209433037011553219425216948238741432443297748741746268179171320190032735039292536466093356597557838664730141680418561419202615614347847910702393880376871806808264931221391547466196369085929053712243987542705482461586345307219590665129072500642917953322648011608057389590303403731701495055632950611535829782273089545872509346091115946830530060041727011712712600996921961106484924935107510366376172957879757089545984955138320914614379165182289931988782856386136958723607401773726922005460327540578683213258142087272051155439718381868759364912923355446865801284206064140424202274123138631775707888794476609218441201348681377490839308472813120834290674249344693419922131466674993298883189693610080902999790220235016957598949250733556199263458274582574177609643844149806635994379250330589359573132564086630947182640836902829050908568493056643896510038142467018880237398690606565916463955089673633564968383790807594621835871696374198482705821415553758368601278817931093589606825081181590331537515959756871804494106240237496723603069270756991496791256051478166073054441162891796683433623868490124854477604573854136740974503824081393992376829350743078942441412146644020689252325861551444523951958199525570695972152594749143011069419871643895621454638426441328885745247771445751966642482637333937287236107033666244072328645073289794348683963133980361606512221650602889434720380619029604771651122053604802083172788121207457965837310756830786768767460914838033313006463308390859364351646285789025610385096587436480133252884029878769125165315110707381807025054560261212304275941467814214537103479631097273713471418195908857836768938989979412857416390914365797984192438179616173383640187414915765195450090907552578592674560632689206862994772103776868006096721384743426349365870460617975845526824591274723783896211230922709803462833577307265766541533440948134858195895285895199107711608787089383490178579344469615304969783068581813867396207578898621569433567562435050881197291817806632476236490925974021942800432636208194114365107122817617378554552980792021660906895957539741152366676700284117611364731682828738931305751633645610832369381165880795217618328045291693305403261044242154954425680088249993915087375733030610769972053904803785985727755284961216368605777317350225115050393360431572154041293082867775515957700706182937716714162203943703127881496220610437041244467977581737345636689339316218968581705854082491360688910462882755009248226887392929908701338523036931237391259806168033877669117108094874328787796814598527395187193197073350094039508656098252191721408933980611848242075218615929113625659218586452940594096298022133402608543714554726768194918232977204546758776370210853456148149817116746430798356344279460431675834080397738439976400375962107554431009596895686026000817992312785599356923334353958295755435863043919522002357151170321245777312617126546153392740652836079241626633910353486380232266256858033353128078406114285368765075586056828638258192172949454332747670561306300542309836650700969986130174710553002528770470491953812011196502126066858078256786598745881209883216232411353120567764927435166492980467756496593029188273827346575443539444508521267103576602009314314298649612520243715477424284415964789710705001738841966325630398588254775589760540208462730324946129214152009303540353589847426955932928654799180566124823283523857536733365873316884670915670374795854365859311849119637567281710674453450325678956207367248293594164398978745247393660259285794386858226438748932350392037429517240363063915469122411992513024003915330077793580477600988992749833604284078822954372883365234590905273200824308031825795372078563074047779919807669615756056040727868693387917713881632396366517954051694176304757815029789802213359867146267409638123312511806285884537820707599979244562912629533072283872393722075505907980891951407970200975377692013417011609469213223195350635506110110451424717940174506134016294546706722758297234339073433410098746912243480062372527276845006028283617367597108759305849627299282991858866622618447913416502131732620247397509712205470432967483651169263740185072359281368179988690795702995615786451864284376190330941038293045169587896628469685978494034146263756661200780103242027682285063632722759686810433768995354966712722274834854268225796365982815567832273438480721010655907669524513195162908365996807175668396923792893346072957353618588235129196865655557827497775831353336933310048795423706833536587762995637858858946117438972532059158773819397879307269005611156655130131314665747861323957396172579510957986988810263799501960134810633416415819635123782919046646925832390067022798536752981288613576112472689206147108313528329102871778954132408538080831032455798522647435190699598256415652510111299884671314913827079931574041976800169022547045336346800057631814594956157862262171667494320828309213624901445856678194919721876519311579751335309240096195665850135611104196705757372447479873361609134341494949482488223638243883969267915234534660124345514086719720151309073290132204281402784454930835975572287339966468641081539195199350089186356478945826813272883326589279621312799339387578387264547158302146267133785779894609641055729806030947066606890420851067955477507030228954422300666519695424831978742580201090885039063467711277078030252818437085176414543911688252306240001886500289219742012578496553851883357859828885031657989590697824091234665482724237186004085357558008393611235834483444807661920688745570893262413232636219832362628855714626269843598228034079205816814408987188236592580265290607222916638547509496165863654670803151876438443804818134677603365095820308643271075450654827110326176506815782011127352525616806509080963666118440647926887855633769485707603296005206815926960297738258271219620076391931972516588327288897177396843343192993429409627087724783546393739736646107104386552589002128088947863774896726365165265465653983513332770951977803621396562484910431263565666859975629591142999190146957036218032791154985833670684089122382014397244403554073120593646221549959153848112703681926971736802345593406170618073199253654535164386274027312725174182733929455329985621021097830816614863063229295416487527716784900798884061691057518708506109834039111516487744001661267266061105750536252206615210465897841661219998170862018429844695189598294616590300292484434071106143612989728060401504201560459859634373233190194804388528727034350551142925627118959387006994894256861410550922738029252078639623144188270283410378941011085596527911225430351036074276243671542586018772173595711941496996508622951932075759326573890699069474719233406196772757011046236189346616070384769590805271406080233863799648294966817933946834770932723146416592411013025256762821696852651967328334319985650583180913413340683606248991449031318522619206906413678671850287011820409308829817081981952449628676264284039166915052522952967294192806143336566064650996305156249669208587800064379390303721171481244851011224694935745514375634058352534154703143582721675687593557757013479575649436549121722165893754708895813547910717267322476109191611612829377655976583475990529934822227879384540832703952489066677285807194478663107226159354268762784529534053269064011475547350536745680210704569781204600995877251314503714778034936035413670658698138815257845148341386436738636691427312130534377136987398387378470727053973229833295145805788628222346645272800754469037950152956129124016063858109960351509093517046569169274574187429556138100237616629624059680042809534952150902002177011423490203520623044180126650966063919585557418269667683569175038693647518266712239290710128044035908224727214206347940937549665137414490001143565627040501792623900531935654509492937213610099684204841094101270915868791327016446536626703534824111945952620587162448157947422487064170807613519768516099033473312081987673706927127925580328512687458988137590144018823156619741271184050740962793864639811214828749848405132162599068512535651392244807808245487751612150294919332337508964601155150563792369235705899624269305964774062281642836625827758652600367772256030218606464097474122053511042403914062197761806798981129390247776309880763633681675610362502834617746377229380272571384968151321855111006043641248006420175289181150263363839096872693225563528030376060815373287177647643131338116354928866163126916625615907994180917403598340852695884141682280310875699229782971835865585482124935116015328972333794601653927632344897337585737636586680084943037038170398037772751195005637745912283330211253681429463091061222260497528022012684058629307871975050547824854247632229238678570048550178551323871887013958390442264493160361466258261733037638211789071941618130694948941343964208415760760202245639183897377684621714567474644496783593181173021482308808044177819168335543549741854386323295311205155663004583611207884156776860638518060220810418142256462131827939227808340443255602936265598934122209209998766084423513854670018452898751494868788928467051831528259317688345209213845120127117705197823871827674576757129170348467703821108480531341774209297564293721143689404496293261551331428409573321122263857212202863143086161535062340694103799051217679035715755521302939337793886693609206138558218649717040387856996052078410442366835444359899902989751680594433557431730501148008495378882292387317352048031677156039835144389134763382182677004892051888345381061004662043312252514793794864412630688464976779985570335278441123276152639806423889045006825393247124648873293922038219357671195000127203286832738530136840941421686613530529207923992370575415607125768976906517192608164131911582717543890441164349179125135243701834202822195521798208951924077934862011580382276701253368515577974250953950177326646027101281842715233010839391599182380198513199573918254139465520108529826570943472789239171897090589209112484675593503920371625881877374576219419368400216705752297605593327310079730911535600669655138533738465531430828713831897625859993580509310872591057465714933184176824402607589483487052881572818896396470213623939402749963170412045366822039144870931379406497864327244746903021876249828489039434326231965713033488208067713622213450721013274269143224100470716673117382719127750253305542460094998922556155918925914125568529496251174926533814687468904423075280296159306774260260056130425021001708058341254877455387391113614585293104219310210283680569306152690553583585367730959716564788657384854459434583229709836208682126290403564581385338422768624836249252734739065165243794438655157075071695737232900546926330265076948239955386683216489217484304022580158269164563277331053653389938579404086400738239544074972074458081853475085107331359869770384699823656842538119982465310043405299743657811156605886385255778964901814122801147770733126116100800893331925881090018684009996607515172920460467565674793341774284407141783654933875337551845574152589629175106235307411888596571900564516820573684150102523226737673258399206231871817951348823581394181258422677892103088572685640935568156631376324208681286092903757011126180286284055404238245630144303581241973391247829576657994473382105466486545488848083505099225330553002967505668712196918119309600620926872306649029034751435428246924667295548618115095367205849127317868902221777452857742591230647286466487607909684175563959625040173977456834067807181166310796098134064486259794815458385769007026012082282483994714168190374008197861970911959594809477623334190720351798931299971576667630105615984876997543256647313144944468622934135146252871592768490124189905571857648068592991027168562140382754485918081730391247086305327299737624672879648267343987589913960172727077354263917808051784664565539009369083605607722051321570820772706951879354899175702697738044371590739960368341822885089400349895432135366206900891158892916369712081697952828062495321047512790671892374548840215168692064427624968089378428437999093833445313490869715707344355076080445978515026169358497766351679401249948379930641143850331432142728637797806709731723117113702896321315025819484955325287247875248470999757212747855350198775518062731253664327369051940856111449470985163090805935904599586999192606841461869548191949054408366536628701343641968116280842610570816957287463612477190242073724536559542206923014148378167078604687750130493189447093239610167440280069739307832165341882008333450502092156284520044393741390324858753011825495373220394815856512266116488991531290381921433432417143813564602778678151955154946172553100595502577397138561170045722856819301353878984920155048131736058285843175990285591739205755686627389380532634563796853636435789788383790973953722518023245755763338007489078051450643329740012364617332880929142458626227179116666187519410029668883169314697754528889232145189247667602130391804493978497026777230849067379721160759130929803466960572263246362071687667759528772340841636712099525080106493176310893702920862263743827872141516902921510279565064260275697141533733948298770217252530310285991065845993763087559950233877182959511788891749661118829510506337407015344448799902669888938514820196865752725837580487303532378560661945035854739387713704994713068406749786409721452100279160366449691405968875210238865270517706699451874321052825144301963238116014881176730235708714654913114201098733536774628068534485766986473318946469877985486318573332577630409895670225012989663331618007299403589670941097337260411169808806111253934059006331139142455216831293489740194504361256904120765115502830892000311610208944885889966632099066550514511569553220761115264872485507251267440770603717960414601875091583452487608457448664470422684921980946560148472734401816341190013693343548292925313945963270269618009684568640600050255313751478332914629888273264615509437606156833172109434650297598583404904152096917525616548689975727908524872240940567629334091747006723866789016148282626887120157464522736713062682264046117080828389269332136561133638217758012317763820432250020697757065481088900181342780693061524733043621395843991832090746058630878145111022872297122369671808920423331370631190261816094208152168657697894747652598806940335201416231867353944475236249220443806868151553145177637459766665326471319382123756701599714644802360694166190608271199749935364934405653148869308667642708057586526795602863294703274966577845067996641465309188666192478107795404088340639363958198893126454184132249880679191483402507438133494465720690166947313382522116796652180916258940246695214112012221010869090591052983940390731320134947891996643283445901226893147168333774517372330068976017719994784834819090569418127572833635443457136979273459585360093658853114266782428945497730194398179019412806514264364954905878696106483952518426390564512553037899417364175593675513649844795436530540638236355844159971180432732585704892388605566138724205873944743137986184698148705429884972637308039995100484954347112051809045835557697716518312921633568493429889142092085909798153133416484494032369827812028861631395999756725968173672811796367222036927295426245421015222204612660858483267912661346454687044124479236094078732773185755688358351778214514019401019101274045004679243952505903843776623923510472225576155379153874696188844948154141289708934595739001015125702450311866410991422817818164740731209902374611482134165689379775258516302855740272551261140880762105124147051436185966666390764884004059346320298102042695423500209909532812472741395722279619264205146659403775488469430380601485661143113809630562566562487264634815908003120648666841723308816446370157920350158703576202761962646797733287626737900799920818515268661262188930491650213507493554354303417719688591245855299847467204586676054898201890363581669226892349943754351751249159194404239793210526687697025677972372239117050288705293952209637185419183453363593654299400537594089850956662684198781873362967990599853125363147545989002078338270979557453706077785004635902137628486789396806624666743128830153872568523376229819525748408167864436887210673168959659068014198302151574410622669765262786745059302120794083007991979737821352892322212499821117799906700764382306786762035654107262783809310791201513318608508982371717768687999821412964806066526419750476519510020020058908729042357760455914529604578079217146296919279795358431822173322501655034292468274694287495941645972388027096826737968245543491539169951052452840965668116708711030913388450191067239524200279008722327580055635247461660300238565135000178563616938643324363667405304141601027464161878374993672256691952388908079289301704936382551129658468569075957478353923166066893071851613618985897482493011316494730890889286607357426285911556508171079854053066793715223266642799725531774269556190003571187959639723751278146500555138548755120794185139134258339534426906809565752529667756570741651283617052543846689079295003305803258997267809536818978144257333011264200488501211943048197075503043100234280363377094567078982278917887127592698472465514604206676067292329010142736925818390864844476715401508013128887398148839790047121398278026398882179356137137742789101604555567171447322383341165416133956171929565935428598676532918316074626271987174948480722825957944502279330126728154832081689291617237989815916278975613685278142748709130469669117829686542612264052755868192340443709196318534730557428578714563553743012434884869535306365414020630087738524304281203434529039537018003466191097792629312635735892632335759771861123087082372799034164884862038204114653904763905754063519576838766359835273834270129721007121968078388116594203179470093556136082443221139275535909635848099626817423681656389511235815253263791199814469517709986458094912837933531394966910292387591466439328387629442636081014175872253365893480987322899100204271605783388054181710017275048315306183082822071533794289951818283546257736636467524023059360550158877735408053633876172830244371065662679208425855230623153893176936251942445034933507199873102532666121060512930982317685804519666612246608597627412380593902200626789446802384611147798869266073816277617601481852303271719870340887315566809515704121613790898281586777749057820680687898668389295721502402728595356937408091739202611646835515718684720784101115064853732947333300422823350263432412611540388022964898194924314117288409165771417727105043145620773929600829583827540522329754465254176586113411864284742551609565755142375564210223234806097004504476884105525189726695359502295131026960600638510938376062297362050326828813483371153261050600095851138197200833551909169990915291073193302764932950089055722892214661736527285020216017202910827511745486112230278948689198527034039849453777093362119356133126938732335047144586600625870638190931112283190102081714394249159250172614559578530145993222209247087489667043336262956022651853788497404815630680199126613343148224485518526229477621970837962394430766405782936851910700796165152424703919278516887534214455445931330310874915277026405445307310763958022714822976046754395529957363547636021081018484941484518949516974919744915981471531440965565348349764540747238345679185985347265880374121779569908230081481158714559523472546584239736984073324388677595043582450526052219858014183173857066214355731790897285846766951643291205734963627862903302134082592216174770644767807019083849048044423091464096053822852800436380823789245811117086958780940382324914088480371800446297482497110294654306349344779483827463708397742154986452827678999412140439869515253477941401814355590963260345509986311651374873964106675002545568371093977998813609961933421537723578209414792197861063560984188342399470278309978007796782554543270285376936858564490286109858305986560447568333002849053138821056882795650037012792417956122802603856135846025232925132133904984621582739551483271218595865072248671926413858892477404666581093247736239160326355696335303041455941249502916731156710339338888755253315831447582768997726335408111042713636490306839294657679883216938939125325160499412288566509324896161091016242488211600901671438495288862225829575316303477438565535827661714391131971534847132832482532649283097560099112383945574796408833595493988840183405319832140466116604187567429950873132088332979693312771945789119449199534552062263719469548265426354325195604868997957719276584700764523680216566555205182586632566217770562327060749983544681699667844408226222069814272411318845484305536311623355758660581456666522273194602315871938610215392435788792250410070875254129640621601155217993023183121051879366950437660266436515077188258282260945771038664688746785299511470956066512955684451134270187742461504894720996278991041761266054614203992299604577275726246541742261157393836334697645430626143325659952525101105554458285518414327761941092881046718940141321891007141650168644447209375774635102316107439813913045519047247379179361963232162853403995792109594695035098276426538194040310202708082576390515774896524964914328192537626876149614271583820110877913503046354881585809227169961692006109887243234443157019270463180323785149979942945037987355371609919621466166768485245996410424952095620312152707896674054118296722928478681730777617004404430093194788014443968258518284773628029349334018567428996736293325971297848373560875849594199347230650205061802825836055579806320467738232011951637170252926506455977636649300721074532163326267841760593788664168106504904028607821051333668383754579922893534588231739860670358879755181986783475170922363745349510364500055782894824602982782364253460371556679140549159032748193213614415700368527388046988637171011705387594912245243453835253609506224169479294747848329765661168816099099572628575962147251473359926971631001996073487793252592613191726802836330123337349977202288574944284808848145392825090658682527637750010654061695497936181448417754111347198670490225498844152751993273002478196807682303077231553394882624692518232116673853511019062553463715299352003480296517501372457776624465943791135178248807401324736298863053791254275154417914934264706144244928534116528063069403224793342239431124124217397396350192960786525188989224024068560535067884999568824936684063927057499241834078535040511976777605442081237578725631317841293413782505853588215727384043124890744337137120764063370898044287566728365744561840737677708835583217893242247749123445582391353378769862123082411645288483714094374053456204143925007856266170411489373431217580222649096299598808197932971240496661149506114344018059382681513728931748486654737507547673183177001962176415761564530730036900374533568498751289380280477414947122392806747439534421236971615157317911673772595958637134713865995176095551206908828060670150379604759429870894549634557967686165875722801589597674643765550014878147272281011061875763450328887923393578611662959489941031196594903096917461855397688090846018124147885720871118201797283415143159380057997155279664321950241763927046258044018795455338483393774654675547288002447384474223790110338687932443890307393055574535948643232166103313946568599455097793784508796544622690723440554348372440079211289033745978960571201141665697213786430791902663914515032689776325467390549080184161673425303536587282045567667083597544121920915468920324780311590213067529468761039003788112789156805584790925708777780078372132589465554762661962579895401570738459723520459757493067639959244573474676097251880603832763626917929641799731759418563143173835665317919440305819299996490956631798927595271206618186805218413391883754236969685163270017829326240978970849999449054434168611469368135681584322270391799091408154677894921522023222460407619685659355581441055319707791104658519233543219304897627472241627067390377845507388679502183641520313395918564921142277542547411974205492622668793571749460602882547390705436665548360928051532063511817770285438817033782855136964659424567240043780611211154131168764155532707979042128952944389854934134880898484101673460941659302639591124717386451747981719322396018790920725571164706763721068604446136294772744573665089843039336501864361268995092284758944591888179634094962125598917008895133112142796589524177664817530805412990730478894583202341509565268222216962894542676395372026471427473179426982574113620786210972657527852155038670163484097520786517641112896019191128834306677831825208264853878675660582191520488406693421142065178969560194174470374554124509296424634848744951487470744009093870186824338076466805384126885169804075630189263181560922108029673116299457581326630953732967988062320587350940480426406874016627645227861588079778427668677385088935000596003565213552685445389705308107679756114464442727783551588432786304047746249280131659986123974745328659978565526105109347548043893493733756228944658397890649844701950492511594443740608769524410255099880393898534043454607354197797779352147853320256122165912636784846137489843936684771958327084939416909977841699564079378106174036066474720379126189046872415408748498165408086081834546216331238865182011775852999392675561277855364216613725074867003523269888525786214848842700560450076901023297230967075305762491128999224615733632124413381638736991941221524737780359838462874299796717774346567291016968776964543747601005816662081936586607381168373747017229829023806122253128542865812463657832475240422285385168574232782954750321846141388554845006855051621453264953124916419055029293601979615566623780978415835066909187277237026318977806362766069711213604645221428654012679534292160831573435931165159854176640066757060224776287390707003627577325341668072908850304164700816353939427499427817654201236268434608852235570043105153156382914325215352117920850001663857873059460057218950981170007906930252404736564778273737875357867607812129713416939039165377727403705910495494039496867119354166206331867055084153446275006239742208169249582139173220687152455921367387328390161184365483490623202459449953869514869504552585231895296095732969857633444755944471583935607003936543495948635216236220581318568779308034334328351841086801602976465434120910719347424338710132850572538281271387850035294667297432118020510188940529040356286962622883044092179909493825795733199105680793270606630549423054469552503331141266988475841181693288956408635955200353219763860946321365397944003375697704171380877065289112326386215340271515348479295064804437563539090777747044384286788010894171800067204467921593152298818592823981730757568092628907192530510528174576858411808305937600263931250749710851155337225168069681209957984174713425055423052564901128607212285560111535693280129620232636549544559870126601379933549806929963063614889041386591520344583336126312453027625755921189603081044243702899391889850447800207403040780434390548975037105812600199073755699749039395047424838620728693033982647210088282267723303951448941177897641434898539681590102671840172199329629303393678957933321137602823070432574009562453649750396052804430174196896310360979747087570436011482915268524336098520922258043814873330883154879736567081042304888134397899244807907343986200402694078411467909140340914308803316215449815644928104395542539136400235810964847746584689427347127644340918739383312162745692360456164381708291173165064547207560806022292704071366741070897952391428882713633375847273323221041202923328792569901163566349302960752685504145000367821453689580809524680928940241656217129918866754747469962238439035743617352940516274975722125104173046230758647256350017986166541203176412454711915864765175937793515398364768749610111777945041474069531855415848579524215973143599029537547575194444691435513928315392630785928894080616045253864796651683077875441959837248400872049334973184276273806779768308048950826211931247533515216583584077406879500064794986012738987048658654267326300650351676727463305870624475481067959719765774720200578931455145561156233485748089483747551214150435354727762546461763898072854682579189758999355369562863641405706833021314201278875620116829385835833744466852351790942011047653873817709366586699120324106255288869656265362604041735849921789407481391644331637505732913379694996379214242485190846357587781084508752120803335753147173839429765925794781520417224642463365945919412891809083397407630466431905786380336440058629006710049226743652805566462354545684282091553338257363411249257709156573559197428318957093069275297306909857062969159104516669709316291652625053670509336414625945039113758726553734067094526829893995783758348995616249427288428555890993281412759113646018636293683498947027134219090946092285395873689437983235280735717671416244471331031427027208204197448646951369327413979653282528415450198101623969741879723179605334336207671784455149813029310072534397617876046627541187708721466498547849567799598782002632205480908421827027592071725731555746685093023426193517721262815410781818194964224414666702457350343856072941862581690499818586500462375617445151280132490825404927083022166349855494770427788739188068847483578694771492937129124557614320849404337761816582347655209004530373110034155796260034929074511702341808417707835592535159709644190952541111378215689977628138927019430497948412714665366232406426280558370640192734812294036012781995112133871683827160299409970468073910868811000142989442890941363426915844815218337233478462484611700137166250486865140836015408882826832694155446432253960505489685811140461623099706862363359269253474790529774423157908633956679067454353348576826286955230863011321011435823160318020122080434511597666913410747270144935548599012487157073387395661189168775934704569839952941227167083431581269760321766528433595015918534901730406041233695702922386869455292975378002220864086580012463994275760766281597080366555600592589998862259356862408172093930519326192989299871161555107260623000458231296504941049203929060489825990327533767880678884745729374586019194711881457354626134697561733179301023873301527902919023725132147510227314196169223011122795658875538584450237694710511071298607430360471777629054654583477426355188512361725950850681370118705188168043486019601063618034144077361099978944648742978669983822711631308918246527152986049830400553658985961341429332245490465552892735213320307851510930749867953048808323066013310623781545808878665915272378527820229489470563747215971201715513618133755897288135356807315589988993482437914196814453764613762835282775508587728362341483357652711420027233421893289069126775570373474054776151140613742320940675018212719459284466855610463120218667901307530562933612830338926785785546754925991743214251108269198061579138711895856198474877691343526165817692195824870891524749677848685901598343669708759908328356039410837308410417177799048629935328128343624140209419438515420448708801262580234910665234252553057583528320899953556988118717026652106772166675718007874898932891747842418939612817805263329044810627723138767516659628825275717339656146020807192379562452307103853350140081280233546741228247289951423793132817216288609925230331208953791382085356402706984704953219999994071623626630302629487302159041911179336932058399174076262773666056611312171200687684491585767698194102191188322142123652617268561728582396767063908618312638941108878772447151772474478987588624834929779036702557352348859848064669158106191073771498519684040223808942427575416699877102252993424205942473546390603466547953407162136225182248137151730528997976889999585900196349170375556990450378827581519112008495435368563650150236319524128534158970099560434821901967479613468796128927405020154576872781244122141114175319762227114441673806238278049292115312216078726561059156642446306112581445449334838851853248610109048395746882598464435223798362323686235298690368991200300145892545164557005936407062012177057778428042626456215105593460211629142413865841593626947324830007580821749074392520049511304588234036914113072481246264129992517570820322944801980261154167449931100954435573736640764362447981669822187994706739544179781457289285377808492214476631442384466160544050340478838474132199807612837423582935867095346315190254101505816028214907516570629123434763247582011053255466243718301143028603723457113555606823288442317722100049719711868469583973354968315880750114807449050979975699290616290267767356784060066900129961561521992705376051505832589371273127998155707689049012859561121789823778793073561388497474756818410474570961181210586195478802051516438032179507458060250580732012580750933137635111367246102228423630682197445057530708531445233359829747290519488875099195185081207547358128223560641316426722003408019363677061224051660498557279931013268965128022453221385424057787069485237361189331433695354586862045318651051313095324092712914742340986430767524139649941877255001791104642421797017414097774165295004382261986351492257837696639659868676463079448507873557968144319197008160413534641179884430990989738949204176126896929013632304927060895954573039908226780110668562878798255656247828480635455555752208761658697596169032877660511853992823943039184202051514631424689931244857891597726265967647686260962295875888810047177203625210828877319159944199269055656296885492168233304057729756669012883926255671703981566742768854180360646963319270846933475036729579871557378011834665510800219466249952305364849766293948433133651228776209649800309369166398142725313775205711949490787755227408144568596319057738594664892658681193222145218677062767448908283010721397022473178865345901293127203088894341059622217562613425295598580741289253734018175409655463826290338548360757858328919865452271222249579993068386072582949000606637964661178674362739643207987711197680492459516424228087001332176799084454021362256372291434150581475347415170063240439581593593835498158369083700616065130128051740037846993663667963776816629807152728850201596206214366824071002957856862839005819270339271806157460791257548769604111202525605893765788980378525572743440546597478372035700398193258130589128234219500978798701025439179375800505035057420697875566828991987421769063195165413359920956688450132310985393397366790501494091790982270540098740337398059795647342557934505637178580675521846904374280068675053653114807569979395598023878432425068366861214305823373517373569432699072865786958954666913998314397527031700273194062259645187457659522371055932128459741267157852271118772472993398626653191183976589633797728735280073770075824713537825972792623199929435456856417445037554135573157673444871398884451094199040845208308389516268588183428697385852790005241300198406916770863885442118582667951429991432569254991259598631061402696870857483601414990411613373094861867850874740211809668749358118814517752708434562653535576137604380898941031118411909923345947397026636183641890529951804029393675138469377546863323418510878810704908796553080183737472519371582977752399360607297957382161290475146521965202060644422732900623818622046131971022057992046451802738311817321938840101027856230237281411897348258133594719093106949061499994249392446429833493935527151653930450712521702469343727411304177170681806156243834078255395832867799638204434740655504648241757707306367714624984468020755973684534286181961375224351667913467219036418978028578311092019273650325583397619676140329231102686975984217203716518810399047796674597672131155436403307150727656835654894617756032108285654151810146956099931139713637751053707714630467363782353639966203769077653530586140263657740077018871682098274827311915806082404167636974421007349263840881480335922277051846705232563001187806498667573161080065863778105506426239185422759029772134640445806586920188415261095198338382259166864481642318182039679963212508222605195782743548108602174702111964854738711459445069584458759799268906307143829877599765511411689744112800872359471459864219131133348745251333496974316494146335723907168266825786724165597710405572339924857410482374698045440013798488425378960756027045145901344198928143196864480160365871933299992500140255496956416721899212044838655352523153148131896555046947570270842199021142224656882831556525731809621601437845342383571602950757927153768104844009778302506147753757561280357980744354859534769893969704702978430631832078595383147813555387344863947641811141210520543004776067310527747891775005056985001750113417712503851229216711895836431120541910337328396308148115196897016755880066938247219030678977234945573740216412483852733806215165246672345505898604443168055419190786348278602317371634261123175056699134013063516273100801841824849029906510455884361270371841981595571013119028989401322681158207422686651176969334082220782574480567924103761161523909342477676969273876868609593141411153489777553525037413558578278356374033705591685976700009395281752494279772972139140336076790802922994853132515695491649219324866337763323166284114862765376942994251583808786067912200987917360262806392949008396447443634902572945141285331686701330270509683571772247611788640132296205631782091002795454927589755892432234167620038444720474921236377999710945894797690783246275540560575472904996201568776042117431367570807986314696213251673510182049752869695056840870190203745549501064329398227769680762546874291413764128814908938706738835564048556776918373769979006927941830969036670474365968956497665620428365725603397399488289237814469789987273200994170754470263914639612921844401611120113732116937584916618454665359100581578585734342879281642188636775360367624852183317193676725430739408404866341010196103926089124428106826228742893157472476996157473715259531431634669270572632859944372729961662088815865744228844507453885665806530897193223438194598318905143731706572451961855927206619371417809363619944803050498275531649934349710928938374180196182613844924961163223305734175747331112976709878068848017428566769433762968853850373959228001927298411690478382084335875547901864593808344808679202047661140393069223596699905063146707845485451695743767017878356738390096880189398357011965126271060316561025498742680542183711003127278537143059450047581296267234556509117423931280434137147752679402334151480757476426553125147396142543738100373751635986676382733094564936277298072170755535505353056105801721392265148795508115461191624310042536328592751585330039768081475829454534835575142900154704124610909115989124530449550799571420436412620729948799917744397762454523530867330815011173777729149153898156301269258772746797702247857002838629431540990504958514683096131049956913265723844816976228953500084237953485157673503314503205548423128660027094522332433495318197607890038544979576042480926671545797175189934689413281718995204457113054469304904533874340479350354460680993797061817821441716534476895699028122044751155497752354135513822531524002201844278202849806977544602504297747511697703511122983593572270607772745810930074784908232394106880595070352914318286570897932993913342593038224389507786829855706533346376681354727502176456899495940693500080890757521453240942187705936702965799809636119854106401609568940798701433301293019912142002638483661632714732484352413240084439440700921727435803536310288078899623439858337457209511188377709681920872967651367100038735029868137155027961863198017458973178170344280979351616229646026378299181548242918096249648162970195922016279810680657918168754074477500392090250850704633754491702787835022535621965436301979761098410250785168080062684869551680746477175881337380642827999500774350828994939702408204394470085091827003760293268315468008364106674902372227192580721102484400605190246530923178211832481696959792227550136974635085013514209417174659315222420505914978811777609415410638587743902288939844408739433058712953418525867839657255431600600987642111691037181350253141261710312281550119777999874337851559578838532705503998736132616842476575446445970909648279175251042577550548385695083818436773308835047655484609258872084064145818818732188553718110323663891982417468640222727270837679620299079922822907359582875235095098641477228232604119414599363163998911106877033134778646396916920798749977706434040178972085071338587304247846225415374020283914816959876767121763863803363758810984284569596217402013603287151200094164480527771070963742438079333006919503901104915168825269180334661602965978944865359848072836883142220149072174360510041770355826758064691043033648695054485562007576407713314639139541715828796015667420111922243391161303181427879759011491553116209247900784486251363468372487502038015416516276545685727211579700022225865332548224637501058471000038900332738379830780021973017790713779128341238992858251673818263375295839753271287059636611240852318296619745703726924314089237929605694193279020191117726649019892263579393366367370530716056093358761169499064705353402046309686788956458423602915450895291331925865944709222412473918150956553527991443350753479755768212953803231589369676106504286124055198144538633878763948171114867472822782790068939854635519608202409687659189057749173998582734617548526085529423612641035678977346242581653643266943802241955257266370116872434287506605120569060188867078331998747851713644150147238091698980066728648226406866497155839126007555811222220315098323253989197129801295003355281005822047320724764877702137353392210477105197716235505762603729438707117249055953902798279754461117423529512423720053534520762148612483997956775181576572081118448647534814947018438380922815058802618242165035964777313559013088641069403694965288207761543586309140316203883588496671004425153908096868743868621587816615859645047221031968564207061904666492752020483473959173837597141546832276694467415116686545229679774523165731016547470264841072013589590973601097761441206705322013536997748041259979657080268903920460095024446828226218241105995040213998943480074588948843566740141698852870891878859649839795592684424186831344485385128458543472239810879160118698019946615259363077330956600207816735464459693480901656010014986333859920229955353929328951497782459489218858766370776198881991871689098478984359542978982565243994875879072393126313930788750007978482207477979106888566899688630289437113129830737849194066604520345017892692938450067625095247436736248019245456129155669180082610134502632279541868320473387777436089743141407135696645135443528251043108635503056509013112887987050917559130029331569389584714118502117326224999466425476420379604664490784405267235417562224067250100203336774273960464973041646356261316888726874048607083959301215493811841198510567120477349575362174993482601078817670118151590297208949845619835842934741263102828419201251307669573355076874680334665888904988551254795112053434927217229397956324406534442673497926978873959665974364672326498442886781530814775279947478448072338487691557362287617654779716669142019408037200626145084765108942005654917677161444096081727630407297275068611985647742148921888553691843774984516155110991694612991713885783016551012855622133073790712999624710270450398451971356003280755325762003682156421543130730962359171331312411067323947189291399763614665428313964845102274995109631390150758255089404221308993274927626163433220091015576933240763739762666727620373464683439718121348353893546544023716576118892867867190524150457912439427884607703522528233569185080091214723339151694446881833882305800292778251861816074151207168021394165594808902890418593838081677628766066702939475532566909652501886996607680586647234886663524065349401295757371462056802911089899457334763326306617441490697735560519635792566761256679104695335018892197906113131955576107450135634502509005312392236568965084273130871117755075014779567072410384467896900596124119767183771248096931067812107602967710882567549639916177583816287298522419050835037947048129887674556438787518982332446520207527121044169309274884153820538807332315292768781306808170116550522087303027583115650152089196268193855114249648056605975068404885672385151466087449648240036553080349632720765183571156985594218353767590752978857392242206180833326211316557724627093138171254776842132324054887258821535748922343823449890095617577430787317874378190033637625732811952927673542995805059222267452935155419131452371957395195239228849870990096404132690958130115933880803974689496392764134419977350562548448412668187830885431470152415162095310418319530135626764163982787411034188401548090321212885040158884682389537415065687047241568018368882512505609313783964293441660482967748737239073181157836478372488229963889113292075343788501934283461448056301129143689854108683939539521051629097200455066756810551093233657579101737021895350118953352249017569014591403268078239227404050766865764362591928012894880978507061838696461283085213552351692999982049011581848438109052427107823663410659090440942984003304975753725747762768047811438887784064148487854414690357540920014336576419395724093960995583588764433027067898142509937759625283051643939701147112728374880243227504979503778516867694463785503786312825258283936528069799518127473802478672732155823791732299841105723128769277386965667841342324199249779803959637063582512413835867914206428767843366658338785517982431824504298618934774697994670022907117889275138512083664280452928613730417742188737691656132317159212343545575606639362370612439527498617837218185014421111498110478203658075531808268747162077346535293336131655425679650807307911065071674233130006070223768748675193955368549939665637378548879114859058119811128113250604197514479292022831976304933751404030085156914213457741617944902241070846273150810530882817297509183834266138484264358279515380078235206944388776883002659840228906972289303013133775887471930318220324340375431401033361994539383582752751831277630093915513664422748859175748248875402479436933954082852198115524876619703404061329802982534720152774172462184305112057728461395318036633737556175221735679161677104194635655122413552471433642155864525155756794920547622340796896725753755686745997833235365512790229068872155642193994902688097623454661487337234110028091544222023778660036304365105767867582788636802142284128510382031669960161705904489335291779935008420583512663316657968945477575512219777960123985719520401417334349732224828072234119528309921296905781650718774197293218284112856636433253592644078195302706085928077187224655154722313090919400026804053433553641491603882464189349128611314465845142188940345377205231264523517065116264674402754876426447369943376683416568843192949084572196943442044788989973969085545578636043041731063295230086236957804210883823651837995125523103139770423469095077280797368777373714224891459229465346099696970496079228751438394775401868347639922879974051455136223230835835276171269429770525924375068633988385190008339107185629604749316324995990987814963614298718432692309233147024994864891263906552672847589385247052195988937479216846205643361984592280788666028760073950716784350205365975758690012797319276227583268821018471511224024423774403150097160785684882739490124863874147699694250211530714526628961673685581799546022041611682949214156631997759058196477673857474507220770095229622986752324964579462257851658659274618394618696643056599348986077552735201040732177581547842338350668500290477581674413862360244984445927895002538425345092826653096255910292113288157450292683700982117405020723452775710615121260505142697844706319637392684108589444847495559336104885840394602712145021187264730500495599958289584580505281392090834614263503811878155851483470727254812688747504863732851038715141146336991440087107883342518617016691792208354816756779928150649859661372220053771754546512500226726520360595702317361234575569880511488720134638697405032447283738209618971145914176137402188095578164628253205357598341708386380874091511828735659586472269836705409080545258139505423492506814005581577184108841062552435903077961682275467889882804749894190139135826286265318075433884327178741412145163598786474575928541134761381907768309835250989143647107896608746762176587074260868224987559487146430195667190488362786861016061261369958049859173775068243680668809410732956055932928609637795649384108047750660495079463088094456019695624367015975885338527392738442333514474395584927523254523870637316463327134877457562032806279391638429827577175530820565671693157229307140951213324164120579759014055379132689938053456451546986124737023364872927759276215280866867843571670209411606123205484986603867208968523813601289041881434899690062305843118741034061014225468763899021487293615704088370962088149752055320265729187317300807168833695464158640409957894486770371926082110120830405117993255990701185267917729730394199333345853589326093139782318703261872690776662734543225883543389200002714551451849318596697987540880093972293114881274584559035509456649089033834740822800871097086446155685652337293941644784277645832582430756877181057970576150804954814395832874375413002869452931618299368945391414990897848928627306250940553326892626051580824491706397971669599089496352938595636413244674715521090112314994224720702549638508727398972557968400559137889029131755422950255694866052153439352562847338211816100531086736986211329589702465987860929904032779721972454720030252398854112218314364111273181322616159629742734935539095740105959934762185492021316655903418155886611129816990314206105029221824979110467672315495240143273242647457879331761760441808745956636293318141522582886709747182476142076818670186013361534916615583499112604745756861269665270006131667522822066952852846129672276005091132233292494075092605134241245918511537573697417745111790629250870429422445251022286505367631516470634804385054337458648326858896914661189973037822319424489429775323356029082741787028931063799286352946862036665708624293264901010963366642212895534589212326758684855088232690159045848739457511794434288375730067117859758387472141397487117264166591005109917647162582716975602941630092922793787493957111383585478266433355140306678406970989085030633174608429525910082313719667346336586303291262252194709873752718185121179324723589830416945645922116652949593856970811513740481953733034362668377059661881866298190049975851748291158620041127320580577062265419823634196488757230296167993768171502414737082245396532032734962877476892120649396694167742202600059293015677316493357824154769634652426184975044783208777051624427999530463106694734908567839815668334230318933827677470794117944329421717646274919331503705528089375044152343264567893638077654082366460245836625943548670876230955914117029461413808456442343784696604657331073329080218808694713800228706897482427221863341629035687344538236203157243181240687549953625673314411222566433148455123500408226087677867909356512189964589824757555049263339454016497951043063086358928262921057527354837096291823226882017130860670056372810450319012046708966654987594302018038554970912779726822128249321498750208989706609672187790149367105851738146436585318454995839591678779174139637410089527645322703353378921497295359713636663879832680054887604457335583490989162530162584965505850317631754714746063437839570889742625596782399304579524855336596388173725546351091037068255842496355203456634005292653763983432378856194052503096303945946494414147861117974126526054179467422745007602157272717815371720669241770076325885617521737523977248228181913441679309218127517057725857533459783556506820071997334096312596150141671466517264217871562777371622208436934324610327747863880346974372725526168206757355957494743207587209347340050096145173432474002232629614790338723115956283421928321306404840184162545622407363243652406381025689696906534075357995776800269523453352241908274056346680265130138122655275211112962744300481936116188232110988187633542616575989881694733461229413274376643166062001942832105904650351624751180563631373548552973102984870899099538746982872342898666682360863704226718479471865390826452504436276848557439141909371629773033654188320236241907189014684002004970409248546746577901918399877739959907422851679411525999881905255438052568204380033880099885659356863743024218366453270237885327851242721748694107652154616930821215733265656221107767855367102934706388387707540532313330780041379346927897374311855982884532989134722131209270710061800669189778810666929018490620487533383697355625855648787880681332573878148737413949822342936173689573351401757262864474899990351460223435870243228387183741250627138709393343421425232722600454507028537350031861855458102043374609539301826381152789983395492085394566275475551703274224153016044800165467463809864668648994583770558730464109629698204825585154190346503920314697942535826357104182491231964874934943162740332523332632745915868785958916385716780555599873782236503980521111301846023120060361352462105380709582517272697087822325365378805224482681018710852133000560316923618010428228484124068453617919742208993570099108186782488830334830998978544713228968708293107327567679205001258376397164795261920191449440408921396548442890644429663829503440398379534200155234801953611499547567976168521113032174286710426050906549311865375899934474979402108273689649516534604776596576871262421591993109804722058889599564127679221322124538308746794823809466940209763056399917330879973003326040020445630552635315482344246699200697623786136561288575117890960100061665231186019594221301670370431357039606529512117089282317155754199424048549979878780614798400441668015413961879323060992572598242392452225021579989421413995589682672466860791095670175365193197939566382639850520931271339438266019344506472922047039592423633883862414949832248213289247002611229937510441387456469544565656159876851251084626441570341049719624526995111311072523522662926149889056001236220480411893640019956344920628700107499517881213130776372687371036132066000514736798559620397191854555016556846226787334590308313527738158667574676772123477750947031394148124025254008080041764777033415611964646428779046649573857759223568200592473052038741369043694667377979263885181987564811937790997557501422466137704309786308546427659297213816759969054755237829177482718203569610213185420077344684100733354674560064964083026799716595166552190610974096586331872561477165488217888302765396761924714778487600823023458458738186918963560328521293290598464427277639616496739936071068510577233501202509906228893383139385842911149468562033979505471310886930133865025731965009354341291678782184766844093599525521753796679093726190292004913837997574553050510933593540939493967194938532007314670161838174377570867372991428937394824844159832272408766870218666773180498143690090572932519100268456271813060779791257832531589816784810959940283128081288662213486507980548465015756297936565410601470412061278742497252893665759751933398132380479818946074361835870613313757936603756014203293956591528223357681127942019557224427420180468980608404021143894592236969801125178396030317826234376338669618244539927809079192694201337444391342771302582889268095699443890525003223713031490800000155675917957899643814068343229733821578352675566634023017289942310685706154124143461267247313178023595422360265555031209912434380834888482926505359445179352281973584682020517158105912666421207377816966616311126481619147366393894444013476472214691522799449140670103131021985185570225637445981002050936018032812748341593519534707194696387126082420346816594722016042910688778168227957218145353549894370128149767189844763587670606813913119978779563962638189122016443769934522049392437429983802463866441610800976475080484415324839442450735072948451000160225545529489811562348928949089070011290421479649932323891753750667863944898381478536044472084601595328041068998384761836229190134899066295896301297987060389683852376339661686682858281219884369785068459086758617015289020479138037685226402431789521657137837798662837901033299353829990100654811713712214236579275469488189330964683695790697820374317800805335519388491428316165023497667671437364711379480852478619181554212623348584024550393965825129772598881443867166135494463700382904070316112735580240953175304093321655567485035251677654979401092186366986103420565610283332969096994952483433592445181680042729496052387349006675544667476685285782103123821628896096343674093623747679369667716170799581224374855742232195402653437135798880558315231120582360842427686160677879316534182934278186856966369966568524378020263743139443737235374475735803023092419996721961086744366098564182262932937982534351577425564618476071803937272741344572994772830015753418131591023676624432505010031727874756106081324937324049058447009644005352385646618971197335158321537596808332195010224645454834752129391509516223326703683251804913700033297338836269683189625444645358764545431136709806950729108507928597800999196219823119056203167894257560081522094113772814624950451388334766309302051826323724909701291522439916369668454888516561069860803852304843690511383662083948621709460525175626034614807721124993669094152861590708898246008969226439386963922184350671447021819004835216394698092478050302119502095506416095197148507062739187777124494800748884381481774797370533081844497131001645562914664792271241998657591481593761469850471736582523900919087891302275399982460171839675331623703211065053971638706144665811614098118792992798813431531842181147505337400059183903520967680967874979423697395666950392425428915020922121653986240068099451500228331234239755008481240517956493979660029552488419192804011109381855172057157487281504638573355389144323052268100762171674383290226753023521552920058032068379946902405717198357188527697203226698588854160029709569840080094323140286424003058120138325873593565868674510350386825953869163369285357339104422333461775169231032237930563418497242151287120378977093313149501470394310955198439522056599569374574403879580535658746220872277126061030200009333419577672813279498301100035558483435779989433699943479257072099467939872707630321923229203275894798899743960516120980314125952736899270732813097381966094382704369475393220372417704347520795332034584940586967977076541230776379367232993783413012047264958780710136740386540854673484898678453499958044667264672916301952297804201643142523926314149983628401434135820944343633240776966635769785682865920364528406259267634546758709897742919466346415596027381592017774783872350702992090704369638170181032958992893884448931108788904831403652833493153663768950470706788686964533772115434585770927502638996987832170681725286252739354921868055195868708783781835013558466961687925443348941001784875553789958731849175927902377169714106505766455567734448116295930202010957394753376707393396360101260692557370499811393732700783696003628619123834338760478514049126574508738132897357829233871476557744256009161532501052382299916689181354320356731398952034313187456005848646733320711929826679997831017534472826177545962854683555223783678587676079485716979023655303138674267205702085079536365509115391480299670299725492818317468537739432592121539403219482629621356262626807947242646637415908743320108512038861157058024564681023486368332652828740755864511276927571262847254282716605353206991563426983321666418375864871045251961487434432884873660051364547618289232011239958921010897396200458938055529119400946100435497451621948393213979266183549893410606032326595618309832703780472202397356856492919082482921601073018535927706903822157708508567750069840395527613745448758674697339566495227138212747794479569313187045596259643940427583022547946407650702905141912212024571787882377370748060535358960734339030565369477288208276665615868194536703764580058391111954711505825326593150964263444052632722650032165926019766161853700413988908197109014942647668580011630283141857243471591067419108317502591681085566119253016339566355326701130015919927725595389722945705064089458455299301922407347167491589956289347214350203464031964363173548130748290948541215121402747143855673887621894767108861597817350524222062765572558451483603099008689727618313680374821736844904005344897277993785257255427738275606789059647714265714803507531813637923555740793823028217779213075538746213122421432381652918994056261665689868004047661876441722781275123851487242571441626511104672787119639429693055334970000600012395722365703787877502881781764511789843238809014575592142187771328324890856327573001365901296320186122925558668677942675618037470852209176635292096785091893417261492412709849304293875769816657286331257363892503434301563116749874381440021397862032244239919810659216004239722152539069395537430867554591647498702223789720735069427773357520690173746768230356640988497858474111258094879017627999805431509247706457036391782055691251752774034049672904152311808519339043285813235145847189649417385433214581262264400546217394939195178886700432602489651230526939908594137919069134715006182605403970879992003424747811988402980548438309589065141047597055493968892175200853872507621861343340581394188565280399032389120300234207125735335749484715022777650870243654911284494775597744615005480814364926963185640893789084175199005530187813337915637467174841609661597848485691395480016280134538430823271809367970840234864964185426188217178682093609458095379203326030269089936284117290355321104304488171586978607805114275491306619478091357125673619827996386462364001301317617232210001163431605761449662402071507125981027201503254355086103075647602136703836374125188998447199256798646709682420439245017472827918520311893464301498383559862307505563234185705469531865192766350115658346593101070269578258125027408855063867578079699653542526770576248182528578044836247529726120881192676076284634137307855301642823711505516998662150545376270399640235444449918263011003532298156505506317609520769868486610832601655374436556388972402472242323833237446371959943189293402876379955548489648693438155779905930538988777587899418309829415295350275307400449085673318368820721877545008667684171808135281423285093043768825304351268300553388852745998437921967790201773460248011044116898588902214775088337072679319130575773785317650225569951554603031332980912029943172081221262064896887209617123208824598809247123504431650642263207683598257922866406188442595598497758877035277939324347530157812543547399697345470515206174971664900022892257527420891320260147078396195720143603536758884193435281591013683660612474818864545419098032070139528471065552128235992604622740232225333146140081653027119760850998919931970595698869232944374917360126239478169282239228525855236581456929690507569713384021451668260142528871955923151753026379804318967299679513935875352635832874120972488720340195221693440548351494607775536717148434428008676677661548313244831185462537151631065990376694579022525949144655627851934352993632669242059725396689443682396690449206258901113815022750529402497620997043457648647721339207499720265466228106551842986865278858034221224008249995266818604879864375225214032890119431980359487576438024841250312517602962825977386046983992780161775108724218471237257616374043600089055024354177665944099318629971365698315269899233692138345503211144588379147554621991322455519239613624720135841081202718879849300084074480313408093270131048345564885594674435507766173825909110544974357873255134836136124807658302958201056885973420031196127991698446936889727056935772862865768020508291112202809308218954654412304470233793639723032163179696106329660171912080085960975070126804670533501268315634634320783760744956529855824931635365363711611200926706610926335448016596046142022343910592401722468136319849540804689421982853723907786058117537407159905869753710158165097259406774413574531475184532884689061784146192957225774289208012498977089813733809469605942253073335475572881276576040372055066202849415383105199542491923812786361119420654784742052218595483265659745976329648005070601029819289344173462187812496595303776649330065537537748012067870010023356483693782305111013457675140508355520783248480008271512413047684111285624595403279588119743563840739531774600081662315640508356884020696238405948773832797386183939504560241092644695112621457509533103670911616371725068497109439252174282417389909551963535367416781248359713027017465231531984687106646670331406987776786853856246916112578131985759946061314295809190870279856544265238998863216695938612852329612085185267074197700518275886674868009559465385933153284913759885967008978020538107367286921551181981079967773171335339593100220218988856339967369998800484138488311040149743283052319865315789930229747135890721291526254610547561954785614068387018176235486627813612836262931816804354996167157482191456185456449942688200937010015849454102676129200332307316089329083307379152601592027877820946963462135924078295699061281507603289699362830376655319538354088891547834276209295749156886347858471948608659981155842599585325150732364566899685232378350199972623174357349308206828292449876423099492659393610209878469039877771818784321629499072558585702143073724767298650700502107863426853953645262032513838927779812291897746603310709955054703704847542436488167510362539897091141891036854499351650112155162695770267794977025804702759753398268418142061492246360149652794030647012329946295113869479253716651904775295252040637703813907955482658184353947131665129249248402752782942021517750427773422819198571709079216230600872578542814437602092476477139913523540973093893545262836654731479398104495036945758586668473358214487695190295979669256578965114976036581003144809183300028574528005235436571271315413872566989854560911599876847428060148043690416562778591067753148999407981224162610046495112636440691624369517859721714749823915907207670203062820804954116579841887198743579482064462652059272530925463782902028808575410163481802940855528825017984244146324064492794583819173693275666534831223440585102129062250996549394079681200219219824169214034079637037965084652479963577837102963954569627197181330470391845654216730037742381277976843989809332979512648004171476396452757633420806107466704825588735594403312954177110160737138487195477741185138277154075173824305585991165852056686903195327894026333941019907250461566492454300668447163617330178246039810186592404724988169591070135630893562026931144708929622199110070979982058251095809136078500502404155279863017571028614555334252459972308142367284893287942286752930240870945354538599485265499559756399384557767288303086663714107251304714519993379969185049522263998075251775331137581818871640982888954429750978055750745923542173304693158884263401871733005378531567028295968284816765178010652107222922801768983025821289604409614380469220329529265936498859989968645480339053273905634763680069547051968220100166896713362145607440633561019917207910971297877595521514604956920682096920778448475534901827807869666068119244819844899363521999889955102774724094981794213523644419865828870573931495761203394999496299038413864066401450306948151448421209832486411697695668606968456880858148184006864729268705009426693157427049229874732469342162200790910187328583655490780050133026358495039493657326220477351261209117141197714520474888496127715602468424476809137259688469047874090934014029440379446332519279200294301124613395164246357456422847914241620157888612545243631615272674244298649095373817490314258011503651860476980756395172397950797811057105589076860835929145133924632488851613272021434506644924233654320043980794074502669389750504882497095644311327682304941766652841676950387350154209879568591675250644826654552428055038383475388930417704949223424498923869443745787233409317348046321902036847631049190894424944806615526344718559005781689856549500810920585050321967368072065353229244864669067776803755321926383503646050935827188995692850316464800673446976339536553831082737213774857912592138640511129325582966352575991742588262651996342173086652455254034546758723978020467629085450970201117927785125927356985326641131279487012675474361933687024637028129918212835190731025696871623228956603705256561891996799551222345757283797442616808956876413607122144919725063244325225334678695621128105142847260683323605509392320888711516459170513213453569383403916497019493294306275945394057371170076755733752263992705790012631499317496364042408243671970134389828967728316542549069270408340214099361590690339012270981656844266120870016647995495979456182294025699165850439857632739250638497707102360937761187278556824923030060628211966963584116766127797290121624203863087435039590522753103334224473300075371306912104473069478341553075427620347453357274208214953465961231712316164009763343347425115054205137671016995405515497971876354747225543328399997708152109148011883000008209368415301320095833227095347133794631342641330230832940944119747165930124767501545781031061013388033692182708946209681647259479981532403557964347058087893767806859429325999759517065460048558035882566635752863248696833368567229588170618146678547766489003415633223192668283025954969749575044345761355432372042735978513426398901415684376465915685845828510768622851920753319174866113790577900264556700576099568033225065990016019316921136111413857377273634029926517815999267335622940731110616448845862589961663148503626501063562179876726574680026126299516105996969068258855850017916699615358667157819207354430237595089508577434305986877061132776505360582577514164721500454684328602531158673928544118969195420620617807956002013792563956900529409317038370930208744949500424007787817098084706173212361860636285028645242915043554208376893204901481284861324815971462797372287829748179566441877305543077952623975538343973023957599260010332507572652092071369402263052967347810638296002581069701560752272101804385295605509288722171417939575233704817773466370658959340819739962210124759095216196069695729923623517211692863399036491815441646779382201972903752607057989762221363589668145632023898115409333479983801782274229823785232373474669670189900363639789073845813017528569988779376206153198742726349241088414816621166503477191864883470670735060050763686111858460416375108522501435606783210145522452725628019392746364597287356537655193792082671122955849927762686691018892547380897583504884598354056773054565374355036810329974883937864859831237392144131466578541833608925754336936823380644161001663393454023475128769966827241171469948152283556002133857269246205477106221578037762975118441308228351733827225420932549004144927245459678754990112532254893146461543439861012789385623713709962098689013749050678606134553996309996068133935713055076450106597414917092534545150583170373213551412939433080922930291730249741392388280245717267616627678925580331016067484475970160695061885985347409068450841927216353424283669909381360906780994695952938284483068280548555405673427692036129997639877145118932257959959431734707479543513838460352386287850214005401157374082038000150040144171727945414912139036030390911200842984705619536622565284397734455805508292690505062048911150925677139846097473396612637750282460488201686923486988427244524681226659289170289807201504919350260518234882226746758688586129783798567478675493395350596582466842271463872008910631092402800553213280457859973388386748750001718214027254983176120424299133228066804430609801449925061021525647601406467129616347804869342874974814722705750875579197795480879962893347580531148428481840519370775777017868170567117631415822698184613863838888751522074852061716617387152847267626178856675154094705627649392638530016109282067900069381365504853946465731961553288569211185715366987740026711173360978022203886614746471000650925723674956859667149973583273664897844786991934776618373238635895270188709996777168417632509654958594000753631542775017353999673504370677782457744320993406479097546696742182576730089787124605565710983081958555635452129962847430338239187071266675250273662021334904562989547515810334033161887449561684053761176742852526763707003639064046894850793660962334891313246258675437718386238639371949489344364336366382589971495551707071915496742183054426924982460908613080114904335435746486248481287518763403981561153688169002734888448948661589254307765793138899847220136907745101808130335841750274037459747217527391904420780589781714544801646136388572474835406420009102746796100876205878777694055293675117281313190908394651532308566569073678884989020035666574825274565658760317475543506962356294978611684097397649643368711454186129861236533021402610009993728308312093160476395108875837135591807304657760883348025344833408674164918553775771647513081831344800605814932092865392025076416613289984132491620908618246325667772518069114825559040047079600625808682912765734829088268471150750235075353993867786880951648600653313152932858645179523428045919770291276223854977025064621326571572061908195517459230018125600275379648901721138269403747324906690913737095151560922785950196861743199544594927756143464079844741708220285928839194383023694494409057062481460317016023259042513741511255862666687722722034011126995448602500432813663173366924375113147967268882246182146970904567211608470817054361829107261802464407627946821504450557175820402100247134069609875791998543693972245061474348262707963268695642549869529766095505266538763722231537417831033083123022671337017328553782231994184577385223863229331410226010766077948443320960944722588016238439632038436566159504531210827137379259190993205300465243675141339214006919417292959227470811715049128854843161244973716732875256755220430639019261567404826902553886459613069977000647899854302300181988947985789377067058796401747076940826029680317380428345486076147678882264055069717081956730444184027529471616665041048430560149847304850068270616481034797422234297273053180317109740230986517987949783956998204392245186222899769915761274953846210229061258819768509826369023965382175640115195456796257040095300438419484202528313133996256004682701288692043794657218392450366341328702741192525015714477939136680305476834437249278630465202089925317166671318886402275247776130951389894419349642114949554084151999675207858968850658818044446185228469563530981599076773690773009078513174874227831131039721523615261805039287090651740515852874647203390009344184083759282564467365996683811704598452965282174457884013057435963973534935554537715458121670430508789956909463178659533954077127114250110400488916348904509437267666742304478583599752113598888375825802254200300516841853231948202365111392991757406702024962328610257757358286489743748347061170370776102694107892116462717342443827902663204151690084619557515346800863965477590047984258551255816005087085972295004131397487893327443120495099721844889898819099540222149800646287094210891776443573998773916838740692308255700184804354566799058716248452997504555522725394471728061792283388175846077108122014425671127999505964706359537578070315489642869977574578032514726076846685969538827233424795546816454774278487243069215669858034488677522640838230177726235459614766914806074543333808459012990513396648929083639803099192216752408493563931023070463183215798604990301710316532363547454669965245441463259727691834187657384176352810827356799639244971566004793495851352008139477310008155975052398200820362585249643832371057453940888303470988806404283652866050830911087239043062876167433756781679823179643681509009683462605068549610796963537745408043623591865680499755699276915479418040067643769920965355586140513951519947454078223008046102589580299183620158737139671025240546146558937018025851433395983339649540910774435086351855855819312849138648851914953238672915232092075419799369080241709048079449554096217590616936737497144534617275822613763295246467960884582930782290625531972145897800208965662717181409107055385382083154762698518319325661167883965316298701346513007562654086519231595534407937531029639128178254706127774866186409150755704443523839169256274034101136628048976396130557944912153190861111127393935619320198681577782877180874651777689988943501182070987521944741623121153156960983335670601002436915441248092959678374872627647931794097274188953406103911364121688452735355451463579956266031772692517149778129876556094956584443102479460328667769503465190609886140929020188757871311193482321831554446406753016675066467109226460243948027542191998064445570629773549066307131198152954264031904545078815337755965158575967916222434351897469795638286537844507833661433868662492528536078019546003577260911031814168320289443751224703391533103207432474595879803838796514521931272262520007225813367014975236224473670475646471694257938206432086816374127117196556532764317695026489570684658847624308395916701172318140498241236180990448720683139326100399212921079808082706979908794574869738865309198419973625882626836970318007546485680632229898687994262285882194230413891344181925671859622703737682418374376224531151107039862892690751695252802047355679332356811829496406093558404428023954756794042915449136088443592413241012212081184220580919441505615587556629861470600551161703731867242728163354292719823216305827266696883630380397230037058715882886139214005102565152195069649451707018960042930434757852727370990454818291253187888215042897641764843283020096072461954568268832736737826099589640770066530493703697967441922448174855156150814883592943259298475923929031695963100242107835915579872984162754120487552127840421633193705308400100136495233288908216092886543757079136145324794895753795409676658404949761264579229135203664248094164783472741968360973505208255269311270068588393696854385432053948065895322950750034152265664252319928604831088594926761429264074777712167082200033910862209912374033790977624652974485126762578090830178661432286419437166109284770094299132303060651276137773006280617074257278510529617440173874533361925542652740793900848398087906071148201560536022025036318984849019317929410712288302625180900287158480775933208046238831114285945767755657095283760031134266522493389134504712820197768099325387095410475582940174601191280785063799773199786694247425343168537402753082337044180852862095169991845492091195503719684194394713988049643358962563300266406909122035827028928597394408346224336380596961860505857909559981062023998645288872697140541428487789506808577500166765588291564536491969345663700262986230554701012088189358097382870477756720115364799866457615446820742061284820692492358376031781762361399806062697728227029416442373653952212569489730161149521831083654891387274869382589230303939474544920290838410860903299391116088129792321504464066697767715302636251501732215051499624803614206847947644655328307959139258230474682683620460766291387810927117959832030023329865272604149832004621962291263070458061478808353737646057790517087162571782418829585067735653099904653041543212460124810407414472528320443845735594078181199658128389365227128231571712197571161351848306024183845617884823092685485099517449375919767797612811911546322304805354736087794929554698363047441176945882560244228520388668685495005355655459814696453085465885686161124149595755865187857638987596782252452246677759945763933245466971362092847642589076362235547670879399803557283439327661767811417126124110224206373146262732780028482516011896734303366818794050246756932580068066982539451974254259649021141872084825357657849978794013987759197350714224902344715482688440620164544846987618758529701507249666184096326530606830152214425572485778485618419562459837456497621332926901993558241478237971975234147637422947184073962077006461520785283866572638711677420176519082812246000938785705659369622624393948613694363358608348830244725796989261340507043583213992218156390291513844863484851831237975324273495949542755880543327015251363473497568075976952929146972552229788308076056085501558148814861768171099742971244641279605886761631297883586616002342237775648275442102715339582733261842613429862142894652754231309019085443060954620989982050043806425861792909490354217229536414771227435397112420309708198910991029431591278445189274252200477988575449382246349886087769358544220875547333081487845680364144991142027214072675934957062457692761873231122360586612380684772946788112331227497539728020154855051556402700341048435739167480379743768648639327538785220920703498019926977572971807800062022181636697681864336033144118050689941916035704219584068188364305336875755190736263759003396179447533083391039025717662398816702274902501045223762651387825014841268410336386680529868514756932850938860971965486767440839599274175434015376496521970772847932483418113420830329771048646195320026037178060564778225761299242747908329022468495676154022699158720297735246612730435128652750226533070393137012594075987293387285945735321290065073466506633574944643709232287000191647735045370225348421972715305302274099498521577194829743355050591858549857694006306909705106990391891474025861485269967797257088790027523268698663792834652469503976494253052586521200473059508322442231037448730396004080501486965375361205326004834526818699101074744404006404825455436097671906192921450834863345185371707459263876502462690096165819842050564610776277310913200444051739573423804067131712557856105583853803024852797061790629797181641744691456510348936980444193575182431832350299295247663987497517116485475259985537568054570923079115622090537056961804828383131148059503775551441035866011687270349501443605454269010894239444623836346428591576345979969801817064629442383232615408153088313975469844527310990948328127769598270311970386536972493668111975369542870986533391925935349244181811027750453094155407411363242244310383624287251361123242370339108574898742064330105597623376197652757062078855519145938947962369951494915881168313684656561653989535810536343604066516859359054808355869178556868195281684027825365195635142915062900262234692532332783178553757980469298739466940530575391735113176172264443777165083274163243218031576455274299151468070219194585624144477148042369182935011640416923224994679595662232485486980358356028195112844407688508315592499869215918374005739297082411969326922049749666231694657797306683239532635084966659921748728798487411290469018046544330734434968819149329594422144881359004479502799135913700884953023223851087806500843701341876671224875854938012783764332838946922066031218194622359597563462400008407569432213215772892871090486809362969432577313724907308807586425749737620189311911953786543530196004588488696023606393190068937897526226740480408678630125903893085124859159305472500769812246031977403305419571768398070664096593186542058827042719284739545315925875815053186210778821977105645819172620623955117747566868033569741229082113896473300071876096945489138828987046921026933807288820044890446520895230608582945781289463681673007445737879683792911737548594299963061877729954559843960400488056333740637338674054162469109028734837631858688348204083284454125986005978298053115597195858601583074394382346926675099884867855368345604071208205757156954183261139987357912798263027192358380605444053656211909860457777227077655455070379048789610182876728553879497864332968814253574177639264424104149017002106855923300437417265332561971728030443153215376689562703424082739543405555087563997218706663798672470911509142042932109925507231892988038382543489617008285321138101963279932222560035983310585413434591134522393813841344832922006108602707077605904185803540402798163410832616229113594560042398577272070786920291296217291884163062228228416705357748345325621937851536176508507599124213094780810698142586088786674687336332548436763894118956452083393678822899530299196461624399606726594442601755440421635194006964958345356726388104645585980734157069629811661689676670513421141628537913169743795098964789242922048606909350463134857193048103220483253435164978061796266720497259665960793982256837296640225898348824146595194615910605582932617966495449126202238979221329065510819391334414195867894480849253601573397927377758926085108642218138125112786595175856718986282962949142337281068553500974178801460571478985943971904012461948491279122105097100172451714074160461042873932688446461258228083316170087701310005384497331206636416146594684608232451895890606491981389639717226470253394894451577539918800791289881961251099963981651626402832327272948910893316595076438919031410435362784533310324271754495833462140830982976922086893221200898220555517778577073810869846960985900624687292794740113967726895857089903686679864394671047856589656546567887801348821631682380214517136707255874856318900377281447662413078557640094966899247311720501787982100650478913586114732201252372426891012479511918609049147921752595478170557556054521452890960299407786126384526492080964583826608356812224149708744970601711264904891203843904245510743666077122267163949659354467725567461640154898577123676989691065006195164885801185006313437011660695640226157495105746845391470200548206056600901088876640223606255097970408764228637972751487913332044748122162041395029000306013944045718420255242721013815144415448541574184048981267904642091978823917522149858150545408542684706423300740123829442722310799230380672131246285277138427072362845482488982187044227224536304394769335090773449183008959658380622300768171393756379083235540666610313109558653397717042766031960785023602125618917926711787682176161853627848207134084955708056748495979749803557441695520297558506857084774953574539672570362094210366543313695633946879661158666894194101528275561463506639217863332956837409800390092576479128763325479264167816557345851240560121181210028803253836757566552911536747658243328262651291172840959130059000869705811270839629490096846368836514235618478894536756031428540360692501594682746230837811987822287484951262288962877224630487807815254060254133049636049893829479078260466917935043808083030852058639828263904555690417678491243164472241386270634456381965082729401967870062633108600613843913760636441807568678845040861031427289423386683199339970356604068990042036044312115599675771511000270770109104639363452353644978826007597985425673044554248646051878422325843873032653758235491730973220137776678196278589509444944688716825120982720872628304684939724473351650287037608449345530394335585217463865544130250921967463216384971100152688876853507490382130810429390858062228114276746832611615052806152305562035872262189475924881455189438315358080487556975985743361171703020085404664077238105633089878304213381935299079887781363482902844754274723082088219508252646053294535445815122606697524388983438073361077596464356304482420739626097402582892711696584108757952063969679422187183359644325448746924889794042274437044255660873364128983409300151086154343309612482182269065879675753981843897374950456681913697826773697574839237738946146281765744293014205456283468654234996710607736165915630827753253158771208700118131386628498839231481144911213938095573618182875794095516200893341206186611456589640017797196529200187196388358822531875514165086259779944296986107027071132583876708519430653112803682375105166680181560414904390632852680312725025884172265016043662754612349862129194421864973402837487682142879135434636416717912199071036580276850969518031107860375391143946116430341553687516972749614230058924534430592320634371342689081173923737318928510858948058375438084556966222666200184136318673648333693911624832874412596371797237943220650847132979720740972320029660896709467522984876364981625126411756942517879770032317419845221633161793918601831683890959493292033255860696478639594001018274672341261222156640166219098070033095088891541159893361373932001438925026593595725622745559374544079230881226491699031792626632477499880725870067967544451605190813340962566451851608925092486322311427643148457190134138037733455809728670551037734419074787389800033865959796702506197311808521649735303949283841589618478551345153233878905561197746560057550936734817900622509628456109319234508265898773152605363183961994593267455904663478039023481238689969738290484433948074983299708594902655747694095692551929690590127575347178793438921293091688143792362504854432477824793522673962432716724257244324814103023645652845044350357821799922420868981996126144582901113695432973821099602617602917046020869698154903846506015525277605309074366522185247546080806363522150744991172980810744473613378321007314221011946100999727529267007914397470395644007365167524432543242832057182678036692336097415907387392897698139630709447685411832983101092344983273146174551505522276532558544418834351228376272704360921935434075613146364030157587175023653086873742275778897818987419680766761910653506156113120159476096446692491755293238271378405449295277311256410331459471392095894756602370122372922326185571511381142160630752852731702429775809699255180162136180952468373446717995967918483071272702543264535675450330110941102448214480140953626982034987337013234740175297177144272226241240248886296372714560543639822523623881354416248310135500496088240221146008659020044157251131330681759315605278900781688062483245889763485004541820570873934499775184729714349268162825140903398356005947154507171134861514702351928257890004140107711771664925331817523275207377490937045807888928594335141638396705000442514122128931476110301368900334242524812023195664629003435821265147367558920305801395875981143035810771216895874829417784120452388340616713066617306030297776121682509635252394341718549416012617049413315417846603973759242412206128450734187390160058510061163638020318526021949637694568957513276373369306569245037464939965222356655171562800319195837592928625353898592706787638536788979205202543004984262724956856655990810486438598011118283334716698714557845934282706352812348672638258440813513726468073696177293387256003378580027194769036179593336839416348089512169117108708366018511167624396530376983219668347626200199424967585520285878986449220802566179609124309805141951908998175245264916943061207028758015776164327304423740901441358218013678079355294438181304689529980173984087481901771188586925025141469303187004028911802256244595159693768074279916200168679608404831215542907549620992669436034339542682148398520971563927831545326072265617435569953954967090562313441361008861399371723987657254344345151061118753026503759967318241664856307703096843830691664388624475038654436160216092386827769845804837538393450541012999748972469698033992181373119519031077344906801022688792898943860318957163229331169868038750543032735148781842967650303659679465598486507670968599298648606145842582858239630658865456607514503265351276959316518303850637785246748669424379685319937397660267005933122307838433743822465817284646173184573111351474788192517596321124053651760084115514927308547618650022468870816418836790611099510443402943894734648870163971211623497853081620182283665739849035103142600736460957514744733127053765574286555700630544252853353175795220419243830437375719341309294727380101186338993834555031677290432474725522992088794062917169922429162984000944850425878225914008470748423448445776796403554643114791940194064916141810621798084250238812774595358783781616522428195595730584043565293874739815888060259715937496803121157610235902081299982727516959570747612503880487736182522184896447172652384190859357011651992520589939103636856456345854779030442106289002468136841576834595111557967072879655237977309862494416885857641620266123369186627210235993170638379926969988532372294348561405351897540163216087385441532233861118343779541565709083325709812350194366538093522545358119533199864860661000686074467802660661099186034294629063855620915737138899000464476165430251927556675467118504506227283058395784914713726516306964082664769837032784345117759870835245720235479010715746110311904800221618618265635339030565181460240879359429474318958367854604124513407490782507848894709264629905914733168280002743140061961115262203149724285123620043230151440573151295893376817031894134899313543037004622397983225682236678103628961038748172234269046696340213850159298875164940594205832582031872159737304256795502906053442613808562030035903805283798665986798956688561003160817693606456781104235065531218906712804550145020688611456448061006295920775504784337742463948711108715114325447028039285174946985861587758228116232964238856403039857288498620123151254144349682632508145955315681770244911402442692312758019503609718372348230420448509507925294851215955503496890995954392162532916346983715644690514561883642264372047506389619150676732744549533985863313106679672268521969007167240015978181893670227998153749545558284280023095745225343875078552693352515434766927926086385296122798808621625416531437246455895371272010204742675935123634917955021816984852609494949071596469824235611529355534391457683600278265021553746272460029293748528997841484732499671702229537539660846045942666164098818948096061759833506073702757682241542959370017004177357443665496386751525266801597570819022941913390193195462290357360263534674819986084437923601898993753288418105485762713064657376296523456753076277939450308631210543587599332227043765149978287402701409371624955758528163571420624699277463667597358590762933280236505717226156747089351391395154561784485033926027682641864521439311946562504984838294634991720130747930491297578332730102456978914911385768456142616629784761478375147614093773500613819014738770967213982011520203216929195142625137322894353690244953857490106153379481748964305905704674047537906405614706237075824969204983716858780429440820334537072402659125857913932943699863620894043587695564821014005898383737957303543112672798893573463399352087571543015591800685582852361488407055560890865847283660017306942610411712609773627037009440293231883806571044527826423617581523175191940192688227284257616385468831088299305132805863811623455596801103432712683278358798656133304108919226877131245261284527103856277195964976867604135402619602209416833404199320241320663045120708889128056889998751344927637124853947851326563174833104949886458470301543105023773558468689636394714970002754994612093206772950989818588161413879334997076731306494363847616042340838463333957948778934800522643207925306637526908230812772438799765731247112440646764633713525050902826579539027694119500368936475503878604208084114721773292301276086329463522795808207532576935285116823550347716060691662772482005637755576698341420803698376835633458554961393701770851385787078083769023321252150550689069680986773942179204775639728170881194409108006659699454566538735759420059346307078057019198122600612421751674095545211834357734608305846179589583497412136011655466077970196496878748865519004804171500726115503437223729049540471846307627820819287834546358440816290347755283433685157896635709315328580946287252397895424476111203136574588902748419395057796483536862897541013142763579418462987229524940324688791984784537814893512397091301232401135180659326930956056934694159711832640700437912999001259795537902859680508629381715546283304208376883609387035178338048540231489666538383934412912743782565894132929423947219316301972838948826020138073192258317981115247761600121984491059315256987389911348676062807330449801107977683848232724707965348393820646973586521663411006805828433175750955229571379089061088783001733344384805545216868473733048066864300583534754826532373057532362737274937468894065190671033182423761072871256834953014720337471319251310780591063583985964839743261597038671300251801357039495044542802054325833524178726439680526310619067924465144151395284742039628793841822528251622088111258397193720347868112711815823594239014501995019772605109535865974088942491378230217870941245949728890986299005752175208116243904478181310195838101997062399459704055501328363252091029607495523548209248401308616654186856328550853392294800769120557234211262522717239121610151180009653481273627210277729016314010095336393139390260933728465862733061979818172359236263163409015667209898383137980556890180502005481018784159512845273878605196526576894108008319213258926753815084147167977479305572517349270220124756342524199099735010702583822210194055442562861241844366100390843483090934532934053123625796899811247047057936312929517975693551986872266051306623552691568897573013957667304208409989338912777357845706728794804591994226067688063407616331883388814574284642831886581200951748077012621116727804817063202150747296525212289268070420639928865363865597477246890097601205032296381312862337122041814550429944414077711472356781007391474130355890920919224567714072561518731071455844072854290335441608509099591972061727809100356457157071531202122382234976312277878192785615332976846726642316495049232313847472214504580722295622719608165357224175200017912720205735094575165875182612557604851112318406322582582393896380041964352723446137252866462859392267875024814556147482492827345855344976901176609548406790339497409126506108583501400967359699893531899048819115031654422525107632454945667876106746953589644981157423238729905227769922059951288979823782933088851219365980574484019353849582469916758303766623718931675360302585851793167725851120141845887021687543971083425101103569027179346902701253645156073152934783322335107759900686958358629843862055473057223150540463686188917209040275253134553485668718214833285816410501989424633151420963330987201290337689074231251018885532363044463282812757853026579595441479498790060407474525198791304056675420882834340130111601235153395095813985587865033347233506268353841511723907395237333560857165241470383077259807310040430814523435130003644829282382369950760778484250535635920256375185883221349246322894423246167493375447149822026893317652889598852316299952932228891067649685156440686932543187922336633166000603182307131746495334360584190915691731285319107946492319016897258906646922347889849733108175299529725504998032088601690790021885962949389676067620330675389189822024004258729574763182008684963813923043887299170393254088795105979459988509407606935786215434216426711338221731973109876345419892039765279208958343104265160350518321303752172220494348618290528980712187498676447476291439125334632065748874352307253260471586674421792036113752429680684317560191307448691466837308056800770718467026106679682243845949665612918325373757718832985434864123898252261446595825140688553552758852527778259758005536134671598710214639990341698151794397028440843850906221203652835068274322612990524530788417571649020682518110840050344090750881878394709672069520295073507416947889072066515424987965381115251431299830084993187801042310016154925548833214806010324389738243514137189759578326324809324681518253239170420741944854943827195195309593796868265685604649420146911967863648880218019246988503248582191667308128417121549632094717611145084416418047949775662528690664676101619496275947155166136512421231812468137348553959878539896828582263506820148877415693235565650388577483710931729416241252250037081183958706050095407333302261251695510937678666390153883510603863382794540989740302145535326278608804658896183479063973718046572460498118038231469330546798040980741421353657889522792119666676423468781549170895596876203539360680834836083268825990815723226266029697557735951608799347666581493229334360269639766344326605924038771920301081459372467100442059121550688543273223579599067541293799600675751330211401333803415810524021718677028994423822985676095531329100150111573624840317302520265359095257397591360711232817207458012105208339896923381550907831635209430797128935465459090430930001598062436826361136581017101485664036377774554344122053615305361111414345416685814641934371421194696863181572672847852723058136465667289226574960843822618886608197898036682820888128495451626535172243087742968979322587511086187842827111540932215492975463787688075385864467971335795492025435169844123414730624735168570978306179120646281235559550334274369214698695896310810271371037765522727763596444792294693049887787583077801655665284280649272897610875868780740728853288764343295697180330638702262836453391466291890108711117652492093785691507455810908618002034724884092590077329811672625860315795479650344205171755446499223755370549444191285637966212060546323718212828480699855448200917059617477407037382745167640985300209608037171098273695240024857848369560442054532279463017696338668290700066773036187164778393258772115023542090282010317753026168402298115099967571837398966099087071068345077710627202975139685893532463342455346468533759724250084597061587842348015263392618924101161799010971600152394734749906807751478595386619572208358183733851925775629268841562142461648924418120232518588492114399809693889676944413959149377190491515046848529350116572841543683132288294508218915689974145337662553856060549936658386212113689906348874430957798176107291573311506110798071763601903950364291948343869954184345997115683451956895223945439771558336320100545012500526719958381722487177199831977542836025146517533891133757872971441470653217256328629406134861864047497043770456432660566464160207971730844569316814276001038771218749344012655008258100872394225267806288687656833230725948413799680131259583434212524353654384040512184663719948845691513864282877138566783557857503771918580776286477664530742908692523928627883333601657187192265039268385837352649421235996499738163744404275432960294438395383669087221824308254743717567099190208098748959167276668226957116885837020976513545414304948823205584349306085829651149098889006208810133074470223390525472125908064739629270323203170288954993635436742772885396975156527678095274051119250673786948585212405462285864359328867863130963833736091985693936123084006943122707488811360847894877986249445955611432685404648339984573977821608500883943153890758261167165619018071628869920569848997774479558424586079923738910169004531854110638520197790278042090198171425201590207980152173642152844279940649944011914068000027445007704362018108654867121283423481178224002125931761789960263141912843358330415000709298172618366415086547840879628814293666378524278335660664598310435825005871511708942315258516352726612220509338972107246353656599308839526638344509908243807976139838405247368839622359430122078950256858781394557625529930873187896064950600029259562370556048301646665404168054913697890839787504039369435277028872200170679382049626694034135883628144328534583783481170888131709458604753749489790576437567693450952842338327247332259658294577962410310372372228619769151231022465897875124256999414337109430543166126293706798123325979838942003663831501148930779102607548767129382367769830035964678636433670190294180339376463609228796287958567313456930059414129394984163618946261644154773990398253043521945465194244117198955256889313250284554111430468739080130534442360325143806704295615091082786836723165405461759678736375277779451218712846625138615375677945173112234890266197120315161941236284857083627805425336972105383851142323108568000749724173641342385771048211181331658294260528231726716669705690357446814967463986906480353536794775561176558466170329961922338770344494782541849484407164144620849137828473320673467417627449482167817348955179537263836546756743607103917602426034115690436142834773893561395805865808985638361678515105893052180324773201224721073526370021093513634626185177394131954173126326505183208183717129520156750535374210538315572590630929750357177459553303194166223703171467544803616367924016388440509957906923224076256287820159696387965709966086012492139298612521906437946361492314021356018439970288505826164801773529204394100266950527242806845891950495576147585227160997670878239078330764507261359851705098595862034525958420737044299203435396073104826344493980567389253912174691745878392873261273599979798454102532721596634765889240976428640829533425469284435457206589810058587965321063214677517550562978087543555133229697790642735229392821859360919455135154355824107423205618391784817322857934674939832453742932425865471400377446405105651404794882731922542508038296350670698043090353741226107987394004377170719709351882400672560017579867125910994999442226361571329571502949658774761205284563027092997270697144929980710381317105895764408569216441734319338726056321821561014274857242347681869464825217592575866282850072381031441980578386970243109626170335158955376721198010832923706426017495375743077621150566325848739647087703997364296280117483816771659502969450068490718259333349372071579637775821191201739475789403445597185025496135090383136895618246304059274316920624052183802266737921675000264913690492236105414331200975696733766814816629606386021654426658028452174122124012361762079898883689807031190053893726077373419756010483809603012601044521009433042344225326670884084470039311258398204048208775259587910606725215283753400229640009699590290532701668785446220720730217091047711499032533416463804773287205344031291365318121696716178007281345796202892159465974914735313430104253013969256258042414033968029186512857539343279158531241446985747893791473175661343630971004370377161415860007408887171208041186169738053862371541927497925690273638198489974239752299258749940887118648124394095793151578431659683719306330033076636642013549648125693504330576441064007956936593378710363760091531814312615747207627585530795050571128596709291768193851412270384587516365789191212226976368743935117393868069551545237220257842245222974326950820753449503423814192203200191916701522932950062196572127564599034590554826000202402695697921879746355420971063208982670427381627645777769648217909415510052747574869766345896188082184750178348317485953977490508766733404026740120012371884230030253524268890391152606177182003789448405397148913331094771319832786612580451010596689368828970668055380885602161635658564341000245586104645941017607085409941269442842516983194859451839175566925932747154492398684739046301984959377952655297366999255928678757882837992697701682657880384136216714197079673524785757166487262811615129389611776630733138401956853171336965219737185001356850064369066887990498633587045009354442621008077325127162189442954050271777337978380707546116263003390131514736301878661138677981852890767194349717679805010561752971815040858576815134289690197318975788066455895222785636273755547165196619401714909537033692603131405753830619139195195418411683204948060670303475595570721230057860305197837353972498488338072999751147050362808637989221147558638839333190478270740839467920561025045948999124133897602723712293141630924063676618555799369101280199101672994894188248090147713180429375002420041646160620821272026500580878287483759072624450463135961390805357375067984506747679682152419362607014616821910662847174850082149546455895913709892952245616213855046436814288242135898856253880685625722719237446226773797824486030644532165161891701042283004037570858820281162014155910484143664915323938611498860990123709002566053353470231637870039128902052656557905148594556312740109260195726228549890905360894733436784950687847645279265399636346889290890138349666067176679168907079856804860397109533704841374216949629138480198385308307058425926433016774100873486913425763671424741709566343026161284243232070241636031416167778643453182033529444716675305178163875353104919185218382162148008902995868083836332205896094972162695284413581615965885305270271836062821432352637930655052305196317713214646229238948895479435339062279055776102638520553587320861090078933930649550432281134463325790662262922303476252764555202888699364520871783460960170414731151500110496552298436095956538097208068810128001380732692144221910000720217171004633840048345813317068319960413202863728425031963517082444987563375974893466753474993693208277902879440641770265461679030918090973306400374059431655453862764385039190780022204992556275084641951898217879186101072221116050271780664580670815127366394365383895554567473292244322980106445994252846298343632998069363244692762415568701852944103397429369582117839153419221478549556176428512661423578407885124866395418399158775113851019910232403471684627148248679981244143908004722311462187208967782758344094552639392763256557902691838511616323949661631594090779285924940257263635087717654625157761739153382763101549197642199073274357035499979887504134044902095830197529998176697353800641458874704518692845386112053764320992797950888725166997591872990633784093400411509471121167308615644923637005387887135233453334107616507696483337318881058586309650229242086533176754535701828662126354600893625239952542219121332296989695036551827008158376265350752264903239334980920561878021514427110067608233970789974301504165617916208899047899851598850474049880079421440733490922875478856830078349584149151237242606500212744350360284765694017073898569660036532005770679371696639522711553778624332737599359989380382013955574967474044004322909427864877663316164137497739901164139470203253638702816146114174037864062951768143040735753129200149794493349346267126672678794490960332045000867404324855794880127124430976338777776264541016144173811631477910711965537946037980792170246240202202413972757967266978858295318360093274038413782016966183106032751481126933071004074607667147527525368686804910117552871290167362853251838108892278564091739244601962549083748888032882335364965472355207540787218244318643739133798536145636085564040109016791267792987044566844815884734378330345798281955369625551837859541243201209218511012353686266037565273094861326880476864536884418381293283044907537386680893238827555150868272094792743469167926812230656665573995020113108769429633150367364081768098785398187055491560244818327029426811490086734920113265945706298817622841328820030340996991262523370383180723887085784716057260378778806205735776133863551916599812684427484305061559461581042951187166742469933988672220030391596236681136186023511261944174164892999350272849061402835456871448346152237367612270024560472737609802832562540104956046192434231008834875656689406166430059920985534567752886380042060887010695321965256120800091624104587855043262200445576609721855291787587635925058888808916252696688456724522209604084082961649822012457239021073817989012486371943176745491506931351423827948044235809286586083752456158667928296325469875490101464799828120506859693994786373347764753947612314868342330405102881308255739254247773643373062507811475793830914237680028539740930524332085407692184763369509995689173665095881674456182184085025445150236432379740441894788570146084948194453306564074315438124279280594394338224725177777702490537383961990023691080717056625867249514089201986026325181921198298761120130218504201133745405907866407147674152921706525072269488753680333220017332462583047416331554455723935654352765667142056157650569788726312670852647863578500034710410761931512925813125571176140839697237545053848433335898453407886636451767965310918285086215771760251879104652612793686489762040068324347758273642943010139329118762434502131407305159570505777590254762746448386483770744477504095158550913908451367030140517298191446730258187823286912058197550608104739423858306255122814418416931464323136632170565290820602521189261807772188244638360239618786639574122933186770780644425183777211167227519667269132072256930936121880042400585748843679261999211699673184446894500658930525797757046678512853472501438221008954421951196224629511419705873019978258203329411315875307603980985884691894761909552187626907193083728060965996667200517333843980859441813108423081215502029301297225095203981414159693689748562214009124511020596974600299477504678234368970055372222902411068243330839860980740394103276035107346944016139404501244077316198680127645422932373851569247629604922965221042512220767895880235930557950967498899727136783350243335752985333578598799208042107500573500161856825832448867376616779932128032675092468360131815729094606815992192468512112645319123695457546405384752358163314138866315901188867049262428627383799957485182830564654876895739184939414325202459769452419000150328637753066656479319511262809099196023646295513376783258829090397059763156193246749618398196596055492145794148082068574783354182261714243475815561878141084532079564783687000292678717418049672820823114273067490847300073223002298165457176491750677000996093861293893435621480351378886923990127297110398262647410625075687943753229194866867510768876814034723480133976172634615200727163998533831073260225348546755912759302250687042657989107610424135270164113772402420412619070431379439459617648971701764876463822440975858053436951039274406409259335286505472657310611674890513996347444277868208907475000381674004372489208345149347981998173735205764561659757274119030875655346741207813150708148573990756659339383155173778449816974762163695519419199676309174551293369358875352502322535005505246930622036405698050417610724237777445778919925217573103279179282481934325236888959930042535330632617106699397188399834428026999261640349214759287827042547512749458690379909113375856487144523560679426472890845038061246917045236018891175238777410727177980490350222986069889979276722400257599637300227817610833798091636896911840322296236341477587998899130265161855016264879768235284471839980968216400913572835251861022098538692002979991294033056776804065844523087218533194079009365885945775600995703709571066125227251082517438690701072671487986264472884216430829599517808716118975382576240036105068197952805203350878254748967461068534933405192291754870961553264924865809433230412632464211727921030966138890936572104520664555918601664710395092585702289861853993231237132424088987244950877134443025820005498945796327182102727941293290632740209780696096354439296246491073503423833782245051863389419840445078351614749771972768114872671842496542833197908218535785533384429616711110057914992459586744161907294402438448086664469319527592047029842097061001619343433178169062940643930576064396973006254448811206668800631300093237527664152866809645817803054180433687112349466211224009733972429650088777179598338144729897622537664280055114695316947582884350628813580386836521261375859638396294340826655036894485769715225413974051585932249406375755096827861249885874492463567936748510898876161189111525190323196862202899406893524911230495224249276563010726142463071074270090488269452678136190541044186800904800672236721777440455401221988211138808851607392118615921044298653429964507379194901312802517283389725538966564109807414064613058835750836576793295510630168375651720015508323613098339992562807389766615779731401680766860729089861300378833140989818593612786007453501241251042729627990825386694173463138314134626844503655256061498398394186137066662507664197658563577426081029615254524582632841258372313032639442512193812671783392964392394736399419431208776294627427928710812373509886816966877062708265338583337549108389303893758168341310225141056945891920602410832784027998564006446712276927022952986937878381637358070534201599651141597774485874760781583632103661135169650617045998971917391975330017947880584698765988865790840692882899846157632920368385635223501546571123074073526193390105293530169222614662579546454147936625235691132190500843251489587477775999619572940732784284261265445089672036507432021744312399041608268732185490045583655651856844726376488308585179271526506628216620253828757060928178261332731009253282162043410892412414997001052052437997283438965172298953475408723562011776117240569408949113211466979857987593860962484344576472832493560111692710040775598586925273087277343418192280203313427544025182511313243578108228453298827683750106064657484077269654468929809991029501190161838228391059233585937230889283116256989563486217164754050616058460054002648895760027035287569164499563059186149879302137856976251041485185643224366619735617760972739905026074580720060815965931553212433005143763585159440147941900132732143032592425771255652304015414791975689456068983470437824874051037159528225678075143626295388342686658874044946206873534503207840119774256828909834133160408651384514886221678038187156187558814418609039064552823384694790084177232157037517634762160400320635427079900043044012252719477410255045975961171564425196662607979909347099563207939613323875907150055876756090197090755000772069272649970974993690947621825222904151401321340478130675297538823352163318907471123207890773713189847443312635921177314052313475567115362311556954843136522773472159632778184381149950141068453301337916703628409551303584095838772999793302631550548256390218895214080571029755809400064324380578097990396409658818500320675205416381794176101813294056742454347848683976668509539528223440135182473970649258633185051197120771371152119899157973362575157182930778443336654226604998966311966768812253564658124456742045538977173581154801188245527908574378099415817037369610782063937075252166617457335476182716941119148859318921462759754528099728762083772566608869431551658838758822319967784785945272332833138265505653420433113378804740229617079508569261456973324213342136647648550277326100638851253228994590944429710527116248402220493683615054375529586264206871684930478823156016423131587982912476251798741051490940596855716570620156607366543472047502705840613779368338278419676124826485961286012112526262859086214707330003825873797048953743841393294468772219775016425654981020234324827435527887777940297330905118181481159902894181129316249144348043515543597792576322502989500675642693003125015816394717927859396780814758865015557562968242836572507534033371336152413531574160744941483544959849424807863061241631747460391652580483156383866910414800953450303610843270020843721531543229435104179004012331221944037312415152230426256373769342035686033579396214995461016955276854641024621863894280391584332968396309569457351946648062087594597966367382789950571529019138580552763029511978256118468580092408047860613498329393853840561686200297249456270576734424743768334294858672347497516513782730069674680918405848990233421139173274932922871729913554681687011972640250670602842224496408503251986541547434662440031281421676195205406522686245989237630729389904982154533873191166110330033866321738698033573508428867820484664207382162831971525739290114705337579099424504534694051198291452430073972757896979513083115965617775818296382295234778635890238065255354767378424923270154470471143244786391310079009123525808776425264141828750623097871276607647906663681847695506252688596550636855098946142561436737752968772565750920005884080422847829496107348748314029076066363789142153116361514709944961044420467877522535571783468437713508839329252974956383187829024740789346925683883379455158050859364210883726999227984251308591046612031068217091118600075456886103435244537048626620770768451212262722953331740940306387981828903891826489089969916771053165428250614843029657146101282721183126225720549222370448958353794817019798191523196682612753264376905831884550379415137310544526722065915291646712654275019457809445516623671309960320131118420474366812022611379671315562976276150996760427403007867348080917312649287124655861706786158237241449707847564079258510494488602198242675426141955875458974292855875587469245008760221180856954871786795493567637324830219364050540345499994141501460525097982827298665617786429426206634774750352195944280122407231068241939694675866360516115489824170778535099620860150279316286895178959836652927029631723185089186431225436062636641468267193025120467176170143715609820740557769257642326875710840127463181231259904215899130142035416397791504475512328193907387372751128823841811079094395423325533958644608348877273705518052910230732202130482336412542186864633552771046489433511301209940687675259348713452873549430698577981727725037824378503875900308777181649073679971146021562162296301467835487812709717614524153887509864493234537471197292425813869761296378954075570694025001472304380917976123437271100171732563286872919724463834446748144559249362326307681866622598300874150682961511629128317713725677876878585695187506637396699546382643721941611440170392114454550078525789598798480233406831090814339596010111407176367819220876225057224015005817502960056119560013000860158459884295918426304481102519976938630900372984704848692694035004965454931850604185994147385772365036224481334945357903950943253595554575519041680770827011850530729573265240762914646776909866830413155760316437039579912359650300694285138344757622354575112957157877779169928643170295451118603730772460488246700944255860780805918841283444109895434494919118289069972231038966211120347373276391112660217860582309374740992202323928406828903983235878990712469840773062842744659168811200980665515553373390985939699541058946598263541932740279260845974357361356418046896303310379841778554620555356094305352731179112782669059315092625127932169266525990861215468602204175989845135278419278824606266874356662422174385667223072896558736424966347480192440664658017803608455020839568581809653688113178492205768473369213599163462117348578594514328321964048237893779523719681438880875655143115863151964595870290666832729266462641511198163470244649961346010218281952307031251098179839766059091993626530464051928599785562300093517824077593359660665932998904595782282887984932968651355606011289417714886705443366958547995231278861436477735050684910501730004136470279419751828954223558457573771618119156668398641316818081569304541294182048146116080832596956005762106602995426668892064145089149195568277694578828524985908162620373800063391927251869720760058648834402722800856891730812022091046504687416976915997028077108519318581445194363730985186697648003494998373620450023572911928086208126419917035861646650867337086311730667764933788893511699608494123352384053403975546775189905176095274509380894939536242033052545698243402407553678672964150324127457696836043600899699183572598923371042494910525874395116117604648767753380713224768463850795600303739926696679558264941126315872368268964155078327386228183093530595018072339415560967103248876909303989495869552870828865997808034026920684342801672254214733038934409558615725710078893369363709717958934050865463423565954483755213754310595217148554010056931007557736448301236130319451193799625161053042441246715807329970915605438013768051261669277583825549046717435565473640570361466832374073076378527489008716911439842063117154992652622199515671100699256573036349253434172672046950378133074535895541330014373886144443433790935149288109727759630590351621249649936753885110140875966668422930194016332126723818983520830518162206763512359371633816212682473415319549579370653857648628986812106270023562674984567190606712947333520632981886876171015445684076532501697099518988398004962599630718692870362497574267847089728105112184469301025677772995194587231100780979588465110520665888111240067169844194590798660693016114976095503388684244099491269180582034533587069966928521122593532340014157223583246512151227441006459425974807384136581366019756719750274601292564957637357364541631936174899099589944430936600642113984926690233896166521999193509733361717067370455789158457267984252881707275353300295333782637079609818878624637824138466983748676521182806043288021875785868896360688712427355447231045175365088864093406251283086425266693125959960357955909896618925061910871428491892501877181667141241998051026495961899348382994603643419985233193449216647363035430815076584295933948320281418829971494530382317242869142693364738385765482028518150379374478801137394623611366908014191138269959712923537558275457578267938940700606861851300076662416577534331157346397170314669529324741265489203793108977036205764714107831133326118705042353695259298348374169412438827715574690582897483445120594597622487177929595554502419856131455945246547899538683093256823356033052393631119576632737792015475821719671212716283772460517004710252472676688852026419372965266838600315243607778745839654600475707775220557336109220755226859814916651234504151919833171772677000452658788018009463718273645955429840659698654146642591397775881043072441870698066608572713182637934567260867950101753704377815751243934356802042058196246515704507803821522291325434898358980996224801008147051233159900931356073986782400871146881651237541586253293024808340907235289473583945139607617021710755635185278417995353776960772916806316204504001411459944581742317792136884753948357222300920550537919236282070108016974884877886067556647004140421508468058658440559794010465300385406313206503778848358360409353161401585686150974883740689914465161710224475010365633703872282002999869431857567665399937604860123320292994967385745823003723639231127123230651932981572665913806336249757338555825935408480687157009098221205621286839098195873688391744724322791916190690775175337436289474833703586446175013142967296748184925940885901567534443751228641465375527628800916126851567580032490433500724048577375525232761617775004331386411846580230658513321797911793570544877680303668631669561588591782472247158531173593835064012571416541304629184519834353695463202460281160380211502258407573445741370889118748783675944901665206626733973744162257103870410356669707926697333259831128780390692602649219649688189777201530387548213674993281150533608722838586439573805939774593698696339089289965222113165748081253916718295063195198544354936981216425114120753431177723222539415203492751534842044146802508541488147298779801233611614165510396435439759299895679771764698216909725434658474059106421646961403956926826669051440392873051643055246132583854377048767816384327186621715044660475208920984301465689152234791851596144468906001627588159666112712360307417164544923179432646149206102677030691881188465657728498697256994490621922062463648953714723593666033513611166547724816279523227701414099298841074832375851634697896936941828286093870508003424421118095459323409180789094329852953013090417072827447124314826339610422283146947465538862275963085629823640172127849572784665248160517236266339655221471144300918462668555395635298923589543543558983917855612679939671261792038560684657048421796483674442932483574657114280746877625172730672878471319894911268883314947622041131132770266345460746904403512381161668389614667318193368759546250896105789407044651054782121177252174535928000201628352761013623628061793161235189635418626545072879442964134878432338753989553355463265703291458651827527168251380912116388488929459281136160428493154575785251339405519470642109307251200950852095326359173344608070073662288950053732477970948193689283582021012948483645959396853956396416975530378075911675527763274284920033501858297507065684994505114787420618279786081883304955828792104828053663709716016965600314218045278491283257262461708349414663919956218133880261364288089981158851139856510879684862551311756315454868555986169242898651599745443147263439618828613342172432063573065676725570708668032556725947576636039669991813448889064315098328479953003087619624414683523961494230438228071014333609648246588632910135354489046611809958757752646751915186749793511831536002445235221893761412549580921181686351053588431024180616907759922119278673125667381176562425317953528524493060751904516346364087166713494409560583296112356993104457159808479357456320913168787400311608311906670157248715395876852243891878164228251372520891655335745916782736548672429134036572800606566657793202801841571178462446031736951072145813574575710695475651217380957998986244754792265125419508873772788785453353554630574445428893647223092455698659515976750310286136766245219951519299238355594715853829172431537422182675733439605487705980596733391048399287697970344685383420218100179414681280981358240655882192988996169538910024559363084033790453856344928258556540348054992739202713401732610272015881584926145176694280660621090086359287746526400890232152980146705128034473242343804174468793290481289430484679750001832123025209135572138449010551577481926668606981038721483122564658951170659527644202758944160128767534015801490004227993398010783154599854908116651283726915813030994262290025654401757976367855469884715250437935756973992384476316681383461997562406232254856404429766682178448472442895755168540270168718908380995208349356610088405945452702902224597862670011610413461449264191476561669005206418210515413248415312807058306207173481480935994973504636393859081530947999926820411322789226349872468732101132872641803849874289262480393753005552253136055774716400053333101982388673912406821033543966563891823266927155109040980212516148726874258107707804603041777720071696622937059410601583491524233163073345070533361225946015192865651747883341292711547576780518463872265613338263705548005380023394108227836651560330747129007994190884951285218432025672519334894483445649538377369781358548722738548273863328954056333746363037155054547686108933605346762527896277661152539069436189899160728533986778041640680721836650177831762674811405729670633329660781487362356759959122956111408232142388575599614821117764926512863285773107265581271905068445301593805640623099231280984091443783653147505903635109279400684893597721564791127393718625230573801274763801171536343917810048034265685173979214864796044895788795820751236037591982395353361283079708256181430799648101305693026131529506302797314221992301853189866151064723823031206506665111238200454743061081731201698790241263919269825848879774408156887891758815098562505050330287869218581950049299937250337968494656371727722742124920505392372001088354882963652753035403213423090563868237485671223516531083349785965539817069476545155217215223426874051983668091164582132899769015536918992638861031789793265623111402220945202772760103510737428744643135188138739084246025179416175340970625273683557836520215939825783252682927434612302353338961045316431698221099935389553426699452293069910358885300343256606037003969520127693649327753996502556516380998259970081988169041618975837849109689728528232434844208118420561226282964347363213916938113749574392457581604916314089894642505072446224366329433891176620442370046955945579299351953986452489932587608753859582238617020253904000802213872150099087996829855567233434725231557371954800100487544804678462364277571021606808648420963221139984309380656409610249414113114696089506363265515692226840985669137995370783361817811533356763698735177800401352957752332228697791825408439905277847658966595140065546945901169227158276454863138218225099024283290956642141217324888079041585025939677408555971005036058841167496524604857930523057537218275121324841117186560703246856323130774406641496166411876552260983992397760713502194623298828409044279651166350310682095428886237993560650774736167645752888486265888318224436485715950153501438119817026814461504564561054095701342074959036794669253860742576722172489830922363557869819136362813847760786924913147000411333627148816300216334642744465042026339417054983930339810174276022979976501892591565278622989735364414092520573351920797166069692807421141428423436290393942814507641767976042923710316319996329286555624106288163062462087708744344415723533656962788710966280838076186864789599916158061539224051351823206157882846282308393641397104481676244251668288666206881913266240289053799893458701032890062146954016686051997218362876871820402961974708513760569426626931225915890852512737308737659374809582996374491109429098836726315220722672105701569479362323796867163387432471930244990725466829892184179838725632918550346300054542582101227696540278851862918334708332480881830111788617238925053631201311021943156956107029919798935831453167823461068694109315422922441795016521157233982235024481381333257716055986688876427466003901288154441743371340888991469955342201938766570209869837954573906818797085017365013318832119795282244540647781048965525483482174819321443641485996737574926461344540573712689395194941292662636849476407282877722669018524750779036862761883930235370080430835824968974315948831401733609464792719646335898686344867332848090353890242780461076245723069660871880178531357505158147416101297286528900544947028697596886045701237472110064003941119272728092135849684203647395904485494844704518815489210734584357226197162499988797894337425952910213911555598404801621455452899016748229845329553709597252941738297575485966711349802575432737851000033092036319391284948701207911793178385722848775661861641352295516792359894247268350103644818777804206865635833635456614592062708405494531495450716436085749624101625536034135782850705168033273653605270340581003204039504908197596109741865664404729991818416147665150610066691253879120831962950081823466651838067629455200868996013982932206501113146978914284220860350825735376444162242808465390462077471150309822295926242443601188402800914045281495366828345720172943975446896390524346394352738221069155883931789164646786562759355468307916538372487612382836958224608815816702874759848409421463767612322431803610720027377507069073841601475640001999099513395213948789012979553041295734283854341154795682530979308882565263154685528074080674411481634893227453574557073739760111060764268767193218228419886453699154711258390727705797179294762780753159117668374762484617863499492628704518543623708228116493305518380276035138655395335127716809626626688021143198842195783312640348480433353548463850280733168028660312754595632099244547350327942743924533808663119985391435046777967870355228203343621195348070264466606860371717897167474751349215551506208263331493950873536730837673793812956374798248245884837243317482260558233224107591303612016999883232032782194712718112609039964844051284538558466822870182935185282326541729262767893434028684005048157948996029536045293688219164811544256271090113065093906984139176885445314938613545723376343087832167907687191945040268318844248253829021692232627467836159988063410483274802707751523969538015259514545931077935490008864148650107545116494106991969927967380625656639145767037600651819381463633746025473379106909788614547034114691694008613239531781087122367541935453328229100815086267391847794445742395343853280159383339515451425444446591175915999878966900782234994776400026811732679599324608573780764025765773088779965397770568137645112429920775197867084619296152419833847595541490407744519007205312717305737757749098994705378689787886811616048274057150962496949700043354003633337337247936895155261016122954576186566957600038729207872382556242920550704740444879762961300152864506815057322366491424976136361870158696427894451130107206376475886368862574739848933039433487675226931675204485252579535719000379394640668362706670762428085364004126164768931134893413538290552990232951036876234229683765795484727538141305309386336919314780770549503603657988315604987314476184649695778830584995719587006882884052943620523250193403294249896899637742164130025175942575167118652969077473708355584097378839934719824302983189066159463114488774703353804215470246095590662291585147757607223614585376828677878839682135766885882185002497257505460975380913419870457617044031061267892640354736609343816355533646070701609515530845021415649829956227515406827390130880607532492170218084592844580096987438326960278140459944083637428872835569257302542403160570608882728283668565340554458210262928220151510130180709240582270192855747490306946150604120084813901419170854915632032923399855000433721520111992964728282747164509176733529374124004413562043999154271695218427039348634384323296719955305000610127299594481705157044859543143380734635593030145621532166902073676590037564947978860163230113779994548958765966741374133496554824644074562110771208853463125480477316202930289631439328903560501297866727976147166408893142676632949732678119808017611311280003337455172683467947724231054912473197267836679747325358983974694895657734789506703939487222175682912868228110895279143764133909995047508499839502403120842704005328761948749545268970398117002159807154594920742706510325553993933162292653867090864807012826393573811314911734068419308034958547492190695002872743508220586583752779916530680281817113775226653295387173970155295603379203563974191858365185173973858444364944676421039843046921262378653706213353675988091921018811964187870857065496977351427567126553380143396804335592166596786676121435014354945333302978576121549959557815188988978627601489637360963724296168422421067097799763881873517266963810758121205937878394678843032258638844621561435480050437760084591770243772681567879606510079405414836197066968867448680634136040615128554461858431551481605004136631827904445160550102061373994094148482986463861345909141301666299361395610836118713453804064989737233963496608714965301934828021161536411673470282742785654700537199866277317316639575714430139352165815871953521777636793290382968698292830666199550831453637025668021007662701513971712150345195223558789278980060413449232514158821702918940238460821737606952718793272935943824268272792958940921706838954944134876835145815042347055075850530169566474349100788481090174160855967477150058367652885789641713571224524722663365447047856210900597498177647131582406769353421693558000180007505284937116052949379940767337267929897404654464721784197044604488620381811543277121708497296784949793361368613372056602840496062261437155104486816152662767820259641239154876839393560969113071838906122950619147657589118020059734644979980487839367953898632263594999195709838660773538083245241168582057983534243091936984411334263332831981489863520317974370902597035303343156838117076233951940927190190520599301155542582891367310082557160913159375361973816009753600094551318223451251232851753937383238870835967116389675470943277402443916636201015613996609897470644509223380262944959504607457046972218440041425722844477771113844571229229311845080258015031735162904044822216582256067361856604520505937864442564012917097560250452882088036538066500146473572924525459149125923312472262042382376812675354100225781579793029732668321120854893245307663717915192622029848597966398664295020563303025378627728096632669050895958887689916434753669582575571004344863950469401756886964770276278235120085277182306745100610521018146620096898552018087110104196391174478736746265039315455632116070141953573048461277236320560812203256984416221512236012391543062983664997806943222379489180413258245218303808261397657784986216056412736384414332042774112316977767764222947077095953674423140625978700563578770333697483409302107207644530703018727761916182253282904943565500332279723597367825755967635777897365414300819387658363830953896765893734716109040308300387952427097997797293896667245140378175764987188454396331478378218786305943792108669852034050261683946464870495230035342860203154365757707915466056949599601990796236908139923343100865471394248452308215280573126600173218956748172558158010600516767750046507450419295252406321548988226606960092018030915923556510265038369728625483327231658622538786346444383093312363902094630484794740690767430638729584829107894978037987764925976189571397082523977637092938612522605735881353617993501106359176591984585068661854501446528986511371421860998567455331733824080182840866027949157842146452715244992632784877318828501427792697544026696652291991739993983444682048443945258500530259123817231116510867102437386857690525386482402654941465586467910325282779432976761180206985315544273268011916394409687621778824796095447094942309190913868201954150177720250509764490353987122757177374903439448929799971489137873315858559679334777752054041167591624709800208685705577163480256138687864208395404934525356087296102599998421286198709114000487966149078644769428149186388015233489739940205615572186740300951793220663476523664799441163431186294564613860203342834019279416521315815706837566842344074564392954167567830501338930024688519066397297409095544048722633128206268927329596362101994537285608631018012991019157925590386664098686619722379885792600099973474276117997903419039939112378612594048615284259373606423281893272368386799584402332997121101096081984156604133455407337139547926854295532512840476770595654506462713587099484893475164346924885860838674999956618263935423609693466241646747948503953366487720029658148722647872912872525008573447568649672048826244238973121109700191693948967150573488455267310316107408693032072319618329833147510358650851176166105028129373362621911961920772573783279188720896367523205844177912116035841627596738932304963162506830828159410916995038701558118267007797318058326354901468113823383420044215408631155674154482196147857222993031659295076435484070896119684627468992586889359894104318301621040584030423791384219134543773839265361931131670057494190154433306185391015568827426076054624027965799721693018625208077961350351715310955460223523456742873553844531367950428089191802383628192487430032340025618073698491755488275376725536611613284852198284067942950189226327905514268558912794700566475096071415040532154859622759315923537938333350657943308147494665591675023798346760356478096694407861663528157359853892720980812955200788070012251821563730494867465278446958640949462045979816396651337306953693347040658506934423372814716839000455795930591809287384490302291810262067530453881141264551122094776628346202653133347599588386324094410204130414711791782875576548564052099658204187182336880281158449434046223777308721610379274739853133269757182555399616016618233479335585542292411730036562146102608736003715133224550639195978242430745650632896831262322850847299148670339970512134202514037607209781688938452536691327730938484015036290214202013817601723612933369617909374536709921715570528693271883969255104087528389725918018932550415537775417485622171225819509192524027658057845644616200914766944070701333210334936037028753118863374199570072691890842297013456242092173664162835340321148559942438375297645241127917166361567269716513465816424904611724609849939490054871887356603365807316638766661585284859125012376211730401936420231729497980254825297301355726001320775694860106773266217158294141195970525236039656837748959539987258162024025696472719714134579627418685451048174010956526396855592636514516213449146776985768032436505395137302603346365770258848498180753610017016198955737032479014428275272146946561339063420497289838145412248385898418226562555415833697144968105321473162876300837959239731641059289421561759430916931808177102647686675666122546612500214442929584305526894480667485925058896199166100955288354882974310037385794440879768302532498993178329330224857048231250238935011833725640313814079993028862531955766737114924443363438143880563156951241825417728097597383888446074259417393809284684111675557317604152098291499080719346716152468024518781753588480711648306781409810805720580857882482843560571207577422526009898286133751135990550079718852197729851422078526376951981261710831495621652634046311478640518727776008401082177922710247470755581406210244329375821650383834201183228556509624846205790660505530734856317000469742598707376873294454533100780004021933015669794879858919493909188007258275981987599868701547965946266471522869753727831810305758323021169625725783730013382816594290227660098423133188368601815218320277274195704375781490134375952940858928463565782832550079334621312047868244719781962506668279405043013309453801268797679479950071723553409477014024665699595136334797750990494545338536577034487445361198943684261224370120393348075990535029180074165901195446834395750995029480447361571353434032356200271096597063360586568482075265313501076782356175623508387671018370036057521442389669540820643614542118265915629224893207145516691257070890429004644822834093604275477931064499304039538408454345862801855200636938420944872951710829129232924434931050718047417056307366421918593630413995035382487646262257762582421263935361483880974671876146166997692528539434325020135017817024277779129668368644644409628746923756601150738937589006386805222880588806604583277299330334742432651010148422566775465517983183784013027261934710039003756848497765166245630177456297928728518071544922042085208521453501734090085848300268422042000508589576534426336064490395784292459571529444857291543786780594413973111322276904074378748174960269658894489222187701213816027904500034815748848283022052790738413802025261482591595085420600689393935390199468871744516269656156823008443457943218488903134464075139042018132612058761999772251816637956552224959619499174045232956283474493747245339005707025494641832320861944392755910390127847475639935501963557134236925616030978942976621107742551755127732837160702116490516885054104175312265683702177516102006926810014794037519505108190737207465588192989436306234635103926799249519378810786456286128808645933983595701383576626718458920119305796201193552217465715177635735960574156608953554049771673883824512053945880708948064301383631894863036955346088753688346428371462273678696938738572195273421035174829435974605654171266255000541239182327488242313891672594848485983109946522539782260951104040764611959533824217467701924662578255409906844707198408383758982961973761411291210915416810831548138570614810173154009897389216344606745418832010994906356217355182980174898786488041003270173060555786218292167960172040364523051105842224972148977077045859014599517928129862667021722230404021982834200965225055312014040254195063959151401235719671066060322163736493131146306156445150014521425337855330841153268676756961693293550992885111538002046672686431576925617746689989174102767653827179987607075983651547401888916742733351906456836769001887850798943559336391321863740973990651012064905752569383856974611621848834559623276775330317264994074380202431035204820760929889981599665186430808073444701567990937727053409548683028233718600258730313379788914843187610815828519993304981404604003544697286544850413381592621476985136799831625549948335891562510217563424442989687919394643661916515932644048132307929510344559476668161488002160461455913389090192254663215191758263185749099932298382447736985629695921978020627689509929480758596239394163632819700510374019428403488928647007177580698798638656495929957889399684972211379374439190136612953537907864850894491268172828991919140794841414245422796470599235035059366992119925663079386803925891089235134845063477379244174157795686194599693145829573680915600470768460572852529959246363782959035962689179261421306193315873027705573416421161750420652756498467596539501954697449163509456767242182736781943396725190978550461923574581152795053643133514807188767637879052488435626805096858802017437232593793439645113331619854476889710211285506084073251449858907268736101751402555647965642064905142337092173612502951698230257870128748137302779319374644441328761105319368877361595133627841402299224694008067568817162177199553516736253149497543845671230216048596534654351372843989424680271095503107720960858371149392251528533651107977327380292768841778241805740953726240206597384596338489136478928374103726199171811158258340237893146948909672796508104047111632512169083265225825904597521415681091190835568466790073798782916838745519591683692690344361476383505967878003438340770566454048831430596809313755912839197082271324078089168150310878133337844214541726442814566337608570452460013817488470185576914061555776056810544165718963297888652990740246881183948726198144698428336195364767235038324104197197847860157802074832936656223610702250267437516860542594863888312681532278024783284166986508137297274418544511110853699941793306509231037885267432627266934415382753201569509781824101494864168575165953639868407151521004970355300287197601197410785148507317422073066957982263168733588033175289771538237252751992391954091787194311490018130507161864158835998816334222000644388269276186091881068078041644197376496760391990703010064433035233221422373092143558364322460213690230529424155655001647944710797713293903600953283308613077462502373951046463759464875197232047970218282944129650008541949105508734471232659026700177550378794607370508485561862215783271355295163003584205855157520379224269175288437899643124508096786674502870875808344159241584736145613233204725077317360307885554824546739771886136247483185614974832939269279101088742662271775127517029473406104892486021682979887059189359752012201641155358511313271514196979115680898741589960498304575464211635820260388014983290330816543264137075668106928828638301386356240801602975620132633707075556438294554983517817007689608712234888158313637314929127366689433577494118897570522546869476607285078300544819467330342693276910090754980288200923248070185972145750659684003286984641332810587006851804153889185666667497289176104013991754916655166773783855577695494297690239423887093902248665285550077792465486797154824080755422462431543960631026834266357044945351721308063783354563052284968036690884805518428663421035627731795529864331820935101251957418933573847554911283691515191882072798493043388926181555354720346621312340972579538200701660413613956480555219204118946872554784686085256439954112951913051241752478512571927053573859606105397668974094664518804289930946492254861815209782142008638032831205956306375033636975619765018134449389262497593193404000616930573696766094724588636402880397332294107455508134089169926688865131546396796307342633380939558585138899876381300722265929775722883705264903911327677213061815996742931331275828751340113128580952725918501454599626862140413633109190265219310188330540778666113382839636898763796289940957887090465520392233350304018028897701953145836228888188173216766628993933158727738193045679229236116640499286016942218634552783880321120621620586588291407759048481892871543334072310705340975899296731650918536934151953837093766217753539913947711411146913118960268301861497402163153134038829281266283834507033382007066315729380584621380317929830995685602500935250846133100261895304874055935481664770566398520564719755336391678858283050362726158318158990722982635897735626908031197261584317873458526358809278046242597236775262152045005730178514003974990172655438856456315542893374014701889292133703082960389733065801044516474244274780192293590649235543302201362663906197924570101260187161757614232033621540376501208767886889862971886914886750159160793837665912728252954600656252825894365805056521407746078358126973918481429954517474443303062948914038848948594398941511028909970553966790960675594912172213819771772767775650672962029927192833104615858874123113366572414631582064863632054254339622386700157008769694115771415871468731380584255066024210053020197084335114373395443735949427755679917540684115810605932821289981825667399557784762378440868306654936525274375272876574616640221170783904343932610955219515668717357572010517998647431748545362550680283192292359190899410383117033532355163806226693223168401550995449551756412908799186179076681795153282694742645235948829483822888384286706867841470172785777828618877385449468250411824579513198936088868829802956564517703978934135648270614429173338924225529367277342011094009074660324363894608280530767627695131283234794289116291810024281542557483101888075218314146631891574013224361696826029328286147676443347057985002843822903148962614781979075693693351728740677602487090004641000102137266610974753824761708717647948741301511870851874352028229563910116560421307698358499865870293090968670805732641309709507367331790151084355608598959140842760068239160754928301253323209632252658846218622806598555386021414042176253385683032543959962667692722212910783291906059775098557307366711611995761064565227624208370750174778172720764076778752355154325435465004552200192472419364813999601382170456332749626838417553298461756529308635751503719191799032903630877123250918634282804585299256453257236378512470006102821932626677665383143443841192283471344878625187088166927867566913544443759464309154112546724914492182751758900268696591857601705098710370185771689588004250554831236857446043796685408032023276886615502589868636684465495222898917497551768546386186441650174839142802539033643587328236393270694090593489815736410429953182949303283650031123135184269363580628018101591342491239135848166837954402627026391336473387957243264299929361243942180979213674017325388529155177353036595594394319194532452473059082224087805314354516441146530190600465886758502910609198990296007783527080345630805651911183055578365418011498656738661921099644654223587988792344618455158887292169325751579921638909133091490196553780517379131574690884695941038924068357392787447651324848047280228521325508724132397930209618285849235627598349316945369524376699648225046964347772162121152659186191587987258979366015115443959905942288013342385564721949272362174241683960502944620762929040061814123237455147065587642010730239828194465919774402116803590385869648595618348279565227519905013227626099535530683468629521669070051097480006545595532386192824562614451674109887512490503763068211867086579757923408730553013790393392037185231216867955973049864026656414075968849783968453340277467247910874567189811947260442959189358047410502841353075966160759969281164854496212438757995218360850142759401019067579776984821819532933611858365143780883045763344092436772006803819584483011146235703229157270572627935242175844838812951832777273798585888372883989511313963767406901092073234986067514165477143087316308129917098757915069872615188703870380403074817572537870469604399655421515062145201650405134733504952905654159319366722762942441401372434713072719728761391978495613934094738074212699566461802204119308315695182481540575275642250171737246477403668577271962795621920023233246403369413400410204559633535318776851333755734437148202356090579328630662298254951608472762563042506751061617024100624191928977503212695256664127134949333962409941127308709435781560811148517096345665206482956114150959601567630923885816942645672139154678650670774893499592956989806084240957198604907318745394524607871036573598009305164101826575280871008063586569886261751654568632196986567012653985964438720689817531217459646257353385201400990117800163615586030222036537289249987966268545339333903538377621621037015421516118744056705420614584094342120881429588347400296196644686330280860251772715398010703386805140170035867911633371390949290381750730028081952284193468304846219645082565226742585156843735452338859631198530252058457364112419018857806325788609279546306956944728027050053228157653894370966978720006080698837592128234093501372017462381228844711798530646526118524317287532543521194063159229650324305130428625624267095067319701808417445886371693397181342699299412415821744888739257705236688290379673889669605133634606669292209524192255606816439889733630568344204019766495894103650527762313418849502350105075828360784273383411068942320397846448623670690476991917664394732947591758913159810364700221194505087710882184510767057090544475585548262090574699374828331128890188142713978128190534879379318126939603576528057133570280483356560768090656519745081742768902351249031095258025639334947035156430834632390629677114560586470391988782265738632833568178836551625850369463381173155367483561466553061334595895517822047810343883455105501306197930999182457879538133011773898598615587530741379540940653760021427243714876654778957052906029586353873776207359002481784154520230482579941753731198388696103709569393721571814769516156190421380929901754206082826926169341052358787776396184729715174851292934741787421477914437525124979053928426293192698313769897949602571829874013510755071925915684807781594736358189933463475155921256584557634507986657772157590035523441927598899295376188505990765909275717011502285201452208284731947241735051503654825038485967935741315170742329798450480246487986061844185902700643844194294670985715023107172861108112512371187200251702809908985379832421934313022119567216879616244124109897160474410288989128475829373685956854090395666389860511835028423755077297379414754632380586019302895288147719136111633251937614212124910322491641534099487568855173162229064800988360403424471975097746046403021760941348929897844957531241188193110323885018882340669898710898729444452824953997150712227044653152249070219212568773821898092239180346099013187969356054205995274823613730426505100005359912080891696406678768432124195626951570503683439117829672116011902945855150034424453596641690240021930042717370926543884920116937664314199199392787139998885833650295149747045173945931562445102915603928776875111795662030832148488957776558434048961684817265180071012206121367108533723137622423018705088656390538243084311526186527770936567649717113621521500895455915601704794804129665591153994057782167625717087387273717438606039365298245548959399712953009411569691215166532443994056790345080327626194112487225843622297890644093159780393402720666129322183651105876888361098006538583080328460312251936175164005972029457554339995778287681180133132784839899768774808305331512367908433204756672882998324599829986354063957935522516781771766021104285496444377539502179666963879389358327834964830015907444987951845613894122674684199600892397238080659423578941129207907064793532338164521404989444067958193885046871340110040671290394355972609109205086704135209999582624231431909656140680754298111742092087788326486029067945852908241133644160684368381789929412906243086756784571974082165899446138259642842800292789156359317958718968217849546758734469427768227159301354816224463626214746640443046269187558557648926581105140747077883722770527902303587832374845819603538875846676181193542458987179342393424507158361937411024890059658574120665711700467361557099459350873406481657309516852685105660969344834795968659498265388910936134550708527629449166003315642939639917736422193891283251228632784887580144840956852086702779667011608933032049769893052686346868750948762556046190968098680685336865268350743552431000303949151762514131592374444175299767876568020283594897069604374534934902628320087898596894072272424854149072442268088756629037314077590680683771468975590328668373261990864985337628815406508978791069985281705758277817842195010110430517861382735430193603397300366368839871686506282344545411495546607229117587403261654621817308189020835815918659036164771498830848001485422654203977478893686109054931298473513987503523782781985680241834101857341307981087071816139727725326184199135067011410082390915569142524007298407602052584236904485756390093801943170505653542985505040302216111048450163005118904053532183022572353341438681452811886227464643815248445568802552790434038980164280531918574116686117309524998013773808153615580955978382925642469922541988626521964995245297882200233124416012675226457780978615059611829353141443173482027679728325822708489838134010491168859623983855280576408745009180368717659762955280314283331221931859436022494460691998297782803542809590760867678436497519251884914453485470232053611558701043276943964398706923266123977513402705949869745104749577667761186467237517674989100370942756257510462467050741430758780283980409017585830914793629039082458036363713799262246596288628536505826294012922877585400353489113272301478460874056495263083319673963713975220927115197505817817343356578061090350564999906158442889856239434459295811909102723943948756058098148571383776508452973896022396027107341037811198891648258370072693170342175245456384446992531146786128710483646160360415040073654358467402075561392922631931631890832768792852332551384168766593229256790023286914120412802626802586089966945890771983501700684695895603366067129227712805400256893489536547883455652738929154873109801551385496732182146154137847641629645174788896064639892131078311460140452900079563180438285608558527124070443533931269722893497341584200225491337601129162354321565413754567058004763829717718966438752678326767818340482263234578859962220118262112533604530888690640896152983177403334929005951048150205494706578696182321564175330800964901300557026900907876432710105755304464889879705114442271013086510364938687238215295244894910985871297179774333503774440061813860968249851555118270873541599094885759266565648721583959203966370424304841641429535308159261704856419945212519821385811285190964086043913289185078997019469635457178785377609114317500448870272483724272721353899871048771540656441357949562859849127625287564190322406114253514010097869671644049396080697316837010679296250851596314687747273887290242196329632047869531901268336106527564960531161326800494237421997026608367750774138089614354122879653857113849164587010844275023450605628259154785307002518810596439436612565163732864785847144660840753131963397705726112478891232855287036998696729484364131662219768802678306434354286180437558129901929358637088761092588539227344488496266684387949500607905672762849330854491735014768418822968602723966093220632540036737090583476816433594411034511332005766995573011009233918430311499048124513997658018678642702461080753722806528673223260327951269311387413855171069535995441923419978812222574323623742878757419558583334572244466912884818418545730036361013951800805371764166946866851137765750066090579439073592419814416330207729165171925466390359427414680520308247795984609563157577570299353680678359936754075774887028242855919019184657837339387059765110475553193721739457042841079796252340182636442670079971328353125467205206548722813963398864069099146162946220357617252109622357122292965771074506874226111181842377754446913814947869796235654267623568862088820376692813426208811147831049529956213923685564181909994303892356860631677436917801779938082097482455538981117376262036721638418196491550697487217516173250417680208479276264605242233859424297642955652039236362483878577371733379155622394970619276554609349050118762524084290379240560992310010010334731172695703177803913046824974175608062747445697605733995410770146418716836114839890603879729349877687696820524297803696701173678008384014671582057347761718016980823214920307568061489087130231824033578175749527530074945298269565968520091881207001453859360796626767561557359418778220550859251631346303754933282744226202575980417858212741477476296877297137823596796061975998799312685451509664516424326565034436670178631786239705030870261229818522538035861002991654551534542286267201915130164271603780454604761264768958122496703831386065184965413231601337230169686449347561343102241264367437711692710314393503429498708469010749039880598405318156412298037427717326922060153913928134799612374049051736716455777510159787209924381923633177369800975500222517827756290388673161972382623381576249618244995460178934004010840625578498635947722759369188602760678994877380875207324357951907140906771121194807287271149178317731010449413935519419672393845758615019155165142873584585868858753149004825893116785378977837722174366690584736522160838763700239907398145435174991021598197679339432291194772045351107423610306549015925313264084066549152593649933694991791595400561460921980803918328875479685044035626784401614712552979365633568797146616828306253255172718986580043085302339243259251498107676503592572278433990799407520166245109035076203551878910411442882833281905548805650240799425047747875884412334295812795022279615896429906154795317676189280484613975841340673153283339120137499852372916554641388369353247556925546380494271386129914080121709611817542475501818266063589249175194991965909921584332537493815483096204580101458123945738099554363242690157341555528920930788003268777614186149151825537281424214306333220630188819179583305106865786132390729863558806866952897148538193609818574854074867847333337637566588483061260895588136960676066389206570084876392057061259620766131945328732763431094209597663861131351019968815450342504167154666779366007022980059552647261174344211906198947151860603836148651999361513661352687907758079986073155715930075439535490849500349494904732766723246980920875084808194770715925097271955596524249255308869441172124416032431341743034746228797112742528902028607564000261859074201262244428630687067198950375378044564327904303039909314340312342885977613698659453683890603776599821199154489875613161745471134197581500346014062297872857544520756923613658283969079401070814081098894651735091158482462460577058912926635207390238512612602559964660404921259489923815619287635109820153658343156729776316579539631115455756000324870330800653055567459170938467852715765001929656155955580770678014982877622177288112850892216116445428303111850509296672282427085230173168767839328009085008398847285130396087693536746096966515641736602535230320811977569996583545490199739385772755662112178814778026839765035481899677991506735025108923399433151159509396333250685916802339332773430127094331170139829881594843811092570047179078781435404785013601857572803013897250333688758008635228867999866115238725345624668878663695577757169996314774220478303545229031563273942781156639620511066300381166857272466278628712409614641064596402410178748747579627126448545980460871865169973333293510881931822783914175636029563744052040077151663195616081803923141345051460487382511509169644080499334919933496316574048317719731545867941319518831244071995669358914887299237266793238034921849374089414684319891379532181016987797159550159271331722908090382470527211573135957656720175626434607096859485210298503299760322519037331230819203944827008904489694838371888812405914503379277349334551950026352729526507069837043523112393133349923420950852455889604878837305917137622716979602434420363774853915728233141061802256114796910217985502830627634211149840219351275503013097441760910791128478779111209630351124652369560453255147229436528911584250810347453391004978301250615205796337307905118795733290752569109914327932962375016934511740333987904806539034396119774277020776446608151263629929465023978348780586966042712735704011842286095072172495216756670376780869316446146204578881413276466153663638457308173671876099011447490983288175606229820229953160126448351907226920008168496552266605844310458377532339540875015785117867700725970358910120068461921218332188062731826815088187431037460438094081596202374191237694203495398762824749884235388363853949433292282615348537775426432056118978524892177595632531255617862962819246416518813197625097296332904522726698857042507407058817337862217923029644760362905845347171401116736957880130175626955313266910912769079409598164860326457199464730312305325726185555086966439099583376172067673495525549097469781443198695808020473870306816481031289072929015588656691652850280122286516622981858035864638765403428295998548689523683328906025235596821090557090301769774809755063828063596802652470288248449467926160775556975091001901532816482536104010847713998868699334227195871424651122632697058951467762425112292555888383683344754070067513804340641931185755369891875571628816507555091060396276549012479720072664594780871235566838889322036196143936972660037339068351531857079058859744552186701205224263741134031735962467726338868376521368362915454924515463190769118399625887720389396002460410379379364948779011936626284713797046704156105206902309401756158873067663887085947745661436482413070042145415432678820323442759908769770127341590343064484119662366366784662317446582208722187204063796664896635653542293262888428809132702653207849201411861230897017807292427206093526215152702665297970355079756978009760025574107383227739651030465893808211635928216554837118368766511890681500356301419864420998216640508562890764448922081494288990317494129644504272465516458211925168828096103397695578611454358488355113811800260813780637159344467803447498595245901893728483283968550402778063199677605949116706363746569318646139698125383438327159169801603988381491066489340340352014004570423134923928904737865533359232494756225760435826686450610224516802126146861290200740509535744031325487941537768750492984487304437511595484884397487523694171361467138634303610334812570405829966266819916445497026804417778049632092085416111789716851331788348047242761874108949232712773642750365159380422431068159580120296755852689616987739577469430914860370935749361601402907883411929380305265123148060217250440979539086194904930480844925120458974731331149596395960785044903908146708723903080723173115627591591213550875868637373912981419515346683204494059365662279758444097727718171439427205788311408964270097066818655942861880850188850722164037331590847496921481542200672036712205064921026380093485065775916835134460791182884994579505935206077868713613832408558200962770998977083655536596230145277359960272042229623150313693707367905972588304983097536839001776778005063813881823550577333487211605999360014007300836004146515913758885449820238605126909193891176148458496357272353961099147432631230219904738342892391120686176305746523767361678135737847269253994920657682501825819372256885908775600059087027401472663151085137978329816330693478034295290786307324991640192494763257760738889760206301956907431700271534726628801311237417547585277931519001469523847348981605587332932075578108006655764057621412052819797517989410968659957977088053673849379546942341584230883249306928628875405652050832973870425180698443101125703257942137385203167058162258192271026365660661503187231722635087784948239479132337015242761633654746167201166591727133785223108242542280314042682409978357023875218648323639179570135767456378491904379501617353263990998239493253207100650829868213645055116271777874160776592945402797420861147357625740876446195754302846800724743421733330949898611708310203300676039350917980754127607985280048350960362385430407278446590163600957084083756148544115807896965096601230501784596631657802353087785909892117547460298150568667503397412769299815240715163692417315163173573601154844946682776576561177333150075450002030529446315537852807957212564768629379817059860754039754537004872552159680744266282627321701768570728040396033035780863079069682417056512836682551550169655501281551753841575193503443021313756838447717529353876990838226941366182365876683097768608246762384826690351500759734344839364641826595137234252904792817131497413640574653252942324565872928558334220644135340929188872879145183976678518411619146534405633200187016791673369768183584455453009922389508049958249021843089063836157057815679844778608120664569671516312120386899424741503050224008920474773694226794179992593041840720113607754047762197557760451260303794430967651396650912404285218096597476107949629435227101028514770464900472926455520989113968082493360373467283047025459227491656448925897133188644034082008687106616792752389462550437742086891715887283406507815707669185661067713398724889096087359805588093749986379528532461038464115446989251317216764323588747024536828435094113661530854116218258886370182669697956770061176101975535380158443959481204292233189546027411214820588898751342219570249009585740978048186060126554932795895079708539869786451940111659657375065155883501158852311876444241687201184203093513289639154477667996789181434461822243120420991236473801971015111901477404672512476357851346277173969456462786421548647426701051646136805851970348448927540356725014105934754714149064482993665518152680739956023898574365481657627776533923951442813136541260962880449389781879866545402381182458231445072495206450068788445232390134139335645542261469767616737121097860370406247251651096348864129519248742125840441473188741402247101922604322916770953122425128648275900633589708455889887227210363065858099003051273855907236034759859009742722525248828885643190661243844343563134064889438174361869956677391643359377966686634987956424561876377298149664093280011936048302427222822916276516302875616527648999074724284858139209512416119085593152340947457758435658135238448470609983020228308970295005834232901935340873696369992651570110335272453523391505881515763531659314083845456866093351110330610463947847318176488922446931163563603073906534314129115273926501596206546585745603851647582397751218874345042713174627770764940388188025212382706688726045812650341318873088671328630219386086960398397812086641983659549932434374055842405577597167208363200215492228079955827051037936223937812247148380875301004021570231904341036062336852206194855102546283555352707891114338271610070925317888694853865805267388949753523461018023949555667405560910124654444383625009101184204791868369383398665343515524070521281449066027457275933104060567691216847709421114323755681283296350088311166105224694090794271283957756485619746960494834373015478651795906270668763646167902083954903238711967053282632223870305632778188055294236854224436786268978066768378927624867726393280981739477393945185960645077749921051896564943951347422776218353371113162970967456790127459293836389270341397228902076536518786959118356503529974032565257814397538109999808547957598930864737590172573770641812580023259855996877643948728642916865603983964551797670876878515901674555204806725830679435740539079331093120791942262596129112479606071379327101213040586999276631416367601452159581920154416460394572409473345238802280111588473170022504994803844289084863604341386589651459790649239033462187848977300103828642377805289590365702222575499881181809453430607793641046849360723857144054279513206154202545106048885439828686084257164872527897116320384403106487318032094630815043682451903364329171086621179528887236646178455280898574248507766484881892169879522480297000726689642706771631019306379672863105517214508921744184829827474019848673556746913379148781341539045826696166566788218718460587283435128109022288553145009675116566523679352117522941479710640115903485063588884897310034920318185062807993649837210125264791351486216534365408205935976728544303234109758586929909171318069862570171961478683042522702768357383348933965845291903718444381055608569181065501034497972859481131103159783959381537385711854746288810668717126691944065913338964182862187245788385586164977040716425454938506008321772955830026276801627029259199035679524309475118333581719173027233243526933509860041960469720004191681497646756439642299108864738440295659226781931481149898712267547964259542946715782644217161852428544111148733358047235939492158500532941363605228945605975791761676193732407368110325141720799363312697606972605048993071707153749871211970272954107483711027351846410347032105781419345521550699374571559336821086952716599135180214171042903889494772346664610578453865929847925341122127232752077319116054954080221980085939903899977957727898356357039096916876531565018888198631916526714440880645379257916626576525084259057608619514222551053106351699182850818806968682490866994753610756251378233023000662618906692127426146485854186651704402343535860515435559446696341013113617006320114244204985437948990034843914342045915649240443984014949743195695628272153604422877861004161056952143975645254607904421659079424263772664855855303808708452184120928236068671257226735336405062711805216796132553444183772593149974578598384459157687465718042786568163931065703229607102926901804944056461280159415039736383242264797538328887068762801753177585415731538579110916531479341417871000267804037035090398123908651544468009742116871180407404008783207995747609732696211665239288150107679069761163268525691823137475549089334234290209072523053257887304256346658583987565518501093379050222983508569643422214876270155268468688959174921220853660509761753284382204476470971677550305478634659952325126719224219068271068394337288096085577934391239738316699166697594336229252590477298998241553575417548013215436058979835139541666963203991861698605491384572922181990469753672221019005583722752209024360668160705714922772613745483315028375186474395207177550037330336411212689307155612595904818769333202370381734501806142672146305111660462755130070033781220767081311054477851313584344744026562976874117175038459096109140357251171036491409149372163235162191272233418384761592154445591160385990225792157546303531819753716162496331510678775243404426872596783971005821252286412836734679019903928749065769701039770409875353833306892040390521197872308348275916341484852000651377994359886115208618907553767914260473108489812388520388437963565667410471523083063145833129427497859977768092125257410800850780209950517844784848516351696178558752102329597349610236070301103964413774529773939696033853027207036102421584083019583747793426558703897570380628069824602729399586477365077660097469478251773102913906408206352808970380727472096369688754047830289610992473438618180072486252982064704962833193955994017611926393106682481975861226901180344976191505987377085676091868028297445664716673975481020623869825314712652427839721328162196083429609101731993845305370888196608409541111649029606133912157112317460929619663456692626865250046543433067371470617781005318929511857681857939042735188910263316442052810748511540951402209450078909252156126415161774954356276064981306672344576219762743788239010939944334300954133666208033774529107452536300403781879357383320909117226261094110881232154480494331561968263710829692458872273556816346928658420522544908043630392890027415039723621084671080579630498539874820978007782840622773614532019029919147912215203197666249136560227931446193945190154745334338005055270302024682256218148912674609208183990332964961144618635663449715651759431844459527597693584509931808006950443906209618431628314899644511083718198944315263781329298526134536423850692106262310572335040156275271524297067929749808707729933641211587280565674094560569115618608165284848181625359189928522196895073987076186199156722168794640927830154198699276249218490718320261798707106070483174661810457391049453266520061297948025033905887073977046603281940436203601248590851332386115609429534145381420001637165447492069155643140234585529054615523932507480789162440856255031484730256267406945722341592311145323868237940542783390680619548423255170671168697456231486306880653140923454611448203837006520758726541790820054005592506080542105170248398924769165290904951627240729367390019567576497650388538006394225393919462376046811702660882929339799864888008565175250963607067081252592665550872908784077297723447933953494248921887124092108928924518173349365102357586843510171355923017117639234018804931742899439415315828703260256113786186892866742297946191241865691183186756312920374524343628841091016138030180253135778718185081689335566749597758691130170524003469843963936197965658475683809556727349155830584608954256907153464281222295788973341055877668793477764839302101734691920644705622097337447915567152531769784579239060926926550206888554873556289714412981556645182575053970441423828544874041435177132666834118311100810133940608626774486887655002544473611092356443889314270948160011737188526442991514463952588764963215882825126989764954934529611527786988614252162737784125162072556676304940709998344610680582858285282059039052148320695332679182437491552729068256356629311890094272706662140705218259218189187684635515997214087351452522766100596826525087498429337235557048126440565170575696625474567261922323696594109983439080904394520225080567671173132647508922766446960217851015997502264983155780374608921014400987136968521227968199139724944504929093713689811708254615270084763201048449321168336992111625087617033421662857360026022984505521015482703555840657275467818273745457327870786669781743477601063456606519250472767448266056462150679936580005560565973988354905967250225214192639190082504129686170591919166837255661905498355906747460002247651468590212844772464981479282661103364925024658623966007335625159841924664963547569261824436848308444272505820807442390335690755667698722285612189908029842929800658728550893129935439940593300890170312479867337194223505745896783349831355491210515471041369283799757399493422752641035901670201252623436774646131617449883387004054985741839392507055064432069544292934706995963544954265460179822005680565715697202262490701839414802792367078870085648857712199758290528808184188582468668050930239827590559549298991516668014922729089951173649324029724873809561530335775180292404753001890085349133288873595548311611250769935629746749085523466214247696078459451871223434098456206424955003794440257432938011659784543471817261709761780794304089316760913402440243056052036403193716911018739967064563499833576562587677519883485524292700691207788264452471602417435422104226272844776653265275920184431530692181459910049001714833569795682994042790125713886860771263216406405095362494278233523299193958783149645399695266891417933766635868099157776022949341644512458853878028078789814251312659831240981695727567596929456267065927686031069684986493112819607338282966570616172513479977709227837553662607995215289321442300726430246198389204485724140581952851240368624462049524566608092315903031353883284777106959695266205231528085121815499890841298602591971353492293164904644383318228883251727149606725370874152324851183671875831575797963894671456523761582665078013768841006057376566570967417229212862252350135417872703371325060404151791638558895454147274043676635759003864671098264128631527640568797748169007145044093053628294232477378008785740797319034341115895617380555742537193797110843171316659312309096672599858520604861960353110472848077662972595603702378564480669462882375867906962646047226798744634813439329676440826084720860260678903418431610820982962542338712135422815146520242608997736874392078408040865067463709884031316490219799036244011659920638769273831937793166377763766259766679277281143174333937299614908180600849642566738449948169200048563307570584184675377712572885906094125641690913634250501954191255115073355954250971196081370742088631691804086549264518364899607190408668890296800881050356050504139340237800357824983189298547132704632381849930250848129182321659806826174407000034545295976851699506798342033356041743694732216015894169422943986403763375737195680485917962359543928746182193920837990770316709498334212606695032384216975145755846713240800329065168638235304649916637904519876230242635638615603173458109762790315603582472813784884025587495668856070594720371510583254403053233304134756892123828981416849174692675606483623451879373644022762470887819689117547124644874415450836099041419433000840650119952221422488648999613908736684380388021275685412906589651458948730236456632650490463340135240793183108580524328126107213954315535320031503228988626636119755363273605308150414379982077140875490929398074647269464539864367175403461294026949109739522097071925209115610574964675931938660960116985743384616873489324174895332653044793423716324550033996943854331107306981872162954226952285069255370700264478140012584340920631944965265786433042075712799024654733335190217771706797321652943511297602788876926756698602914085612254785211760117378009219819183559317774536044347360725948535479044850163594236816941633928916329582109567285326496554865035918114637909432867666969203262718737026719983166806139485128745978239387152450352421948646065136041565769935455254239268943944656059332784067824396062193198608579092783609854444932127307931784846653633455903688628370110142841448746267670825217597605395531122681788794770471375005804693824580759105593403373386825081638143028350361907980035330139148677700067063828892229074933521445405408875162737701735411874564804008048224144269827461312538878572850407034149069005959933592685797030344282511047984592656944122934767230852144888694280776853468560629010740989095355716943115085143678216045619426341703904576202179337046936717967418178509169318335397495434341996787973854351871834281804753202963385225744520455505682224295990603356924484124539912516103174772678218231383862712852574433968473659528480211841102964092648603973311349346002476307590642007854043526525107719158963612297138745122447451409356973298404342645802402015131300140300091562718987347111282443468933689637103871144298937162199709916495014028945122874745814519827301633411747080176093360756505926260461951129198457064181935865054825620422644013226411462961575979493323108690962640653196342188654679574696794203352676551238197294114655196463213294908361447953282403475335538122387774593592887024915513317424234159140786604157038064385422422132381758930373359938745387237138097192468195171687396235268626406905090960584933499379007294833605178326924327641619306815631175200094701706252384650162340042888156265066476922262776342052073471918574052270892466213026819452731475487801569479233264594743241804800465752518781582791655322606342698587712752224559965367343251859521455874484192823482213107615878060088443946412290518438459045467455339047744939686943633874115688743276293873545485033911380674672914668010085952956200233937996412465097849000138594131329806121094810947722481078059926318184747986478872197248109307501130678837209256427511949411196295334988074926092979177848828297826634020405341242287715631599583588737272436907994171740576016360835266225921790373542630351344093992181542474512912750357726778623529739842328657505355739827992974389631389499348167953767960702768693364973965905594112708317218676532945622823004514740896306349488333335000876737773291859651753044517320180915951629821137656527375552940726768195304716407449365767326903992833855270623005773208267422055761953987902059105124261146778726563119409335864770919534221454728925926230533350089633231921110806239788291115179550603897023802598018501276675203966585814835625100575890105990260110879349830295672668788489932959235357768656183565421598103273388650989323505397392627344769728727776497242297626615697887682936887962133290890963345657013730041081335719433068842786785217174313693866106149564558824162903352342587067361380861596547564502121941983664782762624760812926028454370653477359666888366603668807712562356164529130378775374452965067868451426038092253341462540507779370630544593769955732028378550765119278008188021636139622447800567432651623533719278224660544865317517264764752442794802458103965683094674085972539823966734800599412408834294427593984816628583395849707281394539980263371172070513850733828015818940125804301470574652830371161064323247641144684992568123744469940659896249596481959111975483222742365994982446490601109810208448483614204299240398761023421893205072047738404379892924612901261295344984146042060764796400886759544843773683255878445084282302602666055016709689886931960675177638567373209519261093840075808939155221995704512955794084173013514992860296008425000845837454420872639513379967762357007229631118998660609087149772905033843456929200659819243030362373993486031002546099387712331165880674258060438546566239029972663992673974235873156117349858150789132506862780435259121657330000304640248142793913384642002939985631070528219614897305101491669639182055493879573035437276279965442127062716102223238633348719836089043050612163178544003803859213271808422177980127845564359913050991867878988965833542187696845884264474118097003121196257594007964353852740308877603734947910986309331493262001071342120474432382861118917315702346114601164977889547917370480282331657293342132058166887028816033774926075732096146784488875211263740662906487354294025678757874033680345401301346223084610140319241062205834704947560354924071367825174957279222981433615348262478485174757185743931394565753950263280774710923120996314149577438605162372816848165572566585965622444595364710774567351255013711366731753314411931015268160583193772505306570406085222929012888731856284474556131216902540011681102764841268594601082347341624043158830835396261336281657136275423760739724297375060712942092132772758094586727465983161436466483274082807763137050549851269366289415955645257316860106039983277706135000750052797431422217989101917123896917918884010534584753031636121286760710695698835100734526890085419921284257626059093666867550017305961904177596496265712937602692675708093561706145713665230151192253809940718216346126717089346318632689116951620830935690608141565785770240192715322377335766104080720972824867991358403822777103478252291588588969500749987618330599843620343771257788198283720304869922100994015428387097973903702277828990186423588315167254292022809628044907888706271018488615590155849098854948367904358476135411564109332745092385828492824915554403820079670910007663169427206610169741793389623692433506417763782267107397496178813798039326869442589379943510839362918003929443393586350474712108421948035929042455423057984092732554045277817428981007297956934470195553168273208085302589027615454955207883361496843852752808563566093478348842134357039918525376124404889495520278881152615047140623618506739430724216607702862099638694224156973755840257583097206648649553788181370448399619925279902211716533173198498084879567359815856907327429045644973256526387836270064551768987632877999435608846677891698115398356234406074695261976739039896736451202176482724908102656155237015301968686123538940454093780800246428332596766409848165523054917835451412284204783016962475798731281263536844084044514476463118114008368161374853047242764876724691946202824354019075390334662024141286527200275815905550308543899796854011539949176909866890838861505934686205403636150637979753672703144706453893810772431932356392522053962694112320084352535789178766389573145593486388765730555515415066335374283868041809489914901531662698794697900377694254844207051935551753583286576694461677474932007091377044412825414967522792749889475439411707770252960020535741055991111899933389520272121118518669571273002442671162887698606889417942740043366530818665198257893590592164228863452104493922639290275912814825628234628302040972457242863725804431335111682736746470157829247964806138726140196351819529797819888119830587541381457327252463264821265819835030961740683273112547371952675585327296806434215448629147366254912133386581000293708581000779778655008814970780982996138092106846281304142431599523735156460507024298685525495191221167396944700545343438193035337921758154626110436335836577933119905189233644658302911376347429961283310427144884784147345574371303455798192487821649311166903166564114147702073139566351466920987215166905112004991674725234428095067361176251022313208909218585762546142386238009687948483103876984505626855065291386348791164737912409244379867515049354821203850394602886798992324813659759321177035959413464948663467188974595591214525091396105645369388787394772858866539000000719467687148964737245386666280189903078516151226553333635696030220795582026090688958953313358848875216271606687852752172307648954732087516789170643547809373074063679122080944919015467530712954034441063738964346865273117784432790666547369153518228405747995607336023842969078637385354748463881105967490548866985874801829943740722943611904729623935027898894626943872913024996714934861546434548157253500839659780120506131152742659673966242656323470958100983707487529126130492489613152023270821824399949376146696874213298690138120127291548527428950363345699385060840701804699481007941615295955703486797303599184402268486940591948825074794122569396940988291820283665910457700410955326464310269600155188829847580461709563281712449254686933208018562775144478967955713429016623145711926421873039052436580378954644458076078506810020476490096487039770410622097935357503595461073436658006092161434051247859629718568729761140062984189920257495821239233327299860952174720790251032267735500405746600252034739958990125408111111312616189083613426752726870543906432993836719062747594498384456990368784862670602505005358843578188433885121147986396395728881259578287592560381565772896291963286835299016910732329711865770395824429556004359200873820858514635996232418309082217887426107956369863512043016654508201555223239491650904483851183069054575647072248700371763701988780217138104900828382221376055923189592630305307887231648430027492905635474600247124004404757019754147966594308285039973376005641503155967340223862022360659327308196821629014347384680944038081126088942367078902441978118662947038002335416538995411674820492080060053862665147741339727949132466855524312967713149447829287143150715391179885923570792052588126431743565417850708749267387742106111529749706460053363004484003301564629507093026192364654533730760263997807398776168354017845566761989381475409135926376056339539624780114707799900247815425292497599449556736079355833428054160126026142905020873778678294516490024568946098080078030925780752242997133734174210796826213838773516810760686222833930794338352265664304853006906847455403069144183065153849797339234395457872573220397854764678585776482467353746764864222905751086257642520573186780215480293317534343284637742649210530736309989537009013033522818366735864401208645927538234389084943630326267603529973573139121435097453412021531914391071993325762151702213524297238134061330849495116281592279330991935573558575190492961361586929226082516157258316071777796656744762424889622270806371205347913055696883886449992076615393611663915396432971726108372099459819531067520220392410364114956743965138813483772454591492806951604037004671480742170002393244975149103312646748145784592162179259282680633593177240440019807605124859243323937087204176716882226315193945698463465680495437397076576321577250666080729967348775189340446371800149853813691428482030137012235924801811062643872521997969049801929999959008755758809888476089556645297015744962504137767479926281139369540332590388327693635384294995598919806843441808132100886008986723293030100183271306342534060996897381703674862615667523035650810498203025409477009474999878928376718003682328713163525633426015758401013062121724719414803650808573001980121595320060078172221643275797175222105789748775860443474388634460413355518646206153330787817242290389303562501886018914382256761821429644260428364028497952462587541537564430341904312583232133399879097787111977910152347938202572486832248442744663063711891006999505703040598591367350836951184579520358915390381711493190295940437243046862808190306502895892851107504114951045480669499955774257549528972998467069729608204359568028376384248650226759494921693706656316380025333095728887753470012209768839516940934668911110452570237706680161244891154921093614517843291680626913293754022257398748748902859333314319018350665781987323758245535721770017101181059509251172261159412201976933005211986865772412071260473118635118237076841628551189030963711003531908087432898008650223452422186663449039911021753396175812711767924633532626255420034604748499395297960417260052613680470269673258795024919416466903204006738121483123375373855337514485944873318305500931154198248230435586163571996707842816238285498668388897621626918155156376100917296603021551998290999136307879567243786552600823117109466843866587270196469601434181545935225503589333196481810849946692285310194193021747192088623107642734634657561064108094595841664103251305712072277488783065421272187296715432449343129811285372118097649612492490594464186541893267954802938060021974655575751517594168674355728663458743279083964421099860493056855488795650637469226324272555872399437531744566872997933920957049458723832147562793975977012541602331323930109728419748634731473191933497904789199322330764113489726746337618580906227444824627228047012217111077483196790708695516417420694377428543536477127216010969151660340149349652883986348859990169470786181204666986665986303852144483762317133469707199144325726426097080362765767519344093848567288742545404132459215727236804196355703476442470151912332413064075076777333173530776091276499193015303779550522330037946369346109046225498371840129762796908031400061109356568955880689846552872602009749506059261225689567310142736824288937619570247965688002073675529087076870819376464830529430377500188417419516210623822924439020588742663494229280099002241746029863781745921841865933276752148169942528368945190612654018586579052039137490062089089595137818100489609834916220353815510585874753746138915201066104133499100341874246453894784894559042153974929392283593038131667365731988056115400437853632813719307248924942072389316150669408184951039815930107998362124879856976902769396006973088443593410652676194257582940373962764273274455830275318548526757164393948749705582098216496451532339119223604938024521803917477293357297768936171403091586016104083725026346537554785594647324154876224876816029952478003039331769462934537703034076058225337985206634583932812165679181410775445711125659240987941184012761182192891964900088105401065221241404356300449899021441936017327884422150370357652550657480032553873822233908200046175674980814956763269418912964604037194766328091762790835774374197304107865228177449645905280675588494212824477256101957583316863303937127830117515217651802342764228340431007445600313650601305430946260019669796789186623277993142528197256055934670685086880301088782641715255962367116106275566509410839304127651005297438897319071882060155014452674437281341834593780978861115039687181235433866474104101548231558612843036032215674907132868677596481997321954180334783326046391508539301407941231924912949792863630684119607391697773751511383601331469187165457793173179683929071987540804976235188043076660805129960869601908685090646250591682138599216475397129718777911583764592033624864745083310739715490318644419161146163041318566125861814541858987376849534610522439495257108760067609838263744779439180568988745221145569389175370419592571946471190306486774763356893256734836577552938466018594866585375835248517052143878648579400412776273027600209711595500872010256831096910887349711992698214241986426883341184881521556496379112562411120009147931367370350429061455519127069163489981854645022551270989096454277141289779581685188572546964404404825260660626889330188769127355826702484327560336926963127474792428903602763910912425363260214379325869153369067311427495715940362292574140608114077336619157645053780432408022399146715785792940868621894017535609309988108173743899915612717126822321034703910290808757233773001446830888813756666728984305798602813748778659517295502044634634025999764672357181793798823735893151618424790654924792342510555656970509251891758688575287242617130674411245787690938603612938475572651503027299073763173500196241786400749234246981028433112303000566538348137039889056788375651374299333559818429961193380352884455922750454690157456874669239476453496897379785583820275623246049609873677377637711812097951765046308323796520556387313765781340755590578283640392903640676801986777405474180435936898592191916515143865653050866522541610015650517861754858763492164493916695087385760674657238631119868414016208742621956009113383279655852922733093322663031614220856288768984513260431825311320371621568261124623695368519211201492137987189409752430232227496181456177440670422738288694292054938643122185756859157000792744892778590050466330996395134036572797333243805154326022085397510831603199626767936720936682791621306304689796153041666276672236963372669804623580463496529218875206159732382473897021336350458083508187450097346174568075566383475400324293839636635913691080296841317608582422224204113965193375326127424677646238443290828050495912523842027544348714852180565317803552144872884185531213572724985128139275575070930205876213410738919107925557689196860173152837605307740445926038091840069747029205001207331666299344017187731515003877347084653501989393461653253134436252721148726325193809072950466218263601533037565104904968414888143170584554178395045451756010362820183487663991431349118985871654871884322560945206743564979069904428664410100376631172539194408720235402173263158432665630690058234082163225882737774306747162711141810305393985171098301469415612604825032621405176635379779638470224974687271057338308073595265806034354179223654414141851732832357488979657212009751407453991604346094412627060746345232791110506915039346398469354675699576111495429753291233815269429350700093566447982286378747160504742712712061688591091745165789889934016697925799363516401955732308003224376164633040680234945239559462509372543020820024906532440136121295030659699695697582718110193181705870415090603832655410058000446005452480940053245947976766606195569482373048540810802883048487806879038446796914742924860783502367638698102550515271652628045760983123165646894284456248182400566321739040134156130435281707138766658413714460595960721453692307119449139174010682447100126300830260240889109589698457040961036301521618928098065873556313549059274831164635328018187316213958249128109974058185414298110989257858083186191000072142208072020461266516869830226442830398339253803379614715387825995269515849731248162049971660749445285579404306042024281071986580951283271117219908610456298726898045750990158645156724815646473217163969810197461822607480555415166399610648039174258983991553923224609721944200774610294597909167416959845857577024031399326877024317702958388283749679114371457467963201254562861884335144592154930106342385731349637695078285194163077198113628924434763310236468561693695004629612394334216605930465404834636977712772069021396402219731108802164713493763608283654099956226161353316577532475443865408895696807717683670157411206337688489462003392528242788565109721861123433839326716814787817865811001113414942172712830498831281613511182293531675736445472987701470948729290590910349263723801622377629385674125114776966876813279016727993135688613460061949316307765510345028506404715195837119141968783696813095835433408741717097888995811962794954686293545340716360737267900471934546825267741603946820676479583773311891514336961021449187589316795875332248722102900486177707377099060301365212977850822838276610045494509493813242767647461327855055518578567699331819801019677373402385790810923412704831536030269589277903435010724557698925072258777202884175115678235410975389742533564651334967748337291177626902750551883871822298513867917671062871170056749374756723739627214313491120158473634504043515434429717650965062755543264433368341270800992079056942900476275487812145725403038909383005567863951806799421559484665974286828315265914144109547857080270709073819542775558686575838819860587984795556542997950405515798876813155561866198632421119654664898164707277741582358415229083210522803758272312384705585144211184045548610681681441771712087544952499306093823651103835006472970468628135127373931851775452183593483400363803174824631616879377868261768420290936906582823898866821541840173540746219845653859311451099592704340491411524363053799072108096189899447933627908254653644232051850857690289557475627991560827430619582815465854067999736372385297843958952535568669825207191751262468695089757328828503995335582790271564220392574302179530311889113670503749072090606500131317670438770464086753042339802297032678288079626288787562066769666267438036900604213922006563851742439691195389155079708865421481414473474647916922922596078514572573464846515887812627788739750498468896725864125409954553080322431823515007561632999293676445065494562511308227737434450326680468020702397302325631935906481318257979476863568984078696887981480156791872745264572422658792024454204640565369410143820224790893681861295954752106805083556760459918539904266675889613869260549069151359222008403675309429234019850390759903797650254754501269580473590406908279511188946326524215313586209829716415598323486810137077731452168380852367640037510850982011728798004982349641586470254019738685126667248145133710962415794310954429659021020087797770002226466696266404654092247503014447326338164744066077899276394679643653907496915258436475884628382846556315733542411719327965776738062891367002926276148591245436382042285408677334879540642682694654028911424855063533163922795224685880213906566628576566858197766914907785575171784089684451388381877847447493983579205651799485707080493625359896460194576775066035974407596283279494134409169555453022731109152012011962598601372645175472568614507428253220378720846461666011617406239181820189203508115709759368600203397341494095832282323155765676640794380014444286913674277306691629400863298268090543852219627038283427388482531479898599233260412279324621323238039491685643729057227572336094338247351883481396630117285461431743664292580879086970451281739130515889293575638440089698533697730902595189294746672330585861117159242691751572900058984890878842085825516907647675300055096128282450620886391137965061830730643871984809093770329002445933306264503721336974895578486246243996401263303134065947345475865836256460761607246920100031603380055612474492434861572238976907926417870090177763825048345526764334182907308666239785865983996518626333236176647602633934775784809052749175530080594173528650284495813065936621343245924673148926659855234898721834240862206041132922577911549651662208547290442979989333547772134782283074771905241006888751935946466054035361056173785918360997227342051485106763571438029047299003853610154071606952898083588249922771009007078722433013260266145859448880323859175362065922200081925731965516908178448105158616069186070380108748900757983401734428315114988163430299698462373292617222865467411144525735542074495384940538274801885731076403298464272393285105789915011062497020520121600523767282057938988362923427412171061769582816140153434085677142452940492904947185018757907390878633162987804256627431545589937093617778690346433449816003143785600716622226772010359669230334443988653805627108904972857639265813039769913501666006115626592914517799631970128824975529970277512097401341147468637154298739195325167691569691822073000050429295901168018215409960685173430164091323021839672655799655428248774612171239025036035825632104382314032678799673917290422155527138000386880513636239921932947191851409041267674200963644650189229971297243747339609600226627701891250307745951937209144730550986947723733422629634471978162330148851733540245251758388744024286162946778267525972862444098307291889243135407179961407791295903130343548812321322896059504032144490078800915071237604507079727396031102328032997160982385231301364599602239689038787729233735337653379888071222105360749902203398054569235369318661721228925737800820066587774368878177174990416349341235985585788059514250838007025026571654590356804925631967228872442552378065192426089237537184714978084389092213268389465155671909863165126050336711060177900796806101658566276936226244219657678938257906169128906410613216516003483884651555462688942325088722436448894839089549967165760229658879432375181647104692941150386641644778668141122918826753128135918441133907050340695369698706319019680544362658879137185563239256541365708869514143911890186833200085952133820035553273178389683879157288711056953358998272339385141494439750854565681309611420794420082143803510518897467576357927124199787922660807168530425272602734164262476491711595312012501960308007283851310575061317710914335999945109013308632440380007931112775534251679268192864840979336950045118884553656151403556791519283160352374890006936999156803782709433523189329227277269478879708642375218810681381786324994158036783748423642273690356906440834725013070679689602751585213963703347503398962984075371174485256139823514878896404975433880389207673124906708031364257124679143552881361221966461898379022879762535898018497304351237702103296447401498422050338924846157653503243800716160810676677517402202240773533218445753765808042899474252729197251738931428821747484494504100089014959275689714884962242978593899482803280013747761378447644482894898501293696463033890677865018003099768467680320308797296184015461710238212263697158320295034315722000382503856138631189059413878141323449462902482925669136379167299632602331152964053752092186891169475253608793742968672672679356030968132870252644351533835852001457831130405160239139226579307828571087964906465869720946898855908796011068558441008303236732613679770680829832318333900431755989033042067038744259827517909225866578417282211687656204005356511568159688157245484924176096680150017112899021368776521883225765565614594916372181464571085045787174044285317241586314649244477080261703443249621920438986830020405170795704782009173759937919716664102859888054937387761035106833397697522842729726316612180526516821319264891939722422880178624892060056856915727187609251011875332337207693993382599926300925687906132750475114696457983089997475786482889285639799982653841893879424654741404024385280243945883340998348484394141884731933964353418294695951492299180223931510412547473821153519674846977059283663921189032551971131474617470429743420632437678116526863316456074362576609391039751635922704946614529490322008204549031037068483066012396833876298634014552838330908066929478224466947345034502144266795435843477864746292913341081315512166916082282070217151163807318063030590250317817129731911117388391211310103004917200787407522360398689215898724590644356935104548636945007716564137564177431493186204985895750346868244559048379481753796735435901886416173964012231721382107374832101276339332839757506219135445012785779858278908359756970837364738625912346836908909124641779821071935010468866118409181204232705540252363591229532569612201149725935734551396257242339817409710415001326628612197371719713657603753251608144608840041702127283570969170641864603540055678520266812333736061692857559438251928265284112604071195022915590950830848851079398354026591672277422208545287382462104928482801374698247933007460283334709973718906764788525766116949556116531140077248661551053420333365686287221952774430471723143561615729914350002549940650744269014469131359714514999393441178621289929507133747489940474573203136576360157150822622886488586747206944678322969412515958543496052278304573711489519243783890898524657495758353813411536256900279397839190778605820780685078941636777414762823534052851628194743326882703428188026395469296269167487204891399014608802184091835767488293939526364652065487122477967663049852161192637171906278446572166420333416350312812409000249376279911925480124538273145399817619109714582564896174511994560499087968499897543190960634270084322781052843061314842422428303793993835947326196248661459751298721602010180641204468229804796794278918498487690980627853945800987437732906377966046316498235979552134164921474563016435204682600547421800887869103862674179660554693759132103843575302210796026982995003969518283196751862753996763640676857041337836606045615614111133427520051296457149718668813636833771549168512474692953427840495874240280256349964151474469780295249086036140133935956363379918267753934494623344085994131271122420154363833769026348590478356933209927869092365673046983331245474495795225799643831768294890114173051362521254472161189655602452447162739524286978557389258897022614619511644094363667738117871590441328897181699640024392053130276929759623447781730246390762024417920566785893495866327963637817118516819971258509168104434599732982634777884183734502372018304640210008409813535718956655448482485709095581024722717352792332127911769678327107814097727055085612660890253234366775893178399961736253345982563325614387365738580568774643987156297896571379811602138261770610334637505137709479348780312058086054184841302932269202808207052065651823237411234336243801791378402416302773209446967820055716260535386906603886736958298143393257031423107212920253764557756220970599605418650010389238962547006334792711050891834653048942318599726053781890373579786349910935594152993746159482224271856888648544566136512402636392348042088483883079178211195839560812419727348039369950558266266164942237214209873203556328059524836337991635826073389233300313752476969267018543828458889387886180810224207465738494442487891907021532794565825937064912868144644712666123686871051515754665962015723312983677706589394247051574950244452542167265239700412361863932950291232495202704457275782691082032218406164490766448867852651685723607150035448457436341164383128791750371735016252193172714365236754927160739170875018335302558377293664981989013782383601740069142524188514167782666308658091267337579716600096331230431067785792788746381573102177667892455891753777150911079713959800168965948127949777101979135266085451156467554518287956374835769689276923415098642965580269090575737318853954824334606273069236324731366713649262527760094230208675161519467984036195815589736487280284596470830078973909477232667942739249473141685641804276679193907943491506867016021008156238593395894383768051359749471259228596840236646498070906717764133290336857211271452922862285454160477778227049780918738416207270164726132715051109245076752593297729973858848383008132735702683883803410387748429913293467028330743768198037156966110436726087146182005887525092225068017012523188258589572323629343453493427762367259346217423285218683812289331464433020630508730412823788262320078399318054383458591135426646470750791076371394196898120427546365598363288111927952381744295102466288914942472707307752714732048345786136856142413457507601413795665329083082166877843523701957858016117833784705329822080586925855689291419817348115319287040377000378719850910085952840108107856939045880484137418382630762263157460501656172423410265125739261670320938057794993312428950844371764911196084406794881635934623670517699725467006378428391152632496845854215697986861912857424217778810256604073093006035950440054153277130554941488483443927743137591916912964057624615077317797432091781010947999626416320298166383710761070701528720519831935760034486402668566098886156825134190039342055785233123533357777173037449043603573724483377760621576532523760066778013727145433772865879420253611470819266466930421767287093807589863155459807243662921139842914048777888693051850603252525664539716172412151696648577841559472351999318865230954116641163189481131415611973472893972700687053712470610312037753994071211770539799978887820800533722477502168724093012353226231712387598880533123787795012589577579754144159529327907525857252610058287057734706620632625408902052235635615035382425783795861365902365643304173325260901250639292444630887096660068988264108113439051147355908579701675963591994032010397313517566442384792371298021742266802177182007036461925520715454436122119813994591887499068279639549630809684936406597317763531981547830164404162123977681981047684015050221950691413986608265128848083845023410262517409985718116742926448251830158159672843769026943268194911150954215160500083544927920388501354450279250755962989579107441559429417345391696760902429821397966749801662105203172852709165416021970167165916145682378458033909172557756331849095180861121541477574415132053994934061536906331325638439714220724910785887783941288467480605539750011931999874188432610012570520124092931530346010634142693395219625282934971079746715215451925920428593496285800700466770230125424393304877023100426828871289753133558048591476406546612106486673066914023797103584359055205828294267651911825617022011039971843494751583260353449151184984664470137445405236770269017143756913301483662561855375252741665714518324301113493944174935935412611148631757412964044165053334136400753353438538258267835527486698260517938628389615636064252838439992772738905370521796965406952102779506540866274173186525705968852488532023059168921171200432780789761730237184741754942656031629141420542149299445592824722895942520505861216514200062643999235338918103242154591468573342480082376038334852597382606245202640944566070111424270124655329646127004080017036796522356759130528144576387217637346448703004071319983356636210146874259464243503383321706895928357642624695714085777921665521286307493652506662545461440787234419405891984173825715731779632364627784258439308826967409337297669259784734320719284308690949220522730792580613981582193600200701503590760866898613116601638981004279409505690313421177854187512542005717919837271084089671853497537933500218056317841442493626631186628703746761520329344906296477065977432157269144537915098649577626058089434814198086896903480788383875626272728015800810960601592806592115812762979293297238530680786143134391586751768670403938743503826563000824750210905526521545117024886829378745696223821965414294156274475226591086079850467500118114202325081207849321696136202196394695672502833861573456803979759449622868732734610982703971253342461962961377820965272692733006989015617334691827307895377222832958750390490328917859485979274166535351033517383018384314908687466983555708791080047855957877923168671185752359273727164263550402949684916691903030645636552337300343964832802310250755589928878612757852552248045746512363979630684650669315759278356894601398047663336600754150562577351904415539403235991291479932927427907186238200017068774217138200119875136037887680081881466795681664957632707976296963690951734379232786400776899640813496503781094714834489672381570130037205406080460714169346074311794953360891139138803877067442764318186105526197525352332676931845408502631991978038907609490027917750813240652464706525296136836371299571327889971632126654321164156956823700752406570927282449010380173376615117338821343063752829723940004686528151817321649214010135129947112883703355330548409028279848042647657918487619651768438405889589366045793485792694880621793798773414370934456071083242243264197331839583026882026496765206112069175695046728796988114056580345620833760074096342337951666007684147022181357650057915832620218358946174374097490357227417681664541841125431893920202613898224429823266306117980802487625299434278616244786774360930559996907990923267641580728278417052934518453934204040383388969177673231567750879715764511835143549127760457605194722484223310062612633243064771034970872601496877454768664362322586089988140036136951707127655948002885151146766963932097109299090862332044298874417315548262587844831894094721183744934791169317000069700468133767405034455512396604926216788908391415692733441208264776685345973408011011922620635648045756017260162631508838653056717664574699974323063619041679388465596776803824697689844502523418047474115520712472871040006042757374702287634993650890305865800405867430294638389264909412939609229778205589207777325970522690994704539470177187999599973497470625451621133240686811802565109048714756789172242493591020013640336767153462994362374944876915038860458593136638011158917260197568009570679646075858811888193005631147215192640047645861120217867652336101695696995659441153165771078220354610442811584185203598127242152881851744653807994276577696692148290729537986583624277114414381571755742364141720419408218337839776747839975459548763524213832134553732930828482401122084911207453920718624384157206887173869787193292478135085792692038488180664588901590033111317758981639871608786505106540287077732828234387663387932885704616602039075417959026828086670380953824481425195084904790124293627362979735312969731243753010418530119450520592917227628392769881680320513628183292552925789755841019843608373104450773907403909557492052597934797527448462573240972939335553248915329363320296957973135635122392824030600489023053325306393679560854895335173846262620320522377265123634786690102320507548423564431292367124286170644452412499371990096318630420467909897137982890564810513753830446347758367869208398855501612408535211740231339608921758519360167289889994386134358406131533366684528175365272620876046706521386352155144553474335524583194019247149739810032005780063456881183991700624209491867508570640482191453141351570995982966138342400452423810789444153741899108450630296273136667637997645201789901520287004093177271743573196834515942677773824093386186975447607363148816185422220223676914236584761745314279755387980415407589506185574000827840135238490760805837886428047244079725541468903358926179562014823285747939210830260889151758589898065698734775521727910309551707081013969615403466778652245618867626282592901996294007051467276994591004054851761989760007945077632528008700146596761114092548714906557642143067077180210830990110560844675417760488546459741271614375911645421008833377844216199268682690786946467980623154158391877333585297690522801680631973990779632126093237041403429918480159407079291254628515167479111155256916793934341303676021890277044184531486087972308462075453048766480393499154616582020673948636528315405626786280805353436870274688749508785064762784550308574147033338749791108842540123138721905870677889937536172385923389598008958198199425990632466359889635947259883361104614488860372374751269227021878992342769876881058695302537880147569323520651430472833656114359494093573657228966952948482541324500780772316564302031026223847636789805333709026143628267073199950535978300753908838873411843224837298345431506200551205481430857737647397535176566101302048960560487562497258519422394492556233275925433631397470381640102658890379007723343597993032425568741570509483561537631261280920543946440992515105088228455663094377449827086794222292294064072929872644721004011730911227049691737833329655696171259547705903200848463526260488947014692835424610368321207220283912022406842854949858751216110089352778174186980464893151784121698635896826929343757394663490518960002620882597039880123414531504984852307694189732584146558997275344758647898741171224469420904286093861217251259870631364678516485284090003616490066349471179507885643361253456229537384193478181758644116246435786327964678796753557725725948962938797663266710939234884170090513088888623797755286720607264566816208501292678895104520744408484258263709338312914126718431830399200022672264565052909937973804857575527817268213861703777578087926050776977267252541734658480447876306044898084346088927022623720894477808518493891245214511319364487280297997577361692014096117500778512744207282460318235019842057597999118166680491887422748109411517973215825446042849415860816535319419791716088265221200472769604963921983270083651114951369766129847672522535137765977108531100175924050769432766450576155517851908381164973819241215659800003086266444239632864633719835869400968522650916957782574309939433930951226837178375700998696815298406677138285259722032510175257802415960440950332344047883765356376617993482725970195099200958935906299490981933888922842239187705002422709449867311780248574069390752898704587355073255022246558271285346943433869135800743286504869186877320705115235430292242223171137258981888137559159838034444894347127964972747826673269177509981880781330855038559785840520838653150616886000865116318252230139510721636903937675550449012340847674441435357131781231634950602213998499925982750551056014456624468410137205557736507518145390103079828751709678189950609205939812964832703964819608694495587044117553555688651206512588303860147818262505784411785637572221739822199071819023656511688716846521703354204684497422927915139651088166804390028987838386535446433882577867449860521792158188238122070363197586270640323618679548709844910006091963247564600252396129494707428462058098903854362134746587172358548484975634950358703206194011819454909610299288346695596363054057611343542826683802429781801852121913658684358644610432234019538763009185094020919918860298316958595233123535717212203079490921386071288920064020154123953263271082383175923808160210259694622018609966332202038716849966657999131058208264342592917071347152876289032819772926068032243791242326511420296630426200244907771946790962572602309287720685703840061890034806911818649678054539328625610125615885751608638414027002243427279846917408109147988860205931572246468104597292752106977193376494783958941189107524173066379480241020572709013455317826384029459416215799717197197823549955357609407990333444678864143659836950142000024087635990372798617629988698925304475179722744969543897562107139248290322223519979338785261630362336570922917317583568864513264775410360932251017500851065999287956143531063816219966697394054008052711062231985797624832347661552854347852727155223395439982740583077045730124341385744560914251944926388744061775452310933003813441018612146205855104707774527911402822394193089851445838582825586452539152085640778633279528853668346772015152836035768703139158205583097987792168787725929775109637065801816460806733198429682307826155699235430105253318307698396323491710903618858379515977357936689514342838954921201914520903880570208817281053747309237631634877678463534544650287184446723181753300660520733924394453364529980476054215684248868829893086754869490391261979383925365076995762721605198376550455818807501417385017306467762012093443486316047580403244337324764593314965500553258648577923124536739246205104156329891563505119221302187709210960882084475604386969975101434292224684042947198988982301982862515713850871853804209459255042404756598018876822317482353791088323966103866653930052751442248729118131889929574644007217698782261232962994798528211404162985951461823211986644127056008563862235234153529926778314122515506744735266645371368382825849243993231734027624638265875813206902963573262299430843646953156046082270395585553679580268870606728684110546207040731510794599805688314846068638874721704816062238035221358817950570960192187493365362944645900862867754973210760073500717142620004416292094240447107052525404417993491256702452774162819639055745640544314851289215234554707095633903940992193190761162299164372775911846293755835287078317469676199644773333484331634146807065715673454472172443670725975500290767782818980818674914814431080374688174003739203688701709154484728942923825910090135623045504814071656211864894103615397300917078865339052063067799070769806804559229645300952287749786607812336997166270269495953816157757994264367639099361893118542649848486367445096112725047902590236279277302392403709391413052838521506435480607514794819963950220430570096806659106316537281030486524393920295792807294835855393455574148233939422559363199987217447979540497804050588088313267705269068505389179235953631674931509975364115257523589693296052378716290675762361360221097644119853362434494755351981034912795483239896914542826013201499674899178578450503479784239800929665961841136188248414324959943394728957738542336849085094305716945021293857003232728221126408185534277212511837521378044807047076648960092612549185406651350083939214596102313884723473187541916765454653921676911343567495600910057449113129591668632985464292627866151925262233986068187084004766400882651085332858082259048256439599100582082602130253934079667891886526644940030970407604639299312166349672736813108998858454829537877758717285943467404122230964080164050138560354102148876637904965505334734365980859055090704453265997416612259371339163853003740969495071834378073407924112923126143495452458088785529675411324705629482298866514706329535114834101837948621075793092550749085111438073394886072430610598902444833898233691646885667961919212582880631637485438517914551637906227851754232986871315324007525521992114182555933817611599413004937750841310723718196275966846079731357088987966096545681114449883584997635783498032594012934729693355818698367676014393908574525887010539273959030627611991118788757457199622257764184665231995424754005873367742580469826756863348701859547132636177344754792844702202086631312989572789115339034389699519794254681650538834911808312401608568194915779968898166346481050532503086589168307116823604237886078295271078516585544519506932424613755377238299402119942815944833088110735814771499816249853309392828407081396278549503528844553187595253982828957329794856640929603126708869347038495864413590946079318114795161491313766126051747598852914219726093109673316087586776121841452771313907175947067114769377800200947255123986492756865609899202093811683992991476996971873671986960099406595507622486111264565858836492526183862891409793860210414882457728570257555911868080209489790172897919611355576303723848800804873866597173022974080870927109413380698660077145424704875125843527868175117370242812140691546168258015885711552391034358611731533120033534113765541796470311832007374703859933226788633268268853745345784724988654781550307937806109392237022416278471057646672333409445268021281134037447450191778595869974135942651214554151906228514834171358500277377497088649316022469391861311836802417378960568049079975013109581970555859956572601901776334925089291878318331256773749548724274483935542340958203304689225911860074074689771673029904168056476990882903831658953711323750554780275736617604737334968269390946103248928589611011064822707265422591632775669172376592198877351556982681097839566644668764107994582102979368518268121695682897984867415340040002021405054657587742199435433141620388430158743384120155905546073548365135970979899240775695598675991344618789097247606724467436567647854273367705593243125905258739956219371653352951296452121003824229348819846201264805991765196270607835093169777176897707912460280530614711520097905054221519137452373352613005396441935224712655603814844593272030189950973791023201257316069397348184131664849032291632570279865932575782793044005465923415843413685413526581096501034531395444979579725762944804758344399192185361277833496139256144381926952486315490536126250096036366640470974036166166944482667804879099436388772198055513047709444309675491000246553371915023144845750123220822268035377093312723581718746250698489237827159010897242608367602654407566724584549252912233872581976099255648197239290554576132244125907555242478467662565752082812249717230172669184998741119935078849700032592504628701653762354898377118377060245915469830640713410373284874397569720884824952009684676548533385416303802685712811575414886905557680945657882645179248746317234901953110167437760308422399219503364993596010069624737406380073077067707464368208937852065677588732552332879471110745995586581931575870711131480810058282969232353657669755010459973571065254338830648401901276514342060579948836691277699686278323012095867151930419632732503496761950349169192244261105072512638119271006111383691646823603275712085754902669787268249490139458684724987600064016960086449516115535626389597440821599428804217058781249024652644485701456121696723146163308830308914120792058063535000081811200637460183734237980814639021777919116488863304144293911738723143831653796300320832285976701424191954544952376640887236603433957871483238905626853852218884365531896744154316786963539834066818297234137347001267232282383819539542871560076803488443473348224783228571921711599168396047723725205611117310733585565870561578611098741147514350287363864272287033759406162350375505986784070989289364989872478604992036764213620971614409808693112018864868420336344862312831386338093068946412425545827930845074866984985806079213000913112240455420613164057701610604529208312021550247796674514010212259870273315600508837051355422851725616069566083231762376740141755963105398103518547597328286674604364088749341245283050415426572662255726315441680106261939720640982115868107468947768705857147954212232713621719017201489936410211538514728149753518032413146638309624608439878887174463589030822737029842855529024843145429013569977592733580877250756957225454371697458606350928421452995563340491642443694835027656884767534353999842460188743476742106346396523515112995888172069211941974790370986496245482760645620962620078918234946495418563653648576517711413562461783459087553329172800615278299594309916247128997045469768343106915919683035779580711325355296999430805284443694269034501093585235965998652347899975124338311288272218831252976557322423638648138835312825571550944153665809313502158724894332336287932316379992919849585896397520357768824951285601992031543867989282297926936667343575341534540967053398392796571829890819331983817806461683026087531471030134506886847311002096482989109795667253931492087042800911459659861584880890001395738477674275918485205757159843032845916028348369614659384519406418740112945407845394111742452309215997517500944967148753945913487698737986645353940507531340338403482846922146212788543112598281421761588181403502286100124652847790929696538997858885781530439761287258350267045192411291510508536706815475826752768590203461558430088067664572492256756310809005203099362735155098383551660994445856710439911829917978043904415442800996051062013718301882455090517059134310834525892672457887807306443387259433273616181747193860996142794645291964993539061182680090557650160079070599007425374290605561915806542417429375792681597174628378035352348862690866392144306729841538521745990690860187219652059260760259456977347107583118427295319616490171849031363244755599389559499230925101068996591516046341161306690292738434639101879400788979017656314906780192900604497058495069835348284517515095027093035324559188622183126205976600314626965471423562768451080031162999879387026169042591184706347134432942106276582384781980178347794730785008524534672000793190437856036857547596277964981603674218875755027082883932773720618337092924793480528240244610383329671695446940834987026990444171608488348588771458018427806661930193359137667845550267162131263814215743875163519186251274973105864542400159651418331930023528455281516882921774368158098909029290016269222842061943604795874156941244335775891441847088182451000408749438202951081191905799814313077135438025436449604564129715704694482123330789949998450140361583037371926730364980312328247088202834167098023122099702193073426394453094915560860609134263722580357364611800633173792900161744028871649482622067325118581095024346723225986384424779223004036623075564542332746526165740828333104631853631048319525218677498556810013851158654542223299462094668168737614200093770474288290792677998514033624401149596352812755323361065668923614370127652272058130691462663397288854508509044721062573682100533347830341145652824455461118367339090421603790323166494066851964280081699216908210458636301411548704328818909992088678266379687616486766575931435902370080864436156375949577065561357982717514108812300415973658058453233513994348712385007032051596112290625117396607517138723353878506862873164950806489522323193927159541563778904389191178504650553694775725957548533134177704730511773054674369270448952902311549919115271694635109019115865481001294033369090276692117028574000170116304846729500659656150446935765840260356939020706766938128522490895253999225105736121594669614471812129537750247987843762629105680985493639315264702998373526566162027551377161573861259941399370275388179876793738456368998480134458051576018656386784471105939385260585202087463493957524764014622905950879614368282468182607704480926158369938856267661993896916313932425530927598865608523918784660958594248132958279422828048972720640248402726870055771168558106784323150857299069349882327666351342114012788958781302400016903000262981183716202448358825002187355987395898253970118555657488787669971159372456811234294849330699688679794728737510954369022122001632175252119027751703109232693975469558501181258819763773086913528265571736828990872298496531829602545666651030689820452974259334259490746888241313606357665574227646099033871013257397056561533554133010624453841331026250161516621640287312416886409526162358818743148556695826220182385229166770617989735829940868832286801568975253763565403518430619278343953194318459184642221722883254703547806706315300631791208023856661476759994909567421158766913002974957354315922938112452139598235734227106520498604416347085090257994675280285104018675167855040457467541834258992181270893455585330521233250985463878607037350288545349235382898557110949157415766617918056935362545183359268384089916098872218960067472344137831858487477071258088671627314309110077008140990447989015001974080049336119242783199262603352958267235092013827508597052026657240417327164441399850565642289450083048279813588843830911168852588277059416178479858862942781530613279580630026868810572161981988314344072068465953157781420393385299554302351380351280005871460320294397920567974615200209904595312967776345130502900819481665125931706032095928005176889647269177992036096726115045756222693503798311291616959800863301458819159108064414336336239073843219553883897680827976000661864565064171747347335181567459888682513866003657263791574321919817471954559735618172486743594462409158504545911639391141821915521671880976538105751728653872296593754223187624656594840230408535084548503519631655034291483727259329858496489814628533013582308729948425410459638993978452312904613084971638725577767716887984288080654573964682464378151832935208613920373429612927837075264053978841133927038072747641719444330501392791810535203800767907568983048255649648557927106620527267415850140056045561398887840588390018657885434357122699137457083319904977587198008430840880834462602177001405398768954624266194183328873219372635777498189769111222994580897574033187469298414856032075776895368090595207575131370612514633587437440744296603120097340339351143017120361627445257479047812593988417542889438912917684298283671316008276246289795531221599557284823791969897955423350402902468714166094636388374861296810239376854612161360644240664930603508777736613331649951054054774895398895429421271784663819996399752175797990649403749220519508959164016458949882056350630656959523872960792788187425165250650274695251688645197409348809423236225935694692897193425981728996438609855689865946790167120784294315078232791988044596594200535875299407704709580581394331041032887826107236687926044419810963286860007027743424940789953711737850693458208381416623999560615897809453154792013728370046104251269967893663061187931787578810345614210902572065525719557485259091062153364218489906245731338036568638417345427069913916047846077325857492544324426085737733148824533045176182615449588895421972538122684392460857529519736468179088881297762204855566877217851963255454701498635538561053496285785977152876588037398623564766774307230106551000817301353975444289962448262449548616939486066391636525853829282261040593974116877661836699866777223356640083616873842898247140962733479169271376271869018646873061110628063715255079356289341066942075702630474925833469324836190165385383968651672288986493821336298520480894784359005131811321132880918637884568905067093599925353916345953491052278922663524409759179949849984482875088763681272210849320403646100966371410183965903400269698179579110844722373223771897679692532277220135560205371284897699110376129000356661174715305218727313830662961959211523068585642335846757690503457399897491460809717141014476971481587489845518754114294523621682074216101367608738676641369452937660617177516303255855951418332537722741895624850446138026681837809661799835667735021613688531516569329669073545757313312278931946786928426394522535448531776038493789537177205303680580593542074532829948700985413533820659028192404400360316739380816893100960718755060780250168299268856706071336589318631099743775823231760036097359475595338666058746546853221737032087807258728306486016976144734424383027739175437329700291291001793924575273264710360446350442357102368725694391287449616667793417463106570768795037280127076451370035994224271345432670081970204037910624800906559722288199496211712516447481914911897021383559391517044931612102437666973875669615153730777185085203068828495135906284314513712146488085674115403809318374753539686774187958499892346801903567757381716225394242492830030350905417319883928064372735177050078901180359701949802413007447431690097543362456837114692996176833398806191830192725732283217750065974683211716409918462721350180826586781072086885424300060184107093244617434408535849656803419982376407215480866915414431838548525895283159675824937231587769353608757900092109512587588069816789996244233432288687959640820576601086012807521225039032660122568110190694256278828215819249414449355885592611816898548778453467847678188567663347599974176419314860129217363491935441665149958391814920664551391331312801257361693800805215780163561714217891700174039196697988629986595772969062893094421280154253972062824910946881793437262478524027388326335053631812789271561130967695288103474815447285901393150501024233313525430984847955330240267099470331132816309243955659582426282289791525198331725775853942185581025477960360526382725243631140813517252987322574237907269785696479847323896917474964953183603525560743604080054188043703147507290021463403234607753598748131891895953947739442270185919150761845879236611873769793079486581257841811437816052280184954928927508843717703334218861797393462087463420854478943926311934156208109477708160252000185341631241552459716457732596797252683223891894265030907624557284826758823472798234146540687709468506973343985907167511953660911243201049293159764169651793837327888267834934274965121452616538409351678061749843780561374962119073614434837362456817335742576332455952295162856734537323305837137814053431346461964203048294221499823544972888812431640788808201983148450658889508525865550031334377077412436615835349532223203785739833095607079702840674023589987499934924627269957323834863286517319235806005122533731410912342342198882467652100188851139715696500538007426866851831748163416632000284820227397495067106032400354903896643977093954079243119534131717519478018298588137823280859775255284027533492877811792005870936214725823631018074920419820552059440420431143366456138824355280431065384402559512771167219859457134834176460395823960374348218741769821323613259869047016942141769030757070368099078140838763165320221858710244884781366843879406129851042732168490740206160756859195999550334884138247914964311657742682714474264292875552278047328244275217156699014755931128210615044327736809661152724366602580393640386133706844162614987693779538375924846706728186388149217453242977328061906954761757612141936128849910230105880284929145836766076316316757166917878363764135737968947637046567048148045302829416281007976651404493076476005554815526345399193152154547505853215685766949555110213961114611021467770178699488455692275911496555277545512573788104251163628473492322733864920681518957760634129520731233485992579007899348435605788372145461290996889814385085328801777436708327710823775359636925182283184984363833948854853045972441580825872231760798079763988350234465657989328133552618315658338227951780598279230137400248013918024360527749732355940463818338202495742852940667838047886979059610703118448637867650280761662368205215484602591587182938146677865520223741245255554404876451409522225002313684745441564743535094322787693148722284253632878804207619910434783775043749122180471843823490802484904595767519895064779392239203955620875894098427373157467275469927719241178657690323837600262178955209059037917670344331241302020058452556760524015017179189584659881597362993951584199756666147104321200914699724846416167809731793129786925514916603168404071350022732944819347686031173284184254906548329032745673194707892810946757148068943855994991935701171799423706436672881688315802584062723820215436388132086937141238451775766070190736112483000074141384203478485996474784961025931451069267780012180025572499382677680599252637682550743274282216488953670171822603755956222761531898179226151664393933197859428342282721105648611831193931234088962133652477495396340240845079710768852144565328054826940227277817524518516364996574403215263268177828957046839528111916463795444560371041381760305612192509570144595947768336618296765586817570095902447894336881216122196687651797997729177488504664338696415602831836326425962700560587044181009324573443939067655572477999411230331283683998174460456483986312190797950219021935195150600188192363622568670855677466225257158712645690179641130022656469364516846023616604221551797523518076556844699241525695463386802172464486524299069463446696950957241128621066194692793317335058536879853711610524339500460074891408056666472144228503655275783527881605785087945701535145937977316294398179041448341482172918696407025534886448809364847268602907619397510630854671858606542093102863703103431338828608527443268669970822382131532549097107880255515409347015031349851841901145214609008700884369979135395035134206634800194791010170868957214562832149624639889411068357456220981300972871032077473918071516291046116991051340261823305899237665647545430364758398484125188832174530872525763443837645230556314566562966744721861828929524719020175046996343798608970866215770711447711718370673338564709229986111872879838529647716051989995154238541362648144494076848211212110507209070513493069806879779302785982924221269195320601153457852523069244512084444194299166430822385682787119918482186398050949766820112729155981312632833945932881620962240870375143158257751895336639487963890176984966086623873732536342306918769219757743931811822444177214295573248760454696161152891638352289042475429923400286315793657626296629754116453608061902507217212033163478425116423616413395968603479143696625879531277720644111900150748360259274459674031431912447107756822288979344180057736966013211826668059155628535275854141098778668369644102315816184368562871244387971231113872457337586315413143467746170176217994995501857283862948343593254607632380143688267140779140157822780878932006393298391853101904832829324486420181321196188377466307632647259475893333577154081578054691115033219519062063047925660508982229846838189862755177496506871311642526445788166387594513429156590615042646590725718097905991979400662473704358395371982021324578490042465551126429996590876404118127902484782470830217214003033890896714557330843796994147620730033958915031550751217119867641657741507995862876861313483122703882727078570154244482027675291790725742693950821961981242494585522987760033280846534217085889660052394060172729442575920131127786828037873167634973013359392981064599692471503802251806100921888909379119137723819480883045810896025007709942812478520242144300102785202709218559168688761180141363051649026371440196243324689207750316975319963214802868174104785517600636856502431571136911485655957854757688182388596778674496770491742211330510670213860628881251108595260459618287937135704822053478647810927492593140242100522805671330127116672602778169573874970925329230410899364142209380904730011395666290420782846070373045359631383795829492486022594744626555679281192475527825595462874246832556595231333268718932709786723884069752046791219731273689364843345461419298068392399411639247297439576210277919722831880407144731074218762438972901266131418127124145204750737262888096339293470621215800889553463039787324271882707139110202596890608287786651087025687159465402610073699767644262769781580460715449418477662698582976140627141541633214317653882283047141660982368945379459178084278611434095099804779551848810071709289253761182704855324243487112024315684087088314418723246848224274140614287960406702078348490987846510727372964141604661019583890377616574997074195985655079389979649134658314708879753585329489827242749447421817169380096745483007932261716634136636600561738760030951633223875235410648482531062091052482622712264897947430499081748000231739273701051061495394703242166471478467899907659094182585000061035248161259766490902275308756440974053187560528544712755664694084467957270363678857816277094349348555536279050356836991375033871984623003404102065162648075505231910685902975643783853327078743766423191064206461673081555057868688462012557841587316959719911834331440515905398835637698421751597734689839475460989482019931965674518394127694965352637571557955931900364387347022282265538906663159528449515105452708487318917510626520554195225868658346821343881646716919176659827357709905832029686502406591538242893735058664577543405350516426103020224965396835983052857651539887066191221166827189683133886071571105637091016174635470939764022434118637429563846778882146597233181857061837756431811004546524313891257354655069704333810267175699424802246535121985748735240498662157191646885267681807143041935403863542733533716825563223235178420441656134770886216077158996382805065708730580623260587170757992653712594673656500074293735996680879746717775957012594795269564276797070087447072916341741451986033778976790913901255820570333837964344451416865334510136488261423263864372590191489178447286651372770950719467618896196120894512055871598594991861470251171039073734686189098234077087847443140587867197498062871519686219136565285457681612740317695348581377354535265376732984453594177897762596604982524649872289753614335874088926168414914281760826133405778291282272378169776017643166556239741028075080103652568509445919575259556797206498100718967771990150070760484508965841666236675189525149690882908552688667860524745233649374502427200306227935212615335666437917108816519273162294344457627569576505054188358191178535996955722197274977021350177393739732739705970946405520697704143869132123571478443246834347690328734470533805950721259800941974882032178604549304249598550217822587510022841997865539185797310476468717002284980200788087192057197852076828961700051301150746056408610993825857717495879534585912024728609122064191641807222557827991228909113562729465273821400864158697589786339994607921076207991874113534207851299066201322996288804771212184853600928078130524748442744042065348785069258512985773614684424938603822742397165087131924675682723974294520472444735260136015930044319028912989570695177333372677198628397436223228308687537573415798210830618744122532445727518459975720681695338358116969258598547498881688098644544030668716578744111578386640622204854825548697239994666509888185929497998123031719788713575160689146992286261899545391953455183805692156399721535321375339889005657429811977624523764075947507108301598025036177260066027741134264754281603953905514960155285867168321506480632458981738096363819416019867062178945722098351783486944872681249276004495284436480211347725333479399081816399750558510111750392841298687333906199498165452371873259019243867800988701325481329004245233688509462853155253764079854207948734420273526042925214459119849797161824818940937950812951141415331911654204471151264644635057721495563261578906815382456079628478084824002387521292537976033510069054859729712968238770021738566723957009268069016672854156928646284410734025727544564316293462281608753511249549388140606877041866175019367338078720111365964421286557897134463024647496141683198653371690650209132838422939620516491801120623762285716128588096068893540715618620852291348249633703462068338263563189936913859626351990668907722964664820643937430481156299914409737303742600573263336263377939706308249010454663190500918902313393332264490682201300204882963915142907584458174139745767155577622561389222533870319913000068861272757610008292995373758228195910992279466540481030757573188619259923280303707014245283271063687116440889175155886508395908240442271844197955586291522151838233301791575316744403127696592640213484021257352677128713116183574674366082532428875011794379154350007609146168489436377123646315995100271439641204018092440733244981266727618189789605914414888234787249117155110691944930306787824318864833550956725819446236740642685187155365704960221669248579977766596834577982593235923739754304126025940615452830428139952608686986692467617075134028289189430416516105775289848680023626861682988655068241285587433961526839283788312675311825827081412661201797309520770285739642004019782192182901482786093725121567880236799117623447197794581481139192900944534333349671896102225700083522760213640205065829785706746490908248144158004874824412259751777200118618174915050842306591747307544562032102342986584605432334978675767530404824563235381784941889966843658253615080664553304853193319067916017449418687488071393188370951650535383360878901714350964375996977884653869394479653706583866249581641815611239706755250304254304324518491683784165451203150019257814387599346955231745515963920406529113010284192322404314962397808253223474109600921613696838732243761491060641427663189540397479111691928123915778542953513245313349365839816853385689471912883464462579986422088375512539325279034478234068014716829138407782614669534747034603625903989091280065437484487143255992995140378126736396904269511433069210720819112979082013577638144347079926531474911970406558465212938797501728506192240494066354625033072946105222993691965061529102553169195046301208594684322894645024103544331806559040681759078666098466542258635686961069649736657890753180324308391924544842009039537851752211368746554871154626722573563783518999195265399047195288780145758009586086438085003850750427700462192474626738531998252822539163080665133958934786761400761813218832232587570699863900451474912307933765151475171325213106158175317140908964020553423045400037484858745311129482741660966864197082786831735752911109283510953447593201459170153642811361993191048508132679391810655752647360158492797096855723810927453596272731768598585493003572822854825910629369372708974399044711374136701369099973336944715763139163975218051375070713412166593063428678211279928744472408115822804959715208799220287035548246180870832361425846432907945201617236317205759018591080137554303333130769377276797715205106139776200314684042580158315827777971954591390361996312190315499965285614188667754396403897835779185066174942859634146977057715296750647715726181852530763367398386330842226378214708592715914805733155774869442791023897045925847913955116393108383960208335018081741965446195060100966440225050313884203684083288695147596472906669502330773848135243726208599826666716400165945156061990557778459248326071073496852067344356802155570054377046379488446071090465420400565500955591322450727111433307301700478460335589437137687341909022693161200611273911873021804417423181622959511857082963629856935353321155780612590253698600034430151796092752807625975743955625926289038540826285626423411003680970990429040768008914708167560857842626316335145825631878368301708427654368752542674867929746770748862881178619757909629497899939721527170281778429539696780389882326033279553231540874280302765914870930689330573822479197016115546167622067155390454495809451689563511574842308727720397474995914794647914824473410280546244712576818081179029374761923663225389698057895680059770168690987695996169235547754420963485053507563769383830846293595132615324501310973433977423860678597189892687370090802896501135145051423567259941358459293865250826109195968850537665996822250291734844788432556327699299058697799761049305195709786980905135610163187170344365408010749106937182335986317913835806442219777791493775240487117379402302379033136677737657182133389721668521358855431688397840106566296548930905344584816109990244881185118548954396382859154473485571823941006526263706654669141453285013403121847273411873691612825506816572084728680422354254269902499040589814515374540953484823600412397219630684927688083706753404521853025501534151177399012090499919189913645879347265474394327088802725202588123362873904751353059461496866314250640588062503489067473577063941226790846097271433070634729939467964103543057651391518317432625183463272951018724403728421188819326209131899642130843136936337277601226933562721826992215563443980211732901325172493017141730674520590164911983836209914628530242381793946745930857757595467848672324033977393991456342655468703307594300122194451395544800839474948723757660128683871185802973019892090711711904740618483970406655910996559835970481437115447384848116566149024678887832373312194634547503124483940220690688410967902437719631328924591210546727811325721909795127070330159929224404847405343728151179637106124690135104919878193713378886465256402924821630537695192732413110767117854030259907810555509578949420647242834920352088471092376955755229585303588127346538547638565926741332510291149796395119105227699036954423200930307779015248777650386638314514972662248540753083156618520591093572666169592999020233550773122296500924526199626772922346190716007253998368715712040979211244855894415738975321202669720589354205165877455746397360383144162726851450774507142139584121423225281137348292468268891259139483005662557481561209835878824168582963022096585508195562898200740049868648390939441516086925786776883996110730495158324504767301535021163199089939313173359566187366735890443252063527776043424213144325582123481921777569872397064622641838338833646508976287315904011711863257081104424451225295571378208332147909608963355173518996446813684871239729274939098227958749091498348758511693934908185928234532191622054456701987861638764300480773077453639863825238147369158174060783229220671665641126541677003215002963521476505745019837934121878628478732439387598957378988117393775807665300784228813177479088233632995315472480744303876282440507874332272026714603579993992278840592402170322720604707379032915990815380193449049396255569996658105012567022520549088806198186778279140902518480192298923684649234380519145075404978684538291394397143194049820701439065690406404892443773713401099793254699944086413105687188242071973191161227741453350885405973838798995904221947566471246517717122651561500016704707484510415355583256402211119114636430366648403386150259018591582280960250291946338053915700259301383882928941304661311948142313273614400495449153452407387292231222184863615275935338202860225733400276310641759894391486000933682238594126817441555128725978069992051727666163762219419907153703591505695308722491390472051188950447027388690187213588052717434432796964411395598539075288701712967089161390148795134292383318005472889966163117981769592292901888923049806889348131382390090547437026049108298479375362457815884043929354448624912507644471213209007578733748769181718119611607235677280313502757563848792076871728135816385575533608761235493705432733525934711963015573424077813899969572758318174435925687025097478665763524227288696132710161951260891996964295869437190226561387652841395744626508902737945294175970682470134808462791061197681434011228014828107506313141775232171442948919429920616698779515273250093093614349794302882701132163687467030183393120593323069645895799666709140458186091957979297634134564725374691149220807975322788663179453998811212893553621984092369574647399320912304859063693304637683415959960652620707892668616728179014860407663412097939412373666633918047841246891516284041409966539627571264669050592349726201065603676055315763884185171625999606306541921360739947780171076509901752535905778722009571143920683286849320019499754090586432295307314879935659571576527695998126290263350552600534120895266921045959105646142954762949153227577895021821315210264760930021436493465438884333361563784725619560895170601523665085708490901147554538361299209398361756985686289065087085734566849318058105535229813213498348784346740336132147219453204259742656080427193492306122883622858121417758565604891733502912179939786093666616918234790868070025402935514915808860403656373595309778435330856369816283431351687790994438448988381054076330519188040178777879868985136849937678974506659612376929821660943853650616654979524990363163421252125630988725540787151994488157994637401388200832376539735275057275042380574057108210291588966609788849470637544779930050787493723263072980470230992019595286206807222247237921943332491277525637308729086996374214296478902608986827087595267751669309819862219774333640821529786031956904627378194279218120675457994313021356992578877891376274587596505449714884970388588830555548020108847822175706720681638257272737663513233499791714529750993496040246615370991277844117121274679300330427885123373345049300663369994982664088559071809601478187884653484685258495025027762755764825883484747741361475462977827411405639985468735744426765974243724849291067090953299515066652217774529316947362152992076688054457985445908196885405360014752896372451174611643386681782513706298503398681954704315311178792601898797096488075731094119196795020816753803542357345895004181636115815117590889946179427915375386848835108425006436627408996747315966366922908894079989237783229393869882084065426539599362796684971837706212253504799579777655150764339502996767693779515732942316375366343082486954125778721587865896199571044278050520998191048110268867744888956322976493056537674550176186253584431604726501554171687059314523711742799789253325873582120158936112041052222017193446056254573657972645449479740061672141854267231489655007972521908776603204774773830582995912826240968431252139626981654598750722837433747273358659017008864658958888065746361444167242863834402627909787498510335902157306331609127649925426189186839304943709782136687798269481714455235899793416481298780564088621663747461274339548995080031567228600546496619070828109556644324009431086507231538296668208734731581037799299879292598946523711298993771494904428571766701055029977865444118303486665514833515458537729054384321515843828977531331284868913896381108002409340480676537192031453620828843539319940151183863945156903378870081132561448987339016601794610238719836120675286773136034606454615542261284132922787510792286035100895378454026150202144759474706136048013629580490809745942172663401824855376492104986645441099665301402833555421743687596088107127988541333366422299635345939440470561259787771641742270020586064550138633236288048282354385376493956701010985251239427707773739768089419589960106524575137507357377217866731937122006258456619232810131544991714194326082525880741655441626060219135033552975725629564654212418096961642870922234346697449647449110664650406177762711823835955507502784924947469599712711187090631544679666828221210765158891072221003394820056757959016008457815429591603512364477034079428352219823961696244803259844556287232082851098156738215692557682238908483677197448779485017474780498112683995943888415358287652672565444152198266835265595072921101358304083967047667112669878465970934587392181815879726512407250787706777008352580795571512581266048376711821003117012894164626360883243494279271061214612808578117778150353104558796638982620642891271686331815466985128112997917866657017917633656491782302724073940717871878426808273528895117317522386867082835212602030157558904096453932515022774784219034152870709605447222527555488009877329840823490200298362065378992516306296224249693766256026328666768500923991857133828027319967096741969329075176314425856935741857012114354903577654700706307404380966273306312574918857570311117791514997786630621045064013037826944016714393680053115655692270069470482548968950951447094516037078890738042600594006215394297621369198231845607016998674934410944583704789354155804790868626497113175633439205630434063566621817804920691736668847899566061593142832829719590323994206878858687246163860024873369685122704298175505159540448031312599073894767815495089695899202347297895623867745205673518362434784875992146902572028624509826546146104805056948633346007264163410313545168966877045012949549263790269267448162977652861401192979164768191943185629770662910464870070965112999406960793094200180685473466756807793590872048580193451535776039937878788218828452234007590661584746771494442778929979039520901873723103545981467765741542983994868698007517721603593386985686603394942240703129451421138453758472888761266353849592400494059891073141337024137579337647802705339805281289371595757819795916961771879548850663099703086784602001977737771966434566581800893850339237478536311678784150628318143718749336987588498932132496460810007990973501778845568128972377473024151289476971913593570426526697261071865997600100406566554021083843110632362203911519373051805561571599083590549914850372902516967075318871972378088280027814464695035474987994332868535197910300348025761288379119368021874533518547374385427294717590731034095850838945319942941181830889537234017608456327342083454008813672029188675481957066899569727771528208194263644097955349795171666111579362755390170025720718174891257769805617872683094737948318842159093957526340987870889277350027212153269679034187348916249217580303266535230184833998735562971773653808819745757677852611579578362375137425474267296758551171954430858509265040587062878745153443346384006023077421431596277277449247179802305190898375646211589908902353293998260959387673829553259649014443763599717424430177968942665914774724741716101462247589027939830598188509588461440016760025926582986731968745337410923684061918280173354592142510651903974368684031704984371906675780821594555232585425919809595661417711067394511145647344668233352363304528079900036122242730055847991249723388636533643855776225351422315011912368464472474898006165385292162899435897504238470699865789766617374348919028216457214682087980281622118746141525245433933490736775155202517354021818510874601706656469981049964201220676110216741506661031083064255914526944288808029203605737346567143641481413960543886578049768821728958823731710520885556158751676122995155208533297505438946803366773407237623337053422892816015684899671549161127722686660756999959585867707781878234538978407224020546059700088105925064153664337367455163295410620891227827788816796480114363268959105963475572498423338807997926956906335065865108946099517016245255280947834734838281730571741785405444058970991879925895701346048206308548347990621245261581446215314482891016581368755917691272490213653861019369781780474591868354530073230674595254295749207797418643233251961820680439034618157613486295453008964924058007885328482797709926364618965593756583586182458280222996725579858977751934695659734811295530810945221926947862124711560802375008037638575718198947245877676364170965737170856855198618100223118109001185881147823657626671299506737797737412446010110275907626328438752903202696455023717415442275432409433627990719870717638625053013643327888274443451654861216318725769761105098092631641670787225940187966751482124799272183659345694228004055163598219427287591434930504062476260708574824429801935217085461917158022755024364822729570376283364565233412598865876740561333932464460875604507349746163262339221422047278776125574204385953062878373730122336249147911816366800384949416708452741184777023624186258601903641200882821339228739447954545815106553425810165398420817714022695625259104069990439499851956726806456453381624284438288404390842326757200752147970727205990846909089338364273298645447366524446137828867556577140301194167377166568586209399447147300121544162334313537701320190269894059603521036243496537233361838910904916250821070724018082976978165531704776579214052740946279574825412576164914159741589679975778891027617510948286333844098638968799361337882839667712619420928928092750403340158236196191863023654510583092844407670433589301801387952501530872897829653348628111493925474175889249156165895476641498118893269963113618602439014168847173739068490229849298291979956460565250511696904834221049434747094814763126313720047364213197314205516467485801850660765482564484968553578831072509181490983653225842808986854822747169799862503920246364658398409603529519241320310983127774908507758174631361385641494529595468340573323665927836482253055976443316933171054908952775898700668241078884035868962489037188660099126031443891661504547256380718366030893436996882553554569947945106931419230005960865741757033055096847899928259536674644578884014906335036344242444158086806853799025146051745612260987245930445965766897722949434525831546830963990143142293879407062480747132657192455743694112406486864651390778366883644719312445685796062122556052759329784895002600745362565597190210033857372920709882511685808262710725071842287559652643847201927037026104149563979694585577674973884254051941034859300843454881333248