PREME/G/MU288001
022618970057739394647646956849585076093496367228145912537251108517066904449196980574289252245982702192544645671034746961310361822389188562311604590804457999253568584148985507816189874475055091101457796027549030510716364899862137363035648699914087178718850802700447032630320786442163157710208890332365531855307724575650604520566213380042607399603603620279165737822928925012604374415290585898871363970384852109975064538669195889808784353691792224703704337455414875091994513363959161231848586247100522829172059316989093880161273012880636531212669213547688942933445554057322901646077838855851372715991493488700576343725332466952500465409116580025759205824979543349099254064062131794888715398926647438431957349030476380694460537268778816141445520386902219962208015561936915118754501894966225807402758553979943737195766684386689277488577865164107130446174580156584392135712507292188172287011082310158344477938851807697000206823509180392121900297875516111021286453480428015640658463435824197795852514224466690258821268681692247534133262043956367827740782571525709488869390549539560713664679248625369001016568599059017898356897978508478837362263029146900568416626725973300447651680503183632847832859543239090550024489594696814853862883748047505274809330001618071471845216528608133940608723113446872930928580281521794618794372353782085830319898349262124177412067989975965298204168380687975911713925166300089221936041961859102327008979819737689683876151774821172176356356381776252843460716551699362729660480609492789970319932327327684831728377275378748243645395580402999523090862782400917913883169774496602880210674446850059026561923471364529163844799868481807011925742054714975688036900565305527920495279811443975962409384398570928332895245806952505267704314888591869310723532884731011888385997246927973446568135212207549554285408736448322451128830652183789300587197644600163431765482806286589102223892622503375894372928014525043255695781798596924210289738674834774408237702239701731839742804513830762352856996293641278856667034284178071329686688187220047039219556092492730671348971622929753024688875125673432061692344824229806278186353242172668647796682234788478761272009362199516148475477623772716255016478507352892138231627178649760648165337173556044273770397418185118149406595905248800246516936656768765886545027697432853404034770523994212574521602626438935028995642256835628794823266086236454331707727732407355896274288466911496128148902035675274814108341408911250219863258894483329604425693515975563780870573727403945250989216346550178122261562845328937810226986105865986073140590423497415560375899843804372741800172685710455665221474655867514894375122805985265421021078661121074649743543404223088609333404564385282464054582952535272682376890726419387627638753957206567287272429409455500249769162471548643280739718026664391062132270209163677717655126609444201241817364970503740212499696130538478006215473065911504551919131086765047037670984932946219666881722438340353682178470119163429758637755297544264156239344739551423963320148516771258035205176116514225845623867835006568488275784434791367145668364226587897163095764650643453231896263239929375688271174345505157873251340987581405030076400267348860049345412537209184564288124042104694928840505605365054872148545892642218500888855769064466862617347218322290531311164141835250440020057897277025721819868425901591261155933284296046685220807108928613537880291324456495573785567717161383378189761713872389523851038134733269813581768814488173670538149578256215456257179309770852796156799840447504242238074635887492830630926381017045769895111598445411760742877183958941842837598812460063859590263060593070620042619396138876534029509352253517980643861597199231609484699685836219839207859523984720434188688476458870380016225652819602012615934357884521475241436965340643309152382156299088145909238730647365718739176182954561928712954837855250646409431831102269719019555683075836131359606368927481706268571392490418590029656848717250414711469755838390554890435195676421309566676218094539530880552117636911196385497691394163285563915022439304637228305087198286301386759336386505185960584569349034980995931389901978701571851727126911984004702380936319675225889285897397406596000816788810296162412903002956046549578578685610718746390149430803144176304922207295973419387986299610775275099870636764093183102059333264681298341377129709941682076698263541080471942697872211085791941735584295301542554970149207834284246275270340984626938561359671333417275689280801239125596128006284064943894350614498519396543988315130520279575096952232586421808468692570802412244645996528687136858191585611381595272702367494062993770881299669912130343658104982167375587843080552059093805806946875611757159064249148760743633483443056505657571289786096123856745802271994669138036936743961099418842833332493188958887913987273753227813009509193247394916573510989206392035125851360989165361389566548768052287935168039123566118209858105997408947996548821068958015798105358268450120518865822703139045673446326123204226278626578877652849519713864070661432131233020706038944068036398142942410572384671361963225174866388132517288024056364884378941728148435203038320363757938041897952181337453325933845897719006081791724739526721481783526543025026712238695723380433779381282066708128975014279211740040678039083807146987816040511915292797990321036761592737160682915213829904854373663233521797773436049766469590088174110990257433724924635800518369996549416461696907371192407800318658905354357347582394809182476787646829107475039342045656643024367727553139735504666947051406339244473739169603223063137127868086176133695181452791129761609882044295674372867604661201427156635409493972831355120547482984801266840576421961638079086227183812895984360139825879808973945873219262961419054583470003570369521097670841767295913824181786381331108364213119155909231999583866310475145605748224712605932546367038974210504618280658447464762977100225351917104275163157980751031825888695876007660845434370439932624337287241909169490232602591733148222154194983045490213430046676778136958401523706917412405445455662681385302451468048080446398112878647655318769834804948740786413849765505678161112743127580216329445409649763567505331339222761978011675171789766764299148544009740559597897884468543734664484405709973310673058820184750544149647081375490859822975170368843891436007527371445496447886943024786939641897329972850421655904173287099843585731755261689974073136898297137349022744238018644687961799093929001804070440896951804480820017734915659402827077237616586613432967822241019659120954587678669450225479783296196255686941342917073701534531540173512225830453796184083561096207145896120384549748769885362389582784958741330485376677587962810292282773219614608117613930954260892797569020262051373038674867775860551353699524157533670418377543936342383103713765420261044486257021947697238938834186295336006364048634459614604370211685191773951860707687710119140786066151429192291476918393813196430686846637772307547344042552457995607289614630864918845070809279518456598432790483578061026774172398455455721894717521772531280794367492050631343249169122118562006630402848179429460875730298202700864287148609849926653799519895194150695189839261041086381384339524202570667433535333091133354947624679420852907069430243869156083509549981146654833689670375497481554996373971695463308666315634194141996092505805152573328881061260298366977383333133050906413815767453643782641482752407289185305764804342120921308456414269682360859571779073682093753088197644486048932775996810173189136554330884434503032415937142123596219980559734034888304348771411802414954149847231863125188875454262715660269900885111803127629955892591235031525599147288633534386615806204609609396826345131541446452649682229398456855916754585224790409947632042315069836634408078044135138192013045614732618704087108469418060101066866807596277537681709846163851924352873741872154640958646618676125141161600289879263090790565974749091634383003562320771176851468855885830182991251689790816419338534292806219601843000995244623379586319429366163635983824215993025399151939765041500140638768493105221170947940903631781250655057554243664816248114976317089368369671389983834167593975151809664752660747505069689669562553556982397225558749287187332695778469852542591724437276140690889928816005718394657721570635803527154279172254969663426983717497853232429121062868582526397186318849941695161087877995334552854623160533993628860734373249988347301487642368873164758053950182718337006348121306085718911175381587989926454758309746173909717927317448896081671792778264417803718486690126715808857920197160611962611682340718676775614770505177275556125765296700537740043831728027946557208052598842127424379357076625877779010690158340478493314403629067716605272407291948749053347409824313971318631756288714643139336729865303584102690877289608670859726253600319624881396407170830712460858393528354452258407699762299262389835581242035526251193822623953511327472046503880099178060269084286547695591465188834959771410775271783914324590873083176668622133340971391697992361145235630860694863274329158030397828655813946983155053845358998568634679844384740734768423018171917282007690049600891765717194445778482428449469258933861776714506472854134675317110741266940841909961640356250054220258178434612807189933701942394223497839492761642317476421974536923569394655921373080188673540590668122072506334207571543528694396276382045943468834687451749756017809452712147678106908013213879797676670081645056710077268817876486162093184370359291619920063135192925723085079391315407146359969633848020939900478874502585931201512441070301264220344384652170588186919384937143419271684867415765177748787601904894061677735589284216196368186678051377654993567463807096949940979627978552915619436310291682273716081789559885891483499208790280121747529356714941841828746038872320268357332615533719790022008629994222820838103135694746382253971468812226282050610850674844478874548206435274440840966846177371495534115295830321303560442013709827194131961568360890999226317036362468213780081188170804961672782142613717785669312949528514708094992546554625112954080302859456209781858557150815751273292909922853015058137421947663546581764761148339839997640050144433157870140008828546592905419712227936991456470764905033845194835854492885525822885421152972180022553481889467652448763958092702142756202332550223338633688316310058808940990141936821850366560246067456793272028003404079840146590178612097532345514811300915923372596798864155245248944703556673215661517231868813889534415165331116038433292147157969925629805158523116746303359314898332858907827340998844032209443405448701524251068502464926498317816892524871704712787481301226607915926384952017456262409909191609017046392356920227365606161660405463795610565804657645808930324149181720388474215834746188612990779380095976962146972807359890367814512101404796793924351772776524300405525691708393601462474051900676907758039511062651664167068498344516103619454182494307507114354041094358634719913320531350722695917450815020077133322893909851816341832700207022616755939863941576828366194432331267147180205934041425621885012910445946474603858341634637713868359635008637360487001485101142921534493761611020363554008961349592848463096722206320469061593678733960372737207008485749524277896363289143507340766487363803584510227562836226169932193532838690169628561494540561158758337389091278338537930042913373950901019261590477573278136343398642412149253875856658603460074123075932981834133758693321530489071811398249160314424244642267563635086659346315876536799638487513258894817579949642186432925452663706972664934569579534592344897190975360002423153025393196321995292693504198907729579027767860170162339362791077558596018349159856066647655712143565099021179145963086295937789319375436041276559458694135630008978031580614334021976963757760964177433580389886733270504488062092792885045918940102589004369757083169623006791957417795553771421187231632623615217559327344361623084562911456588699072192566311635775343783346195823521312166140049841008986295930666197136442190312877234923635444865302178291204575409507257304688131796574456968317650211636318221326961991820884277768065763442647880121397289796455816365663973411220186528639851045533547451567556302865929498815745257680230708356165283139351982185609209291275749175220955954695032018921250314960802520304566203890387654814305755519954754840918570151594098421087264144370405396817344041912953039703845048518325940175981657843244646705418448149638960118857901757967298000334768340740475106281743765458190952920257947519523763725921027008654428327440834385778733350413192733541972566220253217323573970740403042250675533481458520386222785786852102642815363701731019856988095958577881106945190572897372260400205191123931321109841907482369706385677816994271864615696396106428701823375162577564203412380464792644323924846238023657621524753593373450596926934152481060993391956016093641583371507015859393083050985134128964970885528483009775889163691710046981404398619204655790728274354338114710392274825231981512382787816125147956341110232701969396868398600508495326952462604471304514350927524346440219954828262344395216276910138953525229882675416363107660025802213090773125709256062073246564977175757848200490093488909393961562346091546453828681395107911931791730952508608568702553593345994082943362499243155311003056976057953565649568908115358700412065656157261441672050035714030603088316325776291987100723380703671570426890210387946648984595444087195601527277515052134467764904692293292805018472544046672105661937636504640455584392555478229492609082046405469052199956033659848299856545828211986666019933971973093657647666971814974665514531998447201562390384815284246273772739564652303696703560486620068586785309860363650668977918680571011782261443226528004959860300193485307313662064857926444944675538104228007863203628876952883870786098831484770738878137775144134982798678365419444691653011599057950976437987316568739813539879852964822093486804355396342380447685570134734794702257702740031705942360141091938516529890002934176223691231415227492556622467064637638954609414648491223877191138181354317831692334645161794346237036019657092181637488080661295774207160100583815359035578788298039427561529759797533545773052620126021035525316081158301606365032393725562091149377647952137967220774316067800354292914259004901649194780072877297943582346573881828968732870573935799540727250049443606971880662911641603814861797308313404213700327055328223608730286130348073769660628701777913041884473663522302841702344992470932567217779669480748616804309721083713940705227043738299027371886562343225216663339076417574788655339473815637305313545414595837682957187404301513587473550684674640241001330891785608215155164333528795648613076306983794432540353293857362127969557211357849870233603702779797039585298672923765448133393200176910779721175412753973771107163057805764026791702878580474998998679393142808683641082267300605799574558433065727727220599764617054194104201537305122107806045647356004063428593776043798518278144924667394031559040906711453745388242926116019372203747982781107682334072131268436248679363624725892538725527449801351406539921723810365678285920847147625713215899812298583959534206071081407184664239160582298122784030576140536168118736936715103990603102908857487812481711489189213494815097649692885494034246517751836957772543314233125670919153640620523665896311690611136570271558404957928955368853249950110139077517850955394851478915659974806057967512791299085718410322639891224405706273521433361641796569942981330089148636874652977176044119985706206544353000241189497346823049108087522986674756199552664556331892819319218750761370491302447693352818650175144145780533038079387723083246274395831516953567039602184090526329100108931957221512272044588891975819933451273968368417434030471963132074907673178871867135242674082696695801613889936231677355840816361789778041136403648159704513142248692494724637537351722723003364931229465973723475487397728758966354834972042090681356819880072321022147371889744145738283744193869508175135191958444758324036039933317534225778188632535761100811992897248227150406109150418166659589427593960969835574162752738521521887599160001047853571687288451133559477391297321575037086580388403692547430899095625047295908563904031033983215572984884298705599513630968331952686099422067479631045640783510426091991838891945785290932266662379461129253776974092615248655699467357335349240066236072637478254815660596138507181840983771382100500259981993488237639343072383342222087618712506153825024718034920127861122259969162841557074282870556273168984136006270657292304073815018123646358067771925867566616368801465647874169164223206185807480585004616266699756704796776486855182026856756298474739629497816728272418477731203787715042254262143250896284815220893995989849615088908258737557685766930286261442509261924081907179659482771131488665952519304172041341099375372655327570960580220507488311086615597098582761618987387338270960549858265762396513459494359372213397955134664980818782417060657944890809139708140265639991485913653286596000320652684468569335436251646550426144292149076464521452527069557883884880445760198182547094283463396637442755004359102319103993386740183947200417341567926186437616215021201299936788095429106485465423409014128230002185037002123572514398458571313787009812395439920641579927507045037199371237429725187918491494181890436201995568108458145984547591098801080610369289301181891430611178310171993620792977750632190202534912076756912470293192570306992541955124522841738496435185202137908337788734371876070437685534763226696235451070607028040286370991533306291323663090734731909639457854848129343148627499572969179684769260289608824259205634567394838379970814087517355988936572379352741889880326414460010556015056151207422560357699384705431831697977910127621465417535573940929033057460162978545899535077612341251972553670113353786758013834892209230257877637790449530448877384789905933820324127704825299581049308203471760359351390322274033140685571601878505877302498803400700735012440944526284865511854154815108992095847114508295597694307421159941588173102792737523222384293900498450512590710656075456748957969290617967566792960569651521349046804422678004699248413662889822443933392081398622074915188028151595828139828110714354539953956221750728645075350566092254385052973369831256504675559871683304619107306172287170421697656702753656097467172283005844878465528952753726516433668487602751050723361097509285780343082366037537114656399063691363256126609741769331456956377260989395021919085891961717035997607996127225586790077649127509914047507711741313546601400857702377005074799572866859025750060853718738184103089169016162908133239617748273819508037667401586684083084794797593065748456299150471669931845120712774853696117830086980801506963922355617143033132005656849570948104395511192317473607445557698218824630235194854793256685015595149443735164791695469207490182566143622059809085557225170229447023392306557198788499569202875938095540454772182464337636014125883114607727103611472870567846373709622445404711552990070473566441132947105773274562366280017737807639694390456736287579118045658598609980630722168523788783561339977993192575951896081991519863326913236217376279737553934677938275192480516269083302992695377341736451395178219502092339799502571092122937841412423722680577646092673335309160366686920841602924605874720149094948802004486744537467700310980427562343979706297428984003387488161810987627676814725135509947354544526079512656487227963914859412247686245690318069958859801229958263745283840455090884844870052976812269398686444429654311963574871887199612005021714489964859769122971495118033867297642498951041088341303024174713147943006009074819931516783228279625087469386264036058652178832211332193071972611426634474067994891622587104431011753409821893890234386516162347399629720762617970166534253801954790490909107994524897773047065918506183777784183515190876693597080778099495431652683771769934170235469382416637532709518745945947063124171761739277996985623046900140281331377999250749806530229025888777365960119348355431692034669108287731521621628723086751611157408183751820595653069338520865921935401343251329868601670012305867542282021124404195035517496796646105314885467531793815085179791754295417667224829081148938253456993461278526845842764858341938876813411042331309890367718864927162697096980374935703141494769149544560220023141004775065491921804494914801847045544328418008565251877852314191725658308738585082139871447572297743228552891228042780615324910249026556762250822914802059876937691950800595109362439860216102785299125879547158614968273277281388527190406067054289008995707627000845777607412483613792503792067036796496799154369906723350042029134171558844105482275441367909759800491936634854355781972623067595851616708562204689472964572127508559439783379039488519754637900298980924613769496601643225285301702905749952025676234491883004599573205555967765561249620494792862972861992800788747067731105716099527719391683053936356482887690208389785667946488551593175928364598428489751775393395789766433074394119254777753028074722096087063711586934478759441040197456713823335315111632314211806378158463207655420182973251304688126118262986532345351627321749325580515617696423871553414180430046823168039104349523715972079788988126651265602705642892402297966252708441902076074678727064997975371273909226504178397701554228876508445907225985162996885269261239778697322722055111749895474924425087530582359953181301676356379764716301080651960843785959977270061513240579977975968814277988899915127454072113900069036320507017348815449426993604011020164138273886628054369410122116782959609859262065253300229606773427321910622042821061518635274428496165194556199424890513051536019824253474463221574667540011643287337336376376539251813393197259043685536758025412520552203795850682489617078804309486733686388950570244308871997687845915533054025788887755732578935850503724388395634861686344996598894053617012387973757178058266034293260410139754886256796381221472741533131701843061834730062374521075444705385383584530713919317259184962855376852926162175288327911015479223957711951603441965279208283474040440711362643632016334200567351974975636524441067634483537459771308475065141737813382806031387501240225940158879820176645857689123754453174711456014295645920379840018280966899283766791410981690300146113750429206168026422601594806150515159684491760405876436042370197192908833893968134107703504520621225976445727760246395523849825610604018274029661990707739558444388519465158283994099551497923289994777894532628063601140175328310653574674255424806495794633754550250634178457723655403557577038957276689013686679839900672370799380063179798013452496190706401287845541552127478765694111517212906108919301789947889066347160641111930234329616053086029752854029239348735890111793442245864376070375620211973671710698734847707465545811633656358800844445138957302688069164863850861595966190965956304879794623273415980298434956811177578900452746484019135952718461982539600730414746663422011930938346684843281886109178759687325756514639294405370758104333852119209296661931941723847952934004280264161873137575209565172996227611770445165455767975330231032229844939830018189016369923813988225299700283868451196768098396941365975861197763327610456128925391643301085446332609732695146857847576753829775913581681363613907908178861838467399268100678244144614243702046977158411182289890857514141610580467460126950749034224712567023391271062138854320786177015805365618403224015871035037929469765940431303243167141212949117245781315099818829982076930591933896602094744210992758351870237881124913132368925959265045104165319203981769964155704944370506441413613430580008187516160050889518898720688159007630436910976896377905553072369954053197773934392006942610160884163680694070712654751581292235092926695121762517009923392794035797281598825493065370941964063025501840506698039502155344556985090857709994618123402130189848121032289764094715731847158644771523640356844101913117679641618920038679801878427306103778708401399916544011484949110414962252290855153049169976994377597732321300122278670721122729053211743985090456804802150093314561176313589466039117297386950867097808898176523814036377817348646923443232435460269267426412402651643872581530340309021936283145648605609612693249663250871087712253376740622856579269026370769001520156957819505308658266317133198191774253577985867092994446048650629800443213567704970571351985671517951502189219257323876001748985503251357146528363548403326249585936242251933452756254727674439875250149759679540336056653366389058674869124279089666148260855235866876244807833038253690095865131437552216446966498014831464206104900703568307760640316499970813071785210976950581554466164383097558335978106846192515582886878268838080667942448063608851197683660853766509870949694803178097336360552510323688412946513450923385789531380393038826998777370932794974742072363617061903377743578397163719369172597520061535650412350480709302561234531556049165466068178561748104380098179862034337577479450349139845387148930930699009016430197406403298838953324224290421523329366045064340172074608574507774012113605687826353239269788397273121185431266865764710203595374366624663872915952459995812378830206629988899348573830666617199619899658203787857570142769442522937883304735139294141920246920912502348748048498356662078385774452273999477013529810917214394798350076734104200912678890656973444814611435318411928357111968860581541196177149209836389091794048160321046181382800734501734972589906946668856382018704936190427658070030654106204629266808257892684682404018112417688103753996556240853239006226579020354257756217530374428680941195747401223713737289902618022722193052531180363696354291584886323313795583960793553448718955622074341088594584793083606764811046228999267017062386335513304831964406454742109381475414361231676330851259043269086839441373841063115044186752053615728290390693280209557633442026667099422623686945552000994952810866748329777260922835901753124307163294104417317864121906473026515923582240632336037374791799241095879071602450206238514704698078619920140250844463473267149453464202396155343188727377568703666738680989766258732245428954252073287082882427441040051355305106400778845321407140514799284761158237774189950519668130442906920392675461408272226738866786577714111327054716379219547137445437252490383792042935830923653449874310298270112762692032594498167235126030563070381758348528331209873462024197044770568835653028132905077917202774676625717651283024388658935850668683067644457703075186188702071961326030819235953982716544499594404248862676223827418590720841675434473489316941346668819354584242191972211082519835605151146687285434867478283934582235195279651318014027347963075529316783026629182018390777598330957060912602590595043352871704333122957791227173652741811341939357248664777976960726334160676255477735362966935245334318704025366581950420623322935739084219965222795142296431479555826429166103283233347094126809832415650772233220291035698777088529238564183549099482056528685284933813929586902240862768465891687749267644580645523301738021022246625342621334659547939187237670874721280511562278910711892404852067682879859261220405810389490167602347967834002878891133161887539392777458527492015529930368156118647115878944433741080140395758825956517928595731156584665873755210642091017702688490404811945777501087137765052799987221859472771709901291700076689864436721341874548471080680837874216641082116046871873732648069428945116452629044170583242398254764495702377865872697611977870317602419821347732611932300948172058700919720471155963294543743191883204209616272088738785189549426578792126782940349078921029536743406167043376809624779700330815142043942629550750137133178282085070291695900414636399269822608067450465274326049030000237583907506686040646673708958645199289829921366133737238753303823637692592968676391897932224531791882913572128094098499165188774291973930241452928847574279542094114566277501199871071852620481816149763108308735891698784829107376478888852956884514656106950995792390284034153725181404786293404542792234562526736223099270431802527960617254803908042941799838808506588604797193601656307420537554895189242626196000378421683569697869230274933353901497920817928170608712366762299649033989444942342582466966182606013597865372662862474737392560439767076653718162140719950975726014035253017734137661044981896568182107468334081217055380221576086318144632244992641152191267327330947724302248562917309158004581219741764456863801265591704737189985259282591238036902989631575779302325075452477947385502246090042990839659628466544116440427567564836466552869932114883295743197729081622080190371356817305499877531469001531264509384595058438473154933817457860051319117058748162269267540609635269369235095070641462158652264126921576285798738965744723788777121449761989729971963788649347274599433546186219658645903300679095084001396765846575924426932118023701526835624960173266985220542343774225964015317232316171011141245127200864049074288019043283602293152281042954172416614143942191418288706699287173946356456040035219363262234644007508189911411847816654014829441030777316769761325044896933515300061931588077595244736879375995096692769892581972079178527946416429477961441394819608506911643121900241423998189803721889541210446400913088600647939853598502478701353942642289894379588847089666735438465638735384604861490457029836896636227399752945067741625498877734395401392750477538461656497442156874449681605961251813353951455027122009044344568083950223517043612777165344606717447376307107256655211476725737110772637528082126226565405726846996052939456193175956717074968851833037631448203628615002696875838090135733976612612474226461220580183426216281778447930088267468061831856112158098644352732849105802419280838341303017369759883129126112490169290803921260285160783252214317993456772657464122954308222642826092721398316106899687723814831828254955000498105754440315380829324049604596507639962020103104328279338316752560347470018966237577278760865289937376312333153371468164111230289871277211606145886947805312583920397902156817258101155259973775741954384820757616809805288072735953610195948055854132382837850578011689468864596888799513103874472436603808731874912822013233331313246210962488443865591062452891496148679731956815897611796580291502279968017347844298469160243245295451958128867970364321252865387608290843641638350020358943961703201918738665566174593847928614891649261657172627090651909926898854415731011463987718820859828728179514643749862441475716862784679618033920766849183312991191202566874316463094711641572008491747523640132272602642449395568892300884702799860170011566312823230191542204529056665996777060150722404436515515581619394647370710448692755274874349423938454185386563285025923880037121958015221435214528030285700941656743543230474199338762939511734057012308508642415974691385671218695539801793904808111384010663780885813727223520454898206945720457458618468883467560438463067281946633087118278587271882910116416523190602623531608531719780243371283360517603142561030662085080217954045233668716100801844855297854734713990683256699472510686579753465182562995464504027559594608394985790263374451989957825126937992470069449966487054170189928416021507655649261815177466204995926629361308215584132289753283221234794826728646046079704934329296237774006432525652997689263539213229634196842437161023389045391793633368757834293282082371532785153571568983796084357379816116175994602456563163525556243121725628870368560008458060479773766795537173510947944632325729938971361902238365522314645075017224490923971361641343585851759804555851078036507939515873862728267477436179802157472707893673872623875446430013350644309324744769116651751182215906085109368316389484241556270865342255114247207525336626501968991173370049798157910569566113591563054261064791869834080404711682162591282916531749549199635148936569698130923298913948390987300650439490959124932622641237456208672352099122139669370269633800005651324774063787627687944703721854889232135523727113714120243838108836507364026629398598856517784572981636763941358453724268251534134895723821579587327353762972313916082943536332099874564835394579705358208174676702026825102384322086760044316516127564116958458039636450048385289747959023593415426645338225352037171650810680011428777922825174113455304130593670137524386869774917900075990751180361336847380909398647697425226619114347774448504167650139935804605255807671641281591148972063507006375644178004823897492247508680596015071743824620193600765335801116947786524185800496074332668254965946713596581896897451573150540293802468697883160585887104021810714466300715866102881805747909992438632255648469225405677989730705909689372525363005517270705203513259658268520349521982484263398984305569921302212474582733486455341460566424528262764535240446175882904007315260731689346554989038455412270566461311380072516823332597062796790085798259228207564721816878994167438937739044936195995347592314412833220815948626809334543411861902436539226002114905895446689835886715135791430422497060385238967034076609326207098411752189966815321439645226741901930835806670703237014134879064264209713955639855463186630044553865526116642205576021973412170560536341585251263059608346517486795028897496182546268680820576967072849071149993228582506847620803656715035786831901327791982976127562243391850541925064351474046538280885414485754391879695746049667328757048104253254276778122619998642426739267161544527784981391610560737519711777954520114906360190867596687281340396921684697168935385376531681860003604450297592063414798655247925357757210242841335135905750122619909196184781703888449379078826319861278381252636226368551101102448769904697918158654975645775523530042189451659845330591238940107581686488662394492173768188191601269781464318952907792921263361442194015077375990702480357273776925333839386196869624336662352920602396502490941100380025039227462921455878004115651223422136276720926443339958209770568479134071082228102471935103190642689015339597348642992008681422270181059365074534703604487620844832187951240913683612869889342586379682518696362294710816949279589734850096226122927548341965286440891450752715948757848974819901145455597994581523480711531644206353682334810612521048510439279150317219227418046925233450480014022794810392477270144246692369350412456222340895979819057008999155243253838038430379138320276822760452844589358741666836631000499677236308102772465853348850127469132710023547409042505912422588159264157716159560532544965926585508486223797668786730372307530410706542170899475842012393185972981029549539221087506042430571360742129145320266569715918220225306282736886036505488647500713949503887891039814316615919160865730970940126611281883893799398862769784802838830655507486032799175445085725059651959904513910999189263374167340401558922957356296402789200125570052496887168999198108437856495315152758358693997460438545489316501175583652744479466679503348450648683229625211440468441219235440565418647967660785042121162757142874093980925543113000936623925683768646974903092670534980042894145350254295039878762685839177194352886698468326463449679913093411821864432500757082743674481796701561996845616822662730412759661454202974226856991291891300833124137935164019418766574894762203968484878923029387590090460870893779716835491141440271151041387183291302697497786661230413463869364230273862638375821125612067255299101488944561391731322248980756914429159197667517208009962400985288768946956379271155505581325373748590257443767802120931938562334434769057587199447832581516246750719614416274424055481407135716363799550209603727062279532001263321063342682440329927892985179350722461313896054537983843306912018652833378943897403960832093121768608096038531347685331539803703937663686750833995135264622742623648569016020269233706431908871983933654798907697981284115029237040249975446048096035556083140327016006422580322203025978384144013372683316665804622294359718161616736673503054878769297225046043209412048913641759996639266493404410960097099760292793154128394509426217157643761809673897659136514559965133341606915004145764485337157931966487594824417952923700709610474789825087749057812068155139086832914166576293919534829539937225841101702279659187103466783543659973191424614903730088746448246993284726850548164102065770465870336264160952135200738149659068947952065055527670075529112226282823590628260499926353714895679843303984721045983487974174454838707064679008155449112303221127784432133662584537951704260009052834225840894248148110524546105680224814496823723836255016132987130364255225597705317546401155802059805186686091596267118088128973707822766590391821738900871980803478128644678026352807919652133256861733220855077255762892916084403322837533770316433039077339310216296035076363879124862359143785111521437695746411513656260404397108619952350436783987189601973110469603237713267413232028904729471700781045388531633262886095707445107323177608016607617662108614122918635210145419044848941207781595831645949199407526066219919709788451261132617992416139929881693145422994688817985718839283306581192086340799360942506261103757257350350741177144511998371572757800075161300148461948812097361373156704722454142541434268804004023176422103730896157048810867992781257892520377068501553116117248857545846144538351547478868366000842986399165566098462213126128591716112193714150644355241887163045083181070411798462481995951332695567717533414458072272080064280823845722475945399790619058138841848549237374298113494082030645796198983552456869006085604652630816857700871199204151156909252863823333296550211556578684441500668707690861182166713179428980786107563366292506811049076303303298042488053756142256593778704099023017891769118804138385524910776830652671185083114668340659182372297182177697458930554479630424180979532305724853075966536269853453139245060000124154021391492775033423703109961247134492847898553118906399576588443474985162187867979072604047868739698099492855822296636421692689804462472493093906304313027813120126397691381729778070736593331041177512167591340903341299614062335304464764096842966831758346510340745604441481420388702982958077005717704389716566968294507770117650359830274886183202759887416362813890375813702717923529251341537771159481203726470382400126297315216736414306403173574908733659685183293371883684620001883684752811811454443977075829148924346930627047999028050484708543452463382779910637442096192587357059772065190955152026591621305020887985932709876678278554622966668212981210712798573247300622583742866238739855241591485000843258138345318567332060284907586538975429906365516652956009293405872577433322935600943976805881522214813775808853068318297306886353872369563383274925204542012704517793725649405453022247152364176741748179454290632023653505795744786881356758408709422663659657131139485980907193580849610958261152377379431460635153244137910514736825932312999083335902341034144809485367536330050577742658331767151504921560206009520484001856459866733706012344228366809556749476973932635579362528303997541107540310424963213661884555355850525419983373251499386998061694556795889918475201735029417358115879234679635925975620156234863318032079156018582030799285752168373664749710386164794657554246102420393818169289301159183421285125769756002579852798475462900506187318459370308086897858447970944271948833473889434423889106105300418918091025548469996882700333506267195596554342442727480277512017481716107326045717864852348516796572680590076481860308135809937826114876610640001494082673284591495725746896622100259771306439336240546961199347806026484282639339673145832742416017339469705450596192090567818083240985582085593514684869290022559360829477395551466314191129933821774744828345426996834211639218019162261485520170610473293233169810836140952862798387660620305473406254291803271485520290677428538531426708208135992858747377302010238617423512805819723204185399521072142421087785634825659523522376845942966864730151098508673543770424874448859743114702045269639119144624912233937638808202881742395776632006489178281166747569724217259686088317275923392613823063814181508000925441843384714233250253124462715413098629262740759130202845457363985413786041364267910882406313461953440295911454023418295036916233823553384730816456080494238508753873311205632267656622907888556395466746070422028035030405236463744390807556063848799709911745925844970359696937053752369655806748020058271574955045918928907283106052806425630267536897498703789222378168124142741211202495218331962331540062810879129502156985975308399645073884834252922526118036552540421117724843438818771076658645111857024127979474785164008258230598954961440758501713047186665447491087661765840802623507293984189173278149031926926581820916878551429815075779956425318495994743060790182401618603249251876442795475261936964175668448700540959307042065854501046593356064842405163594147055339479269878211490244645175783149256075110339340594598851358117890141547433640855546374316426083897438780469510840878468723984945711269076527829891962070613189713657588988298085607895559323240351139159442143068402499654919228424359905764816198841659858277607654417525298636706545912521233597064816306639210085219297866512116688420780698054706905592690047008566965800371130166974810932733412910618506414354409445042491594588249591806095541673572497848966202599447805954761541805702687475733401645280387523838699135583045731194798696729004655140355603434049449814561034242454094312925445216552647855838272734808332664535302592122556335752253841356844601496888310702590661681977417321529063194038193620392410384540942890342874221959480032578636640518521389979471669969488846148990269284718582331358748401226328011487574271332334715767040740399113644200494631851176139900826184145416937603350353506132175807875837097580321291761923450615992773312553795590469135210515715804808026095050219134358876323576008254257910943893566191287457475841572606302942060539123462823660266050927845684174085730427961295156174476682089783916351573370376225584983630301089757742572672098054733560872263491727874861229639057487135671346380340426789411140908364475812210755804316995813754959012245507095367828125620837184990521526973658420607154492425414811211685150886621664013985780484311661413364551102177138195746236454043076879152360438354492149361354056531409956281362905634807211296728606656197805659940311881953957101032372052487777206305555284078037456222951483858051790049262139160738828586958921396070129823598141719461866180707262396001078785388155412543462296430675105435827185471014301217632367621525293087930671735302677778113602161703420722337280853120265623449084369149683773082177843284414550847887208456421786544685298428262799745032514579181698671363297444435549292672066916857206948430673160085381347830384060082867271020670088542266853188154988429506792728207612697317308320559525054140101769510240266095213766660495178473547029446446630892458458978037208558121727817901657932523297876132507664676347579620449150100928769022445328703378985813539229720994323761205114093632716291340289609467359119827333156702753744657965948286207287428534802036710983455340439965630089050321545042126051867321654472425796867116975181070888316623959160123275905543092087238147395351798944712880191496651418428468090553971597781786262508538334398455389536138596328704291238156897378363888737661911105824158191100083047519614984578839292920722391486828052136612503630568891488812304018878821884853499690858999989890898113030256125186034192744512410083001620461093777616444486478239580617620742288653341628040518857838361843803730184581094252835015928671399180004239629107141564811161267259703948182334228468116500546045264083652789150255724761377501029836364104070964694839629466667199967300522464111401509276533457832507391632981046037476245734494922491679949521306619674289324954501501193339481356332728902458632989738142344577586797641133392126088569406340693638286519785095120867871484279775191910416902270534809764840402737985112607255575231687090631149787295908861841332369929875193901804711256436908420154374369577674565036207379883638320050497088835524345588999817328648594141041126825898810276807100883401465019511141134482560826048616405577348665122761186564475110810061361188675970613207758873765169578113783231766841125224770801881475374332468839351332352145507699442629108239866739246906638872790593367013930155822644861870665460535431064719218517917380651131090232209284280000193041206818133317368444080586051158653879245887729334246618324417776208787345212036522182363497721852949083952760329220882996007673212161696729500947734313267491889908563315473836867666929505114246117267011791951161285634453884928528686849604270712395955574867100995314515957038123282108126467888805242030403125205946036845342377301568188898105102890908494152719526719967438852637874411606234180741308214552816839512210974030356445123222479300947204216653359510173194507370052836547436060376659851559921042350338046133518207464475961216320293423600054915693050401541614680081605732306550011168875769951094469760007827231960501564731468182045418898346906269507829625541084568376843655101322814047099975110674304636109191594350147289385897279313609576449002153169147592496662443252390965715408983268760001936429546190085541250152481371372022760330575821183939862443797235384968033369531750031210122723929801500856028503279321182346285313140892824376709194703890775800719708645714015829208555631025437904152591688189946984119821963533266625023804479638886359985548304550213378592783658813101413979900063548130808818809368182670599927954552195323745482982010217647306928106538157133968869410108675452979002746542219284642242804299547818059351602800162013997166253793440416539793024533366873305813934639557203479086091433143980913396172465467657537298018118932551663257373406205873276919359707875865566354889968275396386312041400518604370440736232794344076957936640188030634436953902362102852163463565048952025622452778040662846635329596494773978088511001588728149412321284755969396790675926233249148118798765448851581481058304833016293923990914879175376103638030890165641233913251219070360544360714550373436079043759966097993096449979505685111717621517866311423755609487763317353979348496850757185966923701101068490459503329671547398363166707172959238656700729206818496528215285549866501073182177839459338471198295492187564603008961798660006722757853169117880084481051152331945760946594720047908196492291311310349082429036873867135665661139337737519434817181217755660310740742919494737693839121658565263750251127637451484902780958698346823859592816029993465341360080103842810545070790059304062332678176021736199542639775125917469331327231343630957791865609332351707957526890200874093629174823407739850256288039996416902546605284253265334072275800655062126807508416657210401907941973308540929123259571146286893252313160076122823635120355164672425667668488914077742330722743169290197983764825770226783129493659541823678746663009706286949300373798726881493644849579478003364639767411280207028369503082775442161707637187566273680726810653586999032353802456755895173684364203715517734589235139980747010659425371022753831905384117171720142414423460172624575813365055986051316895027447188000722788024400970374998837673469565099150958731511033302323317902867506432853642968008841539902360483365157678309250015907971307558805679596607406817625516479787433867740021745538689574316254729219465691188238667502945523570751399997956542499246182521593515007650499210779642394832203887223114519026963307202470255009751985226866027648933334936082129529793956618886682375861780050687007866799275381855134351416419004048488811692446211243412971757752076066025892707873890548803374434079875192562181274614283145399251125561230058860938541978574318406314555486238061508199454479802163061526746021384525962618172390032249272393277611768709537913628311090190782351281990962357867561739492662451711105587716875122414531828995951219407368873302894048606255303124894277934478499784566703882809804102723399399162539608683386218707258428034143496314544404369007836185384504788905816044415043690815373778734683459546785032122445218230894379268380473219958362344261312466435597644819783548659608062567418631469449403090255665526516982305638344333107305955253134255922519985277177288875396020173841238920093672587330042297750369443969338501439840742864748595238659407147081971992490157502784495274971092009674116140435551174163602117133972497633820522771920088591165303404725098839521710808172780382156491018252806335247119105371286678272436278153514408513033691466958214690822663854416935197862429985492897257901411223211872548955279619141591059468006881731721779286668123228511905454219053343774911984895901296747783301343584377793198709594273681144159515309221543438024256793719320101938118105495528596056751851949707030299514372653030236485935335952429981375787419640923456815568513951150587941132585662642867916762910519297119983502577504881018124298919645632747320272025968151890877062964224128270307870540700273284604002605254829096393953113852276069141099110453946795171852410863968384533111808780880950986254346568755128185041110539290305730705284097768758465261830342861469227165325258960158109281817972962698771689730342611367338312821113053353133849817080876856989758633108328363303080444305740123046273034644362375948361182854030735707679839119324172294361201361399400717303508293716053413775356738059359641927818844314146598869801115476569478083033948896190881836423377413166906508008371287195741115154395727753481007737629069844729349179290145505691956131272242344185075566249855100112754876684159251931004416692278752502481745458657161284194506308460673943964153104103644800607974473007784214765290940057141662311812157616799145107654957429532626560003203241476877818968942197979657538180632979644249497922077645715173822023516114822661374062256522109078855119802980036689009323745479287724770414603781091052238708492854825682574631452181993832146576729489000407175226634579643352770561010680809688349711958920937006699438911135074495805267462504557208720722613494543233612902622542384528906513934520707993422790223276496314328096599089317186652946862734625815678074865669149219888510763670672417132377479579523831496128526176675867080900344707193272721151480655623994037275552831080614935788066733119385109701697149141947129213694695144426650801649116753901514336525490991681072676402215262814717921596124410235346393461315868687949848961656176610191505683054049816672732487014641233924029330845061192330961785317938171437516980003165406917854043149004261176514397788562475534717704331800609114463033005370418479447092106287078357007503188791862336131661663091052721071749893328367104925246672008488124156402228857002991141733134132225307690812195277703839060472783704353647086834798782072460543420810037573183691930620062709783823494987177575507130332409601361291071432998631201548879949149189191014489408233729012144866724024784453501499355886554430132422579057539197004210548606273259548634362983482834255169517038649256009798994124014435700681977142754763042140458555229710635633621349148891509196606509525216680215441726441120007566051109845200985232526770003576324530908681287149489365044009783634537564855318605067613951267412161585313570116763988965162342869512158691242108693671172188459995903691427393817266862153143466459878391787655966612388455880285254189887710335927170694633486688854212597706894735910995196280281465010625508774622245176472063637979513005461628774554125019111575852228264540348057527299044851067297269617097850210767485210407443064593441446061508213888351433314145888671287553255495807152395219346195108134459503079649439742675403548354267185767614306846848677432024705005580825514508814179235949604040110959853867303251064816738657075365576445719457790363777512196923662853794530851237103941336134226194949681979169438249656080551931448287523991571805863679446957353556642512441209043987053856889530639423134482104689413885401873538393270411538477115707155387787507497973664381057004339999262702852320752311036144592460975558192810397559695432164872085850121422867773041582875086926783344042983135141250285089205223225252621284026234105255164100738351187067301587101527583298773263459740015966162167120019684502113913197985121593747301938893543954311697869120723128271761939122515145007378634266415976384291591524815073383688161071617524003001882785699075966383327815230369213784044703444925774903486537572171765749223339931708373849191137480519547434256462947850699047903055775684136278700891600982958855401657680042244965370496553019741164225940179358823519938634718292243307683307452460637261655135668451143337332759544593828172462909435499100758576738124666900671814985482777309603612264221842549209239774348268260863618961948366242585113690383176697474850296849605382369006136710711617034573391963560398941526505881396066829151132570322703226075950169853185547247270957129990680896849848381790623318871078982116544033771847514071775237689320976899832380985936796841591045194375425428264835234278245331468640868641267996974790255641758554994060030029640140332512488075758394169927242595429540441473530804477046941987797176828688281221465533086060216131203252064789568908958952662737746974558144704360232172417339096863651741079744886328478756192048178913415659187822675968896588798710713883977416485560294659076979883786433375595988893017842403613502961997993926198918679436999222518209431879573034056380550447152296433380607960499572334455204977337572113657876976421796053918616014608071226328345533225799655997614923913305668102492006056833475198302981865606945246711264824076902472460444463508012565358449015549008122875719770766783447466293658040394352607930530995750426898335407578189297287854413808864111680543938689097764822275197263621858183021176459772159466413967197959950087721573323003174640503547950293937152415351517312746895304739380607550961059258196660163737068078575407408399618234775179779305664784863563951435910100055792721711814794693296070332508176363259371346958366061567112553751105080959976281087461313690423005988823595165750172725473925066809225703290607942507930356861560297239334716706920947378682588413970354950756663413915633591330728040868673253150752323907087069339618736686312775549599570889514414996390488460371243196828436563257717011376811924693813608400434536509584770076207611564714697445609220455295461081210433848493550795248687445133081019703689307603621511771441987194337172062358741156734525730042689240674553234680447534184655203135125429963435220219827726424280313992021992199247885575792548472944666037310672320691544898737088392365783127919836822387150157287058450002486495352171794789165040629196370566888695031589958637120617842216615619623464852802864864302394137839093794940942246475558205810732616151685955812804384119043483395315520754404531980095348799928261756724314799711607029760567826860422427060912045959580932546619399049949774257952979575892451968323109755292943212137342705439164228868155798203230522063961251051687182801965513782021322381562403159829755863782816442701076766412696381324536320606830848152852110489437548132890137247819212587634287946327616948249339976624882582741328754071029046027325586372624702273323999012295098214141935184297162089704635553675248596155791376943265009150279629600889243941322042478484748537591828031852639697864318641723145531906719148615781344446133907101063316440930979171755365641034718358284319232187840150159903192030158610063399610126137424466686546019896158702126143860154767763212329135032632795728501851415084149754426291071996860517315179390635192321886574094102074565502860498647824852120005477228099290705368845159670671204497252521018987983154441716005375595167670712430370678936197605818310891143565934646254032607121584440578392722447986751227413433125329404210813760287832501622815336573280840868545507489433778428041159668983409390737299392527139355186623419268237821297656123579855073191205694319435204323844449114827301905831127023743922123926621882278832529589145798702395814484454788726859739843551232678114169726155678968575214905598492224933238793697811509420314509319983517475402130568441130243524859438511598144282058902637083847598959582968381671761994708222844500254838455676981898941812196991115986621836068972566559810622153365401342703995716951933158383424107037353498797642097217621700748221792363258259263038545151813331354719670710278997368187577389216327911196949972328601937368120996418338327164512772016934963876814377435463219077385856853645316577732945485707139168376355664271657660933878926403557853354615310523828736785402004002459250357690207591934500913259920959044774074267301826809650329946464339542638052153562382149091686085473075850795589867982591589051964815668298529661599703230897779131898092006202432760616581052270355089647043555038457990025463593355416995781422783528674773211800862710759947549807324232326647986658048425623179754409835817637450427107540431867655597433795341360894138610124011280102115824706754206411177599540906610312843507213652806243537499074503136519785317407904061821275664144452190357149643396469100228673916571487599277885022226957640770838229606920424817931312443565421155856637321288130962415527102788587755352650284036979443263248426577971262638077062349195751943496667772295895716084296701915129205679234232107125363811232393879591899230120272662243507566889694445480437593003546333111376311525818294127371651512536905304720493273657890251902333708049385535188367219043097517125134249490541689367344538032896671544906261133475044811199967657825620724915622945724348519521487854731879821284991870156396259800739338169890095367990962469259439971911873425616800650446297950201618014460189323061736544733225494373064317140663684289845949867325574340041373628229979064144423566221019433837585661556331536483638745015379063851524378136585221813853037186885669054765697732706236285942305066000878269875992465373668046057912086750350072387392050772660675149894651131138001050748384730030434891531610535299297087017092517060402562725827039834366402641807646888071419410539916099657057178057123223211719329263541204825884049623532139030789757204664619400957434768055912003170882485479299949948108722790850239294993469549703145144863871220362911993484902067011625382530535637018558638430605985020081124456867687119834901330728226568089091347567691109568357218845167971230694476376826149440654763889430921447909791468050242105155231424055391823791994124988720450731758794705747073597112356604399496040692009107403522306990259366073697365425011583009096260103716407618432665538213667541001918590988409755073911364580143688482088203687832040341905292038450915866392445537782624674521641419149045926829032206460092436184509679349512073853900968774857404353868610310792399045585355661960745865452149869055881561962857314298187918026896872781035705620171807092174677855933307776946908726927038148820042526046937535406049959789104647316689604384123253491639243261029424444007501765837340409838573390505983155248973225822920553195880308573108239392279295612980950046427139214671755302637082502099370073783346290673554876309298592533214196101131034071720466967561049256707029854719078087014555974143742999493530040153784115311099045355124592709625134590761988748497481048409863971001569583149410344836422322020066215350045782844151707650986363498457106230620811116671174172355054776314624578377673951275230300947675936643668198376036996211950561170085420151482986398475724671703647917575753098655970876569656425798595528829660491709023607266617903682620712984458352610266065542944169957130335993950412477953680967758380369561097747676420387359253235000404753715550118094348521628912006830323385965099855599642693141861942571360336184252112308485136678342196237666608376642164517734753669219760476751023874443146466141228269953815819063465352824408308527888374709095445210339027136099326168547417596068954714479597569786689881805462380056058972308400818502532408220200847585975589660160726862966521615866404782473370638504645616954252621924253475816403666351184073954516565812771462948602051442855825180947558060202657572202936897838729707046230178022364370764260358276456266350248219770403452144927986316380349312018952474414388572966773521352855542242879918898286363671321262403812510913932159202097881293171248373181710082423326862353545298505792411304956135438012191636740662323631958644359839036190199346278197283440908906461058639911729690112962570178835940432169975712073208329678015659405988639241422729599209505134232296628185238688358416752637390591404059434932037583099973999958087672278814060005148726489563489874542196398232657225587272490096870366245925275750083039196056317327802835099925873603718917783542928678585384568858245635026370996952736781193516424342550692143102544296839439743247455982257144104165539348989867631174374386156147765422675097854241656899953421413521635306962732002634616716872103302461084516107435521973086946014882851556565344819261396602685454132298772778029347033679547773807869097805012930539790521917030826420481778604098845561884434334150745026210794791328877573693948299297275436555976092485141958783484914275584181667041713956113672722889038640621773780991606093135945769619943319664162037402152686148061407938485986359830742845768553851146929663971078920384434262293800747354842662117075175553393671379868685103044683441028723008415336020205106879915872525009229685008783399383275982842867866597375926494345674491566351740922256932778140585577278757590193248544576730670151007006538962914608025997779245821915549512984823670736652246161206572967662645958472404324335379640954614143124521022947697548616918668470042617091598563791406707220057759459947011476693739299542402976052904625826518032215506931015132989574853787046312609817962435747180197203718216591514876516526819116059640849250653079525775219354306293587504868077170249708933285104981450994492394570146267224489809975153566874760256113820714992798552362584322289965790210320884454575802381107105723700055148434188621925501683949113844565197302575022623694398585405426832899326684986509039181978292285511839742583815871547725131028058045584096815459151092728427993772356309939321550926633165216228078510464359853667136107541589472131847032414762280015560568317643934500175981552600215350751962303109688641843244100594675366932211218202033566335745504090286216156985710902343610242471583214318078771185413559645679431481109617913992138622456247710550943317062249177291683183941668909254701283386059342200809885333994980187462804858295966174022194760698270957689152147435781107046322836632990284527967462545958636563431158127261783978020735952257742265630620441593996848077029939173477728196595285089542382817280653458648536811443781584678075486948311397707994912419821119795603693604239585245514601124214347988224287485328619155715229150164826078005928309612704660332345921747945710350386308391846818474441461132608166151582139491137198482424653643856025433142977821844907150193062555346937530917532626765818260350451413295567729832603559124415079606801546132997525794089409240182215674636208476920641322821776114224028861901159973797576730375289214543396518926788211877491163361378390019355544554076833152024654644742229123080791719402357934733264331974642699475549199430944543706906960084034946865289725249536458571022241228704560191075027696368574241000654535087798191404905495335144907665710274442786192423406333546703505411044455415894323420711618852430927592889847504330017864701166413281863315868287669858803716555255572785085269033420543431462760933535115635818117489672260090596847401127849048979633945696298501632874216279732470390558249090191292237231164938822168375734950670908304737354534858611813976583850144758105844117025599496996309092379342429148152554465535710075368056960286842375408120480486273636454335811730536920012875128022745133825053971811062728756806781670216148511512476993149690519411969958233987949456344932485681509499300394502867224411248461590653542386194810734713868805623310769253572229574071913764482400881500945719729703479556062245934265743377757988701168061474496694069468182604328627130774845807287176788029155997692338117451472750151962509111669212704795530197237591934336948416750951737344150901661199095054726283634386904060008494204959101943795792166527775986396947690576233498773242502851189727833667984666418954517741197545290449906422950088325924405350244706778017246266292353648399829470066058957142002192989036202770540858805012893798279913164239620077336607544101189135228840629268191645141033015199841395177280279457483987418903753550546907411856259614576154666763200525017496112164564459260113304158758011758099369991377683865013894655780984767229878912674752566224761208029214567225547541273708649663256814542632514346160706846549414671016123033156579229810565080616210360269172891538778405432923499092083872011494172744144064227777342014487928052144726521405260362172546495268033723509138051677520837602135114559235293961315293704206991299991478180666593159580615820917448801365309034604644576669881115532471475680503352847201353884132859473936257615497979603233737688684998343973981742640521538657985550205032776342189583157150383505240755608810386266004520776358478521547117595506251484643235697213574590128021671803568887872063966313501157940023733746177957753405109419485150158056077747001861178262200089846899280552602415082191663658483329380373436235552812471819848162682665694975659151689427970528035474495534419204587421914853440495677826287049003423840791265195582423723802548589119361652896782510081774876019668681822746775418589302423212746296012580742709611386782992158831665213186840307383297709784486706537880495835826275071618769668958793401202049425608303100707219693365954398954261643337589599406337215817561158167462664553186501486355827648290280266840209406063029734655652551961381433544188800675320332501300790968972284451082301188058778455044321074534886014476249712314917359167626489908340023289061088017867653211911051843689532730396585068310584408134173220910118245423097069444725454094060047837809581334989688406128586321729914758987143301849494335615960952104244660326324450899917276414411198852623323895488192779478309618907781961510465148013069850462385053304056395001169044237844153399593495772782024984085652720023704444317123749198711047729463009666251190955111731213555853422886955575110398526277898335846140559178384831323886272848575504862701764215017780433780713498047604589501050815516969373566636362355648157015758479398471356311729315848995352736912820612534604989323896495577312960397038731304436607607852084753342469535222185009582103765445938486025938567389012520154167770355787862179416779681332179666344145491179435780771959373994877894210591505894343391309160404090287172221813818468814542227109561223875678958156528413449888158469601271586004737845521845021366768665893310175023043037525810725392282306668182464597224281926629694149904251080218688889151105407881635080671418168184039370565903866545303775419167404953420514613563775635868195460996700466822097406978753755841141210387802677032964828256797715350648546988919611269326981267275121948303893692701978454889834601503561188322621977665433776400379870194806106737259913712289612717295800016604129660984368571525783166231486680824261856109896619166031955185385311653192921366588991052517868733875137076491965240262386020111144970064465593239468104117166480738735506958344962673523725351632276754748402966087971193829137842632565720369624951318980196597967497137934342177801701658158980411346195260520823573400348214782891918373160242168570963954853415875560305790051914756328802401328441479305256338598122697391587833015104591584305673764145511156989964101073768166020223554083288451657792790673309186763573751920625381795978286079665641456313401535028202605630434130872191678983702167685027705994746232164820594224022452223939105084634129142110867113250686791753241919047963395700228778390264638450677671165385392395190317660375857754448263185728992082614968929619923813616488539139940421588153064290076838004450179552617488198526507540548264145994872632305270486046842726989893795176503155056300341552022366186542747535092717048370610134980851565326379131337182637946895798243745719326873641227541468382774552108599849039800070041986516876602829983633381856607250079091549819090881623950968849563901948588491298070200277206347306749091064354019649624200701214164931910761644635264860386713407169107396938066133810324138406820649838581053943273230921059862094648400084741072846908852151951508025734055988306726078711526027553145928504641118573489535353372572196365398847872684495357523576665793601455788735239221871940474593232507170414837530973574452006617804090164147343470999351089205060393705647505402329437589754280902611832114291227867334578803288312404320361732349155888020381833525058790721356340461975068398861979926886742732007259687539254957011318712247792009203279016266520698178097387274310022891440657729548427742145796315158352182448036589914180097731078432630775319087048956928151202513407829372156530618342620280607242527689671752541145206992795154661165196735999833458433376049212551605306044082817211340729597566195486138402382246728246178993478771946767992361248186912816231200392177344041385480861740073348784392891154523301527322164488889048333732723944248071254031559353669923579827365582104673636080989696618578191518692945500921392874347032360955490686784779829197870308257481110871747069989604792253906581021218829554378903877471062863862308122048701786675957189898334213060492406233908891563798381262830208480763381305903627193495162226021859691239598695661605222695700830744631974596529423079497820326329332377054225110361318901237906454767117980601874839740906770280675460408421338291177450637925043686748675200028309951340528915693030659353672163577389791819120478859471299981664144096417045763870951066209509417201783518512370626975520893270973611004519201405978174978634409684692138490454773178929917505986067043884432818735504246710978935814140807085168451931364983600828199777439997014284773616773702234528724445747012117646515012298328331277892456973896456839964254368114209715981919594768343334775264560487681009345299393630739847222772155572262420311222147057582446015826784418875532762804069714103913825295243099064197964759743814890372775648059229596341069602812193909484063238421260017100471343801897181711569746470872900601330841284493294305438600885144096892957117581690605648304162307814121963588292696546068255282420769431966800195482828610325206502461465355589774185742274811739986927429632674025083097898988411861823301684030232663236688295705017472024800606741194908689072278028971954578826313535614883765732143215328642285443374956903073540716771673300897583367383612740211501229689756092678927678135646594840276057238745333395789452894513213687469259528901765329649687552820040557113071649924988161706931524870866354366214503077116694190473952016169098219498362246134565948238446254676400718630683292948215631670938675739260004395451119304654504716693103432973738569648918774709568621780211394666729146790057884628581185285916671698420337081873858819501732752027154297474019058647573274841781671274143519734833011323238324270266498676532821905554763352287215303198203497443295751033270787504351551347436209842868345968122535876058297523506807842647617241822660678092828984592792794041752783839949384623407115233477304362048259667416942846342490340939151308463470619532505629196895751191478787638288989670393155313364486355251367909807793258296404441108825107135977624008578239041557788791257862628394842235195998527861060820428327717353870863646544901705824411142498425422415739813983844422399754118655815429612959176601180240442868821650930089854418707073940467977789093726333220529741402749624832412934995717795321579907744956840430547214998820283178173508325639784518468864259474056658694658521501707551019492677405542828600089013656396363987584733614112700651388123653186843314701113692587693987241159108776155898051739169505640429338270099098723662201830585689143711903255521311969299637429912935921731131103906035862060211593848932190511088608952818691226296833095006109001744796076339903085769724330667950132999970653519854892840637603120364395385672217993439155141649588540639020183899908856753963350955704707587937867733400181563537566597031377331969358924323631006900885663193919232589241131475863897695648416462504723226802401971909247755795872774191929495927721948312943332572311639728132077202390382220032979022019537354318647680230432182926669998575300135686833068851320545429062412500945975268607467669933141636000589506389697976246520409486739386215487576373529307147091844560325937403080187790151420597865783478781729875895016303795102761779697941934615598464904784294380469266584322161797852566555430765045773440004116812831121558685465947534678017583528587624101581660265632413392921604127199422323668703092545228761072588551137785918219229035273166641812987329483457634300753375728970554026646077212665381899990425069372683260961681358755867142081974952212890466459934754156802995004027523847630638355606154203665638236573963229127224150489081717948147636738060036269707421671743301425858096259407172380216562296684601887025461845099184129636665295331404536140917190708145129688173992633926186200058848756452341518365706747167263834518180875437517340204140715362249459579623978704063348420370807072638054865986532759548306723387491125507175551963830089707435745309750323484902644403474536074549800023791739769650331909643475669787362984870539489559779942542141262825181332862548004856853475429160672046134499264974774583943228283028731275608663263201820907688052981459084994454894794174258456091795508925421888084022660859319987883036829146511965515475932110372279009260214047595062741824056479378874407832417151788576059921331169707130407311298936620117698866907628621443599112587121269275761573996971453777995680338935860838614564079717756362816250110895063473455751147586558879501367757631291391089532522253086973571941676831373612508571759120682785445560019455320948466417015001457465529019544057508192016392428369602527518612025910223354680496170559213704112378940347756234500068012698349756494847304486729746014519890843511438417668004057954125843856887122150795821640148878987305450902804206083167958098963162004698726972790700122143024879790533204701485378925766096103936807127653072861827966632178004572440938702583575566030811645751009433590712491151411599500722708051991072639489909905534943140613692123342982421655452525207842084278911402741159424853790652593265325275257163941782817215226727508594558618306770185199719793316827119376176096336618452822696145076693950024345561762709446168946509848288167182193252837265522800901813562311138991191760615140970653816688518098329930057580743595393019588983851180526042501204617351961851364269547220802198790782874121930159646263665924605265161020696098486589968684335947313638479102394244775324366832079114353731054492042247055472239368060410301022187281486776312341850100956034356036942477883563243277110528328111755411577378660954707727870157803702754788179139119218460408608151746349490741048272913164561472722712846156098712150758305789561671803443294267110012998037519512844364706705136986601846396067649202227268433432011225268823174308917446109493499706908577023509516043948524119158586071589561486397417953768311692976829853869477007794161521677237893441335370826623108043338233661517526126846731902169075160381013770016124727822225726781569891882904054036364592020257604216173653718406109172067111758864334594837507646847219603749854845655557507182304832718599129340757787122297783057792720858094152462882093087641987892931959739546796261609241880099053635731829230720800410165374152817693178170939294540792493132874778642027098110845060005097438530815281584855782101313449896453778859734922158290274882189060802885002783048828945819340998164282224630099762778115510777841289556086194288338234171946174670274571559934631579149302007499017758697438862775241185040722356167155146896690360104578618250048936437128115754733509604768342738175397435540541598223578269802246884217890978317124135383325911481589803059233976812636550690662103797024082393771998240214752512946622625573806170996226236212366500076436506545689445325077241615834865635684656840718232103395213305000044368040399094645366606553568851491376335939412130530582325669799256162070540047576599538918103670180274731129533377136760612572912944462888087250483988042309746282613533336782267311164295194232872365844821081659131160732827607739058127122253881339104227291584097176446784043718169175803878024651897322692243198199079830900724544984685784105513878747598269663420348712074532467599328962858061789514998907349290634430238662403021330778557541486221034970138495197505721096428347029056935180444154704292764332880466664189389498078883336909694258230644978746366813188870343657198936916129111638615645007802400212245485669066177825445792286833463241046540909389792266320692338979611943665718463557563779830620982136674254429836868664914800339524710936535390723148480504699742820621184169478202906434813228865047788792174390058027517818004053444161327130636498901062479748897118970087082534011435936080416719735739680194258320409289818391579363119310558456135621893349917333007678736526575335354063925208552770408982661798180819642911177736120647582312940893604809504384138303432382681087890082213568953607089263599167949234488359160202607779192950944215040065448772280425197064482251430379839922410844292804164671449538876981888454571241012670409410240155448608264667360226569044700155209300603081086783746528370678940898864939533146371253211673143443162794043446383227332414748574273281740470573896564493285641466812127651903870995155338445428760112722342740640363141534283056128765117650898291483043425617850264959478373070038786083671114935535586863975211904786809424418092556665654447484076649078881799274845433150176362234496524153467733476201614585876023590069960489153670886853631506130865446229217278066980663362352301014986915858842433806355086317569346493703617588039507360868995575619764141582275394882909978944900668392172375559755449783643049450320198635778106432660941557808447559621620148469520730307169431220880845989042870420488229894911119485316687179132071700927750275512599947724643278703101326504415128026610239764111915739650709174694727824356675721485683948421161328919913117429437584180833079621830346535650083682360770939707568282396468855683799615498194286461880650613955459652937525539471066717987005436212734778073440743828848795245297139375895086925449571106356995868992606476651520098668569378597821339321638541938125712063008239109265391010158324169521479860814679058414020997355293909868621348448653964151638838591529722016699375258353351259936771749974758407647415571112511285193067177471159108188921508755617837390514286177217138387444009423946447437276764304292580867979259500184797258404584041409961939767508575487561239718806840613642768180662764673540349876925277910378393889147956928884180377876748299494432658154528564899485386905305209744882011131918704253662947406745812891036350993292023098252800295965300493568025374414425790481492939935594495875655943491632908065226615362582830677641573826557780628247127642698244068247751612748780307477529287614817368883267973328985388520801217707242774826181707088409868827681890540532181266583466977357545323740115746784451301540435340247773521397867461262702711493539272443332605049752631422643967447912054725578276771841725619896766430922511206404999069878703359732255628302859568248036377577352832576336321844804730548817068193827997100392015396316615110196840040121313980465435864396174331543335252877583720328572950711799577869401754800840130987856297456537496031161606092010363603667037337705878864697089101527728058512478878878782008461767016670953915848576865571424168610749215283500782496723553203890239228710090115008228745838732815907877488368711183120833176963123755384184009693779656607594731044048815571566549380543278329781069918704435171565375945049783172904000860452547045403785718312145360594762277481236053007086124485319301886882963638467263194073414123447435998836407462150810716001435140777417596284134731363128839689642002834525500493942262327930067319061428554351945996406707288433458981066352298328963145046337802573193840381628060224377175656519358575967045221369056542568319732972025207906588603016640364142648307825332527667041643686103226913247654857093339160689201371736856635192930059717003299903719114783291367536618815973240679827395300590836260777887267968568450568070995290109412591169211671916572923127543512972682874837095703467079840345034975199402929408847721538281492863053711186535548288718234186113445794208978869488963345487500002926839119616022472368767438728171659288281587213395789390078501792903492935820311714308035530456001739389525918724143515298356434504191836352480631909922877040266933317424716679510514864125365135067391085097651866045870162937688153327893837265389566498401561279602247553977978907713909890960823477323287522287392069837045284109714760409083634897540618626019036887222978083159255867693185857701325808934258167811222439576660489469735351298280500926932371252095100369837986128324519856654904988528073963240683460642019556508379923917542079192651871808115314865496617468807985813596767325778355214610220673508837510310982717342404980426317501941332614890882163677496049329874528790947163746543154397698047824577344579847710691180370020048137226229989850955611935522008316123597111717455160153786934544385474422038281648037808341455036730093798593425738519681325877723347250516066825836370288209070123157008711433219978454879656853282877779897383506152266216327662228065430281458100761756702292718545334522445711751909410624796475449506586655880361056857368919083720967961237852945750599341531109560355619697518161733932573207110651532306786385042979159308308805736953206141100204173536560712599078660264393120759939409113417259945112031914701077756305245997861369558291872544507317379866866295999949981241179654520056510019055728140333040932892918990483418939138855745818468552473635862615912407781109714884841065123789638041971933425245706205777747093681547690913345791633454008433858562590180690408641157685199514983917230772732339664744437791294533418969095078320239282515820520584437618167411045492788246252449449183716475689122072464748514110624867749661197346057898817876360941339475884036880013658796841881426869777068241095387668625258025553613931644086446195818176331942206866134703742549769862605624583536798427818132583570633633143948514139144369047654979463356634220373838527616958395986688479465992473077354808155426263293086053753956804546816586382853692724593150270752807594893014008907668448985244986248651373344580826506667987875355845947483899828402385760530887993982557604874164002428974166469908272389992305603263429040631960011367224185664254958552530878967658192669898682414759825730406332821618911727849552680553455392569356593536379674223622521346533445330383032440819602528062027788797594200835083067451906885206244479327032234865388063377058590338996571805154444233860384763474395585117245312143164002615442213864643832219052937041707520901374076558835470246265495427275381938652409002551674460502921630707340954429301799993435456461150604414240714378559422361275298861878750402183639242496475855684113624101456824438787661821396565219035147656814931925054561371156903771284119178041583593396060588034026489661561426748604751237166458788020747398047690100148266382858891626411172729755187367365112191620492636413284912789654424497586997242758804245071828253594622785352916011602932315615969809336578119824803856266926614669731043975031417950955371474754928451537265766913710522025740517878858592960412995905268278874866626555723647531167495838297577899271043394157032779699581154898865596569270407598020847718972547738086325212906452185974735545911389084250667560112040736576838467545480256695732999278846686319294783328901553416311168390947327007659425597365902608561206456483923504836937258709224786625029454639860569484333830092147393920397353980858329142038866416725674514933549655375625028798434915021640269327922673128203535847827770115516185163608836232983695568484527053465493468203609828755900807787080734476236339538402208295637820292677885003410459762317192522057855338279816573064947835498301426759979496560193099515206542579514520656698272416468387885419044176281713098959373467551584202155418867245180924384483311711799878142721766616068561734796272888422356097618391990806732406145418969521678532930471089915060392492894739566968845579487309244099656450896463052657825294914216127262420679460010322797168829795405908297736030397904725296166254995151803029372312050990097448469606588946279607508309352067490884910329713372264936448655586329170882852381277763739408505138282273739216900762167502101559598466163459919808560667998626602116307800731989288303146384673727225573213390805130055079814576475842590395141398684631083479060092666725779749297766664899950437193927770142678303048067788554949431265469095569669525022788464976432293445969277343691037780829198290869834865987092721621801283852257282239415213884580287634560652442283853039514351534692884169928403949335837494798517050723118432605639981361589346715952232638808115289156933013510475237953754960721784878877323366296572327043940354428065099559523422075641820986076754935977821017404646099258372036815558105642786200383179951727302853439011887128412351310043209273389714809515664600632469485756875099752637965919269437747315986038526598760775656250414103090541434554711264133622942040497887871814339631131359689219268468512775020667005080949171472911185377992320812303438908543077787775801425581936044173826182843880947074609781539644825768531947734489833620042358791955314461629897058677797370615887795999281965498737141476352654834916063839054880025886332721732864157096544028093805287126742344243737372722907645018897539109024151168342366218947419632383021230639488541289916901824968411858520231048533366251431934983487046919613589532299053083377322799635704431372349194402849487241235009120156436171656324079214509312878158706303857822578548513674819488721035697641736327982282907945830340629551259698231694110861752204845113299867877764469986458713686000949011341458474318805117215450476443395787915656836412668032714824407255504784992853081550544672125803733691186535132570360610701864112329755057688821019343129091286430318395210696539020205061834113397602358963981825647486217620913997721805259791615758693493009360620734698574279623695521554881116037193804984781417071125282718130231454458943246969348398921683098170645773492801310327040967425696853216884728064521881450958696587109893899916600700163937051681329238624938511840479702862129644942669950559516029300566883892287301750633541642311416760703660752913859384451605092764081460444022261680258199575477571235426506503553198537057470672449865528876691035897854046027840269819360568303305587439711900151918056691634045664478222220524627512550763713896587271913952385875337943038018012404261573459593994687799638530605717667101067038301287636707338557498414904621553805089614911655075185934771602430563867539969618383192441499219341996940841890657729188055953310056429277812431311109111208734204275555720086561013366105454381841344002862909750096602504257038903774262447001516294552204018468632463035307985509744014414111800265929502140115566648705758446892075264431844917152569131719917973535306057846774188225627731283343799135918114860544278869456150008794362167907354061875121434017201913319304083768294680554909536657856066835689832124456644735640092042242856226877710641037043438409644445252023683323371507959568973726408913963221765760595939466018508583829266844841752382734871337578189304964554183656768549033710410417904238536373215453802171266458001418374833174202916495041358754487256305603876446028090971109255317932013572355972173323536414358272771944093937599794848672912228876486307509161023319507513412893055054220594214162310850605027181524878586676529835622211498474340313546081508779563398399556991546511173951391228876899862796646161274433543220873011211431442982124500507311924355009445081488964576418134802956456676466685006042720637054312313604519463877207328308700790896409513211807827586736325860999615862273758620770839628076095933678981574580906293544840525199377635307777935697501147385609483983127690842121744425981428349711397634441362251620937437867097893633659051700872777382762714653216752064403247099743753112966002681518098443258597779522430735646715754560783735438409397552329344675928179012859692777305521614991880136999236325276409060559044310966843196992356001122606834220517766727631059756026947542395909504483415839404567245734749973849066569287374380383186131235880253595094150028210205849396160339868088667622767390156940163644188790795944038064718576884387440110933697404668324117407058322102411345286626143391157295448955893505201827950910060630836107378111496619341014899650920114507957639395317258706894666533271768488266981841777255363182521198377485583841637813389688004855211246519207534199163312620608708807663191515129949501668259896781248169473564388744360656114387580629643379456196565652642727925646773291762604437564691402946792490074335099937808696266488131468157289935569029431827143851188540827393382399865019869513688397430574813662380070747224030051227564555104483047197837291973499436443673340996480405909021465926261246933883001424580278542744928146614709204632566977349716257112823554358144699414336549219265104944084419824172490221543038226167126773050100705080219080452232491340716272235356117267674517600259016469904615208368515070589498437912606701932072615194569150785788714450586964348826309187349921625336530436023248198823066064962393106261430975971759116793884883465244588796874515884247166984725584753010697178923111814741175494961582165314705687787403388046010105818988091722123868358875447430801639108668802424763872540825429911121985902468258462949774822245635148884996058649383516304384667762144749339085268962868658766586171490378109864603523684403725928420699655677853712683069902532839447780556885959683564606559879736786078038791213366208800839422107215613587603761513745504112846635955654130250419549892805844034868356742611212427706919556720137922540419143321566878447921484706037073420317523462793414801197905312110937486498569470247676062698171673635488069659265569256392209260195200487021786926656325307747036424978385812749639854495647393106978048867445721994010271774997713545299857841114881609768325079524020388596775934640280085694920515323068324432450510832113950559805758839572890262257613788261649476576398272335468346000734920553568907840308159786928696826078733480241328695523371917611804376172100267754177377992906445974219255114457095476632911660982617315592517420227789599791532527835187510304444452513676807292633652847891819667798643206453731937240441632040876024070865952972705729701008525520483749086700321809048096488015991748012829342482054709137177821830499779050198249529050666494830277951566202503643920371432545834044652126567840822778351345518911744230114607731685789359302565605278284455685020742112485302227944710130970009396528145216191231885371294336154270657998307034784915357332718552623714049789679294798188031248037239985159356823339008931021081662976532453955933137434377609599580990592753749433218589716698062599983193746011766131400858818495927615441708487136928789145176075018417451131074799199460821331281871801921959419006663882220731417284789295229712451073097458183361440771678303419675067439548553806714424536237949829553912214825274945294766315109299559981525005377597258742664705573868338420889556743061717534262679409875336677221326481399379239195653165168560513325397536441546149679824363452592351354837721807569766468160340374606399678501348463257655183235662041730192152333678331237006437564938053869883447842373197625585975330238662281049362704807425882879337910000786370920995382050553478596955892467075550374845712557203020075011515291886948841519846674866939153588510735700728549029091165113522216763465558292208724183539747654053067144792381247523305542628154875275961522357549787443421854614300951489723315846126540729309621753311760136016352027993028454180307724084531180234441793414841746271105368072029555343048051973143780599441467914535905129173564434275563058075700775039202499688735258217092116655202018193350357966179301161882752886555040029362459751872596455827760969420788568347192655027044305107941554225790673651947102645740611017578717540274521612087674489163405352245117375728607829017576440426525481883243946556441262275764551755361242662173549270700936742377228753943786235426942123650520856939200233990414786306635849109739552853342812655146155082671100750660509171354098333918047707573257238024367141282315661132311582506810143747534583256715453991462712318382663699624162065181124212853086123829733919620847917108281280220290536451303324283420078594146839408131553736232516921402962606536922071156488510123178928699680607099576172674320043152890660239425050403756969373221839122169798173267120669810127166741922276255546277762309932640563752848886316262355113999447385043302537305709972295967342320240350592706442796560624228845436993191901480335766315426447194403001886103093943541841928906016783676142372343111288654761102412154506865857752852083867697993292648095981318146598273398900320122477312221796126325232627216066904695061372966512027925487760377222036505820856629894000846542000502938442949518762179971302416716145638409686897693101499569908494717345407343730100201303786395664729926112828780127355876286158237258396237271286484546355281981298024237964388995498703737487249661348476233240590480646429404925893687007079099785822740599059351152100599631738075127856153138029672043942020768507506909632569422856016168354956305943281750599785964698940787197009022750858193310737192536768055324408501448243662837385323479914910129719793160391091162571487299852087405338291723260107325179476890143099163273441415235206415880938140557051195574660157394700786298898296941266917090119738620823117214308198273233643439050036512305698360220993967985807545698426676654927470415747356229421753892874321803641333325292327844233063967484577590147306860062140570416414103097114496535403379681199823621196288127351366693843453080673344936554747859834508476457719801731742553357054317242963666324858316269248693269223148309205572211369232310233338702509078007324138334393769920053964676682264275106791096495484103067287302778759717772583955691995072665033493342016107838449807574346464335442690984976414235592715169402980276817648071216275079543123105060467175578876887263462841614725665157638412645461824189755885146657787080205832318094307635699963344272063154872654228208192625320249057236355145627887114732154604268915358048055240319825779676237854190743777044792672130740871135500644265893050203948443353460542164795594077186045189873190161797361730814004800954854235252539796366655031745627570686135268599977415276483082700712327828470535352154692201443960785405867496256194646023011618931008721347520321284207383200641776559769730563626835445089555238108710490657556376462172896498231863888418630790619516986157333665405541491206008917876773652017060244159255204252262168680878372112754735627226343648418084610514531136667995839053139104785715038718882603469947758353320764058598787258212999467246216257572594320476779705144654918166937455504072141334955131425286427157869989415915132965487332953991398107614569925260525545983997606305138768984249244905034515861112350313100900367183386440175666790874736223101642665973430809069493100858225168657704185576361450171162518134710733160953510746626874939251058441457762613808546939212469357944033232009887977636116954903548682601647747879447685992087276450906633220846475599817606754823276859945290274842079446552525264826822002197492078044382311464133440189800865248030084870130959444776492216751576990805276083360351652991221776830026723071798628226242624406951046058528895795083284065135443068337465154816914306996951887485931659399371921505275585608766877252172484622385870973073921689691685125388358992870498645048836580734909737894831968660263796648861247543721780621394446663936015927198338555132086229926893815357224600952946351959931592874745630823043630397824870819516439200057087744727201337175729217161569287144519430089389725957449609566167451098015109415880629888488582259398757723781299250964262236167801265944944504838988497596774144965106771602393724075435677828394058996511254982159944688585064600953280563203274573406371012247092220178329824560384896641512871199945510707283233289796534291833226358146318094064895654316013857967175058713603386022378178611563975895440346688749006453005591030088597692462389457474975631122608368283061484941114713704135485644658501935120215359552588483091064480974030461398940191144469655581004421470731550312046359907165404615002667602444798489504776083934450092727415507947253772499671828008098090420119511376739239662282363716367687100592333437888603642992952586322046830679867094046320668373808621533335320147419518971060614295764678010696017486824545123821450737095225047699500854474048000336329436337509468917838427693773016366922778693839118725499998711525441132298259463929033162358554671469595010249014143118946554334805527440748024051553602672403496625624207339371625239868686649729976996396976514709215996499870070392849582973808014658347517916275405358727206377663763316518775113269097788468720086889646753700049710171664267073586978839663726874421285591660236828197594282179880872308973195520922697864917839562995101509607187640540704191969307859546350780089475891043609018608820248565879177175431690193412746865398067206448816789213616999142503001354362877830734386119901948022007918589589743233357542390887839611197902661464810345431005927141963337754645085694059422060383774475926708129925457944805795986540302868636693151796264775199830246053394854619398811081000533551961463468649498768141247550434045328614413137794235372553506476698203744770811034007779306550159257289738220139426773860900272394653195798852577588637735011900965037665682017569641699166275283261186775113961837134482187750067023680604417306615809627283663093811710809428827055965535148958871490784647905078690335576102583038813375002088264783723075890820216805428891915571528921630285207974706098656779779746090964987378276018728346190625261390670015122242017899179036787070224903664651103571522447208061322329028478114245357936018505623598443169547311433228107391243954554768570549344136289882566835336467833786569927216210824796686446222469101666059248522054764501645265096218381381828300413758925273617000013626020839510607606237633085492536394435495340150384899172986559385530129511224560718183986004276487003320837057363711189046521141656814727171234071836593406114084865108380786784650939398574151180672980550861259773590788248582627740024442776667114894312905176507998573724704748795151772111847795098552559588007772009523186698506795250543769716626612889189083053317101086088559223651096186668045980595851544970884498913059136236291139600671532965501734297701915179270492389822156368289174600611217105792608222789871085557969602572016515191874248765201885563870036777878267458171112152187164237632498458864520538053967959244675202736133767714027422102049407964794170041731209377905987747502048813064983119232269053976043232260433864977979777726148980474035630443164436275754085168706368157121756213173442879748074323088007176871272259136089638130862232687812684815448077480716316971417981026184539870610346724464542520739978444407649419827495018463512216160453532667136027013013248053425239345494021454463362852659831645662859821018267895698398399953942890334476081973015153288132470105791619562525572329693081143159306067569480354068255599347763067870933196706779581223843272276409934560913848156530379819533264625011089930669419144105285638182915168566149108515714550156577764994935301886638671930693941289693552704155780704936530466149381663283956706873044398058870438664859409040532999060234360544432393764160724199511199819761256934270950894955732092833619924836535893921563389495301066490354900724825710719033298925660397978582003704867508062719065882810763210978772638158483853246075037630185275337492131663425574432096245477913831667031023136991693887672063390601532605847634388266613150496923149051647929193064821434306536964446671973236215817520588290499893039625853271201401838550457143478709926440605624655595513201137390946724901037488992614532483613298422256792219696913758670636273351176342674427877231658591734800363863251853398657167284159939810986274842255709407822803153536962954566566990181620902595647126857603208257657285968351499772914644299828124829549405997836111896493356269291315768706381740471738210460066627436501674369890155697672437666685873302670165936774755260810007642310847545198842631429380213163000170381060836802695469805277737735638634212586039491450945574399259485937230238266019940252176775020279308279949033449909365328535400904308024259365042885606196590600439618037508111610099143846590681277436412563390202583196703940361885850109768980571106873719713817641448324875700583578466237835219282275884863763996391873485531258665172869988177487334617934250805418360598593277232246802500008663759292928955788584425613708136937111478043037398413512077390024041473442754813782228901970622631852763262188684977498569011290345683749317176132798621511871695400643805276396766124693807411049707630555294981712510857861907481171066125710195838282459667337214308643481761238879624705794648930273831919241145639589900526197206732259780429733967520458881038127099489742403118102739984973167233819815328452186941428752862264143771212778949160459213278850951799269470623719966756539147661364147351907714396896846718848871166486671652749265739254745755623630122668521645631684126824376327213172354426833501414679007415657727079887609842647347777741622195810065295033195166491044232000377485202627787132216543153739753922597030874798090725602217134756071769791347891617742220367659694765518399029838976272881364950250374839227930960585123971028154228231834746580504140979392790996809072342010492241964564039733670294964040954532039260724587374812288716527497703159927978794332650618525266362807516282548447428376297027601339982327651638444487346768825854166653847271157423193750131217215031375773123822174325657460750258519369512723111505544411978119139991061081300227686269779786515456976007110506064944983530316508377632648073814455262572434346203569015216793769649615223692575269020571015746069210119891226054669204539788927545921947058476087325523850479906215084109247120253642526135987824991948122692550219435079516885962050882761198318131192376960167865401404258871662978682833341993895825386907993562343573386969499593484380100263811062292013598319204556755012657801201712711691067818006912722047970081103094833063644011902407443094528052455687054818150330628631108194055548635377434876243046164813132381822448099033712031661201889878228773572756533373139932632760625104001507894625072341887706784275986343955085631810636960526820394709175632636249984911054287861706269942742661924069818653685634443818805168051134464391622364103133108373508792023523470340301288486042806156863085952939997634031967106767035422228643794836752360358996082556323502889898466990879611696097065629042516155473351656127516470455821015598113504736936338306009640006908290110787116502664312981189567097349918397770151281896125230909805458208588081120481193997463146941335034107569907877818255324868112473891897332123290708845008707207002216140069036097414027833619754745429743239995691611950948692403969151350599200234503722747736383269542215863502938273503802702543482931307907456134888850563471135378418743233613042248800201402793018155597975774434497757566160822250068586707097203823893278949701643366902766660322969841088158872424865109847899119776859171475323631030436376358972469410590565305345810188380792204946951177512550878874615717805754280654869397845234351695640794212667729474658416899201690730787769055049087233511206924463739632524492769670306732751730574796766574225166918171801095811573101231610834208399149298072329960119295614708368442790075583146151308836775896848453437697666734698290403695837886727960402984850582636465498729472144821833466327266178676602185377672039107006573327297423878862006612742845848729976146842175954191838245760891885582417109886620232869381881022449551761309737052850286566267013184222529241639620585653126673785503697863309213376684086615277749001641249448967379136636393732441409700762348118909251264722536046435275859907081361159571461372111228220665116933734476015854678995932605153052877952341624783269776856481455454962505492713548374274309184469106508944177726393489490383249440311495565574390916187968406135085955544663883729470972962522597230647269910458826198626615821057766448548466712879853330814849238163384724358441649370964694993237834780724340307136312340468509569333105130984566932865271905445167953069969763842204478959468398472203266867689606447540453360146964847535391654810540202318092519931486898460903853534945088916013115499726943332301788862843080193099489791769900471507971497106661992310692609996696585787412480151708366050438046122709101921067437244304194186663561852251250993638537776354436825841032079800164726806890661801619468974565020409869328256467633687746180127619801462781274340947831550320564058025120245323679161061998217566835704604015794821288877666435803170035023154580508298880092299722308879623505274783883068684117253967080027450446765860808871901349545820621953266736330298259562749641367922861517501859537154326394912758132693943015676697629999231190998323495173345314748837513491792732156351810050086180154448737105748902740630659482821709348331067931213903694829103972334844567087689744212745600838774374736978392642123452126669586672028928017141890774415843141050284647243417245549471447065111657004920231497627579524467406871700754346425580921449191107613189335959317110303329099607564160399317493587251118880476053735513488205425565499345636135269269737975071202028682002146226295009840825185175852036362809541587467794482872775851007698358890623726034114147548667469398717531591358877121758537979799657587515527705994958289524563503582549316039163757053094186004652433918500477153588263045435275510668645070522599231050280155008729881057678941169501801756841081745263470748249988386839432863391105444338445999582020006803489155782803521910797052284311307220163411809615684901045591102705047211661698874293411317239761053339002274095732743167711879529977209925915790813957095615763488706067995237391932865441334634119434653110924526972494324079388858754858456118319173019705347350836990462558530672985737770915915399604056554108380190696349843987905785002686740981606694151061965850196272513765481370348745865613382934427647115157311677270759020369928645159944054281973958080196634788271661723830853484054052738574535588426117213877753022138365578415455919040315227183960685910047885086915399096970431557463106362058416762452875960088123715874614410630328541052443438919974471943912690093481529387248587403828716715791666921969192717959054638674516590836786270990565628876041603251855102280655837374481432636572512820819481383461539687214863139201897333007155560408126965572399715339616794666218364239225807563916025273029512944961444681338978686518999237461713338205788866177672163567876556394035131626134155216538342488902512947493712866734488466689290765409873678211451852942931494929738045826810727943379678553995917824890788022838259415523599902763400389265291155152954796347637297041538238694424666044246814408944603514808980450331562953780368413849425265491443585306747701924243827081184010777250276613637230077183858613874731408080569675050546059202438247261534002752402657034932270881758934236066580595075734372439287576016597654138329981396882729942505779932847791803672306741959870972801585044428737381641464235458036609781294903397214041168647924741880300659851474133847249620350854365484647799992253106797300177097865507333867127936062882592085347180464015211135246769957311177850234655892450213294759549617568881957319394451030453676101497760614546617269357839874795428552676482948759541779363643643347532644914101386359523143548885585568220982896177705205707918999884792826331386795966459581497906630084583415478622926424707361807881751708173070887842698718693263762834018638713049123986956497085140994495732667262847934873310465391669032966247705904969270537868982194802207052919655847223278373779737060066818943629673877227958151679639578248833421044940169263529120717597631935959227694055260351380733869460898226552027835758028566621904726192758219891296722634690263282896584333510484661089839921150687198469705249726017291676158881016079901707680961704124512326214123358817138312902257819431650240682225684699986566764398652125120872463770798393435878740464089988805097870335605862026312929920265638589998888611603682322856989004489771124008326062048166654957497079692284583522105262701803791098694963195290178111399386563702066027596171266299013019670201567010479888202854005740525552302807095339785085731278711478341448164032693295944614815231060994600588573835181448678300543957458770407522487886333345599065760557708177587042414764275614706685170738130605452106337533121461702055508850746809271526476781798726843859041732286605988184469988333534326810984039178750710864515308325533979555246623593304448585755292154859475801044326740350446952698403773494175878141064716063669062988208357264263981216988538512875939614510924350267401783385087985932308065049003492017015940288647290071207622490673692381104809221114489348254621317996143228889582505745535468745483290478408915111065979123385773194921643340256544146750516923970544192225726861879383403506952167468297385513499921622108217242528558739595009935194299917304668086824853605193403019419047132219938799693327791490071905360182994983236261411516148769649469483277986347242997775930003815488548885266344267441457871668027692654953845447309021474330039532628846853268277315969508517236605117637544034445224912940724398933576408758172883181386992999901151309571861093604142780917160849201286492765638614049414150247253884830942941403228094885330971873171760683785736342255206366784428557152218919289561361368977642448745330342278362511290977900806324658691230724403645146757242466930587879245776506373327707450183729157197693826195376145223901210588919582471660243855266765691854426219133103363327174678473888359911317336766526526195512884137044974280192496531219095915401641457337019710848162409626811322555581142154912736549841179138284631081771147118351698908565991544763088767337554834045768629199542590642351049966105798941872907435146989859233809916256122816906925123788569439887719237538196761426404221431393389808146036833996255649496903232796704711269255014566862249406109681287178547436388644101960925287430327408586241306328919151672466965962523044713830523442024140148975563856340108090548603332436550015558547802173072777240141147421414303884223559255744760441603645278343463453503016085148940447612419599596151875842308041712187452487263404414110972477184148402381721254100062218823205788666011520350084442877038987169488191359020781989869528558601759380273067141543206777910563891482536676353615457410663127022107136884608889078263902411792648854890716722008130032442275356295564025472509348211903074627987477520908500420481114828467559352058253614650595069138532526135317836903574100416374655616127523614136723042240664315174039374418332434824328906203140723729221147245450818789677173427341538175389673454267757397374609946533088757453564103968633001245855418062594047641433215428965410836083159295761324001455389901363481927705938035057410320237262599342929337055973700192676179827735477739537405212431789055317709507279646305366866417802515351060540868417388135829852195006780122692589364284389795464407837482924921125327728243585365195673354024855388372366456883779765163604437508645272763596011277454710928057979073414639771671744950776607131672645861206680855545372851772581192817001350528310791030487404876103235934646580585867389260099496748907335818300456839889965872467982786380791231251714373724404313735053277782539137605111594154508243837781712175011006850368547012335359044172684455715438106749612125670327615378167953711168158291490080882065141824667157060386466940944026046924203007624681919400786730975191900675259984070777340081014435294703248557209761583955501801323436537831768105165675894262807331266069794365235265656216405457506148094687299150798892706146795357343325075263613996930095778267147087545469167379771588116374125083931818457588314551413029609367384841705130115697885828526056601430464709864311463188958522528590268380928819805428040210630572469871996941726379665837929852960552581454514771688012925450386366379706111060302305259115201500378979011162496506377158568257281543368949820938243566991675669818872586721751540872867531464195024442153240241406666419885359178523625449191201185298528714614885859415606009492698802150867708549622415351481271340240786175022387995916604860837965029791951835767255332371559508177044653140856149016320075342657498878462389887710051230608013813094330032907864212728270303195524716301470629797972721265578916122604620373166314596696132165053645272484256839043576970321242770501205685277659229114347790699087147249049416694038724854477272997044263958172682726122437061210755197696936135422351579649147185401649202469710307905966374900335779946293965575680379524492428010284094410298478461710914406412478189620960416997011687080217495865941756292949005776117230782012241314067947720254765658920690777201402406492107247016557754824170451272175703957450741721266079602446729419259633173209256747418175582553471046621443201467260923446814313841665333471037679342477807542805607798439345279606707490733423350260727795841279763189001510886466706332487203362044408846095100256130527912089044522009641560919126965413326711240740960089111357641388821227332389658123503309653019533293384277323947624434174435671161594400203557455023463736975898182742536872501555511522211840576178220227508677664497728116009975362824944277071738672348704106604280025279788109029416619352068319267814379258954028414283858450817387374158133041607125822624096752839438402103292000624124945920422018151531783177329460398879266293026129765447927510360464297666225403113707537353832706021723691894883692247560149579649541877149411760108725856138120735351132951999748672117501290349402800151024384008225990928653393484235927984149500573295293093865435116024234697192800737714298859110277046643873350924200354188242342401189384242975080804247243327716821120516538211267181418979228223243441429791090590935246090277222134438478259209085780441924308774349596397516661898228216534494524066665307292827982034575077852113461701006173077961829743408887429925487150165931063434307233160129158521912957392132547746625863077740570061556963304232665626616504694139495436252499711807155374754908135307057090909569710551523875543274995752127486465041114407866235221554275916788688105954650606267624786956037427870891785357469436335971553915107805991070799905579554956702474882591321618566545678605251334250643281265298961260550267716733006211894022395679062612531661830665301975860607316455177717192045191068889327899877535613477406588986575353228092687431690117529919937989500826240050584103742723771334211802664979425243326087029757793774132088921111997769050561896636560810822208279307799057070837219051577917633533516714152934612117491984081035821402567494935200245259161093094472327106387419851897395769615464779559692038804385388588105771327325031115091943387156964327456608213344540842607377718077961493856293701463204605706091811946962046654602118452482851661248356413017698789500925606909827237109903683221863275311591528618387202911444682886579644665217658023245300303222802907777199445096693854631062140534172220596205886366038017291369509612833348967558336716129224735310632340700243226550720524142634105246744338370076017259929907969476383186441689265163232191470851986838519337590030084827083041846001698175635788377877915841418253302412616678432292416136392260701618267273909073910712309729472139605137581684066827671836455206050936875958680217457138898194513890818086222756484966542409135016896584877724213446789148010576861768856884187595324941383992250256788641465612916732152666452622824829400999288420183341968199043128074853940122677850397783502295254926722361707262952273226311974545431805761389732423439526755156621503328936781588631562786848556748156369456258658891218247702131188560393654718897029101074491163536669546987898800604229398544589163817572776920839055987904495649817415738533969257290397418994955564427369207230925624703230961473129839051360539147940606492546884422105423594913124311687563890634233862840752524254560364018513624866981624758782535286053638038010662029175222104351085599898218883658182209342482366655162649636353270708116818715743300075577609205142305060445797009887897074201401704287785485749253925654094079008333116682944390055203090990963269435304822136349943366865452970992596967191393111342488188823936051914072348001076681988011591856146981859908276845811393601000527460650537885747947104907720458838319327342473659709267072696059246352069448908350857669021903408048162584279975922009219197247637340261382254933616776080053444038999895217031180965764475907839746002908967733262807015300648428166797630120337868681084638769643602345330944809586733530586721280865438469949620028112253969154171033000403713726299770666094037381072594982424330339638377712712406022490807882142667298252661791960442526300004003855335335567315064407865098138826993494771063533734440598356244907381996395902555820845514793705995674804339377587433804082441002242238435249119234789900567006298076833305560239536410135569516206739543906618741820259616665004839178022701818075879923286733604903257166598303350299613086795191675661427379557606293734690500100982707156142008714860102845106514303629033875125987688863237634213131400647479409683230799266517120864438747393406156814500076814401197599395012525061887792892589566245416775257384475254756941793278484553377950546273760985628365204711436639822852009772383586726057187763188346457004716847782745225019196807221929263338247604523741861420923064297729203120568087250387975778611187502186136626390003217671182370138250445301160267601980309032214387038607651844615206044101435295450984175880262433394916094600285190124081829538035814823008168428688971949658149253040058219009058130021953407452624575845440765381371694188579851995136024413304909995265323886603455601084950245375451368919924688696971386348940220130758416596609413584012784420697592875332943356980741195866589788051088370831360211762956520184469269943719689920381960071642068623389922466934512643390429018488641241812141960977516092284773663405497136793099860883849945547333691391251969902750782657380591726406426105380271164096719792903448632180454575539819361752910376265395581520566996920072297498015028136712504831290372023003687775778945098779205496545708326725443594767859020101680675728339427638094058742551172181036664247535302646058274000651363460200534719718933897884618538114140391792429306154072921149687556498081763574897066486658885896033021139922157277554318394986890942999740931528946552890298093585897735468698678258459789682633213829408279453711466866923355742742080142414066995969298876063952433869816892914149348560953597075755042933328454881145706149342535680350855848729523301777314393904959495365984351759563214191454088097058685338385159756913586044350202572713788837443087026687312441395078901721446282539763091980111404671536678519915058291972528607432646136968480850069442073893349633905165101757694693882960580979769460491296702804721929013124289060522782500476698988776505964985805140804375645439435712025034194876684136981971558595292196325605415992909529692990906200819176881849017033485419624674027098936102359752603032319326468217724425663306699895967598242909249632386705867812865801724097577582583924285552971833143568853777184437481819472784491646410922451849208516052946876048003981348829663916554187259031744770233819422931896029402742101440497095138380317493237083778025820357612321084642949599515981551949342272579631094662022859607305183640696849123883097748872431069668412138649312328685856986017690053402082215914304198951822858594826817664156197882987802402728111919570927101909845922727694036685782077903979380011981556157232400424020267995490667383124455956844531474440869071141196493584466514982366545317096807802546565200733616660281231824360143710519697882371251665159062063805794390249190082520588192365696147328922200253074744764042037086700305118259983170209427322700507947675116415341535553397586713410592865281760942173021589588672165864462755091754527913705934319153574468924225572370184020410911408087462943235899660582918126685312419433923458443772747862177588657786161506536697422291402393748982942821466660088383686036574994827551714118923338361065436950491814220330892965332329317613356190125901110939958903909664471502750607562348750688665057924919106201123378831101880360769824388382339690677043595618845929066558131901035145730500882424878968319600727486543401690658321453078800157703757602171085072871282541472641154949412748976106558180669672666887032330092914433431790320227076042200431138126497435983920982959124499753023782969673975196054289228078412156486004815564657630255270090956448567950509444534216291092745805858348766867173305914587285370851918804849164296147507672334394301722375502348859729686164741696620306182023630632720022189651185652451730037941139528647309960513170448097043169558727968809730868581448924483680971727277456239268500805867561294175127023818051640547912660979047675034821677441743300130913538468692271870388233951527371570529497859055195718590351479466546641997284041292386579498183603326740665426408736101862088318959982178475982406581848727923652541965965868491811265430862727793783967953973282635607096913634541551222984911696111493173107349586730089470822800306521542037714859806036453047699141036998327817570261486887929896623605484737476725624135236864871028025061409198687081566281689745193372336736303946185364899229963790781046941548897497223177151782004460276670699067813663224443855338468223179722104326928923757496956572415073913432075254353172118084768199760345309298391876977586502284157147551431485593314685161209667956025422600482755533698161044132098580294445592381815654775951502811617252293950954108988394106689577587543242888746637226345782778004768280470528481662325979216567937920861572659361364398963749882505820985044373656735499022244517840774657100538895860137155508301659963063271739074190960649558999581847360103088050242462531221247498189065601255677920409518594424636301858260792247528488071858881124673698559042046223779509113619227202427241767531152428913882893514397769332398455463610996388945909728102426641714092155332177089014352133242518902482143785758712765182427102673097348978890301045747317442216892025727042590475677762035463587476118769429799221015706149314209460835379982777103577333418534058213300892873691795060533470720375547385100104853589635166653607011783383202776371033543083430740802279472344499127041880189746047415852634315698596438554003480171689738468927980719029984903428654138288863115772957870705921135305921536650789861684839603608739937357721156519964557839304550711966860604284173584697425759758272965535860427476458496112451706403865016953556266511414066233904804208902576551365190568660818529028907885678443721006771695092282338950692686852902728904175656180513861688003535716481689156595025881740334621734290546686960901812298316386009309612228037943547119082252258118063724883516929210387761355155375396370191825141675022753811578961782875562800037263523654783905895590376200016657831156114184880035959139923749528290521418854244829309988591498470512398837494905489076878928525351728937596479028497040886177553180596585946567556879335746315479157628649315490386859999496061576702149917296497367645776453228051375560580627506582084991831899471509437223687396350092015318390904519957289527614669993330150339296836554675138364562857697347572352053581367753410024317462842017615887196248129892240670441161051111720783467724191307236570864179154207234134317193541545826500927647079498346000163137144666312041497798594292478434950183443799199452832438775300478819276936924091224165247870854957329105367993580999178218619445824763819102875721002394403225827315487205830712049568643715664916795907931557277085323450573805297795488853109327298537102019059446137682524567661871986433284740018235033271650603172299275121353239781888599774827756156467004190021788803841680978855707646086258264147072753913632387277315239990926517608233923777467310858932700421627282529153865571346204299252478724811763904775004883254213229908153633668079547837075338152531000675173000195877884488260419750498983916004273034643612575661974781934103494119009624811935410237613216399297967850386256810634617975256855265718427325533374945923232879786181855266916483169611627049715038788124532562014085229901451131462841074471444837266607703242618764249314516198168049546155389251939895832767542594000408761456092316420391375787220594954652805698737330548685166577340823443401842567084429184982488145314955820581398609147293539455063173454433670191116179958312755900586631105027983826166624885078395450016919989843331206837444098896496683644085056726390969650117077020992663096049391170117129491361922736388600744061008917331920834159575376152546977606640071528125748592455405421083401966666693672640326335637807271625851397423559608775939707031768473330569958058337859060832791136005379597478148867214448732293813437457723450784248588903694068223001417153602436238483508535018571735678941921172880719173091983001397151129416828115147263854173707914881084528207989694855927620739320052369536810446363600944748204382541719904979109096856444244328588036086761502848777246409977498254831310741718172195958479428016593256453394251467255624790054911277636878846737094361629274144169425154918968369898040137918687033097178333079948804027446283323252607234696469835300503787803580414956890161037686108020028224011546290395346987101334499895400145840793685912051959687080048017116811740570504841753960941466277664617540088672071728790728621937431675768306625570588123019774537658399034519169733555851069351107564712798860760098602896426567064757783254855409266290150286367962295558058771295162640878388448545075667107597945994730639218073545578159107646192585110765088067931678082846037634557022458783570298112737288620849825576279938968682786965464865932390183224553882534883797368879355464405571986629780824734915864991851828941767929159825247907101666761264732831394340034321224667140080853241113476391885871355539075283598417514404302892396883478617482877165634011009756468073601243318235487504202542351763132327326232662000638647562793008335103609064497740105571627899268249978748550906892857469256949721404624127294686650230203390028301303937921883399476430321967724821902321533514947110172568348092137794116630887399704821521313583604020308824507017884221085858288949747846758145204524564070300418798329620808125783457007523610286754871579006424316107488560269999328582494912163285666971518642128653385241654935452491242003726248798068607853028161331447301798940930105965118996557628150324718791975983342816210976014101908944576285186416228451969242018506366361189405485157026086652375819829352233180215853077809440644618689230123874366779214483379269600286324234754543032855393305544431558868003031726994792860890045928602584534929367074280965179029181225796032543423350321360899410666961299578911652814452793767982847518058568452334281112486135452722869606052504898844083304036949301030616304643211341647910012375991408994651643345721105781675879724433563885019877614339595791961381090969981477975284323802093023727954141783262969881621788366177922522526699704653350423625260265754091415890327672491162141598313745627298209468845576540682956017940013136340740964200798336249472994575045576389075825422705424572091168687459436341282580006061018105621540698578797804937534089557581828132594204377653571251054638657981343999004856539107701716416315387316855438611042893502726162961363310328035036392612305632654857465553257307801890492873996510111228933071202427374794498802963492378457238923899703022747975205106287724118415168427250447166357193473708917531097590693170245233902192262142099258273352574887230202866827906281373606691949694944497413558970168454937871315769477189470554954780156666431674901827487846289290879739668549116508006095401121713767968360730136977787789781074972258667850545603070442479766286675199593704383595243225819990753411372261687909831569448095815354584619230542006532760440163949116797433228285856871117420544394513941248887304110064264283459915114103251641100553924497604689627399252259446051402951229156344714805941917651523035718678532263079791292479661490986056171135608157766325861247492852682729083185679846051034948722815427395689105390374555944693589340907146805828065363612744109537547680028221440895835149177986480571328681196685378758198786177639822210493855012809334209812588458841164901364139985079062536470215960787219404726274444319000991073964901721382221334002302171961171442286616043763244039313540622831019659655886148391126813603889261479205050078843470054038848288197053543918587962011035787889391916150815716911629470490643533830813774996598475793350577145943181345815871165616486557958303278821241139420028043327834108084864136607137117102949335809008314980739584863297254597557918935242906906780125903508058364796755942071177026200807848823504697681365694027033526625935640078890663363539988371009457190019477166599763346506363024258331417576375121862446438669723942436063296465599751555092019829369694972029976203073137945497994851067481478323677012215612548518898113287196754054490221653743352178396892017463174510487276105878469766952171797720012341832681479477479509178462481394042335019646387189160538832616435775114945679082167390312186759695637680193703832568491621169852369159926249394463514895711224050817845439770259437376483958958385745026280005434837847426624306408887061216628762816044579413297611629131359088546250667193707888422405456476130535090183223357956219897891653458978234329795231885231986309595150951881738041979402188087679514410845601795524865499725731601176438818178126681962798218019047589282086914415401747822312454652550587290809492012738139806081015038398846902285932500221595289632877667808786963172648743188785041897030455061042646591744347780372186302453873421313118812806531199744437767412385712549010189579715933758180268783254207233835974453689131299019796580500364102553687858710962817273323270222312383438396516792622594571035852934672287021061830194500458993395623647723961447890350121659721504418295832922135846572942445930988533033003274226258057401406581292900893276468707271927728281408928765443565682609173265242261951053612572921762077553832484516734964463932852939605746458653835630873281655992098596969315527243343572498881605833566171321066166139181123396745204019687410680283136702359488633328499228305603163102304548153620204198290670627438891231282485748922868374611004953290086422828592162085981375034092987605056345837445107247955975348366251829059629313708427163552078391484118726939097691483901246845573219696400486939524986253571737044903457711104545625443449829871736318131364115968254875424253820415016034830673222774590491995320558069237743652828318898596622618411660659384437526234062053776922194930884951596857772897777041451324186310090674169112152813645361076640933801259242538143837039343295620972558022565238096882117220957208768362276206864228115913132244311971213891015947972136290202413408706079065465850169841170215773631022222591649627793617721131872803851377347339375326368096952014022985528094094320594683871488455721736906912618336172419732733317987863156812071013333942093312887666549145382049202454901305723042697088784410553824113952270861313632042627995391257939435677490303200750605377606399221314815269806248143992500964477327817765795480456892474856020801057862208825605535815910903962542371388801106288018097998377110598118430106978445454978747053577430579749245544732907428459500927452488878138040668911694008177696778000408950691060853335248918222932549547412737894166537654016331248501272924440755112336088597678907382431044475117244757398775015662694257514040792859403525839510777106360427443782323801862640919341983041563470812578023985775993990676697176161503739127293370647209151086822007582806913088615149154256098388809525796550294603869898906437900182048005265688767204935173039345492417424458920977006840115948298798348873252556421152188556291919225571492445928881498138483364123581153832412219275041305416895003710338141159023397416655890710147007679770100038217220824472782854794226060586026321720903646635018462776126079365329330258892769508860945253890185735530788679731094582164694387980185089254355750300239339031197706103575133432375840431735348328132315765253414917386909487673232334836673961282475675521106008342462831551901338530422981646127256348640037217164374296285168430781363059587538036227579097740724532584025694756691511776253613607563004893707220778622607424774854555559033465617132914256912738596247525752206285357919518381493994511533401027521442901059021914428196444980786898359850095359955325395263616273506869929696783371221101340912661125546937582749387419902603440686048868811210283103945141035926542279298975288307783727539683068851666969337070372502985492843721278637760864911527094182185470312748066672970059795025734655997757498610026746511363606552275384155078304321876576807027555876253628920869835903103915581381853701926114704349537402674091029450010670281012520820473353498012151835193673921370358972176513993442925131653225078024977790322540892079030300041111406445131435155825609884515666443159719345841482259573563337078724193676580777916294976547598306061991366409027298193866994203428889183430484100472287504620769372519994474735087494196561283217693805464634917956029980736834544761263623980225223198012054344022784533776183745503376863203368024333613021473402867604800831467518149282359069720267191774734470826703608826831627835316974190656404767634432052449477583878944999427751836018078029336729017462886975403250968752595380624121993563180259787330589854231465635461800697437115713866814937901118422713867260369949609961200099569547685519843240306917448284190389560911463708623113663585128720970628439891668175036534898588521428463667386336422097151938081467393857245641879321115306531346439437655591426374550864517529934152543145334101444329746458868472058624253070726169762900594841721220550285649337804057209015867742369777401064589141647674198306384240615390479926056671583717126133840912481582526658561885778641710718986327999596785303993914260770297879920586526823831609432611806281995233177672823356358328068482917671393248199331772703513382762798428768851842519792100332143963043583746055282144351852037787853770422998870881160880645082964177342564582642649553128087157736203350662356128746305540407759556589602097661323042193967488652030580435577809868429355659247318484177150383053219877042235080858389946172552138284338737426418147127265205656804310790727264639312971781202586150543016540126870229551741285965173560186646365460570254530854262054123779054283061655917216656209807873752619415934094827772995998804576712572392060722239895121321861942071791179309234175618050999727299666969915492593572965417050697568812358553430231088868217764569610297318166599889624452061415057491911732446716078414478129539857341906836129652903668935110859388686202954583769140399093511966373625616922967977285519295510970685785442107829871580653681241373160378786879368261070551629577688381618122118304192595700687727064589348093465294356062423526178185583361245311095288682931109233872817282930350999937903916068486243033088172583223070872270116525254176301678197632064947015489976880875186575789571770396223060162680236696037535974212893367842271083352007744387593113742373111095630679266303716667247858772147452179162098115706208809741709323242070870413809949318669175547493461552974228120903535948574626318980951073743514671971603635355138355318532029380018674183817636297562323995889045947780944708651128636548640125915226438411608775003456849267150658052687482488853524098925707788482857621166979248516079146718728217679803321650495239817373451909417325293210263036249907252731169568011502956552746510817190741690424059201347810800538440332396513376710637279860432424776871675183198266974439712138441932836588372369531102420021036779561296654857314623159830975400848837336698858603740690309004535948239308732577974010000476457827847538897488328210157617576462823059299009259184681717774410178359054515356174452340724894795390765421685571615095154946865037173283779376957336005244234792975350421254566690346822237481394942498543759947942511464930757382449792545281027320131520609066117374622673020547636953026835425744197239596808602171898882247281925997721542289879168945438106851846867566123265436503650031202844991279589058119782068295300839163189093159163416923265745735693395548421390329160987725168388747851896754237038896665864374143397937248480093527633070764523047180237878770506942824948713915368424498131042792213802578306026905034816691089921352667140299849537182138193684254155183167895577417388698364228836018691021316458446672890129967701584969038044942035633756528404322682356585048572023389751687163824890661453959494427425136735171712260229245141244162075141999570970655980454732876041544078373188720796646379481322962498293384154326859717119495643317094253416322479381485753885672999593721260354164191068929161937123102311781113791860164545144556691073266189031381109524705278478745360679551894069725570297494133677629799429947897422022259096777912705243147517686042281046530565566602953605426232396539590284043358037313259037098248698105841264792025162100400047980188475576233817583391629169653979413495788463823800013610748430222678773096523648430303366033505909818594381562241080086158015140222782989759937960030960815085135187680973741421956576725444961828796724977029917358245046465992057743931491938469685546380403343779874027450992033116575074747107659159373739474123078205393347392250437296365845148988250063261754608875092573343142974017729805235599288502179843517344086923569151521004810569089435985543660458912996243122594230766531982846541882636160737997763924546894177362365646212662344786667573706094526008272990232441230384577524947609047579394422294734984297721875546321547987607012213586881681145160258722375434548181272631490068679963255252091384625605867470691917559023111098246935399348386000999786148090519618988231381609609099329802672808289182389509582140848547650606573751747928292721536840378820404676598028934305825985489539728584068463850970692012205364799161112965351870718520851223747804472553620312806430518331432500590147653875051115991763066711131319225443396318873811511821923398907270947165132192917525009283122592298590242701178673163339242566150904329057550636850570893768024058905948222935494565630345677352250125796917641161604604238560199990703993246786822698914526582170933011381776177502094524964288002877106328266612438926585825515857063405702742415744990423249366527721611440388627048056654347777785503013107214813356217237063865785142254792348515774638059733771107002926379518068222681386625656276995625447711350257541385325060091788052560933405539348575329728520810376998348398008089781869845110081733760693796994141194693937914844968767603852962544076827564442087260065437493193656713418160660635047256919899886664488062419166532276625961200881438390298109113419287090069664337259165189420876771392782793559984698117594562024686757945262173593299276920291013708107235580900285908049581519246627788233493292619466458688391495160809034539872635472266603892479179957138134923861274534514407369724567455290409241013983480811340596052650886779697187337556763594759204720043025128903508994597111602411749264367812248809923799491440845910408954190836043428141916093360603199978483687371918835030964262642365055679049187453636917877019887413169793007279115673957977998078483114867654937214049657584127322208932020383628915660552919268245746191722496272171188124538706049212476361655759364875382274816827122309257233056828245502062540095473701730213646371047881281292829405119792294709333073916322030395060635316993653558745238653123557860677613221626580329854642481129766961728038835601291275546942647182198991470122700015677560653162804967228303650490928345232224083618295818974469993821997482758382942325684902835304429133365528505759126067598305430964311498399412565799262336736290333136094370520883704535008116834949897093485709100406030151985588401956616826333511258494722363181876771585657522415060075801904991030986469525884497608542005552799410163718453675346115394027787317011448517089498508185542023781082208099909473412246539498904880555273373308341999850083031347264745465439551826035751623921041287532398755768398892433982353846764916424372674313687385938487734605636439656061519692390666375343714366591147914608513308809346661984153057475813687904614929851383091576089479370243181905427244736238525981085320285555212066556075389540151502478501420517660702714582595523337639838072339572147088493245650376796212492668159485790264645239643850046210863892184134219249683980268655026407007729125774613695854037664074397868788848698486036461527548809743013498973754976411616735706056719510311698499075683555829489544697294182218625770412469284732392481875493861332467748459774900880504747550514220731153657464005652981979803107404323617335695653001353502930019836839853369975805000585302620889310587286063430181922061466012205496327682412702430509837868340338140286527556142707226129025289319971166948749169877955952844670930419999954990021866580835577925525414625066473690362223689552646213863285829144447697545151545879841154432783349168259327468885479975165369659699818399057187002118599618812472365497346670493395195594691706151130982182808095149043180852849821303294007564712898817950996746959941407080115094995867441806187119585182507606254103144974893091718483960180735456491758010182160522645626173362738675159006678050705668168270143465073799547825537801438422793149076854778193153850370957849178070697554488161547866678077277855065581448740338197778766963167165332560272865497198638105512173001944100527620725273208445489656037490741611337955933444636659399173324542646371105656773474935219933568500430928603866063982987015845052789854785571587603771263699961678301070547899229681793165522587869258260191360457959731324945720353946951268325081506879721228287247913536177266439277999441793580642463974730379966455208363473315869844000441278199496125317723769340939730832537176321107192205338889893146294505157874916896381566794339822367013828850635081288483775563319078851804546832892074115829066449437503958467615433879833968355665450553966639508206816048391220783832970266459408177436614882799781699967081692759339744296795317587981618367487794775822995852508026271754753464422934808206321779910682601391712106243407953624342950405889400315204304866826094007810972114143344289343651296349282163847562671523300250953195457457119866446478627086840924576206102864030953490505786582417997204579437044649451393798812323402604600124276987937209787607194425684049590300709404055094222974936806525716712464795414596387582291983913032708141361286612289772308755206634124474443052701876217404894461390681850618565038479115707382437597241037470073502061942667737157903918529803724454050338270352257570370892217567206655226850438728378626628589872033388507732656529447747844184967563808695600347228422914033937943675969978205140163469127042136652627890419111052981521501623578095805893646981371886005600077899264863647510253590723188940130452864777953690095687829051818362960074435211213330035468105210813927445022701178931074351002658148662314823096835088889671386433378380926672167822010497948045674073356403672387728083989203709963802294604770916747481103768516724973740328720448892374381020734093714523118105468898861850719483558624247998147484815959630182111087743785858379681661637251307672075832500072191600917889592685818233173852871691624930104353762162996962514462524013213306302531458342669043430716382486680995519123920851145403684345662253081631726945630266915762711515836798471558684148828807765003567299622691505770507825342642840869135703937588341484262160022227793369158335990961315889279817316906865581627809007981261713715316960207420269317042363169821301849708105236894299749673676657744932868774309927494444008155020271404810437224703627380990153001648509202530103543999943967897451244359748747601131037232800509218999415081238866930225069483564350225555496222034636336504187036972249112869750761028803130645459497030947095994314479537648786808844329119958649805252770553363430781294661954749157210387571887143282616398124221987849467452565513451180664477124230032814521228215006470415833960464408492559540421247137023192117887418719593329647482818706206512383108974631372795636166451767061790354847067832983123545020762660483318054647404901277355766938391878818323884588926249800128062388221126213636708305592535388386451429732401561954592230403055939652961066715006765175577753992477022856567737828298825242967683056508270210777470363626270550746250911250644997598278910248169724493610445299794375028866087857782072244203510914682413158181675114241857117504390487304552550592021079377076276204856809951892175099715814109911868549495114972654871550038249766887227580861360805884190873840893694800053064681181853527544606618462542145480233926903949003676338145720296102019194636517633510024397087646611105013514564646168153316701952113408583800469610830614149438757557832449954732600949441120720645151739828617517723896256717564185465339126538792430261006100811059934914368466784915898803401989009135032497552354670505038261382811883527354103461663285484265881711712010482673163843562732869660014265144632803143228087259667399038241858561937824485081035537248230753752702567819929404614196126238440178035105077037940944233646341905838556705006001847758643557986459131515233633881036778982572233642355194897067820436041128242346504005986358643053930004696907838901419095364070501150845409298707296871392173005417880877008911833766445254852021832197065377097965269479460899150313372770871427540613030269126399995751530552904518319321644303687408368378609027555838042657177429261911375794358032121658156231170713399110169770024983891338679369646462223368301664537895549742775762342532210346679364564684140577307321877132964530048481022758031876440170695330587409757985773079799711552847560932481029027795629395684257941743133540628339829095548774118388004595186020652719105219725941461216734872599536278950077909368114780626860678422388485126499323547390472873292523302827588091869124315624715556059507197397750244063482273766916801037449978003574659554959062906707446998761330020189245217059694043872114787388111159795654849443064773828831974501987963806462338069972869645049155772299594168113837985982735850780165261531540329300207688740195883395758077904692202966357093401984637872719249354268834061437928324139688571207855687350082815756903210890188041203728010840678935996673928788579846310927712652870085565382828584260669112515807417748612944206665618461787861865081419828706874025338548223518316585840574030301468738399126127314054345830848673540107653663309353653498315403521196505452551651196566115905119905761315124382864263367879848848345053264278428857786830283511481355410183690342149933993806051691174663118837526856401547177774840912121529489551547496212260872087340767320890510162127131186955153934755518242788893617584952590574007415898731661182755100825144627101597034212942861450654124614756206659669732324261209194544578425932736088391137409225557036287340134180231911223052008732361007986578544947971672443816930885530227180659827780069876375736314903499956189913276874055049401663584044182527925315513796143477859716814174003654605266921429464287839176209360687156348281602220087173391065842336030690763312332679546941414780070196350334131957318612616050865220544354597247524174573504069830061252767753035861274907261110908097790175218458497270746097725022850012740964702722755469849406909276039781011060273893592241210731343733116985059059397426808453932990432638014743885789692640420574305139222570562411137654256739934443837151652837626097846607392389040434890678213052732221580626913086795918424868466734837698037234775526645847495200712681711077319515404339592209682024541546109975489105371791500699806852378288112810513718847520311095404034146292072650585740237446162452571780886256684500401254833470008086897029134805172341165022701831271909460546645008854432595371561105667743486324757748969792237544956910497222183221842688499183545614029810796273042963417917660800333608440593675481824846034902886313154494714330822093140467453244395165572770455353148178956537102749431395374768786253750449118411854267794851289786208417362198828189823703962034644648948856737322163520980729939084981689812452864400993565328229969065356165530656659621186304833113312521561929741544836060260187614100911446746020272736879375156071126908410364972062188757988584066280517846121790087643049260412342503169856771751764763010378032793216768802757292674713657886114469685086724045345302878467273875865742272566084506348766286104432100251293971803478701918246786550024482830902765511519238262040062961061076002707663917306216676300302935166217715548100099317836821557499578448720867515172426514818775550534864472954465700490054856840450650649438934751964204607253238740219764563944654399024800457558148525543524253962618098182363593546742133034458168413004673309818022237736175277613975523535928020720595743081825593864656964917233806121918313985479188086071498237294619197814595838417186981415808754701099199642095480882075066956596507038788907761588348562550850036131625544223692305852295924473181242020355732945226350197608395792114240135394566069061334646699238104269655384256134397800474612608784395236979334241795546762315715213153002422528487456351843078158155755889735975290489691340792164084744471481183678405746383293814076979064202426526204813343155921799180876673108309435375042090775570401119183590265065904384473144763394508941411519252797328491527993732737868244167141711251661865788401591892248379385685957469558187906170839303055507973616014328312657623029282890867411622844447834977758160339781968951071209764758856560144027859433238151797694630388248683135861184807320298742672384174412498987510751841859332013952495554508868859889403089590927667704392141229789268062005053867300337295619307482803404473131595720606143313505773779831008269052483437042697965064429452735967974953354433314456452009850785333773380665027211925721977033535460235825479850720969791781608928467173667405295837876425594397245424817723601411769992403330339024022064910175014334654677971565597300701942142089712492224013238100872466491691117705422684021144798480112527934269118366818378540375602292584583394168683118154725199813772824339925420280043268311546447543572686175256467892175938036851552719822548643449827068433154504801976547524191883301696888946319488094062278229836088533016678431745113053753784354785010707255886832982584050488031414139673140230574179536260356584920935234989456385692105989479917897332961939033382490043863312952530213153856480118775341158071752916242863443474599349350097864425822003047337393568802339424829229593714877873868867573571306353755141724525972089818175590786807483212795830632549123728243853882555368523228962570712944239404940276495601831315198602459797198923924231837664781613941665521162372876557104329546635524045778989721289037285170387911451713414856080590189124572537158577323683754783001354439627010989825764715366620034403169135805545156828824843892181742776610446904314248870670942894838468679187507136519320043455167833471364773784451389976848639213234034715484521565378025492644409717763708389180606318497415267520094975417586892144813812420171399112786234451232766624843937164833163761621965770849086349829005833422716170766788092632044811968048801457818413141147284691242809167134326163880045193559468249259019646685073945234607837494023496919160084772990990234270827695673022750850459855360460022029956287978898845002162791096746449386111812318241515838526953456952914285989008139920723913804255576707063360549906133997785145689585830714837642090658498594754814298727364380091185743262630424395854259951175407970558090100884823230002273599407466183664058744497287995104670697143104683530714454696222594486678239638417322010566743072275184600679365411669177794710200451282804885255944498339270399087943884222709695720866825510902531217960347621020754676075472636729835410327805522742153016620193434655831052182136462922102115219535630195347830739594795686555874251305020813859147048812174376737250323670614755441108078329614201340508643431361107666842630868784048322021225667908177090171070488962962749754675013087266917929967221212809659461384961801715513447833871068712939575429270301833951921343723185405833376922804090493305305514851280743971494269708263867344229930596436898338228312006142504187685815539442061666747239108453028246388303795413361799771482516378452763652439416830445795035096933864746611867174528880500949633543759369887859412015107357747536868576274848597988839144525178966611846166191131235521115735218203108970261261315488385881284618732416168771358771697154326392713531450721369721080290088239803189986224869348946280337140036406639207571885706911068095987365896539339803181370746141512460300708001891703587652436257331822209431276285641029408974347124642466521236333331949021575785523688026758020581323882510966992937642147731273917494961531662078349214467205144231080924981525262798089925574632544038661244126303158214790727449388489025252698134509008315011349854166093132671119806662861476082723446782798431861754297473204604801929429891267897424604396455795497577514250593897150046751707395586007553139414522959131263852241381548147087262489426868979170141629855243637865966840123406083148137783947343280412781618647968976409074238557201085096757492660671379434348364411331606922230257552260269970382377589964421680533945551849873391015809609475143057976206757881524127418485059192866292572908232489179810307115372702413684285692426663674671664395988213069463214850310188157500072394864613402910719333505755613306391412006309437011321485369504487666799929708553963568711990709496700709818729766798286569080223755284316585860109173842565561680271746672101243495580609119270875630931542378861016042504022464672480751283752268958966991143533079245392726237728723593945444216360150766321740165565986968476214076420772513571918179407522501805542525378314218517931885850929632661860110784243277951750873978717093124525144600394779673093873048021238984586958200194909028029983201714850380366855569654799822336357219420384513361317495848085664422452223345654047860088493033415921187523896024726226719743222262128753980004304690366244580107515435166085537092393525804908929360797557701420829141068846932993781789052056729933981950095425290133490804601070950798312004104536864045023100173682705937460117970569668917364711409603588178200778688809493574881082963777818218962747650544186076774400262600619389465515971567248832098033737125036116252873873232775957640201524757628571372396895068969489038865545923023135345786317730921820118686263864619250481791233151397802395631381153848600281315668866076413787817504765403898361332979305910353668926036907694431550603964543596298569955927160549018755993669615580317182327025205977272079796615103172539241588462153233115396148333282552954494736421273989166649907552614178667815417964653230593549250749217397634608561439282049356704572191335141934220843039765779246120065468272864897731517696607351331686497220751654676168818031424895967033410721329179017588531514326331938817895973146067462759994456844936915709931444567838822974050147253627253681705743424429370590474765391169939135929313261057681357184704553523426535545508281277516342155629250610973263578627982171928290173717654406219652564873146072913858287203207981205051336669201013050023693437248654250909871975418340412890023480380947957973309352734578396794678748332893518307502916497552039840663723190701564805531400373038252305189032689157694351988746358710198222175479908866829586659244817434530158576705363500742730002267463078569903938025130181568031674543617951157967576833955485183897694118460847126892390137221980025654167795790205746922304323546137044808242139169310572720821748579765897416824242535601694588514431762774639195052625694846173620704664783249910657714109194389937634448640308795027238513097022461337316027384076942531026153502619426868620303370803141469919116022589600432907356464361443520306055673313501688136247062436025999664420465885994905595646482295627179320590917164270962199728892141456882649224166551018807462693202624635792076386657809256355351698590012354974947449492184184731330619793351072099311127483802435230779236441640773460497299572333486924449347746628127834277273871023431056506553594052595783487585598467950760622660136919760418505849173479124322340690168927114827516050554639434587344615649587160907860233875369538561757067423102782394741004195066250661544942508219237964859110854557620547403374558576192589257962119655395802003788596556380008813970673799833946597456819785872630706982689889208957464337264242467484253616257147816286178623469492043796915063649831684123939213246617636873773503342127530677653945978512750992218373283955322772213994097491852293318520358315900472329233260711037269744373989329521029666000311171345157203021314001713311891338654624321105237747895126148822736067540037641365737627401823506692828124769570555922925870250554743575915335685730288179439935387093112505848756326994631419287083818811281865332760439899247284584589370153771624112791219304431876832341066505631329667295745499661464424303929452400253018283700792016839955428798842908391864995703247476464388942615621755343311273218299655604688052579160279288718104578548247414677387966503051536531183347996644173681294833713416088353527712624237243920574156815709209288254635819904372832591453619042960625528564385177738755656007571757583209746138403040224029801702127999638661457884540983186260879489369261524323115783639017062879606508868416549162881835289220851664593436802044013184226241381460940691909142164663640381943281675858149047871330355151689534211254186159242786379459762055803346218747718911424029585650473775775795972995708469435521905094491744518001596743373799548147766940867414701227781844861399413416040983338390162228416404868463620265072239826121197298891398345104036985664053888793763294747023596957056196088253098882110087544807688591080972837447245346031499315236184630056062990456403563461783868239996139404309749704715339671957744897478226074591740257100089845736912099488241266974490491936476500846825723858304891133177088110434770801074434521676723695928361551127308479975892301600764938100427371819879851744819195693930701980294707625030705040711876216352963872720621166894384178112037320656745795675061761143609359316087057916135870992043753499608179978546652775955740289686974614595294854146775341005738194802975351431262867631377918802511382476423054988494470675615042405241157335556622437564380585359166991014334526110150413855859568629999550379383334192906487901227493500785721991860874514317678355910630943919019826454509808216582213397267668225133559733693892174807887509538881659448348159709680448436160462463912319365290590401462330188376828877764649736345389584235608464707352541724474406850367656153319757638632245805799553859389088346656751276446817865807176074098976755771531933518022101159699871926881102775311210733632223017994297473919746502697016369854906027574979712812664730542949705418341547513969745204849031705061940013286554331893771153857130018704580001691930515973119758401018878758915407843073284580263909740158646267922671027515741977628307618530525729282515213014623322361359812795156069359627279447265477254217925943639614906386602969173878996505356530869991796035893010326187559857100577761990315889175061999073235244189540210482759363381604162884128810330399537867486758201511532223324471785911352497404065194833093431811849884856992322962347490647466903384821202401243814147932668660281275986320875164120836671599380876233633260374569695681910279769017021825043308938052393720685851216715113868518695276791443845386652942325459653498601315799549476066147277284221874231592547387468352370614561871241849567184532448158398653766664780078475884195725330212139219086011172640857851422707941364212494791227954219713744336823864045765854910648068025634883370763356611064578947232380204236871275310200713061363408596028801311949958196082933313652645531037586693490687694380945885860383089454419273464832780434393905780030272286262487632125985092396033509007057554129750215801417796867190765509268203496075625522070287682741830395651538737050561171136453230876887058212871785689900469921293299488649105801160651364818498154301935565334611090719106926628659469012921333591460616269951601307004713350501082056780761512641120839103319471570237619345473740351199760624075579919116788669306931149452660813499827208867028474822841734146966596972531731060316130239894481116125005672066484375013452453458503976354122284955571162581427972931279910045207308329107914410777217562195639045045625069446936731150013477780541330778859458157069501347567412491434585539836283072838718516420765095402448260611200154062558933033505308340486398336044524915405074658819532280179974861655829434444791389720655757017942638995491857583629296334855312306119636125410425094202531132260963522256901854071526671624372619781419734653970015894487255246462647244755458759836323301327497972399882823065862069188253677332791309640427783886347559334660530005190731245993669722506605031176341692345674672462714972090999080714720073003890608760203160202451307293600572352174261709110404914279795458762394751893445129894753543279909819880035828675493320939585917023648352270407601118552754010124572770534192092371535716277406333930798198474918558855685033746505270278765148870701454000929463124203906716848540358727015750978969179826227396093427092151472877645826312536216981464032717221886611896396458278446300275644924559613396880712053425868998235031715296900551090428804189945996974539128738210159372978677082577598475655974713628209599978331936175535977252159181214628759092435158046591694928704491183573253214557296962823595744647573051829889001718735780596093177185969406021477398814537267288259631176251136363951784644717421718685666155257968693671780072328359094271228741044897182417354469687093670797672073496316339496421681380209559871922172496650314707005001748336612838172225262690823177297939990285333149487868333940342375025078796552746840819337853930471152123090436787457633758727104269919737382992587384939158604311685377297744814039007499306390097230544956579043724037380157985046737336985222234970126726718905816203745394091147241863027077781921366376918208881075406076459162614808723378471837985614573046486505046176972355703408898781437947732685417289463023811751940194719601315291002753120341269363055023126877268555122627445919879075147129085899129771220857027670467220098140122408134834030745430943254701990701735570878353899119745280954820311254034863311984988175128652099093449691842515765889294077410946291260876327474553892329992583856585150533274147106166348501868813635720339170392930501783748297708913438112410779751687825181830554266796309921243491312913886550729352473023848926973228951075304945338944446956288137452663879705356864926692767490837413681862665993784526257672417829341735296242760607555194620901792331810065661250280329722788660293466261640265158525121281576008062236361664891031720600997021167619637242451320162750527178549921415233457035062260294959076577908956218836427701821991808883908360421777858388705765306999097865672383686510603507857265863595702147869359837996269515156621078593877949868532652597046600980932315984045032346824772534301592689971000461482138363991212961380301176750014660399584417149038824380773572953157577653252964267796762417286856860033250761902384668952639566174090847627478864354429904832243086949704039871440864222250313551890927275571796977193585025104907025055593947338623510576336392783990312506978046303781347913408835579004154367960000922301660507804165794846839898428639265969538585380758766983236290931188699884303768146566924166240384294538944190455870553733856567465487955005891798679215507429608941105510952180303326554752994817580021099223892572076344260359088502290025945766623527639146780371804213943239552434383596837694436613816959924655565425861857286757106789622138845038853523009674060942440119491743642102085226411256189152603022270450911418839517369373391321876022519989906729934422114975648342491210619215701824638306996844799154826041827623036632428032811746694346832657221833126727197428926392835928917565662327589970917719613599802672820879281073703611115073818145283092453818764774241071408023621877434120479817448163045913960444128099545915280800739030789147210033654760928036130022406032218367684569383937088367655170428321143156187666463086725790512799349005524534171444618970750304180640867932557151087923424387332355478399803783738088291737329672301038390845487585844044884244304588789145067967661709847092265521843382241118935522912826558534616239425299535354348221989550167901388612586767026916640040763177961322018846371534707411950693145650119342909151740544038416281427598890629762972581634440873086795305022586318134208366605271706814840303897907167422130053719032982402847440087643504823856763410893072774040002426140863125276771696353750918811626939737863130819866442348178445604372985862350444744740345215788504799334433417474056899211330154223054291480497853499940703639870981736483164186745440027117019913415167693778702983426604309740950895165500025413031901508160197080792741326611394989076590612202172236419744061556004470241513091520823025124696478443062659434268934753382968015141114782455858306323429345102684771145779014432307848516428966911980058627837827141924491081583310155355677919697228547959228491880453744932644062045426051921322618855857360171875496523462493698000965764058923414780409812462631105430240325497707237108294260141683451974895889958644202778577805449822950715727658769910413931772952705252601243471903799034897717863838935308143330190203831864858924807044556162828219428736873029452645789099044959668646937665723375442325288421222667915835011501359915377877358075269557334285280501853194402600640398717407721032215827901987165798891395900574654316146738055036002370229797667392287812189427791481116095415719206893404832535169340595090601441294000538985660874769818507664334133653042074775434434505539881477775011450541134865246543030851528269912367888915507520777533469997266846856587964318993362870262336261707117019884287928313930267998242452931881083310602047512809455194157571998116062143621784380994219626693173454976812465710959022498238815494730135971267882771572324913722434675234799845733792786928651104254920851812641608989972937015785948701244339024415249462562933366848462856875411045213495748561964626377618480390231326111208514112633257355039059790166703727774360263316673516413864257446264834432727108883872041515826956342717510284845973824930161603403354804856946889401523178605785988184767478690787570426396523033267234061850992750721142814538936642448475322509856295848395235976624432835484776419485904381687625170108479369274688953541636229120878435687357780159471621953334993568884208529434065652139326743902841289056003532401923022743279230107081636436403053053856239189512871482416463644986444969994336697023289598385103374055588290423342546871672632892107838682712094301293039227025279571209557048524871500343249376375140209514939365143819776514355873695169202277916376403426618299885993833868112467639595921125966810811661913611793042638750966738532876932371108270081872284210299654475276622827182286183598096979222691926583619556298481698973520422106628889543528750456828960390546711630995561575174059466649573242577588969329839202834646373595874911247433196001166720329522647760360623980677516400767937242291202389729131410335803428889497394989731725336484778740120143178321309850651690520571075019688972219820455173125217599717541962243116312795344953707341674466302254432315352970607160386991867264010717571030802744017452014775968854945042089004644146044938732042681530547633184811558780051025988517166376874529851696140010518729407695228136476089849828902073519046720857989916814459928125354732388257259767842336164074237607361487834507503373952806347085242313213314944013417417883863225294684383343809172680360271711930421059792937082064692783401708485764580297299422804137105308482753203325779261829191133753004808859262725765976231650467558934681893833586123646527866925717112385672601559699436647219034976311049029419602062693079163834296669757691663223243419582771868067048919726926690728225832072843602061279304009264878310974015814496626747331408663504330385084000054532453824588007253402967359213025528518977226511398918443140539773687201878923231552647605040823053018058203639941228576840377535647207132475730883837424293645015079497031133421858723786050033617317079108898139909685603626593041375561111356260621826918980291066780886863929679921548669930111428898765783007105874667236609377445326253777722198110718786773094663994934875921891311063252092860574721121619917276947616616284866537936408281128853362027771239319620105865520604818475433239016515645202449982572284370029730239145568818954637698705687904523055216550246093958239353515614743345441859687872012969406728083425416244824261996459302395922683218393314912564682485197492244352695801557530773663582240748996509859764283194727695956572857234897602018647589205459436921769748231374712620315403048363612171094424389824088899408188740172582982093032168004917396905940381986745046046936453758409900749141670678566587411460544082761795275009342192653495720133033219614497868403614840193198211697683988495947824680403076857035664073088289310807198949539503198388628724874917475294659470573803461491234657755197377254480466127985171650626716049659339446721708391135433146153801383989694888440255372307881477792131081101652516379381256546572617033162519741892471747896701019063969115448495015573152574106877648911221071196491660331209470415685538895720936571311077880750636667270184887116192309821613848923938299692196432379748286254131138507521410443187765004618462052423607292110084073272285595003537607902734065617430040613236667777283822501635008990022627814690859861955406945510030853758395448332228347734862326368673819680851728875205360607367254797899256059046713617572500680311336290429911348495416806718896925136405603423775843038864750490504334967971088339585633650273453686696026343668288927330002262160713210193515982951709473986431815692765710640160032271216241057243706631967837144633861512477173620949578557143571311539815108075426704311023259403538049352230720472123484739830450586139688133545757216406086007504394051345830604200213835451483508123632445994014082675573736971819546584504894764641210508518251245962849182589435241129158224465276672817848867692813636093286463117798504908319584922520153805434632776729746184045886188499405203965280219368774120952741377691833241736552723407569776186188782485117665317528240711975387901592873896676308064050722218479523856094905500188103643918071447257017388579863669955211560008453522957797018664590451757861201688521982960856204136076177047693177553825003002361085808756930383264640713584122430953200586698880148303901408821270604344157563270223661195153671634273845143224933926678539877636878088265649592839102175754259797944878588091744911370270630603600875671928851703417890636606081538025709094026545732726130969424935711328884058164405485431163391092349911028248008715194751051829967335494022965628371139171257826396470027709081748399555472406245183870597170975973081790891215015004508581862674384089279460482075208351452297282939616113923491072473238050558697007109278981435321103794623340386573902578289363226393829514175564611709484401946962408415673165124958887591300232103555828569430920697609374811502245334791078063518494302308161777103200296378213744694537613023433338037968711215001129008119302298788331983821837101356873886347462067789310192713014601888284320529017975856511064534906554796660193899273758056041020758678377152286536808848630929349568228207787210340662199147615557357778339494263300905170458740524070075045881552999773916449147627111621612454359254167897142582135748400981799416974707927428459296544697126743128557229907940686613762987998772733683515320305881557580205721965136077217615809979108136286748447130940532717701445240993309257229906143842173942288242403301085701297795012574287522594500760933700817604007229018731352207273662555795260471421221551276333325288410102516693634114182019214258556126549876857399962028615972480935959042028236852870366206747774962870677780979543620855429587898953366069034585414425134967391734762628450208126156161354802631170709854882383518786638593045340108275054807596847538194345541126822550157088182074814459255684030225908219146446036509356462495649970548990703251724810551275851589540815297857963882737989900821692261303053804081048494575945718113427389829307758529313450210981943184158867934773786829770942596337885212319711954694132332794320398293525804746999697652177968909696460971198333941378146290578344156527521916156350253701479477481662086037180949157293218520812555346312388633310493084429256942811839708495042242126359596261880004846603213968505471992312692057822544137197176056060822533269147179198653308563956959474536857891616270973502773742026928289532349626916820603691213018197146265605602914575363188580224888232984227027825209998149761561758803213518484189622727957131827855243045542400177517624844015515880313088695042568214326760531182006719260545258341832997993464732093809938541315926566084629550208521486672786697055545630218935055287809793211571326367013970695562153078150616139579959590059691536018166322624413405603016306962147278130468139173158866196412963711831179109893392429766525294478081896740086511910696062825036769448583501631138797078384806975131840382883232839288635410251872838498576418905935650710673682052195997130452378441153573702350611921261288866076738565185637874496619948816660891073328093811849174345947788444308954378852592176516407879479234501579344394007553616980943077741810841917213305255953375031944153302088191319544779844583310993932230556155369109825657410872344428972854281549813897933915628529799287387101058944240929775462329508624040684674350195441019502849700291824474440529861919655917142833018638276424856536187819338968512210093602315339522294240765148079589024972879423696169959875161042916862348584187219564580717750556267957440327182459059306211554384151809850864057062975997286671866082993050350758946814617618255005431047552180107407343014672985338126948077985184365107119661332532240983392079711133403899342812985080553544053852768727046430107332224165446262511284913539127510511869356378459992625607234229148640935321266957426508861142297191115856609423681051228338331001386932148236712956181584421548118628261598993258272765615592521632199411843089917594474676858105584067545441995995149041687384248041474381150414191167855928194712168820501159395361935931261272426222062438475987736330307677406816369208189247507370409337687766670182414077058712283673411780724719442340008180135170804709074343111746785431988441117441857249088301331609945124751628346779149052752307351131152918588414510920480740599589487817471378054397662967008317844979591118318640947040971760159064748662830102908615067759657252897342964122211222655734839855889233717126654107739740609022820127193363256167927394043403840847896333786966127216777384770416731604203085709873675747563962538156333914635157980532879197818266229295421021602643719795635752972914072436637060838709837856717116095773861743984157597238386002422069040583817206324003785079462345395764873927705829408369080219051875517947443659621347242312672767942895485261925014837487668065964128544558891250592444362881763991401201634751230113039156689804952310151923280735002139402277732365473233891199567284605279539495498834732728371341486731235793673651088162733235982846901924415229709001007227206165579250136971621040802916345944071653327927221531360707130800557627459026267610196593977494784365963552542050975402464173710736648414016318148989262866713577392631520919637879774377013070391428334521465586704966116976728849351985477302338587532364095375563473399391477952477056144534629636447678700174716659743261016186586272417405098910420807889550634135389744666186944112613057980735937392096032315631119697870729788747098656398243499732967747137769263957515073403598036369720029384032514829817142449455392908021101495337950436368352469128194692702371125242195320056999802929498749641778017812163532307946061656450936313734720678952497085276593104770017974490284645821259271004726549003548622278342640418394497701772846819400010521587355910623523375378273299814543567286087642653722836306289876547292902272604370933295029241910091952803829747741940247625203719028785581188107326352527047643786923393556181147411613394699011524042357581160965882679492285550878441299854051641291141690938012795884112754859963193369401264822378110110082166239819446159357415407831016416464923248344953523477666173352646625572145424387829542022387599185590295184217296069866253284272081368007643154452606137170071348588611080248081921949996840226191509982414277816529119243421755086427268687418214064763336824513926197380913474728137620541347915804457002588285749497608952708599314644982847605214208415621606587367848900742735807870795302454500274801590545575887153432370657388926728157721140377193781531111527690490323935273727578956756516801407199847190692635281875568244244848866068449444288744641633834692114416555575554998496967041860380190581586863424000124330308612110559675957880518243152667693114699597946290387386039604933270547856727928635678656775878350255515381166351947938136953338222575168056313030695996910178928527909502934595460035896858009777962636075768772509132995906528158801802570550599942301537513505996657686118833250606431692793308049408816523566105119199961119827073801207557092833227857411098117824207474442935054311312534549320776818505272399214458964964328165946201577019888329820441719836680313384632176736221442316016177577290930079180891086529570332722484955741653684917526468275836301844050706928340262607521744977107238358070523790381173993223591676970454474195521196231009136098806291214461282068908699768975184367153979884546998588587771872354747058100208391419280090352740929718661443094560450966305583665040411733008326891814535085083373829695753953826999705236055074604318124240538048437317617249614099609491758066781734406497223406876350394981696633048510823598003311842080523898984268598070509950592448946547226214971538062389321718442523563997470460187540091168577354578312178491002567369431279915746640218007208674213330747561589185426790282494817391183710149871448142610577743199250621849545283925762158714277009317376879486113414653949915570155805591275542708532432938713795491981290225576316691147467618089732486984834525010972054390506205616350747319449184645418102931779669736569867784621976296279754099151618590035594400499767728802646825378353566388739156939292914661598400928323462899292782849000315932660486791535935814177211025343500877441932524270514020272466464115433758384558739551407087518562010773296695444673568444688432308848457263146108400142649059171740335753389732366006485469306080776424746226561361618352714156661040383330835345710245683783955816688813637166957932874520958235519445451816190645535777791995764617661147387967821810007908900298165739098825039424536389033775311973753489446984381337690457483526170795102048766512937493773269400303046471208750722134838030179987578523957781303217298218674075127252401534985249158492126926249346242533678604218490663612741567057630164976913391117834754270231973118990899299384762013581210258258127439294702526412155741107102616183759569422903756748817162611192921329780172923861445933442525814511437522423884508163162656855453734549401398549570172323418466893068033312003339615420590216355119967493497267777498669904448826724708741318010133867092729164339437404172417166292602062350268519843089589912359365919700223653217598529439839844715126210353691827905946581443436095806081889215281997680002801979666992971992059012788778996471598965831943531110217967078179783962852939898366625493183691937803053991337238817025166580890538285546601461815832646622634985635929864460303945200525069770900372134529292540706321047968754599294640565563852868332643073198026396515277439467572718752411038626373838518671375171650266421832039004873623964272090435082257128106938362347897135607096147329576826905993397296031550643757392646850984796293685201474406744350133704685163343017620841285247478153662883350799641222430686196157173861412923668507555440890166085577973539324350304532470509678109857287013985479576105773093312587375536633039671673602056629479610883807513592274251506432818328929226814853648026735934272974508359224895748849513982158431593417791675461351913777743785903546918146959645231808712761146908194431636241651870562571134629204659315789134317673512599613185014168874763153934711392561913415535606943820692810355682750103266926848278251871021802392585346824248869205716397580212939178332282247293691029220520258829884914459029223163371740188597065633303323915916876581563239129738459029868282367741483944042343917704878268851077494138154741517197353640888224397558933673664686160358314455598451906354420721471953146007544726832851595715040417115153197598389595828822551714983806257374827479247079519687683596666556276188084147757214377142862429922213200710037235122530751755489417175647838822580663240006973953879318610713757727703176155817495991121502653534447380891635252456254447698092944126272130959561845762437788711811215943508187852171280295179354365626885550157860346057868668736639673629362761684483419172902311214390022369944787451401696929134485697910650442657755974327196834698174214779663453640341139947754474970479670832546169361236873781578210323086469875800454529891740661566960889629138043108569430886411110994072975691594762211673442337274859571923639219531517968186389833333196560722098939368703383734181993350369551971616138268773850438997701399492861405634009432921632639924624000927034675615900765813263929828529018801041963651801179886430013467066575961873864587386025086865119379185430429847447614266181758718934600733571695454893810637369239605841505902493642608147824588873603603421260216630560302191164141325633085986482178363013355068541290228141750959679402911881522934824925369256755951541692134304220761254846662032593075802274921570466015669264461027266493452510440665837884490301750069549350337800311299063735977261680193317070897633506881345923833287330776084350945053976218785300332579911534997100787751811633700549528860786423714251462488138997440368453167405449657086078196666222335718501426978483841338310915709409308511559875865868638348518100017761104520776759869851716367898083366506465766777873308414664106244877892096398030066951203785332241946802299518975821066019936460465405934250964116611561438629168519491490401699269099164298061343521258240919883221945917693936678004357048415785421002470304476672248850483270526702552268186009345448539468950419130156580825005091460445419754789522591378061192490653230767038129785511198448855355520009998995805877215788717557948063810676618626462202147621670677302270168362523790719667842837979558182539993831713927088896051001551606004821472334998189070443452926174150014247463334845166988575823627670122352407527241592382033659631012155696381876162234930771398504424303249381555129416089435762516356100090683502566195270913118901365897696608699463891104861385747694272762442497753074498885625660937902878592392187447124004115925845472236634074502876504430523875359778494667430161678300815372498985899268390933710866588053641798442608099809348864743823143653838392920701267313485835617263282541385325945237568798016803097733367462102977070335208599413300301184132511341733229829747007981865674510524267422142639796181472263960874426646555364503354751561855924846157656485342709525673554000200635642921203026754681654053242819880773142478510179624750497684432986749187533238212728318054762160422084509844836968922435872216642888068104909118704611316769938922003108689044698480798049452647746363493040827947317619817028574034552822282903254808663226876252125551220159565422873613817654295809178146812590569600664183269719610199781288398867743137876253400428948655844532295692876388932222279020263886842008989674973110950582451824616027844616874796900463396334505969052087652524098416781049475248712733576562494979327493852240907280762263077513967236359143141742281348809163172238247220690699978777903902966120641081764912358656465696625427177121693281274932990094804227018871036012688168491481653724300459849030257609712946880767475508445825934025468130257760468615735042938736090940776381190475684830551724784894002596127150526828205463154788633252679009338768048826799601649639548599541093944539613083588517252619869122482936505849660349939873746365832869767849157935892761080938144207179108523347480912920156053275060550126111971998934745022372940980967496611121220581710226794955897077973925708143396405526489661421875741068093569684619505629937439622399548885378279924996076861434316513506629948384828217377982507912023998162356995109651327899583182409265082680405433700208521157798563482170904328251599057890779418145422337572938397710536557361854072231643963578951490163478643600665345914034784738745623311881890372548653880282937591510387582283883610917028684067156218170565160379230235602946447783310560805831468757342114003586473282582364113620765312515856890674826580265303849630265624147482318013370378999119871434554732740884097538597512684295146188106910334849103350232176129068216959570490234947287605699941427726030440849482354122045683158034541843252151792877278201666408039914339021225339808731080499466146894099207096337816630142766595694619409671756671877125676539112938183878011628693111304211702834712152735620819825581738433168696702767895538542321874038997137182762159779219519341488471459428130372441165923685249331742156634742029669480085050241850115087175392088896623276875712186418523391266354236478600830110182086668724112360823416935762515279130027633906130113749584277104132145073375427491221793006899314691057153762191476921992627323611018347369857948873072520259696325517055336371008401630091142477292159795551263499139251084307948893865903346376922924027823554955961641429957201014634161763768280148318428206761924617864982911488083085731031295384278820297588348940801825974892332491097824046855564253039748740498549271518835209295533578220686722733028457671805453132955023434147092043396040091072607436205968046680486182949572546228171683614178917194644955966806460735923706899665847296679242866852961935401621854097261258803063537894304443001280737813158855267906616411129655111464902925014629438454876841434493933717846376690003067885413942801817965514778264717011757584613165661160915429999652803229650361412006606677437422998766026810323584632183091664012792587077620068860671105565808778268213587804596570603485304037505339193183626836084872598129794877507176861092101864837676246478509456093560507852022235881374418828247377209871597441871458591279661322062808394589853193965962406520883408558177720298702330830720192853680018240242000149032375657362330361761849110639410712950513756978216594772766467811334632506618045974155298362417758441357836418992085541838308711010794571497906785173732023328559381601976209317543775108725650980755667800251434725088388744188049318272749796634464691347124426535014364626146186119085957366921969944350783501176831181214212886455526729631499726475890110333331044402160895807728981042735310648757061522032615761372236263119989546372342527130977685938963196286044552955455812049567976210848373883138230772882527825029297887012114651233867468123769968874851757423548469160682170824554620204611498934903100806888091717045009876566050498043585542311687072867066962628446773184655259806129717835480042912395580308748763842424192590558988834486095891312110277904749819428353063393467051640638648384314167506069085516174738428138486329667890990883863207690960001057818626743330879151800606367726599410119147823985884401648553122502981204760842116673603269564745488113140869284286207475852704138732463624386778639722759181806835680525303432526652854505856696036309722568442433817038995308964897248481917776584201956933954685980756554781672988521580524571429027856168951544061281176540962364530251761281405886915897774400376751842043582524745018006149107352844705325149631825084461170432605978177407854478465631156041005532087701047219737882983325697048055653900799654421254871298275517927834152896441621681429180517854530996267119027613259796626795195621084010688857703739688536567314434415931011774547261078009131842933137237114069222772963434232368032649808970072091867284522656097823887771017641786347464774426104358594724241374013443141310446646696363048909135154899022418148606183525694936864963795278650901896500174451619481479113524588587325679964218990120033512573709407904283099073039513084690051294279935650702543293797593409946366960615364573770848894359702471964226457831978753666162697081420305235452822505227739544408089882424863297417470424204802076600163687729099762054571415024483670142444076433859768735757164332516346815240667405731716176274744681056516136621526209057737710753421277677594593364366761554174992814916380096533834620608734494480371259891356886776580844713899405848662518850119553657232481793938909665306439267238971615072110990640038102453758051245966751814729998820342838636007012711899376896534235702002410373242318572134220841542936444023287182942874919961539776761326900373279894006179969238038966703373197351909249831093543315384491749733695431507802580108304183117633747170248200896292089736524204714129778151893552988859112164031292736692704398557527800168185732076443881512836362277200613541194764002229869776916845458999449181892451412880490813851144212430428959393006678576188626791024736464509283624343824209449916784252599050944763792404540450967721753806520878424863373971066503609490298167071338636177800176297956652002026232697018327645790829601587759211012632218431394215012588516339313076560916511535603418778412438777742156099737449275920830307598978184980761535133917316063104377027267747089355869640604329032307163754750575435886301789384643415432956826008357298564612649218178572478164071490501436660458086110812443355936021584706687013889657282028002700107371116825437682124794714028733957277855315472651802793344267491976356165260162119801875315442692785154318996257922153837074228184556849792533562266384474566278716955729755176420754741851080739275798388349224193912634825251299924129575815085005695830122431414227049716885123664668890886791979883750089474464935410820779196883223252832519963394123951173236671936751082027242223547823565358688958541176446957735060186465275040844402778315503264788750002780308855536092351887480558152545416170887916326790178870156656463451550438583013853109792340430575116651169712426101066839921348976488945568824899922943255189645274594421380225135478194304852289229931882128388636620328850074669551146836524895174588903982375387061896337944802895062133054561211066371616284606496758961299679489518434267268630480940492782922622802756323493629151171021352851927842936852773309843367077698818218107786040646406184393528882932741053493565148268051623369394725654213946818239111867065921328391570320235633212331120416928512602229065833480743996085855901322682480653091509955082367320495078175549557729657090747166925015398160877156655357297962217532300749387644684125547731927294024384615244497791840044554837749996449249237136590972122209589711356754436051610616040962059087632955512083555368715690979442231708980148536485440514630299505577176228630350017154040914047491972063567532446405878895233016935437739299509007683648085323834510357161963390259512622222098441452235568807889212334304013427223262942032190046173399697891796136653183341968103376446473492796508465739845672014324040854548656367136655118525122891787132069352696712216658230544421499675672641927489127496818217497361678532513786244650807026139638405564351106628666107482097668375566235903337377524176896053110501389596037221713951426893020985974716214415176709901272278268549874344111018465810152959899844069447671453763233966958709445287781718244525901931710603592211302870237959401538357421709230167383346780159301602140522277349680306713377113449936091598430734016972765725836342247532070784284565649841855021194612325834306970773059521480978005640873277961798359378910679018486903066172343386216863381446391047174302604643970118809228416383156648131711246525667979859256599820247300119471363172114822148803202943271875089482685947530531423809415308130684582875799328713419545147069512106521841708025173597696908932075239239782342782161429366425196352907519400306157365702283246937679481651197510474122069385778989477101929193927178542498715169201374359074493578239076807176402275334591637576671882739303709029188327333542721010857251208818667676481739957738742923238651943229169408743345185831107599528851983033078454635608392354891055262027639880789539786880193287342870932486045447338891278291869808792808605957519758226753442692821627615006229753955125374606650793188612542306541022797657762996231812213197547928839163595774981061962248299804341430893835834501398266524338280224439586648387921983883072001475882455296074748045559809371928603365083839180778133536472606717965764692984440775781577175921601968881795594944800111368848671229976428920012128390194364966472995093569625256156291502858057388875793402828165434586380988889583352155220214477807938435172063958061435660067867163992713151440074875480726110383194534644042733954489631428065788973035897887121242734627894053533618155318126926753100423797563768862960744591746280693237484832499087192924983248596382384663159338087017183738445977139022560992039062816766937929199518429134821287514968627692534947940794593839210231520040601130528585610792699131145448612590057762174451510537356440810044389786127317982781881523955514499101001691964572327046019812535959822563273989500653339170079890719017351307365068295312775914369354313569735446722698012873195763642303415286668989199434695142310703431771017774729814521465632790552005494031688526710636445845229248988523613909991316653315573726461312337713804762027318264303920366523060831060301809924577726947047723391136325266099927255625178826848338093228374841556811066446092116983313494433352759700027680070999984105794946354684711414583285352230637861757707192361563674758738993118428812406646323472831034529579206586520531617670170043343981617202086895257426674225250362638641000906271881407084121103293897909405057223957807370847056933788403339469986281518408557679389834694093142583135709650905073530862201270823052688675660616524045156056869370227224920809495174125667597069799106678513049439343978190762858667144536794833608090503203272955047590250671462331959528970504149163802233494135225085831432531846056594253898033150728703775097907074564013959455964838133363237032370147736656603013370992255342618195414641796327831494657920754495785932519174505434862282068533685198276412379156580293433504967809614311478831043018820386082308636786278361203163778980166365527521150827129548035504076339812440186860473610034478835093495878055679062805121018567528624938045147368786759370799439644240255750493743995807374154954475149996384118586604073891478419697374675419110034747042992099596495581642106192438850798944497246298242776752233190003707116823540251115525766341738026193823799145886152941196774896655875124691478730703176166505043797980861385004090359189476410590419228857187685071910611077254777467868476699313453889394243399781719790306703223941348729917659009070752229696681767619886160638364611259074916935222238166104086117598134660138108712236686212789857215382264005657721842989434544258699854255458607159412646719875437827526337714264788643714553088646094177645738702206344352242511215010186212626935994805419785917477837825846253572509490877260025096809898219121949036470457866230318231410741504998954084644437693935131823120966894055227269762621205788629736309847197444006953509568355253145980997706270586217515643362503399408776234008194064402268501854987330576098628864341012125447175298855965842461672213091896204907842276390729040476475148975227634630882823937811088344521165831235934062852850002358528457473327376747214327427765225895862200549410188293203418769423102232739141494775175638798297068488905759890535519385517902837211850901316608484953351035140639460976268163716031206958257229668377445802653646699362703700915557492957070523068159788188634853498784523375763246176447462855968568072803165647658616605725951112521973776178198259509385116367333988041593057837878201447744226666987434502954552887993138422478472035376178611300689502055522416925581477973031761772716031863233661105726547885713454716461766542257582676104945259802844914082096572523921390197235180832769472280161595598095153823875886324988507364223129351080746840968763983029588416597903917626209857480175921307175236993755901720661981595144599889838394543004705026169447015798048650053249664207474627324782331082611104989649339789826259373331819699571250545207045142511548515239137095065259407914103550254523341895482509533077615880618827015526305887534685234908755431402366337895253957653564034671038538144072964070050442245866093207057304810561182006832454006936547066865692632399345940382606493133358800150872401650456558512417471530720179157277453073288690375135633034134916053986363061790489512390710396534689074735334146600282987113003262259261556515181779393958492114722831347625665914842232772556624396974644014647142907237103555585291762903379843324033792258572872593710579278037526546509352628166982843798558154276715886314395946778912924327682750715883302098528186591380498655472509282630298680734824504029223894084093144354825191973728163499166615000881128805673420777251539874641692589863650303299080041363794734568742770660621320473822657045794007185243121463502276930034088733524862688372293162001164706474551265857815286861547773203056422166199448504155446784597382645009097290413018415292049687310164703644900656844356251291948351656143065931677890433093104650622264452055328091124576607074878976242763653283946878492241893442694996811381553619193419872030218497602028300708828909587050950512266620617411588039210558761538647930955324767082857909521495923535204032701393744625554482790084812738671180847674728568490084269691622543489824348683793307660664523162645004360114026521453545942600442737355801961584033411812320873181194592949573761234552248515140383940599380307296583419168767375444403499811065208365575391249936808424231968139509988594924459457883756305319903568664747890839726965232950311927627531971090846772807480671806347229053291429201068799158511401321287801916730053594808657963381171262037598075968351308569027240337007805711224218124629517805036393118084252752570508706724779755645183836142751607230576377521675981654715295559585648687291200924743226655210219413938673886660426008414472398776770817134712508317691574145531861420733816933436395786490344245215967025263648963263825605788300511304263070433639248537758134012795508697673349567316048226632943725716361970509909076003115822695165979576447782020435744186261328556036297162998295359844544845783866471634196754767982773600504126873037224350335380706986845018520907864939603184704491582691272274110767501263917498103049799271169892278116529012287617981499966730260437081075328760626201421357959696366374763835521372681216643917093756180322798577859321186067461446913234741495327340644787897484536228300083375865110271086197957391979931977216259366677090571226326325611886226157787914955068214913562397554756178700696299646512209943940405820508779937846017194271154419951639350628665206996044582919070349679000589002330121933206736447846157354632414883113086083209983980988817371469415534375604132707002890884268374649016931823888964283462491482966662440375497818198754928992143565231829280919715857215292144653122399675859995142893728337845743429944525028363782672777632400795293367435646612011752185868499211355198766842807219166856596605236379974649783346011647418952802856605751110358005015356914295078418290998744919740192126227937188690348602806007379727004402736305650703576888467103998201478941700830331099079689519093317966169698903226924000098351457563932895102320197699782034222790007534830991501963518908969843619110970608085777821449091141444743610383364300427824640797235290232625443454390999086881046271516129803148192628720759090475834277239253451798402642729274253777741531389715435367027741922494274303263671380385679178180651104805872588261573488803477148181323115419247296336503951345787032401151632847752543885197944527053724799081057031008682096562482918068135129506645327703383397858365531305594011949195742990033354090343666368876387258455536245940779552324810833832755736391413524933841471371431107044458183739979908202652043863224318321961203149231146039467427733647041267043727396735252259704744463994520101325355947808083086721497216506968545703773655600765717827394740183750244913123893930872565940759811261040771970131291143878601438598368503660553125855910275211816589790846695416179816374056797168380305143145372782367769138783242828850427681689661281068764435369960663028635973843483862951728136857550041928781616455494685387762914450931073623265556326168907389596587979985219759004423282870866571899460355953000304183790387398073977622328304295766816014429112809023768048268249296154364084369722752070880341702400093282969670989413721998453530119606027948091885981867208394971197473097537417940868113208162550642009637598976508508827158344721427491417952983253571055064094775385202276983231632921592031205536699291859094704388961943091676809901535501138233860930026137875853585470681150514712875000630416136594303383460600728841379328772671511362814158717853599605242951381828160139773359699559878676059591042151536251853300265553977228339216464686505994968112260436211424076510405889885171038722247093273483989096273476195548116378966432397536661719325378786228638334392801083690920741437013687464457013757170973936184182861493663550127252733805447445405258056745389122393517822031340970329190867861440826577347053302328300789422896460525140325445604295986107896057100976442694742043922753922149487492718884174598891452322997873136124694080645323507385730908352319315339591687998484281610143250858209288363472224779657242130970361059143867809253942339365578059154820061797648892239818291747053708772603699410850849664514151915222055186636991972238775530842510315243291741505350747119996017527695506062625747492848900654074704363193017500873541406932174574322631046952296187156757718359665471786362297342905775725216030083927499128377198938012805825062482140113704371820616887120422155464213922459465445951201482160547662807732656559311380415651245087809600878234048272867226263292710331474613266265458520209734704808796314329285165678715919249268270924401588292903044386843651557013329902428956868136488123681417839494809764797024848788427035421825305214508145495760604967423944729684157954694125471062547807153610431018534560896082832156648659019794474255780563789009693440139662060976505099661798528775165665196445602251763864436937552797029968181069202012103269168787317676416506752647064254593775761005144320828384096067934117056434055859670923981736883701824867420896559235225750546792861791512914397932967171240449981877393829669106499640713201184091499972189754862733940577030100638447651595032047004159132111094881943109205985253377299328395387602098191943939997098978787557852891900583138458270709124627990287922124993699845291779661200975213033301518372851853272725851329266377568451328576482201034493826440675576191851051446839551709473926818505363583366843301740772584747389744992181674084703358294041448702976533074422955141588596389270320419744888833521326434923735819514980301638982427198466130359696508805606015305616681878936814876412202599477993851050521271509363978247309797594011306740304723128967623934721733095729791061471665149892327824100105570668223643837409805176715228669030633968016330274142084326046921951079654900868934953193517491247490941507852230259750041475786986920419314993189986823386956935768559706736790485108389783573198213329001642624229937726835352804315464202346711861062116279925300305246789159984748610430900781452039776805090034653786737416121687850829470281800755843661953780394088604135420619577214656439105328283110405344059447126579249631075142861102811328039134110268478638014299496426325216146116074521953832487075508591292216215126340134176727445640394961644021986711723900500188328919981044551860759105205258307007291112087489175050215238238849463827594352351712855869466939426781808396130287055000729037572131389097593825841202441538564862498322104046060681503807494719845959177424761835993261828176809350563101732637204136690024131049280572201616644009400641684508443118137096825792715917460527861617612207376800607965189890579644397834874620424316371129694686066459357751593767375925534394696050591076504247762095282531483572454465666343542846426726932231291836366370078608455448137973286021058518851934244813832293283385782400506519313637660215705750830101507925021833941999282213069996136400626672309103973787121769806807137988113785386907307651803837886458276482103415999790482428851005594599548362558471015732720452204675000425620275628828979567808548358527847330844806620155037616771761425541006364823455352507599625993452337188616415170327215987013039571023631105299198980022716013400423684772319664503556235887248492855579102182335492344951628323014051333398536962155898445931070367600411388011297938258435041420335032187296919312723099739403726672830723790723018912124332066845209068117196075682940058557789734600897570232942146323443723586493550871533722734774068114235134027431932468527225302907550134772602231291887720577595323394985856050825613866524923132821221103078849070468122837463071548968601083364148657146843826931927049702762671352922343706465832042108566751618143500038864646420166126018018624660481706778256388245074792069463409286367226040567438334972497083332263302497608843603808453900282954062677409371409061579880665250455535880686461513529272000063710311507004695840684259376022657867917787735854216305225493612123219302881749622997710650975466649942535891694065156966633946218111590041097911662137136198231121297857778994547683783404568051695957432809457793530321113250144302395895615347788603067744120997485843096261749380021232876172191770817730293393865518226762854799956003201507118882217739000564392853664608807334303622991494232466385992045906876214465344280081107478537955886423190203755398741030623257447713554035833136266554520712553833494465029386062651888840490705225033972845038541351640205499859270997256494389469379300114042643591318290021070211152018758975988060545026429740400324504340703774063666103858257979674213581720787777365827090803825537459755361531256469264172123049663011172178814286619420849277420590847207570391608467085935749095693499671046183746596399636528440726590847004822156404793302782878032016358367656777900310522649537821788095417473417495593042306371107416715662675046211053397042371282044286295625289921771610270969612360630988558904938324690446575709307638864677373343177592474496144380477276266338046577247043302094354937220427310997266743646010516111039999033805772605336851114127553603575818074565207204552684288846551988090890178427309028134678376958640566995799234482774123786113520022204133241074754196174000515996034731363382259897886881445186115065493037443985741502721050959678401156362714511281366471690538104454250258126297079942326975753299081340190385312867692192102327136891026301349676900983524739288083448073977213872508474702937572741026296661907296897250629118275181576450446243774419036123413218224911935412744637319679753522444312494181195976156679225629044940566070338007951527410288869269392583229332444828772949343647634220824532448866459768365342068383926371276366222422066642799994472356476777554296809005705234977824099283815644966229985282879755779082978084485832270971325398435583786442456675372653514941538595452768803782112034784154945768526951390391226312512706214208708570950823687711016432217646164121402357340053108045210855737543973943012329989770086184490034313666768063296802387675789742331653656336958704100611813339960544456764507415072271010007454570049451442094954967464055866501612813115576183777524604526611271890124646160649827893887408351396937297256940566292414395327284523232538867093444761975755022257259948364342316419325956323514868006956860848369613335409800596382707284169593067818066400046130858490874019152163649232405465329819824522644363254529599292425888201461101571430484161285182836342063303929962371688296087183012534023137485357203606596487346612723644831406214759843126540005020981040827024744276096620470359929705384828576082643677672919456015820282621077460739138512512963461802759935869977226783966858386727164928860790427039843023028919053880326541690488657783394925405388424431423982665017877105453425748534332448012670551092286676913523442418374152539012085687433097187810456948937575833804446025699695651734487795957850966462809253241067730852973267262522929660406997978135361722944262891908409783504195110027909924032906224693411302211234501767464828259964959599591946051542698815687979703670167837380850035522360221855217428351735384537130123859771634001111546625102284614205054644425645564780351797630544042629984899404344109319607438684378688682433902473575681740697099623065461948884669847934915534875375708652073730868895535291836916393036401646618378795295812404336470911434188760583313691343622813673421674076033398716211987695285374431078316740364237434826410945269322073296614785543271259971339617306479544366181145275294602119664911114903483301749110986804449704189537746405337989220939793346459750092524847762495971978680912020577917673786585087151992943752236363365539247235709834376629575068279674848396329958008315343098863760053484785531909743435116145424682061771555109494553349234509109234220719023657591890671748582474935606073321673208764566714907023761505832214951916271378859755127961248270583719519831949710051912894035394408859179162798733019576997730287874035484860710907098846709765592083544853773635215922153364561357926231436085807440575706161295355750066217469059120680386808472126167626962760010258353862898549786242955231170043970261480897641697671695338089209123481774205004409757647815424360973466759926944296606143155796517655256157757854356979832203785672251324038922344790047910591203901786009574550364107049465190156675610750128303147882975279147184430689933247033573124735454912398594405433712622381747805696770022763906585752646511752856158161940327399510599985005677668187741871115954225598501835892494781275775774663656698203645742575967209429161740604062849777445772044684237986925146677148201467073083575523284697000113803286681759536749187215447356316491922083672753617336463785434490759348147894487712254193047809968188779260118725742908322274338649477847876788959290687203544341525056314642640452390271700872102466757603540442561396752452401121077156361956325664822711588666301078204151440391087906054347254501308781814653469408919493982455483434799548544872145127705875734824131320145681508769618170090943766424191125788444513209537004423840406795346482701228956859381499983050812810809252733959472689996522842793865978032102282783637875788753125911422633204683295666233601341194266625600848843029069895573111173804664695346142431277702707427925277172601453513398159659684889989152087745766361582679338314137019582477208369514072723059568023333530979074748191921681436374130331498745785802848159506840275695520889804759372648747061356381197429820309774330530482925056809479496874113403865887725675635830829982840895572653290737771406460023968745269427060872723953401673202943093447461013305459417352991385433101913530723917977836848196145859279769930163181278991559665126674724828507137564068383707859547633819916506325490052390819723840834682007970203918252470143894201526634058283009337843969971520640254569951537115595713328172828717443778742614658061514661671411067600520115360957891109973946050642927056798252420248331555096482122402111004439884607312836851470068921021011186653482253153333289873838030248234607414930963284416175705341924749211190724720350220023054188443660311276133677933090013041924711598675738087622883081287517910360950084074201167635895157531500279930585111471003422089138717743326437824864907493338400215849344867609503036920225799245847791033973734733729628210290834206042810639199097579156522965078916049157170415716454844613838013769426174216863560046395783451592124107361643464350642565139848533185449655622555877252680112803723810856897715881605663774313510644064661006729673527963981139965565401855954321618138446490036727365112950337201315715420169325220817046038680056546174796435158275929732255613576885403963821199052209183548182428408199533211111645712198235982237378988953406264614325871971474335509705285401955069921203497128338050888961818657479573532499362421419991294530990173058943630081610543861254116301113797797543449617174260830133161253916171892950300793436283233615280587819195381226742707038819892702396190496079813021623246098905139963075624570950653014745577364733430905834630125131666598987925630911642700689442863152311450716983368383825073174124896335210149682037987532879083427132952817901733476787046861673646277092309197473528342799715119215989105819914496560514265295226029749986088840544228478772343517685550342570421519410420788188678673540911369836110480497659137773136754984130069022387704642621916644153279686611601430798092881487018813367951365678551594256941366390573424454824524914303072307438129326368385889802305569957156301943993312995388635063690333809561968101654190610388918510385601514319229393757455301820262038946176064747606695923736418092891347299681226492130552717752639242783468104105169165213131209789256236962455089695941606606597846805775671219087305318243024109564138010904537391943788003092027381498332580109275922778560267613759364358911791287188291065489959296012688897270449892535688254230729139051417649053446165625154220007235105077054618639248307291562149139838409351852878943307227259607411066358524593768460626407716054544588342825599790952222879830151866204849140796906300020559036494767577853990100859186769382277329351864310235086540651102584492239338431102825701662001489653226824391945690111848904989902622045294601555176265509752805569588728915189422691154793649773145936037141028805405289710897799657902616957939549727499082528650255897916373864232979250225881685648342635482977131450083934348060238688433702876608433164846487876400967297695816991127941261175224600707239464509349970698191878639994159795074676059321311034083140506508674325271279659286714114487686535211982390101989730012097872959345207307231560098078710752665578365824129806957986860749455911183266739749800861251365891776132311904814284331820236947518057734594660630108893048836910059758693626760859819939953708352498224573640720765247500843581858201212407656238916987568864009641714339027542864349251783867829908838820057173399223932907238487135583129442618299752818144168324027127397672167979415350352261594102156597161896428437503359269798720363874448135393060019046918814189580004405052490044476909183273603651726992304446629773988391398139666806742545110370035823004528493959609620624802784631617647562878282766142130757463162858441556030594870635177490485771839640426173241862816603146022807872887740105619882884617842346956789244761124650991633900887068363056373690535739620361667966835666144470178360435460399300959829154061927635698923726052756177148772127996308804696041330775580092613300818318190060453204316673461152996347708588561131149725998527859484866320849316449099937987090816733329061261108977550248187289883197514906724598736302891120103471899592875461746788905961553413083004552049294175674673009013859422225357564170320048267510963255769536567555308608707013302873732891307547603800020999280856402612359790349273460823124749110912381223453006030971943733313999338232232416307092105256654416498593754149573502111053533465778773371726091866885378347330909714969352384445731497984512181815775913228543427666281514528574675342142145650453726248592215244186884948333217971016319064591738450459150613911185732652091865224101720768463425317607218940469926583113296115327879370505453797927615606081712526290379927148252905798255770028936709790896257180102939078981535982950866590550533847041398919601952603003169257029423509178751676626469115333137159540299042212836419400745824203219393324253612253709342233926047666164644580482059602051518992906112299538365819316495105038021474302736480312754312389001540533944285661966686843135814890298013035985696344443320756794072352314241730289324266095925482255518647886555084896203952329528161998681031137086843014435409767414922643228422448059741435032060975685347485382275741617349034285756458705301901348379770121846043453748233272293980164245639479475526779305336166311329253215397098282737053534255869519767065642424968634136970902274671152259193347083963237751432023552791337490405632476629258874482079492103249299770570071820313350589779263856485426328339556720968038928415867271912828489993856402641403894858282760829240390978917187293080394838559325056577883503480097177531073666769429234177125069901265652504656116436212303812297560715434612889484957861329350722055080720126398458274665062031292757433470365499236006583661197734401339592812074027057661887438725708739269384962649218321711573841094266625021664533137821056129610642423131737809182551947137800623586672864097147765278443653821065372030505626908167809903115468037796372487607927747374419801378736500555387697652418286257690790389906467637211509487041586582058747212155271588280942867679476523802783675188281252850564712699368534242720217874209965648963440319027046170270170554461041981500655054937587753619710278021772631824198283686382833874850159615936002665496034757345490040755253380636313145211001979752562456743927760608330568100235584117004421598830039847065143237777242228832552503639804927399150222727288872551201169788029602359627746532236817328167382254798278626702355074028590992623534895963310644339772451239936841115536397841197734950002097985235819437182923083271290066018502838064628152165180095800175999641933937633633812236046938607954713439148495178234373401800345686084558526653526629655426478725020712402984394757099970182267504037503951410836940356447694154289195335700769854439243862414799234284814580873867099859393880735112434435041297841846591571882209408428082137971877704546642273200998077472366876520895727429604736190058665889828599236439667761726516854681301311802111551402115212285499745875537746949538541796001565589387529656144595649374261975207010090122560061958046880600320533479146928438432398134757261130233930587737965373650556349124279906805079281091254970809388780077327380834283852297492246894648592888963044384872344812796405869647754738938491967791289433484659543199686346868451051716753649157745400897323942027939104198778739530241610165132928286332243859501125062147354230827157598615776192456633318217433149389097571909706936959602247453304284252607248476505210319163686126212301745706972287517736574368495457545857632341333545247246195702660274901803732948766348585604047353195668501279773745407638728954690886646946052051021412358195963507174386236201834779714860143152372232440384726532637767491649656909182813010539229117963174242021081671907462564186170560916928941005953653946145475820411485053807494765416325397543093367779633545601189663481136179441441298608611579616966956191431116414680203634492192736634586195232409703802978671946368117343626997666415664345257895693783959953369432765068066690735731510970684701087588162540581326919330270076534797425326100658456051745724902178117879802811015721316565894498249725243316268256311406066524025203771207767599030826135329040461383965358854425587261711353046985231363666077716442491198228201481357895724748749736111899139051462870120457748566950381669868137142855136795842078824896636948883979978074392768133157169493559930332042294598384610633513832025419221016325521608401078946646179491853011605725057153412323052019303623861774089213105724957273052211971540252357747356304256261160433058825248667385250767622612252063087500154779206519054974667257373283742092257044624958435891263069384511710122325658561404058722808410710163569844582889038000608163151286168342038051341762901866682949683639254743699495068145930628757687275173214054971750340864612440213072386465542898142549154519476109563992262428159195442232794451258983369866330097605593113837658802716906084887383699878208288042079703563964682244067080144751216230532407358987661803951157005338507281876748068976403622553065949747488575270515615160283094585144930469468763741004339830112721833530795495288284659186927800410851850029150828566422238041493512618633561708045877790729443796513167998590627531538062265683020714415036721541327594944765956493935368808662357408458625371919952198373999867628057928516252061579782418203384434478275798998236014357945004047922162047830645135427389890551905648972030712190174743522793383874527086435668806084988081162027687577236150873799278315118734990443323317177108722573921658290628268908463905981503434328306437049441084986948478133102949145007759736487289740795554229423374103191094964640870725332165077783105742064716972469954298804833057867435029318481116562234584724982669435109118349846666494270107064430199575673105236931588660353643095407865884736115567976091472343593463940097132857570534833539068746572146405005273269481457760256276670455890663095055710637103184840061019715411300138865897814271842874630918705439975782784861686764563165224975703359093153764059410071540600240286160114355140505791275279378354977752676400141975343848850380453751701769401284181520245682657758994449701821658548887589221997248486082679468990310181335105266759736277854734168406025961619033401087220963398807043854391273556670184532030797142633855253420287887927122698148313745025551803553368957595044329405682473686198166621477950995750611929692728284408119560091172872082240966208625405005819545285119512227122281951640700289535150897994191443254233758816434431138741442182969338901595127132662187010492128834562327253362028943191895101528464902384669300090498854854569505489560337970181381230054709281306007603387948689508055267074648143261071822873933888347574586390186274872186795582880536641262765540803290478723488730349134814238195920422094484389107903110438688606833273488805915918630488234157389073788337078747396174566430714310620815751288091337472728348340059055420379938984948273472485329943851509111364430643518558492718778086664076546877862140196215869061737645700051276787985918754442250303808890552073782804874899686856049228274650029797118774770121452286858793496430057318619510701323459981596887572412158010893562248008612034646019077013859606232440477749792289837969296850612047762720573653540031028392064727684225693114051407187128127434799030674571819402824460130461135153446586513928778874443675581906464814097202736083886540907150472643773331973886161293536903462970873325640922951888469511350521972121843771656180105217397652043649686132765945232160548492752616956832931911403460034250531179590025270411924972307878669471041959495296964291686766571192356531677929311743500881593909990889313417103845536778517926910531109189500479851261216710685183427567825403119542814711043577874956133425616721939547464987727784654188315754872505289613197309926859927496913944098278892958462258748708560236458986751185590092349409923620400000269436861488845052346719993559748572532789192140115470431150975812099924950097516956216847166570260337207771814888528879553848213083402773838879022408506274083650578561710483953200899030481002116831778741543177571488567374998318266993577930084168991814478896220574852758872137078765416211458066712362235474545053910090357259571570775565658678098903315671156896577637143273398937434569693874985535660151936598949285748438180356702838445015220731813799331738766344721695539983916851813127014157561502652677407598798884884518997381586141553926817848537766326345807493463128208830413783092492617756674474201859130693321206093965196160417526910683789688006392104009911330428055773843809575850366116507860009531978673530461800507868680961899471929992149118542528147562251200185683529918870053657418050273218190387328815696372997634219348759923340647280679071842339930610566198264430969638266183563676838405902002268488509522921429092353510820006944862583654465568865419305035519834125631913329514767637052314833146401681414217367195856434534629308854350777697094784386363637421525740819227021806570383043951722390738107665338110085163516664903944789937252756530917599213394046391526344917566644486488390881683283590233223087597315032941491843433648306557422920613227281343842165662308415408221563164280836450908078604830970034456298853334883296091064391115750498632718110544670263388980835479684725888597948483828280438042857834761595390623184795007726820490319903927049397019742067647004952221928012769715759865171647956722509981974129452425528348149490214297590132523997216786372482110457572866250070809374088143488898717490749167246626102855867610952090758705711524190759582288883574348844166396550050045806367466814098041964781734368424856833692017575628871848626407992627604108396284737700536472615635229055430307176233988965703945254960311745556927705489195028502314997960167509417706032603802658094157433581264139951046566033082380059153356815519092963102021938177106640562298394022642294356830877997403048230912283507274594916932206860008667681789410355283006408899735790729520574057263570524741719146137301038887564708017015938013900324217009584898382424337254866087725025719236977955929612172038980538464531295048693065094770568743704019391762272662516956854837099583208137104790515087573697284327928532293796727487985748148844437052785820970257549985390987668003618942480982124884034758422245066205921951282114938670798063820053261056865831251547566426839472813122023945110799054814123911199928611303352784125480320411980930351325242030115118168382401269426638586031760307762004076906640606883564054423840303341610039945822535513197307574912337283367471381219616068670359265633517042590900885656510426390634145788562581572843723789078355180939405564663545033137333407436639793961458700699674376508511263773417728095954882686753477623823830713108035681570576133434706527324313239747777344002337621369270729958690733423811531052329697071582940156781060972549035585184709911248045984418860009424889397732716234508961229634487441685754586743721552521357447759598858693813227157648969926011137678895465837218749271939148462491094481118510861145883214511773967916315928250383864464254459409607369308579624217376327364081973981224141746621940369405642301261640005667829328580084285993802450010796801383097937431798990795954838215797117800623589134742423566332107558297250311208645442354651652241962989292229212697018437025439238165227622907921997938607225240693698177507637710888465986709640981752852808114644268652869259177906946522742424564654128113411030559627610624153559280074388445198364199848216566343206045648181125220821077317791105100385064771299254130637162636248538668606303009025270719758468775500621891839187233082684662150055208247848186647773831529666996432286748486814114228003287059432708001558668189482949079259661950377274958042023708289115730445006914011892829720350691859780374162623308670318149196141709025896452282468796812646850888888170566784511573243819453145982158162436918216556445809559940235465207883823687945366459464685347284429386824963343300354276466998004088953114235953522018587107312429358208340495921810257461770885498457224781635550412343906788955797119010567694791741002470115324710985395188142706842167657756667425974190954591429989309275897997376018382713400888382957275702150644305517749887663589851918226637662981337929955397982665520584905031579079219746725101138655409812610324789818936757843246506899310548142271692575667672888444168861127508287076214535583632868452303116612075805925092959758145113296915167491017989687129471205207473947160951070230069545579144798321556945222214682783728370691944139579735930264993174978104474984954820606680915019670270134913487558274134653715042754386248549546018500016972346402521095344914894353505223315294530147031632860729721451239314220163095703993771015707503068805321773011708029739846361110119208055136602663385598927720344643346575604013352939341231699350836670487064311110338926599502819974554190889384952884021572391827535192354684533834343113164235800490044628999535013476703542135778999022734168597859549257770214751586289588202974528540215614634169606540029380585356350812593556319521742739302131464964276193191857893250692606669537011067905699838108151561329963207055388710572036238847033548316197433564928589070425923069337638555764479769529984910275228285276572092256495482643350910077353954592322398162935126731802319223880894840556278275927015525445781929859650846187464223872121581635570857534418469917831183764876980168826403589588842434738539810329236340101645191203154738371484536644119843190812796455605892924207332655711176398230313074083533205039532843088195857664122569008722636654000074065862810089594308393998792214887157468698143802740458912650904803892596108609431452289166205085133192903401123262123046436146826089458278316565375003309929938411343610645697484735724479683331438245386259089960922079401841629011055146649899642233647434208248107208353677702571127080687786262777474135983781197584577982206227661928849120240631040857977377018408109553547024275571459135072645740787649526542661389484063052203727239527769771595962716613369567104919934002151112474980228790623102674977724640117137701647455912417026064531997294835953848178274985389870168457880478671559380812195685144713062234588210353567465089224211987122156067331660304107025224553954019629085898083829817022649993899508492908980530613621885914750505821691663969891288060816628311757012452544271919920762647377202644255254005094198555727747936863956573877018855316177309077766207895449039685812164972292046975609440907277480508001230520436366456842750857625332230375824192522599957638954883254158180570370243343592189368499488295399316514100575411351542806458920562319300736381487375994325925138798976971889827736977280126040106522400336102180118068321316105873635474152249098474981522460456844298243142522319109271009213993952573624634947604368322065193272412770576703825000275248418210970374485145422679722429893066278276752169192130791159639590994809154432883186122959221603904774457113742727547956422423089681708230455829894768092618473278375534190216388577471809752104630240027669482464922900876178913902127466312968568409254287928560704905267825087264159818470010921361819221926913530131954828410086807215286491321680101840281347759311286209652100990633725450094001928614262181577496938838130181558930744961637693205508032303524632497841094542360253689577149830927831229522486900916926707490208946239832904948935834891056939979929285593565180085646325191001273915648736660631130691457969751710847835328101623808766448283171319782455850280903363522147376519441412823244562862504741941881541003058060080177029509127432364330525511251502321268073709979212045538150879654755876263430247097838474723432961335772408708784526743720185514935644823918006424467105242846373392283965845966736220594855389174643311117094600853830506964275085777286546454574741726311246934973722885812656782519802020672372360535884773056215359426918878682040332974008774146107286564990027774588422198896669511221261064672250967651496576603355427921892552035207102584345403503737211931851442662952006806102463679002834274647001441244134026426657368461359393940069041895748696633562494709406153219811949042497541007554467806184414886452312367671747243549168944030968612008684888424203285813625347018591810918575265068211880331768886917197007220187663813287743549242966742009298545987547870595684646308544934301667672265619604064457136708244532418723800736233545047841316745230538741197977155825779083563703735817557724728956717424525452137175389558982123792394402237859304834711292916751181480000017781623396384184766404924247379074335828887815957028362958538362625020355118731178897920109359419968664837923437157443179734174135213446889536983454165755671557150495569643424210206888270164562792820722797329813832940408379529265325407642840814417090262742920970885979481491803369175051123546365145815458915602739971738944446586655453581000476047851271564523367374617042855301124430024375530023813010802080678518105320005926268944505625418364084233583309901458526383247104830616901103874787357211665836833127630641537162412449048740581850431366156811385446972454910814894873642454903350535886227398654391722057345547769717716514846869177512658782538836731391275874987362989342502770608178044580765057421938093442365916981806822938897867702657527149903409931191398569131076004001975946160944528518517321241822578370493604914076870631453763036758516926175682892923547255234159994579525360029730776146131997904991858639386781448482273435195872677444238543987441431750131195020622520188090085337511798410119821042987165109643010956739002672639054254012127652967115999434883719424173549104721582860440674119681068891339809024236193490128925215209060793260223555988139930340118879391545552675662398018975727839994161736308342852346816911405809363152826570982682885006905003319057930616194620496253580680027337808595002733589719882893995678202580415143363743706939310934262022420563444317899167744614959378082372447074156024657328900911635381269430588047728266882691035381452533325978431491464509120839010267139726627435964270915369013025928619422759701056145050907613098044167249662216807677128951818364565993680273836212615828604901701861371578400875117083160206945313287720940160522534434813220843321343441594621503980294127789609159521836918977701184347416925646483085215008501046406247918937614129679471567494811093446083947446941278548302447957807719102973607608208892813537902584444635813152538209055683603322359112911559187063737992011211214779450851687497315168081754122128712056506863697003360795905596356288921551759648356226019535967538897676802432670380500560104126947529665639982046873166483184789192954483676079387948886267807812451540485338344652133661311864944375634768050324015356157396722538001113850889288543052520737108445477023313864768654046846779660133770621034524194696011711718229103448626814172395349003075987315199103735693130717754122285998477806860913271329506348653145168097013028759451924990733311115968392284952421911656084860380885312360907576436732694479290977195430381551709559001530399976089324914486093796816361342800551757614156382005374721562804028902777728527411852316170601357876287801904979740325331525298523252785192756358629490610794603703595133673071584840732479606336208903636462094260087394721078507755017751838888244870567299959267955225088453419854537349482482498238974567680512028386052558507545873100932211006535058974102557125359902685680885738127803063927520781077895484451886062283479799372239174752119203711187612674350972472751053438008828301921017509943623850736641256948870670317167586467114181399970403643813727559218495218678164139190949772871511086818296654606796490597724224718636503124491425493672096703348995246700256899084381527277040626479057581245049250012375051916133788817040589241293773093739755781267205408867330164518067568912864846329750878146074506022780420598359679113886228520065829409641051230649852543954911121768201540733667447181873046747992348148877302494654815826030776304537123388544892383158040978543736439070462826161590505628786466506051501237418571331123216642378067315971487390221276498851235710176497782800130632137506110451416178209678082638544747990106757044099058970081454999486692726339759861883159482130645598614948140091240892593005291317024618077855011706321018014450730502645964079504933077389456370616141373311142521526040246281308838507622750526761140237761975378556695296275978130285243040899075328682212144960586047138190845722382648407084233559448730241327843956248741853590652707835066469768376580038873952944556662734902474137046399161653918877327384222273300038433394601894631362735872657372640848477286903137959689811537261002180278178255114026226837577163629070541622448250043738014779269678009103948178032762132550040160916105735097629264114352768598372257682345096723771207189352162125486882547775664265406884387525813205141837988344980851561207306885488747596008212181368315669327126756444602655478566114778642507506079685060446228316982873810193902532894872064414948866459535994071103424574545800225389905006903548029521620413629184324218302512142669381964669427391335281300682283697676629078506159365797179259738921616966110465807053658065717271861729975586932613958276805177476769864583996079760949899944137845708600275457977743421820935881636697215513858832525767300641961029676063408403536763461436215786632079377484934503481888176993010256356955087307295489139608413965411069231661511494151813882494486816963237825469756743981437850963818387709752695439752119431743294631783779378492119868225375996053479421328196124976720827382120907106570863667961682650818029388472509024334123718007342948930351679188465908395333358262346389411901562346541546799322710618511176788936510979514249277064415299140674722467618199870053356143437372733222204002129074518067981980480700646906726832597929040828093171398294332921506453450386513880048299196912922357837830435731452475735554040804377517459268617578877112736978969369547773498307338802795434051621718828190683071614924356532862288646050065979305043085711788400753244148178197500204503025901398843537798353289543063269033654947554297540416694450073534636539375687041814393545665261979704608742469816825993517546020819854005636310901536558814138942057645751239905443552714669232423019504852932151242826580635182337122119207906603299274755323300599498571656895584483074386184466421268990349565931669305904820055264477754946006143537791569616822485934274626281765019537010678139120732870693553660728190734902786635557111797231469064949310836826457238594434090576684225056294552902463395920873782878075238934920773939587095213881001556072551777936096509930377372670330719081911382835511652223436540712619731169860809908159075325371680545152863935518418422524412349467673531461363240068633253699096834639152371050729573079938827847337678962227087129998788648494564763712134946392521721002024534919349695550508694938346148737077596557432836043804224821992124053354904670457068746380091780901921683327651833803921834458549735969585106049453772438388920044397627388847325240269666334664420550884723930784595968094045887888493087526396395885371505298214197552013695418307873733857385541981162652562972703541791162541210063941150537203690812447508263655243058348067272474918033372169347819193679362945757282326566540015597439115566853577590229870202962906879717493355554151202365534666477980941929593167028944445566965569700701244851498313715294595262374374983393262326178691766077474239032071433425236769534500748531914673640273132870661953248960760396828478371213342245151016070536616645112907591219883203270491287649041646033707557014144030168413858166484429013629622449219000610240688527659153162233893273754982010891332470643789022317951820802903662009771538203671459154768600739945197477552430654216612120402376134274975319713344931370305726755937220292101512338382864780110060515188150996141915503462521997055916728103253852926122153502109682385942383057648734622854529145096107407229675585405370014944043729462815754012313089296563625528572050877694951139772238025649657530966574048404819996606643151222915490825009008361967525201184129663041240044957135023250436929049997568145181212134746192044809454402919511189269754607158375440631364365324513972918499262032591141009733486101895118898204966444471547125875363777907780838138431012642928000080509426116250346183918979990017421846610923624592174368627582510392155310278627993570201801901871030111781956893431177743447514659503541695113778852284759957596759966134821276019868094573862627430142933830064566707342350947460071163247630170538455408469248337005536408800127584313058351387647642621645004053354259919568816661900766591903563923958039313004732395555440044590184260487486588717195490331836876230840651997262228125216799066205101684844301691680770050877628346453095885705206520289136836613918564311909000369123434743512439510962448094821896871270420970585548401981015197905739892853349748498923324860279089612185568970080826371955285838860929999890397210829433280496100058609990549066795300079152713285678951388546406249566587345995689242380678715159892795380408234240479898313091946853255721200965371028486434017385838778167865856063569648300614609850645726757394820571646981610632908045572094701328560304239460796155216237875822648192840506560197044942475982316254154759709107498486127800665169223092860680445785649437724132767125299356392018974510491204496756241948829889850750921335780981719421982087493719196531095830422746141302887223529976103870763841720085551065679783507691188186623138587079473465846113485458707991126701417868645001419956493557447866281832678269601233981646549530387169941235660850401278264386176364946800789480337833956095723766283554606638597405627893891647663639168183331381230615119025696743150477370407140186933157171974048913306449184993266417997702180667659285534366510659125544884934124646707624595493216200482074318950035515314014514854026353980973321631116496011673933451522557002188802640152994216407175644287824954057410360722238891516755142418329373963936787369843963266992948359981122601743218974388563894333945532602746080109250104093745146293040366757403729610417997962269979697708999549213226435255732994790562975204516286544834057300626780550086359332667273104683281761769555728584893346722073407889017344407046814897796258470253243121233006836582919370411506983623797227601749616761323062515726421150266789531455926370959982816048195234482118275919258734899617439341432647019009116996673759232266372121362374768007800832046948835213036574175717644134759617854649037699696191296547730003850986398876613848201226013539685059351520613610854123372895073314589492737192989784577533782720964496357805392772478340838038198332917603056785018693511245632966649768143737266637917212601157004978573659401328337834735381446030281070199975569097637241823539240392049342938886673406204949758613281287065463711364177444617725124813879656228613374526720458985219237640204363430929106009230589025533879987563657854622747737512062424964108352441257219262252992132206034274452708354473288522930405599719492555654700557136310283744496989504781443099390876912454176610764357611352577662472880028998294656038008976817462740915311226973127209023692909091455564256904504972594682729987607871646551693902335546097035872794795257761857007312342613314800823360349626920642626162965057793479822455830321695477616070892197321672147956431441539043519461424003337288560815129544220052251818968979495884050759172498163281088908708145370322212144330548133132351538022798785253187585620960529003044017308561490049636739223937074957921973044461214462300788388497044489129082755954856580116619339462470847147755118593132965925686216067992030826317327064177937790143368186152498342987580620698445414279112349008938311273361715784692230093362780730426348945260695675226218642366474519292071265042426462637225412171513585540177433722012914108796397117289538536054200606790005404453354120548521017012115678775433621276639003981603662415597553385809535112174222320503723015578814591258970718082279044894274712754218654089446656250623361839988594039098844775429479677350483001475464697375991279999821503086630324132152225271560892621037071028883023156479230101313930658097544113412258508605298862993623133072252733587120174867647096333757497626759557024307320635750370029679265381309881877553513805129130821393155591682401936508324011320505816438001674102220075016685984507860959520913044907296596076360108708543833995791721819607848604362136032454832531861597329155678033270265037539380025217777575714265398567738447297577548675654391424256529100458633963784663753304580534516987020694291338507539684176044159022413474199127388681397856344160247995545140122447185763262446017285268130928001944664969051933618691839085969804731903491624971246871001879638810812089853950238585619483412606608536019081170360073716507261693052142844978598864368816475937358544215408393266668304209617807923393868519948486373968085154906016684651049809961957880481965065443000074659309179314577118616778037853186127475040825740500616715419625401149721637679637789445431571449198930586418528054236698969739531109726745492823459956679105504699593665624033309385342737701338436163759437678275021839426947617229694437839682870732118843072188838950903139848862951362767306928022110603842594869721236954683820597270078199263825407182682424605486053203839411266384524386279852321158085557702970391765918488549886058923120822394753301587940976412714296083559700819253474066964624474882843082993342962570824727331616849057966005591089714304819508090076623672651715669488693510409319436639893247245302736206816451011876490686607307627029804082715274658965388632289383772282269825557075146377143270417429687418297426556726655522119510411668780093154440961253853677723529638976750722541686413457934978006651729247872624644569935855297598798803344948437250860983479277066236734320216388107625660269619092352815229223579925079947694455636201954804777616336918771438142371865366725809849265756763943722541597500212608091630392490711045564015498977454328271391573133150133054611756802915503436243372642843012721278870487771219531315207688507286592810222991646544441963937510266033323043703013356428876282300340769855563583650602293598143466074848371093567284630642072800847086063800743541466069847479437308924294710512241951694270761618339133195892197552907381599338849125195085776701058235088774485571475812719249656908040436876658853576139267126068548154697023322614838421192943073474237822742777265320599811668306117189956143522309199101485769436277043462827983300908632606840867468663659320137130707602923780446404373415522444341539017428704631648650256216814417271015737484820251491337982234650348747401686388080100238633300659625981867675492984535870004301506236718509305100464387325251088960534887567518456341048004078804004260632837658925607492476850219478530372535885860555581296982258799129883422698830966311841316431252470316955895037626138295646955205547005812505599673384465072185093637867521383916888936578748157977249983589507564730805008068094708819378475126874020401790535490789678602421388297684979612681173498707968449621718164246424627474746055533575911194862753796856668223805515065250154929433393335265294938418582846509213436246618084575909639503330469658622205248858589056785263654768311971903697572014214025403555781872124976346984183373767692740090562748449746156452246400105466623704306623044328530956886378406567426600730062815099344501032898425397517650428147298141961721528938986903033097489496237319430872848168979179836281605682037304263017324178040501742118626624246717798250239495451226879322468798109868955619950889690144911501246978993173527278475673097785438569184538356421139384312597896186111939596873806696752069177591413194806117949379035989164786120182459117896094579497672507378592665842869735086057427250114899963717039593981694982394192154285831495216115126285531165928180307998434304321184467240522546440515284102597646075463813950929037585279048442360229474452902143757990235775061215651721089410357433600700225940432709061686870260013946597061217502618424446231424798722563945122227212270659187326988580875074529960123496826812395324387308529730638732976008595392645907507121929445954363956483878794876045344453527693569650804523750149380445918982035509784993655623442676659295538336078890345650050857192946494879937804289036710157587823778178923331256071148715371726651827182236032114113502862869742851071313254015435939738479644971193532115987636889330876394571051365812119376803536850634973324109523741023338922513521099364354569470987456359158594510216923842986624352967354060146879934799181715592539096906237684065375031417223624527640067556760915764855123836755641187652811941165353945499174308375014944050591965660824979204937509912574352182323107908595538753954310756443676625314497836595064963287231951116513291041076554404568575040533731126416276263428290079099600572730114459752166900112999238640988868608004517067821391765034758758314306284873644872506913484264982795163681633601023637267748443873550155032614880789736491478629092976164463802828963480215536048452859814052075140189669488590396025894478104857160751885612476286852969824298764080903441792043502781964153641083531182787215236409333137848527075062812829045782002599048313626790889905848385858798188381545355395406125423332381819280396548958201104973080276801268069865166750885759724352850378207300282182562084396585039881153503971459934942832833045086457553528539493960396063747985363964963436511006132980822407569199805053841303944738387434980763397729225303448197676884003248472926797975195083717738395228213746687147288167615034030187191872371255204474602613608179126316582223476711062889106132185036718616948769427873050865797373734561169877202441141753800670832192228955068930462999220123720447224373988072186178514473375371408520374768103903561975953490736934388945269882889838705008953613372758418486441709405601130460301724274792245835644605092500965709326276404121323290487390705521652747023117754571537489296642492942573380761450511841596006550738248874628571170035691954249157825430697971504647979228951135297705372038679811730445426513320043225047868473046563808341849797360720555235838064308492141399317290228183636320263431748345854250846510986698603114702645650382211960152163561646248729364761604215829102296896785307478708665640275476738411569993743210768049873449258639320938789394380476421115419637232202028197222031985866057658858298579448456143507501129072715836272706295902931468520238480894292625659213498478899171261817082122719445581458810892630907182412181331781736524806908704093473647720313830365524122765647130004704770373564078083378488322606333640347906420525036102597003873796840791962892178881959558360314003643459397021545278883539266128486662293228803553225331573120788165674192319660760845569601846961592720141854957345675066440711401640645886435436551887093320881020545113886190276750958121476372529323375599864580073029896771761717552946165267451322365247153262433655360849788333945390191056023121505811023204151090760110259627470376110118836710174194961556206033125131091198112025187780959328112464355387649510932138090851935356552912956355583888011017119355123526892022036394134886810755653128799278534724779601623771044137202160316236039168586668211299301458134204117863938727313948678567683361427902523654580696479498246401553627845254239584161928048559412377302207206988206136098481016679113191438418943828607104493138610362969147065232684636488342315746169394281352388751017860336519558865283658110143942475182261242870680240174408103850878334538052820687395980679485185091882972382316674947695346836516207503359773061388491300131801917304657631006510621703198064506498756837989872879096163345793586676737329326768956969764908072651083960750200837184095088685868995350675525877650677766809481315478564442348320698800995528025211282769911048641665919014025019905689903282359328651803583472655724806788153624135495575338229633614342815728703698770606001672731095918356954479359170060996716508828355840891274176032190118815633704590586803052661333180852994994256952546761099301284651311093840054885854552715999755036493892839373545734030113708029418257570251753482592773049088175893506567048700477340331681655648727239668403866994002411001412451670398582859166503955417972545299523589970596133460393785180748799174441177876547855667469742170841272865672357796106531188753093746053960721653735981222070203671259907664613798211473661741595490438942279327911832917428857861613004619091574431969294519919870198854769558084022368317007529792959169332794809562692296418156901901963959330159096712119348389141918852797010659284125511007873337603065804226994174960350344581632041124710236241376711771944900863156150897061583286097338714337436507852069406767650078051489333173209613776800095272819343058372045589264562162899144118332108129316254918764852720107457231136435692989827319759287227412059668272631279949681382907072137035046274510470676076322965499931379466613488236253202250189287754338344868738352949511605855629217577771815766387963292146523063049681050570766507754735233938382959464705607544100726310567901927235138429266941681040102080122958286453029105893318718006758914125430971202352521169185800033654504782199185086487543690246044520184048558402821795178516482643657012873461046754871315147274923668204375865015848353544139165294843442767993787256050596438012159869949698139029037468333397092174408160245862485490972268802045820054042422756033090482531361432219201953756737376113751344205189515650666693014368518138969679634104845028661335492319432529846892881198802590507933274104719433506729103347896063286686188321139318186257206205697035808346759958965353466208248892691383352920693358075168780271322856962995633924990904758417969539533978752648287634174300044109543036326288306270461958089533378816263931856046018751297779297676682067894102355368831610192480945354880620568364247682676715424722767109615557048380264165013378499326292430106083478469258642740753556405483615905735108706521351363347478262332963259673597282045509323061792548472597979925773772349245410814464083082198913509779697386031346577484414664725520712053538178177470767462456179496300553161936719908741279390548629861331738020687106772418595322559853871042503275995322377555245251707887765685697083039004184320068623228407327133804809566823880799580858493812125172595603799938090198395102812827168048531275575478604773259005818147147744080324212384155029317297786210811294277470533473316741540158336698390869528228154440027519095986915662225104088868957592430270527461133054335208491701426354471253280543248737627166103901786950444251658371986414791432867471910772942038308008249737143429946218456945852069250620335397059288470451375654228025659466977760292460176968892538502472351719813846955551153968960849246106569653580807033554190210958122241942830699452455285343588997971810569404872777622531170684028755531743001885083356494012128654900927548900055074667167185506868024793443591128530136715496855784125045196966324834343695529486810659226506808705232659558820622475821414336355091843966069476620888617972120091675881283294020742216320762225071140856249830119771921429475227868936449671021573195404072274767905789773018277834563074837687478275171984611825378571653755779898578922532522879847994977977890123158962997471600476084797520028374218432347687211918724951095225855970612968031475998585894711770863910664402298525979518653944012664297420889398623740150520109998689124557496370356425151228058053403800431737528286511796640210182150436281153569614422100905057131018465326656193187466824335531644026721810237605671160991196235850022207843689539238251950531291266128563061578544407208948403114451377830928807580213742582196792280848836688939318781995988588560101255222668907967879257899751481453311651204007942238659635820026995666869985466691027268890606384868641618558094716558643977489066447652090239200226039577219498391358571769096126752314340635311786688010540697180300482948003630514296671559924549605751326871517763448055039394290825231716476267340275872321671608678110138913121622524634528529299984121251776995301896735563348187073319656291745370004238627867107308788280591066146135445299231105202113756957944911356657808827659704442001543549334955071313177802339412393406981766257265159539398004869001145281510709079630045353930144998467151031104198699222689841740096339784789043744265410202507190228436774042390656305172163003478114933621355551833521899117041014656831811180346228855527263400907564122717350305314425449628197862906113388750315294016076720210658221005495011868776995386278104460780656959136695125759401308135672453355761431826778297994256943365643525922144031825853411274219588477510250036508940965998669468761667272581179779359935871857314870321962782053384595011868177865149502608298046358040390986785563298811323168284462256135802366299337871884839725555325530334796436812401365841006902565456339781376446779338906525319760530704677538966811283100612890143936475906024764734244248149540863914172910683501611658480297909350235791768889544017881189324432974159062334888425364822163333187784537671243823993427598067405567864341345314426020616343574071959226037582371281088382044820900530239358900980110540696764899226848462097273768538680382881183750456013381784233323141609285764402632325844696848204760651634978211475801161184630568915954813403398877145352229169014984766054783304171424281018387195474518551328030823451793847435927373363500240859295342414638092434620045224400889585573294618017593355619317013937854595272714862699081027885548410833054650503532674527621807387001212927326430609693002571513831583423738506052691857930164768668064253518111910622277540651010537139855166028071133931550373554274651945732052379166056784914480457808320087627514769835933221352363934052044790540964568890660130070951651512031137997246529908136417796506431966054408964263360290319940663992861432820716936009696670681048429847515692605354694863132627262877498556744158934226227194563285589939709825332738056524431753381171361801461199304785790509279674956022021041969416645324877340830819803364099407749368384498380423895117940801528613382150697223079808960710060877733481691553089265237947478977511050552250916165676911483317562404301198638193138691357321817831863843245116939366367159974143509409572758485018251197833406084893086212993268477264071457752913854402774211038114422160096652381227697902393146989690071938313840564234685543042597236986003930093199434175273155829310658557990625888696572712720610129115350454260414987541818878956871346014378373131106291377166351231658965199171729727714367054988730727697251992404235277267718637296083905000434750529166015387795882205045544322836866105704156534809793894438441321501335828840622450452741466527165519592135029810407802601153578756402791512863464737812020688121067673410830623263114729970804150041055081826611550236993795933872671765817865479824165926321378898847812314171919638602445751403314530833531498137393927114943075176504198030295207666457954362730558510661782764095189389962347873343240403853014321092223780741719824937115676983533264106349485299210153380843086618492139077062907469416410749757348747933509102758529905092803169253763055933474031125222508053440338225570435505499917402865718959328897612008130686494769053602189082763689317383640627035290322824107834113830692277821567301859375407187827583576090148955511215901940470545930395003331936105904668073080433068960035601546219781263882418513814639131270531549079200822040366446368501932363567076064260702398739910514879377387793272895331938398056059168331368794974116357205986115533778397547708407479982888771757629834051608574002523733711167599033021893636685043331298276941107167282100267379774656794355508604691551583193062747462834062141440177832190327457406548877226785364388883057129204014238525100207109942231880296764927469401831194329511917420087310341967374338191886942195355692507108845395096947681593906180615550744652629753126585573017233861783477388125070036905551944854262303913972178720015591338561391566245796640514726841145536861380307933676287502940205006775286421381556056582667878786302532657514459976253391999130819580994900453700893119398304553413871433897622005252617893193069624000649930283780594392318061397177064724477840659139172797017824654387515689155676085015124380952348291317322248842445560665838338125082896013468523314461361032724311550754662083271696382851102389953348160071815718633230407257298639733050607265287319121894616604601636083226171349424007686834037289988948137856371233031465141423259680038614440559166437409288939036313999929119351404716896332314477753931056449090456401336070509045402158400592103837500912128191543116803248208435678893621307650446076818887084473550705420842655680918267534624056491338258157835178776224400627826349322804052175852080977307264565862601883547361596034836960349189782056209479044348250137445873634519580857049823761521844687163896340645439611465779527595312164991345747514434375886819313124182121168387684847211647545032476416743639741698802919243684374117872830595844553912847275850344421718655618843525370458680792682924150799529995683496169572449341805670368853447800934342987202103562602140670434171136716668559104388099947867534179550819132837275946956560995349532503000836783425052693148437219878598922278960429976175881779110946942940422890015348949684826512879251616533605037269349262061464665691225776485860696003391862266218837770493981559764594250654890008099466664959769651851064645142161259749635670915297938446503701612052160760047649009875146593422227196081836502721524842193495562297268279490819567571415049866174008986834703787513525884457019806630983512151394285457516416361631083508955140165321679891746928913783133442952008908600804361841519915832104278050345812749686851135697752671996395847765484356620602111023232272724231357622946284712841611868751034782838275826393997210761973602364407857389673909820331452693625709908189295010681072480338035545198251814709469889805968390984909483928252059345569312308544510376067850845194219956922092888441104943590580339747434291197417541201109899024658269765729246847340263976039484510898609318287046114614199087675352557134460813569302036645577985643986577397492105043125218541261712818471891822270277161940405412416382621463271039545838850178190476786629551140343797031190952916149524938273838025178952123176439927896056755924765978467108840390408029603571139953761364463494342024428114126412572584198965360569770132796488415495281710302552419774579499001915121011391154815479167553498267456492092052823093723900248318262296558094951261533519160478015735365534205746887987405380516794065243791249441955345202734576847038072687157132457315248675424602079875518918622612846255117085147877933584574144469304492453931682964564337258057221601166755866777994234138125878585563780358921536997384226404807795244017692417816513338742591474559775493834277038298456061629326329691222115486264049779208177775541795204251415203747588316775346788641692880331680965621053579555050908168966129654595904355052383557981631998846086933317162611188845241103493685630556692729193540753882111101626934323033866422460019287069328247882192208298725326220956543489633120267254403277301530608938313697218675428261268789903141110191133718886313241417580726618159551628799077215172177859358866691369969672260197795404032343085175154936175782453482918284563522545604314451316103436186969752460648618690186405064727665850255204155811102703739313360951380923101979922159610833112873736247649552498870797677388695368710596212683264861043033287063660417552698552251600144848495976481808175772363998973987634995798145559635168490163222301569007109646256859430783476882576754349643412719000551556161483348746569204522230218296346159973200145353891554585076391508419348993858988374217971765924566048273474849183053264618714253069934254691318425741736168509424615031163835834131555697199868756955544722501606247025222973387871149264964507725657858478985167290279423325823425484557937085651494192693496691892564704260041416261695163995356484980563618796661118646468383077655072031636714525327185087798501173126243830426959561902053371059617020089883854480344090920452144000897608079397172686548351361322181774312012757456822375606327439162407927998099047281791974306188175039482800366650464780782205214702795802966854576615867761654628071909617769290527812729139523122238536377610426133006462417585722227176476920238864686380155986557828441619125017244380181311853034574036593987265380874150980049125988231822369909287463212049138706721661549639236020307119542958745310760117971390464490471449980933818874681112010286338993006573731926018581236541797795841332928306027980520173937843942126889167271491684017775911061892117567564937343795148573533370422725700927978074782735746692239758374564705670583890464524459786074872951710084413131350990644350382455987414502902028104718216043778436677590725461006753755090829047129533370182856505605023026639931152468425805405886318918019820439702680253384854108129516116278428309588457398731764319196438220744170786961241956086112325529160428262932777672675609352358937655288606270042303041269290981707698757531582889085670641713117369521209897306814777688246636057595731513844519748968219292746758245596631444062154032025420415237251942469088516563248183566927807462154912844747317707751582358109314466632762304953791737821310596555056349393507156258621393936640291943762567684915579384761144974971477634102778812072893585356296404184988497466957668068450182262560614888999184435846192148095134394544266209467224397839190863765979114196596720173592159614423605056665657678022278537352225812704069393713905990283795294287355466214714661271597036537831787047798511514310869648478892134504324631192114046106420239483233956184645809868573414992522207047155003333392126829027466252238302939395733628218538264720485638608216446880001470961019395564421004825885590528332673443403135783109913166877423702381978396083514504709134907925843680530019371016681659791727854589088146724852387101379977772660536159501255506534240200332422287288599261851865821282374652499624301416732418478349756114244691262404100240923579199196873146335955520659372563526300722629716435204345343134723173740320888188779154681399590988289744588425406079600764365011560500451523223228045779043188386903963016860924803137537270964674710317576570561193039489301839024402005530549234063568421789107688139282804903776062986881470062878636577849147492104901228181789625361397084091397822633932963812090342333892620744766414832215217332124742358176143465280663785822416129963210812174264204150405709179631116907157114671067307521452361856100470456935958877223022967617957944000835206530228681805371862282595046841316243483541762514796575025465449301339410909629217014873033811886369644015181559016253857080960182836852607656567199851840160558167101591001074772993658759898047672960554958412786559145045139200855671867257955448831895394328027453629158891651094826328613966458076253483632658506228569460812899214255726982550757048089912098023976884426121782774491116247805952017286625166121411422659012546588182129721246401425300204623061686107643214792993013478731028182770942860132288318676838765209311203016023419108672748396401259680096270179959755247126525641872425025124198979922101436349863174982363381533877712138529105967663664692183102368114073018929586299888238514162033782089940366290119295737303877802380326756462533231616083078993504090505364530893831770660716666523394874937365800558130485196412323823132134567826309391253178274636937911283695228929848364894945744263434508886692288200435478704472752339480407911618050966126803214341948913091944263572350337165662522015235029323063060897765482077049763768219317889358261765915614674336472224232697908407911341211324689448697695531716855843075931858737292754801714316525410795971198219386335231119763135819825774727019713811890553233751662890292320962166946274970137698694508262266381879779121613276662956974941946414097277933495108372380094334464919927288895755879212279314673186031701223149965982026870494160424517297183826719491528374011644090560145663020195119170727708927848248869964072176715708265594757550914414878571274374592827301403748165200685120979931839730295541047760458846443292637787513203853898073457296639726216601417152421987411421043325356382577883958086864628408183976453152818304073958237001091960527025809990582156669411188962938004780752079443167969658140093370849007402078102336817837158517993985369612186656477628922074002348230647158174131223118350154274383031720255930445758793495242798588194363814228176542485210259727644189021228857919334340854700487223829663837989072775173313146497241598142320920863287972941846136127131595550027760527570402198659987311106546206718236113762240121659930674769030928831310600103953702738604485963002832234340738641177018270668980451548604527494097840102111666407396431865542413309763473394585739368337891707894252790326591260040678220145226265585304906811565481156212545941893681577284853729627036000452979753307739858784271523434935369300846689139230746878711825075637665995253323075274294580830336102464430673529069768539550807612772906397822367978337644007723057304382537405786977081003632216722747122904171319363785707654547285429432387190839490193691586728158084605793427973046845035411211625304993535420911887057078259443048159970914079702481127377025848586667417130139852492365616305145641972071185888069976113485626217019455522728578418272571601507329038165957023982268715868789115547301755787712986527525332865868001138399651380973355656647748570723955423470247200735812264199750873041486652910108911802440522232157796434487704307260602261040496456135553446436832653078023425633734538097581423490157788247065392721359539054411468629155449885417538747173977069575247810409077862072832807045648198291509420459643824640637803023422354479335117207915446841404971888794342298534143782628157793993887271204223953616484511702790541138527501259868650551174672151323998709017067331112879370750919550357539144723100451204573811607247507569086714328937660882607141660475808428463686364029595166899279550354190977527007748068653125593498749423254738002725072560095141219116167948028535390627076152038031920755764087167330713051616160145107247707626346121447477385838048770133612227421114897362473698631585856201564702623817497854770395225702319334812452430751425429794786852821233611105306801160290523838796171453425333512179587964588276910855588141755500448320487545150861646318663720250572105746693108978384093414984928453674127697486090569917716568045255190245946078683261064705910252514713044401633067996612286610020067332313029228523134704355967042857218711938262383325429872419169100733662490140782876982206724231564091240752549259500272101616336430299687370890129302057240241321479084263172917734510459140871406160088199929641986930430724220917214788110355777726266575571029138597191076626077231783479141952979228960889198148045611640965763467388172821376180605846050428339855324363290191033045072244599462167862229710240206653771778606511419348825059912507540549620781268258986366578572833368281659191055204161996784491063949035219669386041923093456485160858660565057263176176804954863914805203513111061923238874558382161943453747493427598145533321418867616170300109216692142812954109858772069051462171845177952284761628175762492135434686301020775452244066745855644234604337872860592241868663260785995972284417352323590524182107337199302243854542379557981214414694819044195987454868769983218588417400751903006395111305253141416208523370208539028498882803847915038353473418743106982873616584950232431314098683790073236435782602005963070126693888455250391616044233864451602077748658408669174860764929479835654297875015143603603720767594779691399392120739309611204687083774887867281497006013436735704265908818345115622346142913665369895582559143598300765315794623481651563009283356199028025655668724331708318291923754618047527954649442809645174431927314633184935193305811955808221172025027370544435305357797741338475247977955052517620743637396748893210920341317439317345174821638987518114682824133275814644073691581602141782508080904357640958689804276524112052615209117964341649470115420248635433620290284458578410085786737212571651214775342057562900142658002559977531905080196456852680491126709259816128382986279708668985985722060931385173725087000570164535393661144109319943947206902839649037449379765211522936419510052752993579622161825518418417973239412208726352323447926917186869611705076617720332823360220147903162419895857747395579039366078229746306664215681192456156971388073083525266125408281857092428556092182235782837812865841958136307744577363431781008267776515365333048150890378118344070859164202213651558778981264732810634462440428628822121320255108711442309065959190799899737596911469756753929357210300196072858371239538080842527844465650383448304572230292995582871018414688313956015798568418863165058597617330609879933791991202060775760899438255910022541256467489501897793996746364983383744684149392815235551674556114630176602600968717497772282292828783873181513084883902326401168827916769175617087262376747649848420428532358676238870061878506033791329765582144956581405039207647669554425739681997926416969126640973164456214918152594508571925253253021981448448506068757378524008872085840214930493239866814480342723924834600782188140255990582675449216773229607310086399458309434641178424833821069774613686335341077592251058785704314284036846499582705066106314294471297073737311193471953003029265555652560680002774371649167004773552005388900538236236954818331820361862726169821503507686961622981433097019631474304362405229574498805897232502033871397774207892625939426131805176005460024048494187113112280012216686602139030049963678885401560931170004460281687503613206350331112079953623260221622487129773970673237458979592054151123364771678910136168101764367964830233122762882758793480236606708125056677127627459866409016524820017559393658519490724112895552440178634929806359953885136532882614452870629771209455017636894334393548598420569265110897438528678516863878698179441673377079642646199007220861222219264231050818140622240366349842771811763707219894381102004720534101730947791971545037733394028851092821698970574064319598662054652940044504217174203207162685389509757629764765466514295954465265471357092124217201074072913782801439847960607775227808206539718973122096109663720175373851435269603600038603710745610523161757825745651642847430326051416185818319759970998195057153662670694132175721951463878302523050967986247527365060316738297226392978356838441359006517437761523786025885483586410424144252255732735831722501843669069786050188963592056776657184434986184263971430429378965494293241013446815538658023575571086370515392124604980887528521435311248803326446127858627878486137402318899477898949356515825362416260119088568836375754034161774139157628988901664867632125030838625495393734937879124451084473183483947302711749412188528326120146229106011233566666103462864350578469725415353841652662800777387644836394835104267022830763771576498334177250143935971543384045767939687088309870021488479553193582159036572129401051640243344010438085739951822847319854767794747286559019712619226211828953234984763785075212342362127968176677104448152147923437777578059737186290544250339766344811096036744139388415754346797164263473215183622979556374364782105259013819060125122830792525160151385403864973854687619122087388716509797908494179495358163529736288309847704323009773574754607702580383419452244021459378467245664646444810695686688053568346138800472832930666019801439552273649072463757332597135159608910101941040010919270257534356483485685757194541792596252305237173482946172966290756883808830849329335464197339972862320501480321226921918244005747315557370169228391829061078525320689483696901996389582562024136036085511947577613944821544175568625640528668072487942493330147282076823436168773286875463758337380797912128122715330408246043359292336802484775793125749211697213698699284068674618718571496184696186262452528786745489927084367080236946977150605610404964193508472738989893252229472399810655902947250433191137462523020396420336919616654062010546202941873734517720731139354475037481441238567147646180178995915667439852214561204196885632479108735594589454075959211995966378510327240426363807504408258514811905878882076570374966421461191421649098205668403865232655458700138460174839600562454463290469900534999820488221859426922699289169074027201076314790966169005051223782680243075593310194475560721581116587750597989015233397749706935853671892844547917936764240819630617444279488952844342636160623223764149533737877986319506683284507957804533405303460402374980420470805829681222034096959416597445209993346344846933887631286268428898984107380415237476528932564981659937724588961948136088099834995011531706189540420838730289569697789653151504604134583997546888222154743563588239214225183145942808203265088034208729497786430977866670137684447411332000436931471589822644877228009256561460187623700888480573969994900618893772602143219050071160710692814679039613077544009704017771511406968601123479781931902397532409580386974981306857630985188340754196324123979476587375120179443616377033413451407388624013086620212073102368225953771405253870971647300745215117503679028431235072567177677215468285074591323803588577156731691790479860272026420296313052388731071444938131613974793373389268536394498851442696487826080351880404131480071040814134611908884478230609340016512814261016171929094964801441164148196463798367160777141959196387758532298328849077062300920972634081146692072942524531467057614038338340272466455786405849664008918955911671471911514156403363917492515196020486089028492559137063366523250103278738715077048389484897461976661988401533296440382065201931046168943737318097746035663224127155777397037868739228952202758561817421119436346039888739376679247263898922240431294758591600265028069806436248494673553448618898047044462295330200271587618297329699851165148202196778627244188136419600366818209526407070269732420028229515865661491351716918112609158736701840213309884911913873641941015491406798567811679927210079017390576717455848974346781225292495805272593707836657481560728625807622344635502218147562708896423205836992051118236865622848911108038265479414266305820463110880143527560986131371871467651261181153884193581939198559027157756626658348063445659245874756287908926802289941626928388904396467816816882422294418163830557035116435407625079221522038338614537395748542124671234437094647064318701042529478050590711880113389164498551025587930528250820150798434020671535495240229460341596689259134895705852057531002652403641828784872475766338436523211158645862583352543420003030090118546365798782747218159639436947121850126939631262743177667703302189634885359777578285653645862204938764085994796417630986756261437302196765885495024115234704492518882731213304214582655227132400008637845135189446050345568409847350724938425391129267987518828972062424267276524396653130065162127306161231276522249515528817789679747669687012424158507452259752283636465431923787683889249043403939445235720738047084546944071436586131967520221737329824270982609000990396996059815037217314339852117020075535931300244191056132281360365316162126994372222040599070015925964283470632709711596408719662002073065808875368693966152375100784251806594797986958897515210277767562544784708208687412966361834943503886580548951439129315326642184446501884840411718634285646399917325222010667452675344365903656075442426247112076752097775601606412771841672246715198243406671074832089825224052253179143223492886281651180047399441141317075566060970608462656418570835414809998446339544475411142894069111333178868332430071327594045087965902997900613458751758027589654937699553813664025337633349640005192700941533949552505519299954135415510568236639735486820138436502517257113786496752919262881004734386625754041330426028109571697265656074341108272121681615399649923187064463051531766153961260171483013433250257553836067999208708848256898908559535150342007801686165253070746183727252959929507857792709145952551298689547691451639514245240649587252363336680143808772795517682097547276009767102245470750366961711479250115195565593597443041387890744277519844720584768735789938361084646570397852239346553555022397340512033965038115459577232680906819416063591486383167343350875600388097557553308267027059420609770237869937254178501403645848776674061332114643543754764520978704354667541362999412268255806446832062923673243050607887483203219812377845036128489773432926501743780522111191287443852012163161636782414157945535607887507544525295009824998109045992802851772734436231990404771748872572255501535332458951670317878698069967767458694593917464931560319631184239657245100252479725263996561012475912643765180124799110287664675719469065558524395945548158968970818075782582967641468569466004410833597601940990527315940564835578361006375612550363220350029722510609561400365713022418331852245220967629092770368049261286109955412243607505962098317578059934674337367256163576413207224317364308399204132586473742002556071478165066578966114743305622018059911343828280593907729418735137978976739242966535595203798401366385585307241129165715391983087082128217643313906025082774314408995855795673976444864306652350487021153694997804300572134273031550684295192284560669784360376026734007697429609250861904154992397154590915902699378314838695240330630844466785476649635293580546319063604750375493700885995455632594113836817251995337325193442282127148563151643257691783798300790462179811473898091428334950216603179163210389288102022871601098583343498548216821990526994615385409066516084791334463844130585590673763127864617595032651437441628221151787108762215645009276392730593833314488886246260816926218549181788190746772532202609085834649443913881320747572677997711360075008921400186785242065172187586477240387417629012507592638645992700526911877484683881868827876593823537413399911802417983309748716879568764935552067664768995388668742447557478335830375497587744433416263494828481752490207201294443822879348076139300962278469509018706803087127476186026355941948192907626915749944104942479761057057408247218292388381916168264535877994815504194890842401108981311845203580997999866722197059457614018653970262408233517658315080275934356631589903268554063731166193443096083279895955136831188706843758423172492151585484407520713612695099407494011131707426714274226141192267460753962881439122045163206524004095155376021103207045892440198745301142862973528881065197269887944482920153333909306418143717226176075796739270335183589664647467762456952930757224336124785792161734683756891430052589792177495123713916364055312856548340582077914278652601124429229286813423353723024049150506719529829403476097764360349826447548928195840528836912981111322961274684282842163075664270749944670845147923876056331813749971379350727042690773462342496758537684354118087265406700326850283931683525536485848682337969929265030746059597764689080888523120496292962842045924833127496541322009715754248415188220257395959231614670673929886949416465463993858315983338619960526281587711529537276760542119064720338918064786569327728425223635457245695740131500603962178485291799640523579242076812747543148311174724262247915321817398673126289008840644256388147943536750681607637999600602356832265144027032325227111631585535193306889704157626664075321766088567053534838521419164825468695561016003935795142408754606574151254766905160594699664204969252511015108674801543635667653515356067159860943718466429162455197878384590889483477368905146466237545590251367159855470351221508651316000612795774348695918313505192496521165615500707101835207594430139433157797293272351595853856145392893831410193681841920261417431566290414178671740966944852186907605874110480791373584562998393530122446053605983377294733500625145249667644845275327624456844767804219693925422290808079787456926747430760907923577327405314920794075982407849141162150059126006860713605315602885529589351500576707681000069241485467507272123028442284125859051213054637831428068145395445287659591873971192358832077319145982964335985323053615101960743040659942533841746811472433923361405641374603870800765509317973311675560414472774405754235451623919011911928836897758135760109511063555537168691057051302897283723798605558695480486119121661542520179224072101694155532120373988969457241683021031566633625187344247673715566192956897486972011914020020297110289757411482749690830995143665559509832436581279153995613571054593107071815887969399163511964296023198390808621497692226755868639614253319705683047763763929369457737673374935918870176782074948242009367661722562877120225214459519371116717059697871000026383771546852881963004120610118308922134095983937776052841881495262831421817929757773820335829157159681788997424394265929382384876700912160225277703183353687778725981134566595159742097200546211526215640917089912801835254385250639641893363956718180054992864197850368063863592021375615847878568789444336603884563388728610706175623029707548490131102307571451613577888205647890620465629971102976713026260859274522822545375665452905717985117979202743480300924391246158005199488734923314061815691396011310650831813082829005020411452111271970519161264062887930592449134124662488306444042917013926130643565936766027622273777475486604309764916505035454305105136188552384510829158345842561696967095329064755028248198938429818267440894820947119879558329446218649961620150189799033594281917517601464199978405457318553630742977522841847811685244784954456065640130434035274163750169010581454241190128939454985848641631070177250828221528767841530210439856536895261638989273208098411107272017824082970363587061088081999064973958123106307306847861061457740721591167518871808594786786966250820586995466660953890696525894680284800265478763145807918133658072855957827684013023006419006658504876848276130597193303559386682262856667831839411680086560187111950000543872173024233183185090587636844337719477908858614097875690567312983648102862095788092934987740201154091193351716332938404464966259089863018341585281473905557195241230058707169209690331442005076028068100564330731132170390914768618236888429310269082708703831624421901273933167781636840144140279038852597054695133920469168953136595912620637943761250111885422746009728168949778045403473698221895949439693052967015178492361641792765257774258056463957774187193001084326134843533893799292438640074021131216381078434348100323349440763130638360186265866514677614621804443940667475629983367492713269512806909885392469501747967908067254505018135640366162792792956215815831736961374998797620112752958167040520674691903816315227059178424632289423722152177882412924295760925035644549237249445823217331612583578639573984520441342918716411898489547345327831720638868557850234438853130239878807870121635391654761614609174086516428450055133270773105450202230461206037144045502863775019689326457215651613789438948643142135072134746936280401805145540420685042542870433113073763050948544132659280787440226263310042369286185869968961728327171180714614578245055517360109606076414291933889775752119547705405566001263622474842293692580032654039473139520241072288105409594427711325177557155969897063932954337077207002805967022040281454855201614735707183514893727403611624593980610950324656842122837545964082590707339370741377001764277521596781971232817300541939322362337607941617347142144682273720925245680152331458227748234507923764399332603870358607458595389252596740733277741696864578851808276581407850335134061645087077662294121292703939302461777116042195503364358480029489563914692483596424531508986699761476382761390263203612517480419351334135240325480128053203871744672722636991250942251153020610474547957273313247513751176492943324698763579356165042337193246548927214572960637790359100684698294498077277113151798270277691172256723940474577966421260707007167313123017461085680342494410059765043166935788130053051301825166630667014523008085173063975351926085879900191399716901935406464688556394422056405272539312625993775272218845833627773417343811416030848281558635581759353563505819959099882512626146779245343960743607763563128075010421673375665460538094809144462308712843798050020052928803815044228730717151836597383507765416221069815982717854107393617669818089901686556409972242478962804570753327179690143230707960126855486409328186031030080250848088377728714505258526008566603989024256666651024816985237712745841785094667672222276718771498044547566741364126781467797566753123042481518980731099996786467718117937774269269021991449839789959026823374647472544955531639065355057484065372585991433284164309628901859832510180991688640805073123837636313131081081750816277381855471906058316704723989087582877069711227051791402135152686139192626414726563038137434077257089236645222836842556970323175676124907693852422861852828842606190613599165168874434856991749501557772575297030549145500591714146575117824232616967636669960635835676761450780539770030785843290544329384841379607634544150615956932834688786517035145428457630969548897620659616170743603809865700957671851937949791296984939377896604421240094594030508445595466979943757616627896068601997467380771730710791680297374859798728223692716819144782463786787823279322380320060150735641665272405399939392957344272114631755877178881984782592318144605213634394015568825210913730497497203924057964686282878460781797250154566081830082106206379894829641125312876533096495087894689660547359738362946475241687055834788546613026063275413172908956579341173881488673890930354830350496882094306202774558579409233705736203527269482974729546789880477344442729294811803407258913808680197533282638450275713928974481159539708585491931809249480581021944373829872088897018973224923390784096494950958576150765521441634221907560971408495118662647207792137973913816970991271591235523554284557251711059209327731391268773107581408468846687013191856480057308768039263352088548644038558333926638858258781708456513394557560230398295397427597669073913453292669195744856989846349040370132183002556345871302302731013256296645125901965303389818736098873494508211971915340438155095883533824877260995948530460911476866026011391119470687617348806382931414645697853218988336485807378262980517265293522715415992322021602217693112218973116674208075286777921674871885980682951449713295131691363785185631233350389032591768199407050723415218269174471281700345862558272275300875349750276166720969656515953912301405036557384811495516508451714466863434960093655979855542801388543997992910751706575694823058223516452424817857299037080490960555400723083370401343805999111249847340962667450708989964818996714151641667902669150733055885644304156065602876242256636225882296248965133334639600714279398021175553428727344744752218898601098619316411611948232059311302471073583649505193617259334088525290152324520198820364185421630034026306026029497102796151405011152553616699435637703981591379208370991243787743445941642924647416671218405426962167104663138631052159171903814989538477956619617851007169510132783731300851536465026295281587656371960545875847317699863264914128385535265856173570924498316141083874468264418849624433500113476791969683365748007331358521386306908284285215584847097051539692155526235935934788238048146952030715156994916784813481209883425498266972712936208253799624227506520335273245523750603977000744015149649967323543376884847696079186291728866425964024996832433713114502696003112272011056752454597957386826955776392121653303222232290498068090942746636903247065586904070433606567990807443892072047409050995750206112960341184508760225235425901156674993775987691766716671100259500179624291983968505467326295167882606602382400987790092174089399179303160355495863898002831317131785483891459240827319410986992019650814258754213066026323059835497370827967102471950059843947326787859677235075658174475710523023439943049930873459697410048359908958820678764728935657706172601050784734634775548211663862769125716394837693215545164533070589474952933084354768738035545688715688198887920926233469894452916726442483187386039655321852600637871109167871234510193374554809342264574389279051263468258029756133127071000097919179622567765157564753706251564860912720008420172971425075385511919768467979055180034805428901267629735913882325921863382155397488918206217788918781417422595014406094487598764914034507322269366798070034545381881043314889806766787563912061537083575411151479481171464232411698097567314395179761625178701445332092190819576985521217571788273313835436027226663558625556621975842112510747684728017935464939561511188241888058757682268257428508935366480820377962595638292313477609541951241402458157838049285154277099940780653243990090998439446972588112415697340444830946823806941955024177820868561895326897037712265610178685380400524631358544177213751596542017224400693295598996340263180387984725459534864319632343086766761503188763012511325534468787038340925406726133191860983043485634165911558417814310373924346433649533434924294578871518853309382559799436782599659852007701563373339893635126950401662031393206633771008468083940776698650231972285593863132748448504258997916865284137664216931203181595097006921147190840532372072998154623432634532678645945001313427654686620176002787354555247412096961220784772305047515015592777341351540196342994277628084006772656120619074843884898078081696862757568317670409277955895996609793273830287917249606677612821847866915794008663911773054807265376910447087340701807834460469538058866825496887669815300378538342537821533737582799505842069080763879336915175744035199485134271548301451066793189086881389102535994312093380479372079449688062581097606312739449272223641771766022295985449547623633183688323978584224568943723692781241820836398670730944774919415950281603185679901625136947932173914145464583516545815258483842449466981635761523167540475635157025605876754592968225768777938274999301464320917897905964624516700138677812657724441684205834240656554647528460964949302536770959602967791588195684544200311655099601135108079238153099857163414605236381517887537175503425419509313318528018347710194107538521381088539151224519535433204918300318220206426353818876062505080025810849218045357320586963487218151664381522672508762640374842970008940944270880702927705181436992574303132287606133171463155218499573913239492485495639728899552648931961137921463386778727901434360415311376036512263389615571642848312288558700050013462475605272545207014351092059475568845825116613581546326664624501446308574248401296635017899113812875328221062871733361867206964767828457925250359407849529628846695176122212714081024053894233577367552714876754179761377500363471221598965853475559136816524609546677981288067484313363655381078402949945405334550755044992594053748974978687191407937444652315852085887697187186975918451425987052279413632342349564112525644515420186244709655093691145072914312361034597382942267731699126424231569333259789810360131026330595272137537188021729856652045817102869344537447646134502079018874942682374318569875492550514217199001656355020249889276447295271349758830334785965250919446416553772555424256997616745323506337362055240571489787165665322229007003159814005800296784262959085014019032717031652926806837310880707687228407399206231386846195442830741610158741487127383221702469632653531161161732904387890699798639081401178381948382083404143568035187917316745280195461652636032622064557601556617514675448128803770602755449072564429912551389983252014816868640360250321913859323377547089995598716088724544019982802465236254883924871399552713058580883515491022755358863457776085739475738865107551475852630972001063338173704809887665718238554394793224316118925592785618933653510355901012659489641265124139123593671513342011879251396053963490467575061629623180842053414219324864750439649598998137850698585730482132563112738832135842700946287265062086193387310234008549292597521775147321584551964585753309419927135520700436262313134776527011431816596100598474609375608709683835699653609774819096028139305674021076728658273643480413807355097144146065683011418718421011852843642029889009136558894354454114390148936804181413125685294081229332914026471350044656838201112757740878340424767773256713271467356799628161799633896008296643542250793439862875448508306413968845083829790598164604290175925305448229168050282891277177627149456707092694921512088237924216275362912512354389254406921060206061534733865215780896618055995853077910947209331708383376426827552962579902366976456078867978804686536840426748895997594416434787371590487828317665519641645600974175295063309998080902242136992808985649037973533135636631505313827879496221728158250916141800362957719412904287227061916289848360616133452534465062495949235511326687740453107945402892515697968557503701707762787580948208758371993621692401909475289966652725804927626624972549990304633476425729119710123140097455429937120271200617360538908418416271182346430501322766254707868392388453537275501249379442708813232249219663835532177161505567041786065594035031483516243230805672661082818997530919612996528378160661071437328667459181811557308488484213474223471672772327676544576190955748845773850848868294721688902065865345280744328914396405954738390405132375108477403657728290777429617617562001483240941040822523099880345610806730698862744367232068762005523975009266928282632352340880128955875542620512062024672377433525538706732900126106930109408144950537446943946050257491924027012319634110490436011398173943152415167742933526202637602806325821436268705574333944461154670328273883661421045566248173775901922776371962635255799470925353077335364164052488793740048516007576661622520057402723363124071032671727270923796011176951529615120727303465346718955800606706828351335554925849774753928149000280954237075008273870610448987297347786085815850885877501478587653427483459019846886959364599046966924503771380705243365101947082613442508263724531247810464997569494269909271456419615639362457291445076270039718412460424198796687978873972963018134926410791830740053429520857691992086879568604798168302419488434612088054991306750487087426909668677634198243564140255279613755411168554404292467647142405355426225578481311586578430774518809343886880179524482685780404130312717030409726883181816625669795132287520619573698144456835068384418474460354617930204079735031962864230940183582687453461167133445303595752197722327505392947152214297983051916850318006351748091289218512311631400864960737241287238255643428135191839077123464176563911691259945921982423747596262301868150797235118402018402717391266211299890575267686428426671312304620923852029450412502506815075024551245846270663685955755258775057369256234829123958198696678381138105534053352902331590624795426318959106603258276783057805752856937355873651291882409384291166121329497778963563847760505449989076141631828308352114395909504019621519715010366169758690804461585636379654999872186839125908280315876502678968107318594813995872917128799067182218945263336701337571072139190445709421733638927564496410881197042241862345204005359315231946671406355911167916288526982331846006802157364451694738129849102439173435414233164599666540660170731202450439666410849868929585343084704506591329544399821347316581138345843111091669626554500877441531654310839305515065737542942620948861396536855463570670328497060519848406567865320190133232951327959604294114106006932286313428273701627743708332439009489371116858682159763542574722808337370814283385421379649535576779582928228165203119872250721330730836152674887166768206012517150190167024118746032110678167023489996503457469779536509517735256653423332506707593120719460093389351199797537468325326079536926237788903979302248299770128764304782866002097673723567617742852435032837447890926539843352690551017671301180981219740648852706811122678187994496463092565333893512888405759470126374624250666238558197875443686820241401436748892004614307469775088587528781442380133594428002993648048667171767995080420280690318219288169422930703548571582093372364597031732687859869397788700110380101100458310310657175872364853112908592516155114513745011307927018252881047295240468780547635433081804465252579184036398366123081736174941360121287383776822545604455778673369454562742014611538495652056626359163404175117611049359049997018621620435368393484921203761513082850972497596923933783693365239171661401156945363995461057428741544164291803804841188434065536979648134585911987486813673458822617198477293511189170159724788614770864189392362202468929139701944808709736137657568470117637301582381749109809706891224127272019681726155287984734242260895838306625618368343154262116028607282862077132143178080503773415972748008544310663944610840976328826562799853216628194231818601073343508712958499698566430351096757065301138306202948392871326257394809809162913547405649822080604052179162686990466026246128236576811572373841150303273608563181377702484519811084851992041119593834753401808020386576607843957961144901670011903041657429820596558564030843339564689009989392298193228220810603610945718136418517007476532660693071186674707116148760092594252087373616999656940616664463392843917343551037108231675024557166845891408016258118726249297903317111040733511648362873174720908311310073313661867552079109022558035321106804430970646528118530859683657865072330984602281734833684770425859050560856142987761367365551721350119832786105089165135106997482334973980547789190894773965928874413952274296415966004213733903535832652263574944170222276799492759366850010568535962466290094071294545554942492171998503684800418228750376169374515426610599782697741808788306055431818911114051780952963150949183208640718288240717985715606459728811265167605946217008446059654525249117166078344843931225393006027271937471586326087603053459097662935063092560045776824682954087327186593258394837272041847224477164251440711537345353081284487826450503083688899419072723248900977537691356527539269889354304875865690226832353892142168375572899147980840390482645611274410828416740592519792472016021161329513633391630942418850992734510275752164141341194805250156871526079464092544119750783219378456693658956025918673997924931502943180480657292474127935377048819585344559416129116501789197115678962788476014720364077277816470678998302853606848006864849769901713752459492200808474764410963861724765250291639661415671576503264891558076089068674371408572474683894250611650819453564097523631459833399694032775428454414092285271725352535544298681487460704822993424933083764033895484998888578131654559669055785832893649475431845614252345255243086220959553907460233436810085640387493926175524762788332272741368833927431337992928046002228588614080179642938654052132321462989030181023409931203960327714628281237340778803902045280940264726870428439838511834434800026543751900783954416108399256555305151129882864128900696912783236146010487598648419507791717681341462613978148527434834232380321549580536057379164824287294203331532186851323169310336681009649200532166638908648022401733395518800969502416537304216815160485657008275956339480369310707250172791967307655224268850910368661408648100021501294990748908270311413013917292111388779562140786824566001933614741527014818578219180162862991910177235945470021741048418169940449181780250866375133783207396913925671698939649173227234372056704946953334983118447220559301681635435877004276082598142526556488856251844169824243537643318504537966217645024600986925644197413076796672629614993707620649518276613125412318781056755382787460081828257012692047051732209240438573214785944853603679006406467928929015191771827829468808934404002257797522551811130167427875324601321925209726877367148974328269280384090593598207281801849292330611713430874701623942132306129592450706776766829906937462867500728406406267782026915318437701770937722757485649067818378470986780578748859294660249630542264043890872878023440932960214671962378390287136090764165616707179721492901560860779061668257161759167022853864940771873840211430428557190723847095573232883571354855819244890525002514004132768414662523560013563387485799370339121828724713609754440805868491072731512182654367442580367413426138507121303869092787199075126029161837961314374458522441262818840461998009749774943798228298997964686662846520813755498867883854670498086872319596200365782142930588161313035463135622376045439564295067472531264122841793145110783850341863307259868257818215728145110504991721808849798072334949381898761079361780908030024734722115380437237315330683077940879517419473005971656480882584597811531537006359720773519606882103082228128795610445775159618985969112276454236459794257919277241344025523871536570050270213750376966981249887273228791227170298736743854327079757378318613631465175046079333308674406879954902963256901176091177987281794857351528272735975628222618583541310408198968202443465550808280941071635444036959225342438545705839090494244339818009271023315783300242050969648341822916986738855394170789981397958659202929460290817265544813050029507518264258394871842267624865662475508441970608286543933942124695945849368732813414360588679030595099666299345939733259136533563360059989932745588309666360409099839886028790226033974714239530126915297932563342048681113790998364295886873516241422544688943770428552282606137476772618765527559876549873588720766995302306515572147001361895279665222988819066276765284025688106141886269283252533493617016392366221043346878145539124854159702916249599754217381989875557740681956979389231695488531891318793204201856896353163070987408150534147437736850830378501904533052487018334542102472597110076886943059993714244549191269931311977119941944230769077134851450087671840510831106631705000853868405369275778526709902246881384667934382107275354797875174545139799103072641003668664550193568041467336530455442819213568212048770565444423258587189076737886839255219949591523337746762036023352604614364967165544656782218761980470136659292525881475578746223174495567176434987304569834928602247672139338441423457443511518031977687255541131405036157416456278252458175268821683396329433396576966755880600953508500723279012060888522936935303724567122673714341643232368776092276543846685798862149782800489542657699863332500169694102243033997580435810251737139630635695493007038802364195083412711486986216800344266018917472920011440891169516857536186472648789523300362998836867846671302405616746443159401536253524450062053264364372078909469437832127594830059904109959111061344338693520978934966909910274571083814316068474512936370712523796354333742247738935821202078537948326809148326712557878523222555053790447835344487267315377444379334996342193464705469100098339364592020764250649502944582854712311158822393286015756024451358636191900183591820146372377353166277133010094951961102121046447056368597651471935690985017035228267242562672372682709092213895522842047047427000366858930359103133592436154068390111619139498046700272634988083645922232236649471360335249235390695411188245202416700196640333245490138566480796959837402234550834544511359725108937525743282777543621670528310633047030532136407747332242828565293733571453508926543266999774689816807544081787367007941292297991407530092974409933528365156843611249303979698356255854136788387110577783131503590809534003769808446053270854103691806233427445223275110401070846729085134938732465294048229894970675486294950151624121459680271316406468485185711493043193529694356833354761407119220869375279553918089162081137317593148424560731175717109728494685479052078017270247282422477019560959708350976620284184711708160982097921991411509231473023785135820967433146111131179652507551116519356458799193555489904361528229538199365276996736447771647958253955613037537909713574595953228207461505288773106129774701949020018313814443099236028996961961374730459958479029703218464991396957332669530435977975599973648760063601497055917081543205988570728071258045092086466236511036361164098343333818108851182966015362037594314928693184932817140329616427030198783983174557449026742078914703879146693231410533363120196325041654363578256045767120511658839633771124816314169289421994284271501169372152964725278594854381120022694695009720490972807459363473577946999641456126327829259781158452068589385804100804654724032302624006340440924558181074366435916590224152472558005792183977482207417007271051956468382525370703831766813845286756929767000831178210944748204065087644912318191734689136163675040971131151795961928460198097704159513951715695843658066071474226065151047076719506151644111507793070728452276335635330839366325035503830778130742887684287473796653435305102990681403537408688074806077628746441985080701204240069066076871241375385996531477070218696416728913333512807831189952001133120843918740586606375932823320453869248525024932105193380035098857266772809290277505348649439861731540155474854644037546392811950455902337881788907985131177127307437971884565018511292105806436669327260345064351748009224492329329430755412448331527179158017615618226196118547449171065841591628014571751421730178119486127763379468923836019029113900442358534299113119455203374013260738407952850242361106449764267194633988029626184995216641565921605936649963498336401205239278260934061632232060724570313621337153733569845237756128984940043988069229614225598624678276045667726042573451830604300174686354871028419838754715629264967057759782682242774931130414429078338053563314928228599427975625440065565063783546626256313127158928986856987576129751325448336288086654454207849850476807524968567828201154607167098589880825698861540146452883194365716541465189108131379118899605505430085027124172209814630890711865910618844875435212625331030324165782615557445852157798487086456741548314645209130525149121816642759351009704729643521216122436301077123931688002801323228950019515458939802389051261926843888070133140317262140038139948381053497949246866629143516150838188436083147544200512543992198637423117113557464569727749266828857873117822228521377872583846993653396989434893642572723221283446822162273952426037874184071678955263639729592280317901634737794411006455843186898218874932689420306138217202930249122410858850832214012684885600850438403793101384491991097302025545848700426911161449143375823329685287094594442842434050819284639099853067194551817508009550147254522152174968104645103307614963777698993102876831405218683579858919906710712857938772235924047877117855875629981243272134979883075564047196370614994979683322174093548307370814601878516756279220133895829668360858208255078533236431145614144323619181249380281678361268216231968638440519581987177195998546883587520160717726974405135518920433019371500463600174501768270938382846429889537579106717733950651943790270312742498529431673401689665627242450135217911957436754340388012367545086086660901424937700554605678269320814938042902267809536349535282310966845060692425978065068908448576197807276229735637587575648375759518305574891270807079925829113527481394833149432067305987667705779539176765950080148731436248541826074715826153298091760225697193500153028092774202654710534061282422507628716923133530163921136936870863205904266044868536270678614045331748089287674183131735119729967145617307811108685223014348816565470984690519152978712832993449425130888188220166015956172750858701675672155484666048167293656913495052401582766604695257125807299653932854554021427762863024652169129289453601818203683588724545822028880280437286799640919836308752019379921862167371430507096702062729341548508373930202250866823659063922957891622782302353853015862751543492342457085630081654566556376700915076346544225489163458372529025520536885566403920739076180880117045123949867076491885493327291915420235823248204979686364604404642269128597713460780423417355506174942274876005523017944179170201962837877728123399377457037683680847343541879012246275250043013870250423269394477378586465353794928620054291237424461556622842837872844275989935597500728712323353595285649763280159941453871967941571668153619243619629864378694863641768918793176058498009988368368899662466873020230450471796420509000913291869250788173938411584466267651924021095768187133861316768919241018071368369884408574387757171385759619834955998138823979982660016681222815471807605353097832220113181960560221427444183303392709204863442837086243762611446772121817132723184619966567302651775269005546515165306814170345183692046024750319379946888083324738849464308662496078378703588437021083270562611811730249802224737949770079137728436115067117480245045866076687445361940992158607322816830060479269888207336223852464196713755018698182588277348280302125403549033961029447201702976229284770480801120310017859236448513369418388905294384865232517141927741864010286229158827324996438366404608645729343477522600887738789528326139476659722163981885177695696460564414507922157812467808908723330081376456958203780919978851787934600658290775766199843991553303480031205163831021136973492301396198047016730652555457479887465018763320053935798030305352254123924643845442458880111264289438927486065797604809497938962838947922059765223326916255907947835984602758335566339633151964125979559946399469078655300758308974607498232751562420590533628202098298581190072913963159309096782707745554620807372743263871315037430064264220096931293789829241701414966915748368451244390386830378032029959200704857651948108846620423620535749422451790446550386758012057234233661771710835305086738597287234874869633409972571696841458255849615989475979067942782479252847942082007404762407113602761460260812194365722049156079146560509678265106347475749810639764524773320546224468272442892557407023354942801614216027567485177645441612762196487158200619643576354507928034712690990552758332827578272991026641687085004228870221295687799413643154598232469687027203056994132236773610090046509617558521304248211139225195570647088802524645930744050277093128855174016367678475314305603206972792248176840476553807668915209415814659998780143393239905363249809384335888221006681390360885426545777793567511441806035615620804946676687094881499549318523485733509062002128093019197894086351685093441701341086068556187216133650613901182957727531733804312543830035951077540852593066481502084977212967175345717479897786344504508050226562141023476617259010260884229224414874519001690405632172405019942207347867962566307659298937568216460352646431830967031926702569758280594801517744060176060978657242289289188423802490966937237526915656654106627179868098045472827900229008336602989819399986323422546001545273292812890808738844237815849360247920123106402951976500832217871734863101514266338198273443384940699842153663536428591491571358293689035681907544278155525023204229608993166369159020094341695843030125169801427265933955458195958503093439362801827945946428551236600608917703330299859727516940176980987492703416917090115619667378219906178312994960699806879419719794446739715807456845447439362467129860970101012675668191238562715288381581814586670541119126102466462955129658039594602214809982758560095829815202259544395904263336477474060823648198643230523363015183882112037317273044891073045528155165718850004968029114209058669899628282215464987757093408737769764672652133017585621661533641418357507503300378511950206668948435359901798145316611129036352176645920315714969083278522925302147552300813306505453128513608306203430948395693669405334017021416059607313731898121636406549338329574243985866447265277167457169639979864416020665068129334557555401628846626538543382007582007600979380963027948777153465813228798020314647568833757189712804928509441549418472381716837093789353542759304155375013577930865400839347441628363731399678068260336543187126306941503786093000173972700306865225613120813052756012706033848066041307847834959623394392337248038363902565962053292778694566959593809015059929367851346210733460365207240495888274043181207084954236021770596342041093340944085930963882142729266648933201417519353382767055398773585185608065557919046868848399154462055872227918385801253531403083263447914069262447214568140902874263375572296042568584262553582180572164865433464413674284058501332967081925147577755981030405366163120822175390225057541506475730669165453365401915825165452880825527005679529650754298704370524766537684997814196602713296739806388746808028599298937265009275942788902476569004462098703384098110304226169150151893813812547237335757374036854389462752172419387657221635031487088286764806317521154730991331274048733011135026348521305027868165879259402118953047306755876631008369610390062898229735566287435162333009897430074894055101757986173428750506185047894989987154025954384458151813340758568468357536055787975095304679315218999820530584251906380551073319190109130996546657853675932038871585527701386080508596481039643450281315685839565490004056762991957835637346624110574661396750562854362885347145458813045846251358057446442114045516606887887187927754566328903830064578056360589682794160413086768592922176270653446004827616701710835672443816103836790396566787231792354127317109676995467316185946400632192280827766032438968290274989376830938127518846781539672339109449455653509377708990769907749213429130986662362341280070228724387207603550642905338671440555847269247133671107801509994369525823426651339654920038250770779391016173652012890136677360241671438311671334282754910041554196058695380953775037375291683959352221608944301228316462071403313830649261544426271263246129048644049753170735523709144489624156865203218846191988919392489597448840575187353204618203794972173665932656584238903865381640224663775900544403321595487895964576002122861126654206211005808381669516068788570255533329861557856192440473239546917100862580560889638033553613531079637139456397117786158324691048176712247537938499653719360283571113094096871351411796958457846724447756856821736688026084539135730194038171056919724503356842167743543506707890407709836040899181206441402069417020637474515329662437737652613560246466015335003834840090031177350109957572741645775350025690283603775425601775567368652912617322749032783861242374913138493613804911443511744408394350166110219289261701585593903618323124141257159459792981012963322748977878929296652282770442502576485908113504901114003946849410930249253783872824467939187793781754119203102724807001886463410148466010421688235323392363982130925806264074877848626774286165774825608573480403865493191867613311003619471661603673133140344292406117336435238503389223869686294246180763703915375197836568193704372568752556269081362937875504735659627928372866666082541628723895406426194982448047383494131719293375591042785509239244645286388411873430533052541870671265181487955257597700675872723723801968279280149808942042495902670266956459632563065179970311333796478285354068421720362351674654150712386480648998284814903064398494978776170481307815293188308772469321223683221433740649584590395658180443366493801325064999529005857560190552487998607837098815741210594150639190241710552461220307879226240429539226434395238768812477886036826106267772000642539852064110766062581642474690644529582388485173106074344525081294892786792640976112224124052664523157651856263161144640360277554688760555049521283273019874285362391480732507019124849589412918726921425993078876373922994194489197040464205189544716116529907707694133836932637216525681185872707808275494273466724888055444795071835438370753250007073735481825363140997506269397819487585103688313457952916923567378078242149752810328139470077011197777881275408430955171850856117480432732853469252757290338880878050137983465788350237528414255841798591046595835515635574752804404167099043264887908063498002815750668299380989713856839722860313536095066355261991576189555732669476903659410718554137890976863599687886575188102099569482292098708808018841694522999726700260968593692817207494868107785105058767456985601709034204916415705166483362988033955972505591393438107939999770016054865871455982531493987762480883012322574505530099592324482374828539372341239325233077885140344939025488053797843917495187349231840922644831073373564486814868442535438800979603353859357166651374553092184877634139914054401948842636793003937042857472737456291805084761338753182642188896777757784317710205841631167796627565888785866805786499139259571478519962441034174742206428747378146101798238746603241629789326766092954483361269412366114901508493400929360500684039668420392298945109092726733111547933641861258901187914521435251499541650513498951386914345497140782014285981645474926742971385465481855423491391386065757473506853214627213666596120674999267108841163428492086289876246817099967193779258512318281310878211571456536783979823780406925425173671300040810280486684157182182652747579666123750314085502334626686930758093725178867807514139505938484766906296402365605232330941745872921258335476761586042041686330297861826112145394352931999181036237235399787183893416279192659988599762550057749473532915777283481956772619763811125445275364325326737478834361046586717387202221588083563340655373120635476323981003374024846868759308659301817803165945235240074603140629064805761811176523048655900111653280119992543829002160061085107658457641124230281319870420613502654974507915512754149562305315699975992009122051464846572044256122557254565059149708330498036072042897353683144363698114702517565040601960698925056060276845784497800859169780540949546323487332898789773324384766945967542510161893260920732078317458100083820232623034491725453665091592579142982356876272530800294130565417600871674535421125919091424446121592491027400681053543230535064527495827823067073942788747970634731900953773682166588673830120845180483214412985614149491478405959789212847839428995778267020017911943421238484498196957580741931649063832945886335739888173096568791240504740504361277115099895635737529278229657697057887520785519080411203503520136585762845874131852783411028727442667016533834907048949866392554219890836126348872723918783329742349735864117222731961929253576358001243985970751132492122040925342320481618413952569273130842583741620663099668800066379638951481940963292584387160564214171057830735192260649756399280534053723559131705419316897342375205948400088859946705013241790815882316923034731151840626681788052733117750188516269905013798283894213539889134529036872655486785192532379268185289242902658292054164346374073987024290013193116923879658801234367776473054195556599665335482476020883338649451851363429793376814033195941869598317550768131674939350475005279385619086189286220087022839626399548679753442156295177016726792908420970901933859998116570117666856620357178728378354297797230778286777393256737083380168676248871515492607551149146941154701172977667806853183964265133064000022252523608335039443025309446333822529405366208569413605341636069244320542350411999219331154894847834002023519470129824787500969764241135474659476406389110200760629311686885493604439984233443002180560668041290830447404528807782681715082197076456348970342489184422901378273918534663342043743307310902323480208056022699559989919867961533402090480436777144377976922412032808136006187860710995762631015291223825224345311488970014890352551156344338148047240748927684256941838448357238207161319858786543774518290121354109138332726219176480203603866102757762939655174231079900862410137451686767020302645933623983223476057029907546294171707393973168033898954473704793021602044073407830230983313605863829881398738313292395689351786801672009166928425921622447016647055133792036367305332628299885805243310142368169246727855443213909956691284693728833962689598021865171229540966091340660981965971461036264115383059141334570006324081233257323943504741283323777709355569739152621362979437915200622201210734393534094732243860100405935588503438889563087483688183362937254199675995185766598392730917975665205328158491696235498054626975507098554729536221477459074460306176166720764889199333860773528640791929513196233327676844774105224523393772827281521852844272597610955306102648369073940138932393106937192107523613515927096190181974057424238713119822833066479187518495649516170702620453631164340334962606059087095987772627734503437318972557263929222529803912599573279459302438201818946778856220488248745581995527346529707122855703770448968658317952668624436637854357374337083863387693185705734806797906214196869142085954136513049103298189893066341957792076797506975515461137841346774626763616258667965715014654780246312363175594403212909623281974040467464789087549071542100180851507477075091204775966721245402616633525382702414878781919893926555614838548394664194361922350716261152795227117818169413800573474339357961964858281278556333670382840574053610750445418218946315066324653058911307275903633435838555246986675236174271963197062158233452734838400623261260931682675306928356607731522399377664813001904770181393006797689772320281919837075435375890263487045392676059260437322802000336353244888959659679990488199685039581332044726587412322800354222029526249979583507197663557756436200942905372684804305468786197896985472731420097066029482572084348921672041700380243037807943067898138279239757206829505123947486974452524354968648902097419932793813408884435870159375015435444588992079897270048829066678094271033371375543560182036604746535555928162364145777224004596489210305903171469446854768976153469430044302723576826505208473587895783692446499351343500755441668471507950314674909821166136344057622554985140266287075453255078886351285448380170936999601110400800975701327766662190954872272182121150883955475965287617456976777827342978131674503459356334766994461861608193447613654106913087794069188858861681051718251953614653284741976959554157400493462438739123903007001430926194611040856912165551575366877796154923069313806571945232006609424354024981391774053300768774583379108349371765660502337309716989305104801979236239819560235070461567822353945005356088935729449325570539729707300739551418214612258348001104254324476476202265829796856823219568239147348099661534980745357209496510203078468761676586387481216366022596324471699411088694287572529001377511641612853675329919832155935941673505484298447389737620530277299410585313895893364595869735972204540677443788659520766718695171137336817402924743610849124428781156525504313537553422156442697776917632451775612667769399114545228407590634205928232072167057844305040033797846494904677583754533654376344144173147426380048136066172325608713823425595631496641309524750611508361139329849540340103666443250614943174343191553409384346581645926123647521555195171784262717601528545396162485595301213740286291978862343142061151629215309811552612981086865710246151224498952530063016624761534705472156201889576971456263346283139044727937907868381206848799349769325873500952614910623195724487517696018493902851067059334656227404191066162168157057164787251729484160321582479375698164430033925011813090761583686678859128271625681241453297537634852516529834454959763245462468249282389970950444685757475610201704131289274165964657677462771289185814721811729017911492458038290570954086941784118160592958434407735554344236728345046939610314857710901859016032794815223120200533842129963417704740443540950739835875630827762126461577658529045654144953817313443291114851316757095093920577298823592501394080752883112537428722192472973171807094181369151130464644861508089591229714592775687636527897009952345421349948493265368316620974670713654688603529310437211270542933711542314642396243051588625024655069702719876517082113581953960007685651137409934956963180179518102708674277940754227668312585091642257107447209069547380726257917417509028225110889214505290108130088805226099033108318144085184341605585762231941960123169947658709643382620210381898002959702486352789881060747771463236459755900297127210242201690076392612555191131687209360312820235205639795380444574451050883651427732301826441326172592357214606080846557777621860886880318853073342756439518357038482363471412260199028803981809788337503862672376986501257046664124382451398794705892796992699656272640924925121698893412627907635036547333856257685027998623354303300218629695520703841323511685650622699224714110677966463364987912913321500267680717367124091485269270437429882446822694977175193698587186727319430685580432007311418719504042676854493403268929948097303262783345143663416587987640207310695900923827910515635141813905510150153460780374851076184411690224517088667114185662322985545923207593372796585769534350232273113545757958950933991115436798638840434229999993480961369900606108022274303045024097597172409942648105610769151074238623954934572004900892131825632514400404521922927680283501501085955036891667584974757104958578404033957886078456085027654451097260752715019275436337884017215778225652323538774726300130628323405114965519185725575661654769856889910350226226742022522224889724481810492018190581646301262461558313597430852766456053489583335317077934487829613034625250010560374778411560089207363153437925526882140158540273471667232728526077732889207612341010047872967468122865225875298944646567174793094117118003615653911934019618229033658039285372072124758641905169253923014503575158325607809518784289164512327103271013446185201676303838113290905241461922153034444495141661803713250548646101883244780165856543368387229807965212137685660308955695819807508776390114828884344938346962394828180708501233981359081468354009790322416079052414283027444361939194105823199167392294750571251984410671548191068369786617797675442139808477795079191294096525970188642465834252239754332527264453684821059091686827767036198251292439813248442151363207841138661296251786622251158496053845648462291676266072333332459304966880409931546388843961053226180223457814387803592077736767378065451676271924925330815086514288429224718492512787957039069665137172344455769471540151071542015922841701488603565723795997809943010621794651001471669126878777418884835031718030940543403115916913563731068921412353666861016008349963595846936090720899900402206675046285945275101307217055376077307194938447773088852379791875101806574202218208838349337129545162740719013515634487563959219886378253524930876731644976291565135972791348198079840430148404668649907123405215173239785902765575238418170885484821697553290868785779043637010524692918905572119031368664253991480588100379492236016529838540891790515737549223534916353378761875220345318556631699939635102178427178780930507388648407863992613803057939245930591396876116221992552748690711643199834445287248001339302462566443432833925553240176398889801596116016916319142227488859171989707385176314042328313405973734250150249130191495537806867470568997858442709233522444422407304283366009337082459503830283265031494136964947184796251253513174206122728452752883402481136529660488367860998005877742660697812684116090123798621736941600355021703230095886003850853192686603067190315435750628732128871430867169118085377477978626724725783968135777180011797897393836588207343072112399838747463058569307513202937320756320613964015713401663891082348067606842911063960323783211641691313657628549647175531515375381753955811871652836561282416415511932787767510067660803955587066754776002648190182020465838694905411128697173157502468438171008624338995615181306333553414466514384466926834283381888086821041202663841740055483779716558330852734749209417304092128608376521994405690648881622552737175437205402317869012636127605870617121159258525689195335706717087895338234794666438704649178779310521770509169191378765586625301900079395575630604153364759465274069822298428972753714194900833972039104698344536591566779210414482727972219952274779413033646363508251966977380857222992522732997302725733950155507445073282546890733658835916807209834884296042521966862926715314417060918852932563174589102065875914898017603983903117495166807798446735703686601933178646772561426285980854292596422552677798162248596942778300212892009109647704346740904198537910416552743331550251982814913451680751562266705413517635133247125200800533497516100329875413942011641567797069322993828389142804570871700245736072083098316880461487081512177373974297560662865041062415165849968603710703342704062719505470157859975059270812244403132227381917705235586521903619591263319397995046454549849680188057093412658282605441094544159143941300375072606965594636457411725761102939514025490952822325724138707063738879143025309326847932045521347467058438173449314058722388054585419446403317323506437158984966805222820811654564048583683769635379960979437352369838530193869930570883244013630125858763331081516916986902675070558479781072118592939052815127755217348382929082324266515380758010656244838550103637562091497146116529549790072122945757294341827828500006768914706253692141638283909819203254539137340713121057412314116961426750417817160775170785310526554520567313222471649541796598668573367424801525068393083391336018300066121126347794840170556062695204632306500595445508282239291855273947073734907154958096068097823339133153243753324119285485891571590280378028857405788646356517603682135970457005714310694121505135661937284261849420727754680737758663085824880070463983262850737342469612033513715628899587385306227476313920710509287047007086626282717621915333297621821472872341963351422820543266133101135220519149087679659489546743312965955132171735461386585072484367351347691471185045473194706770651363802333961293788334241757060179845933948672547994678748174120039235497894945934998189567688183729396465250563837343267339074585341105013796715002768902230236889404517861477548871614853825436593965200912188244945970967940320711210678725227390826561981610772550164159285077258639018037173938826496368997970984497942990844973309326645581887881563193209507483435593228723540658489301751757995102771410032379565994602787197553292526875109961967334913168089865598972275157692373334728552278674301702923703269355188748949347676816369398789059491048196880498881866865577765707366919321695313147082565513827936651609706364738153179193081752136497624984453983448679925383237978718204546889814429053875536886995072496584307437860967436785622838741701375651081861726926138839052944777070292076625772496478532712416014122979511812979947705059779800561419872097611927787182483536246721997092871631749897845806172299417620601288865595625434531048147753257366706702205348504835662112506934221898259809497749567496609233950674924200139556652240738236414064002461805732004234991500556950436883037775519770517843924445062563604651324503446352507599148558561856416397173742074114034990544612228434112622252310501824650979959899962685688704407467937729531479538802534433416830689764924613776796428054974740997970331396799331015486611782812761800319141063712024333063973963224265918358124078138236323289897409392186396772615623708083503598310868549282914518920969364706136390523522521478341708133202419604791570102271618120910485160477420912102637407811411362355494696634654987868179772283450911997528884701012123133217357890779862410055484449747972267644429972997068926529191792169226136766523324283415413433768217021375201960243702637641164074115322607234860876223736205179125004057112274687706885398848254655481925235539461840569511408446419698732499447006348095144467889114321783505218040895707250258959484117757845229317322110715408838830519083841827758729093626279081815350691877162194889021939597385676493752596498569323633756947453990107989116588007472339266713648255841939752625649288168047949428275026340743334887685242649738671497408548707332322374391203948390167761531818425107861580600558093017906328261672728645379032302741612082016820263987987288540689135934290653430676968311816617338455184714863293825095765539811668263004809746410715025211021601563046674382454147044527839739339335386031598833972027184314437690039204242243610047957918414101890703666549634115053895595360308981917527290180828254412410344217082490958447857560217237291968998657954128716276392318711203483637382521450333811177653480497992398589927795412365906578531075591337238119156092847561466800035274772342116808107543524808031161347301838232028995244038790016650061371414134726435971286991701817049001938485311399250403236110541069198865914245324070056410187068585334763361555120264117942265632533369081833812305619318779054148091239722248297272978917554606477007107633503317562414570987635903483171518576371079249799112470460385140056039708913063152291274997753461537919974642515681881650106729535764850068814312036909203418142114891455833477164729270677660662197862045875986513675320729974322310756556193586665726818366451759479190117503370281265826484106701532341560521778868544760372766403670882767042037379281352723655761321973804675594953442037531526122290664840004035903086211650149197397470201289198005338287177212769869572256940008038381435857270225987896274244823596185552474437534221499516484729078548356775514361239410561620391065275112681196541530373957587208852217677048020622970387810947198654394819468652967430035840261924734009463598356968379046908315086782241215839388279129145936231140540759914592375073164809858962338840724399524491175565550522305977741319703256081936575058657451161979974746326221985972418079922894675338561568030526069879953792450374111119852642534367517174622920377755383389926203100550681508381659718116655598091511808279442436545291381795369982777474023629570467845563363702453082194728892654961306846799337747895952978133027834421718071901618236089374636899893488375706870724954797101756464394194740269034873414539099933642544617049141996088252464873797378600593152155052808182633677361942409140374623788849562218117535836284593950704376631667677403380308071348143190508634868192398944419052388259022108154476595776024304014495373323866576348203739946093108201148817418669542869553773262072096403248723624573207941913667491074509862430842910326446686056326934940066932341292703199557393377522638598300541246758439375630803259002502891562037824597075585698092608198840174908477329607214924169326759565964061505210370040517573661720571521530625825497705844668871294374767268547521090409489429937018530491766587909809707129899227827971014930120491918220753611854871459128812212177841455068982658346684901241173086725224808635170615646048788519532381502208551862860945647787727748199119594145329708582607564500622440380360242332618707979545174830614290875612439787877076337430297003924259097550883332960311087036487103997020711247958656408402869006982994296833855940835074443987013225591570627985053082956255176448348210784192587058032060323967500999287290269835001659693883483994714496029209273252045518814856903303000810577600174549622494060956285746276917744055123661363414331720841776929454922257387607021478190266841594345838707654167457744561597965150194284602091317963897641434032899520092585202045645546983783446961471246738048566681801917599501549687936570859377551723128540633258975835104716489135523562840158920690793168813639134966005605076235215556220233320435506373603594483693587181372947526524395295173151789765609182220160146117481417915945556909696336372856374156928523273086835955887078761081933731194204007537070859189625040275430656284649806786238854955895099398552167196707977691672688321950315445835982796671554203339581187905263695834562071614004951534020341008312752479649692106552979605143038897994054834149075246204502637701860989749552898797973321948095948813980782383602470261386949709630900069177804830194357319600266825866082783659417046618814273605240390334272209612451314928815115895513434429096365725052802135713502031190029531103307456401368466809978833187895119678235681930520542531713308147102185855951584468366674124350482286457016056629428334959332454128789092289296459136767824154301896786320373841927338204476703212986787613891744941285623298513699878882321176605166626111996201452860795855341722359450150764187289536715242625436446658628261400114327202660056534979963423237622931823536000671752695678157184487287110115773035672082079125267016764515741520466935647329346597582895985174318879473694208087539471750475641267559728621202561917241669633954268808464582297883165432539221455815527369401738572504987316370266445768643050047442958719591233876406402649339486557911002042250380129090121085742973668587508434258005432754236896076722858984181425993717738755551574394470129870412775248321743957987385956874698399107828788096285313213469147235093717969927003305693250278149686255293314831647235761146795792870162969950817891478695618025029585441521487210226794475715385172179919382375735422928896231699613813913308890295311848869432213384449566732602547494919411445362659906322286685744551617867478262029883941507670223569503250403601946586962910988024982906182608419372840470065896591556247215438605103039056229425063922175997373256215389109949500379202450272437989106054547868171071776709449708731009862477966336887417630581492189052334492634290518025375473400737502902982179162010725370023208240005666781746363111676597033825136373784989915368203801466090855190715096092365244059703304196431264612858230444174786402673511934323828956303420777709348962150249413709583590204367010114389680925646340832714471830695321298415184451596233824653166135297705271692659135778191804085882212915770176665013698545053319947212308196631100222916518859734792154191496111567052227952063400586468566891555498094900232217008638218837105782174327739162219353841798527099396649239918511344333169195751247483138731783349202539579001649859879137483111362156298463461947682461364973015529078134628061278007631909110297044377474541640609628407327366139659631015929254688707326674480519457589104477790649560503558828696483264630393578690373905554585533908767056428761344052839214699747381469954576316538157115948226667974991634833217350623999918271239327298183618325233866714770048778211624806916441772376771900650734504953564087912869480472374951185164122138349625446509110903407244695324213083002078943220050549833402412469769204121016595865304531472616663029725814200035826299359164414011111868312649816643122422856033494094655005205835970846286810469730893667088655703390985959246147146969714774334164103480281905674574465952612002842973777522616186178393294224961934133461299183897219705409414714574329322643544197142814482312709163500048739486964595455828401651764013443094069016989545276156171029921368424495077966060498833348327307566121988472950973647171464525079502809517220371896305499885810724168662351785023626191209188474928642827385606190777209840648351013834733345882738254243165844693539013467447565324140550660838034833022666054036962459746132281736562313172262069336696120692990145031522122975069931675027318644812815286023001615469918790629245117929256999015191772651657666362079210844527643231695405618727464035038784517889350965552130466776455592253551205504649442286855762772882340593128077176088601117710406043134005642984364203432464082025003661685594259345146377919354723411451277722203734126155648368920107733414739651709829457714683904905222907908948524926243094255690605830674462588371683240652384024753246049702156100417412545985802024500534869410173148070013113423245549545528064852786065700198363305917877276486822283692141484201335495126105652271447057986175692769432683748845741891874486453862451614731750042636502898594545704693719660237154996603633320909234643365383162398646978507926765775074925306000379307415913364877784879329000368929985403484671057190957711992849038112113193050755577207584130306095382951149267297795051309721209108832873156374520155384891563691078180965871988645482370041748482674011363272428511033452959236257534464589841380431132026980819829904737558375855459086153119523491862000749472099343718633869406636481012912430158389760684021692682682727298959787158123587437260679366833647085725759117340083926463999227634188241526314568724931091083021876792780515083517730041094344370830603875766757492653708109602548701545715459496112355517312391326236922732344526699933314889651350798841159097721578788298775337230907483644782314252681219719387488235981150388752169608180087971500157321232444322080056006016278665133559033426420433668085789496545524495267785634252955620437117612906611743794952320720579934426792234533246865267386039001074202921461849931897471526852488127438475587903129785908827601412555679511176379080360114654831451241800332315978651060654224008630748920192899662643831755612510463875485778240396947642524341337161385890738028992373034262164837262523180818923558713910092213661832070943779016114062503413236273130136538574354078210299059863665437126567292951779149595483911550028353961687195447915355234636091240405034387338473873602324037057828000947422798897204755619275442658578264245572060704011768120749856491645341908928192174579637226942939416200781259867930692776936024401724711000252639278974472263913844152965405198119477553588668338911415886801309984505105392052799201137847266863021913956236897512897434969573674420670832399281791871479914847626154639671800068012966285409349717005959548258190599611245203536071026436336789252009913091666226159237369878152261667825714846146712121522180950563189485268580727184317816862824393916086457232845158551432340971987606439142936523719201222123392405068012559256492080014645201775174551319889903266145291846632324351565625023685030518675544071906895339769456072969133317495000567077048690237746611294429815794604300495512749362125893085273351708342588025307789685673108483787170826781240463143346858699237248520426825999432999264707606788016309905037766783727431636227860512544287137953020039044489926980176030299949120753805681499846752039559562100763041540056502432042795650801805409018471288026593601937302287756135252773603154003395169779915819165452425942722414531984858306767528822000756347083564919274958080090590669652596296662520019977842918933456846145330928995392749825360816362881572410992154237858490366451669033062851220018645755484952619848036927235455792444642831164166237986367151595722798424101318359213175973223172787912016145954479565276308434480055566990680871973352813737442879391420860849915527158360436551802984658493516616458188723026723948652596934621047688814206728806788806278297754920014264444676477191428100388465331594740340937287830711551825812102605890171660143312619594857899787675488776228296789500858679296847766299239224296404375486952218761504585714448355421996936539880655320772110477841775472273142956295434556936624263033933450374969516610859532611970597615063101837158840413480397436712057729678612328826376115998157545417086366395147069474860470023154941566513214232000623699028785810797585285499889321477621333634877404379527106000456367078626603887336704166471042229698399641983384815778681196762986475265160314837731274772880739941590970769499886437406744249620483308104966624946002722360378672523250472021633483022677831687426480998523614316106469172150124212640077333257789792605874873371252236077291734019158688073104474652732191954470681184866984435533213664928202725331254880724713110286048061109513536788356246537443388589529903434045677943536297746495396571533339187512764668512506818983611572621007744463850609240359719588194944242424133860059711143225213873984168173779946120883211561167118951146267295041030873655362548393405005508140193120860253668650804463588502095286145372493537535110440428809214050736111714685202562358557812832406664931838788463597856491527460018650023171400691828628562189028639355078923020364655386788766603249498214528394703813134771677165666123391102294546671628630117228778113244104890057737358448271852322892606874237441567833441748199912940557359465180221429988609246633824820780451094940705288256705709468389023837658380934574466562376090488687105015865538458079099084381173296893593613502772864189888706810496946406862399166441811154719911217391955405365124772119078938681484392514216928451321554212808182777314855722303781765315063628612552917164905857846363257656053987887163660087084224372993228175889169472934134245940913545328458812469854426708298756078323139554661382177992890440794742875237734670560245460071752759686639066019985006122200099940039381856947071310794012489929829446171741924474636260723171279577717788282741314266296645290201083297507098746605030674667888538721948011978442316133470006386075615108865327642886680624025686179619372341898102462094967800491598872599091473258814875178006925503963746930275388420014460777743574186448206277811003074183122604901023963088965219431927784939898771053670603266270292845620405054327954850963751584242935913605918202471698279719847964838556192221081638902047004254939004121604074719672505096078881882699788057175053167320744898554313533534099343899250505267276611468087094854818956975012408642214412633383502289911858175105451808183071323135827320544894519086393274471166621294941938036523896847102924148856043638761454195597641772091327258153310246032830507274297314718279002355754467773945362523033448055389717064098619732561442558329149491844047864066726238374220179384370713447060397048836708145276201179698170514940010673685739680943306703701836385498054484863449905462553819483864585383681550851884336538641068170456132257813267138056010451587567436473180376816578052102004328621171444135107945465336114649877665689845235736803993720732981794961558911905948028103825961852267436295953770035692751550023925186973806168531676540761592592190886367201163749014543486127594731992973923436926219529937986484859759348391376384680527571311218931304230610028341010801043328519638263717405664585355167832066227735337337252821154550568975286607472337652425110315725128947100982165491691694970131221227829790558232286756132466095084505026985149070331367601807601164310928528485342279678803102306152487648937723314461468652161193890591411387242577498217519972748948655441943130543103775069940706834485178543927927615734470338328707789485888378788270658690485506737839162619603720666884264064342135751839558863719718385020685715926213137439420021498558391979954787535109210182114917611650063630987214444593504230865057722410486176084114962721720034304381300503045565661686153770590705061310870357747631826014110707688347263306311588043037621573075391758754793870782816736702846855752629727462031428959105473848944813513843809178326152498528024802297835720932642732850210685886526973020458054436895955995541873138134444315242763680728736112142470581778067556333241479421924165747634735787724919256362026352587313828618167029957415282122191677690675577640015248830979861290210080824019434196406847894825529857328131646566827635672872101214617742299460765195593784715632415482901047289548759975982710063051439152251379418422053905371841878376786455571144938812030882248537670339603556827955878184037242604071492065212611789341105768696748322086372556083679160509185809558918026693095964301256835415882194572031972315587841029824489121545250664325623489553536403049276896966827973118976055218050107455420810934643302870357696836122443286519350407227645183053871922004512890296967126110503324475888441208782544137446058818373249618793114947105134887884264094876093459004093623634849177439500560278200582492518266478657735286723274101025062337014441626730944532482571037602622832858196989856718371729925718636059626331435959797804457970991503799341990993770000990355004130110205007116196625478282998283374151822346400693566251573443504064293569878486466052474362289936432143225139225115421684887842325547037044516068642140802804277009635341437344817985242767008856723634573489877447739218221643728988197169960403666940650111406501420952751561586117989563296547522621937078890259838430483526384446316927638435356148901960269747043513804247063271623023548154856899858693440901342451204013880439112167679988224642643348330163286017019960507560534660462430587182686252400022840943015396281005744401183378276699455731770397633793395082127587824203993880005417824433980263087748805347614963612084299788482238694874172023269502649383490544616212419292861110480864511532705980356468717393967389709138997469836012324293446151964617015129484170996636709266972123605165420111020775510536612192863153649960537194911184320483091762044947141693875177740816820655348440710993418126271956590452308783619638241585959347416586038784243877599647252652580751355376760601416095189637806459417420565158570132099408006842285072356510805360480313204353677638485571500936398455896372775107339305529023560978958676044887360926528174865988741115670169949590696575107665490540091535583629272132715927151633318935223015179279392370734155220439431305920445471995283337232822412115826642335032061958441447846975416850450717137343035645648189929722608057936692947656292222516716330498503285468216243547704770496869385047821015457250717940282168733546792189745068354801391904695126562921793472849780474686829830454590312177545508550562118040935217832266742846103446801985945697541594244560091368916709659861639487983974509283698707220147129101006377585725857742177974044305752230397510430171973414544206323326864132396167578656819430960461374827382362148176095615627295249667144726136688260681308087803045045216459487093454928599862547175832973878597458694673658897879977507662621156803317202632037381594838998859157706414753376137036270038002149842723518683695897245130057520984220183296208782916525881421014751813456063892015482403158435146460201059587947939229549430905912184221233510983766181956027497830337811171502380031072502666614853418003399017302639068697626577262612765619915932838468495536126039030909866927525152959254513873936053219835230348988394760011197187128562654617786628733218039340662455824103789794708194379406073139851814259293854658181698909339003946282175206585144605702953357511888707352457797397260975081407044039613342407874529875554861515746553629860323708901159295663503257122802883006382611307482495646146656955384121639217400712354581710534700674818886610652553769359321855475576835929328159858881215163202701595644310618932353852767592879287918357720178098005777242140656995881072081211654652819266935600096335323471291751605609829922947766668129593944041576654814160436388585634003844307755894977626266465364754709934942534117492617581989641369587214539763672256021983083361505682875961273965829035993101825661408132134904289739160863025099029321402667868517706220173880945161261927105806455386149513431646498445261902395976285094426368019094608685694262024215483466872819264518888185635906620853416820004635238696024975014852476785740135574228613166973455750069262545420590183623535620834492570515340483115180159863806557903362032961556238505939263756687426844817060581201572549203739675583551119351286856212308452440735736856928777924186932819114537653633662694244216134979452940572348413358448088892404458919612498894134346851859168687459993816521956977086725424002965471694353193802061293386825934391354624715533576967757367453939226230262464047893419510694628626152265661458385100305416083105078101450710023518814970415379887561890442323065902981726273039637772817252863755740861918046243873969794278336285427639126662169748489012167137772816340347668419000957460992959736892270609855607263796883677135687367711767905738056585242878700101149230380092869992116869027380543814111446412353109955955476723704961684254884355538762504065137110124939140817823572050371560154903151013502765669822242157441725483087105145546013600968960810185929568508842853749838007638428748791289982477753891107359447846427465957848756001359985950113659097975129204034693389560533888046061069200264671384720554275002669659056411042898232857470811144692562433096990281922185678589861689715525050401658917495386426904987020679263567535837658656839822684980002116888309271086510216307029803790695355720931011835562587297538021761021399803083376876623554394138767183760112791453137609878035587329516998743032889524749695583794455093259166997999117214395910976842480454822877584152768969510341636722313606955429461931013725036027553179004512737395000417544534329146075341110619286880882180863795781611977273501425455479952864752311189141662859217632949069457093717807698015515266182675329858276248493655703715888874959148230858874696948702900483771886416462839798484334912371713976386168511585815083332017624770510770426783180518473566306163665486074762991512206747092765824221864044792681791192719230036084244314530983984562527844711594746648066056049524209583887382931598959119201821862507748736590650257257237641712162490930701570402668597366267192035799191183652710493065905228250965580816031584558940514926860458010602334494342366883871204629504794736911983320862927129950790840124679502875991081076190081231817757791745605419628528127814239937212547240200163886527214549557342119165889326966997995805144840144963758626971908583005776698201341963443545821451441678159943840737055667342127107983490410740294693258270837338213649793235268378552631217211462143200185411012649698607941512998336430253903895720978238670563498029693918574335142629597346438967632829423391499600215737016109193793319686510756559981636459103430730530981971605788494893946045390167357207028184707222852921974868879568277003695721806827380443096855881518187994012355313230824149855800623089669514802861590956429485911566477208283387081492359718952176598431781443440903689882516158330549841668385844626922607773009223720478941560194858253883459056003454971534162720576163712463785776407560029506409536127899687312134753701000386311964745035121498933495841940804507619206492486583276278972166954341187980775010089184719565720603879032282138666581976751814432278903807367991388953614143532692195533648342947748857864687068705594586203378267721430346776354215515551112588129890344620474372058894645614907608096116899549482124081995163311424987190141251902007358499579277870297082738673273449097133567164092057095405826056106014685610116904047794579823503032070771572640263676191299566031336516055065158938223185310208052634488571762818697779106188510108748663808114306503342879088042671230312022505997814081484410379802777740860483887538316832276797129743935505082667173147707346741728201030156173382823224367604134664298749708822808718567190372732070783723876493765055650291577895364655644353644216810261351120946225862121900450599255657424039561334649882116798532540699516509486883652790760669848887852296234479991224210024643213766032291393175977728066693482444683965054565692747790443562361968223945483213163107867298939149978976962546249183509571536997340740887579575299815663490892175686774122161836970092190636730431431671392144417265035029479926741170373934377277438826799200731532319912525631960303890929409127765614887059931840618434824024919050611996684633667156229951338240769109993182662785114476557593778818996092743131375570856186360767196539989086802541395055180841920767103366648128336083809195444363249484323460892995899892924984756030624795462337976478074368591731942543097677710205659651507534171330918370386625755944083046686275375475952986209361633920985804440133083642156639205983237748166831378694596180866582784734760919508448056037010768610331556530711468682524620377169819946647115122129637387569108422900328589073090356185764997470836694976456155841011957915095659096269074542825715041537139215577567478718198748259833004134926011570619613016408547547014631735140442720327075467280979990938920657802834580113822493056641578709244316201032026468527106558884425088247423818927092182166745983137658847470385780966688650116287168604857977920543120753797908395481384578855522235033354439409655663517874455088273390228322272063377079077869133495086289042329621564607564756962524710003406996087034439153350227756617322364247225484458726076550779019687173830685278608542557516087080766802352672736678279351958651516247800307638801796772686887902533927770305519781621207656921352297138744721096854725379754682517419737955230742204211018591965945245218324831617632151715312592787941263510739672387892369231211352486986612137795621711074627676067869531014250290735024278453969932933563490641069250150390577794488927736084167317844067178287813451171565757916593344284472559275803308612236848437911970213691194873163922986182641601798423236220179219148888078863410830381179937471990425031272160041253886965979244874540958276419506466365578836553976900133752638899359415721779760368846904794767653483617961131391520570029423922155672445936565097425511964780743712066768791323233340349054723242022787322902859346560403226577043281840436525781902410967192921033839174268938527656841510330769667042751788188129591520684341534559835739520646373452628508926682576049389795115713197262773343086810037211558863517711562806846462846682876754083349400734701525404338255779890475666675066576744616106498944498220493759718866830115105049347565961539788258095194825993461571741009893295949389501564602612404635277482224774246584540851553757074357414682638231421513988712736514417372299298632054473722194556139201498335334438181700712124846225194536017281556156953905160644240137347080136754919284259903981311135961690132433191186301319833788926047985820312465292469295466503510675442201607957391194955550842945276584180111648197398661997563165968331452191190541640818956772315337626267335894480811352308983726017265126220633312654341891933037420745730072077228445455428499212853205134124063385789544398353829775312930169228342962905212715352288165754954484020387934737052647258334673438445035142941184072177426663519638661777223228924581917369428245019176419906208517814443462671385532688247169707246276208632656103736032620802692024789237439249401691081033955071563415077948405681051222231368370183786542677852460696814636568502668019475705454956288693709573640565175004784631833818750413396298840320695706007338182207026219284468240929798173407858933538253781490021493206713366729795518559911686054401401862805963414562647950843634630036029424506907015669015763484663044588814842595419347449653191846450297540627784110372287377806760790938501154261412440861164050226798820159374461939772480193637366370291216889148551861258387868894403611276299966264569582745081879725755804452692081867545160624451366480848262825343327783377586917497689820124949568064139888127097325260197792613150946607740815290080214639904792222922643610652199348822619240001256340161150630707165865760294627431640024497076374411325707275641299029000260799516470071827455324107503866505516635474448554275661335318223859747275767013885839293127676674975493363709467262941775516977253031580308918981739350528062376349291334023391188365125246080313353188206059376954215841237649180005696746990552936308621743338980176470285300670243871185946510718814199672857386213908142966293095308913475390260065942462355249905254278504696966334684882559942007575745660072546621891586964213938571153996045929540578232287028777757787289613897526589832374597395500431321734130954436391849900779073588388586679886156869065453322409051604565113616085058565520044355051236956177360545467354924219107323446626882899619951368623381645017914713240581018747279409819649793818000578839495836924136461109553157547388891127179614994724222196070176390336380476200445046621775140784449401745257373387971583880374472936301875399420526370188570530142992652745716126841098299277762265423168839772452670604103683424416935359608816271266124040458046020227052833095655397791484920248728626196430401425718573691070456398273014250367572459198264297679162309992856645745313549944341605879281767497337450664998608842454333791117375727403792464333663879311759730110316511391994000781978302723153706140555535726495601032332440369569070534020852509025046064835419994898038204856216270356926851917791981651479587253922309290991825619695306084022613952559049743945378220602346664124007022666599937053777185966534941483078439963531770935871441128498003249677261258998339569496810798927074198572821438555187580913306318609661211406252658670181462902817901912916614208890602678557460200653054656809445686424511864835730948994103221236419174058921422653457312425263759628789183924118425426935801117906163849565067092209313729667317952027544531785483111606038837192839564114539379494467901335965558032419065495038857906459020701357804296538145623272195194082540282469422246004956257622197043447337721933201390487349875254854567671059126566767262038513672664651443097132141237816342828436735684307322721349058369699176776098848915789191837147154031357685565474522908671833169058623994254393212829630373811130958633462383744137313256042532216326911416933784667172033789651397650786978622481786253714514677291930799492971908554928700604670525048288359538447048323623773604269917968457789755788686195612405477229824320627745023800444529285536338920907183952662981271558266379831373551840730183072218400070756069466427299498833060091203688964247246002563857267930668931557675313290836535349261644233279805462860103045662650155103334062127420744786140947544071073492370501428523653785672505399704544398591449573997291992376424276563514973085271728633553895190344866141706606997172818511164361164434013492980673971802365721972604179371555957854374851022196168693169689688716776569221000110540733635223166729075222738740565613637429900433536154455716094219522160398279709294314689946681468827923027748797673522656121271199075190911967837036242344265362976917291385654709862003358235978775303444486689649889001464006797277641575744798133231607745230654834323254928639167888158108438101410560254848922901316163067230420658923608755243903827212424725031992970095544583716528148891180201694939288331028345871304588701308659975950138294606891009211836329069262674454478014487327660539661369289345960545568556280420230647524712920794118699815726405170830340696652012647747634251713253647611094901224150422386220240053020340419421699578784331550969603662539510549972505228778299661978167357149195113199564575025677278607891238611821157718116978428164434484366328318520542485028083364514859019446118239085383667556381744543330905648066125586940528560908688583363935643749181243143545985820165772615348913211534888779907634697934717059551297209436123881151920625980845872188253723074588969507084619542063025527205860397644966272631317547180677210410156766114950525989680262515574065098943476250981894797594779083807688229689110111957536463416836528757795670593242861684136981042967070069934578494306482815831370846495352365691116203959856442758383086166802473728650308204723999390911353417388410387502441026422647703216700627799564293250852434085803362435565788779809940506483530860575582610373817232919306512813855606221485919964869814292605493226448136657252101787962743753950444427113529582746489290974097776058041486218299901406764422766173480545478669028626496773261987249124606230780564424362259069660394252945541335370770285427117880411355447072183363637373445694659152717036816555812080611761253355914099340083669595798070803296439029077880219818850904555236303808346802022600198318590001448755661430264645401819659324457746975249209813870501088873693032676676562431585148447755432399020586989676685545138542924576966632199961315394245151890837738622973963626778880818012167729230393780442615393685514515900780769110877901962245897462457898105314498887765459630023503153170533855199329731193378506422808131282883171378148464676726338964841147728959109280387604885366552915740984379250470298049260363447526033407918404727489927625247580100885970959700572441851235841516595430040216203511451106409294717373052983183844717906161361670401279586456846937455718037098036406508646658406770470192241817334705019455183417407186284680133971589309673330699470169445771971764869514021318108007944692697384713184518101362670329632283444284237699048642737801141710848390866961577732512691090007389779224354167588797000536165898662649886031647038916671461899369159663121933144426366215173954139959663453044995476944890244173545674211049211807593080558106701938751972212763398796040216973095725504412392507645581103519930913262386374809739193459752534149127778245562698778000158601584640684214114324430605294277962879740694722642053911110999823925019215986063035889255766397985430041080285359573817869231815821081430894711788781248284818032898938484446522860883537662253265360406840161894489872376431599530314966845822813928684613509015455589514999764495841369953654190018170033600796536045009183315818112063472502776744270504877241953370002165920741519390982717636764986633924445318590309090321466059638205974357632834106499176301412449477025727292732164368803126701670662080538516774733324267732432099357426658106493900215195848516304241045603125875313361352252844126872456879583891444938290353036912077303125806960072625049644488637872707435240717410038753894772330448170152431791066016105854456491767461562315175563979267526826407492626985262979768763037381482701161009317599558073347271873035400463432475365502006892510943378975285511487106739227747778038526411031936333528236963871072802190028496001977442813607660571180597933771492016064393681221103037539411472209738042742316367860709307883131402799645007062163258754948624615066446864617319044388777444590966790249490323402940438061153138034560070667549559946593846490650027490615484194448416917279660531234154374857691895926006271180411191206664499202500434664817484013171633362656924084788424307537889165016427745357629005483342034567674427415779965905301434325173300712316093177290244390172052292841835112196566915067968396856706231296973685479673853326560978044442879667718985668544133123323515533103773180470723128222972609079207995065256487185356305202053214854468761042896635701540295593757429992866202397206855345274476852112656620456134101469281130001969477822210169345125754449469693553324884207105901960284234555972707038090340991859843924564760233503831444242684948212164017012735133794787285869396099000063967661365773373619650756238046101597534185157285011605347103098255951064908847842645403524349048073468782990152770711759629353099615733690285374893188865921467846752241441852873770064802350930598082530453289752918145714291840008274407958587814440060644219477869104452424782380149006460882238054587527764746413573205100131193006944795979056796375354167444438636074995499294008898146616759255790367280395694362812419431471887847485535733990011407520861964708704664785319825103341030433261574804113654899085658854925146106551874389961834684833008197996137546660834083885945133891909475051703054246425201068669575820539633128585889601110031074776495105806011022056666219543504837062567289869687006186616291689932384770527790504815314572626512867784444441288599659419394202612237235811979843220439291345669110685394843293859213463080570260610739554578453812243295264190705339927343295478285093065067079853577193407266869724256099491986132014847794257728321040009948284136360663761802791871081940561144406335242497151746312154154975145308032503394917449057852053827911452658841082456896358440107538223578901324768309296702450590152312294540822751865758833315629834443860375162813789045599520481216507438562430660854918368520735325879825271534848797231517272162459348446887084968027376121710074204894804319201882289192607935459528741897175483696155849099621704451633463932621184538992787391667773958418279889972119504560272635064277848353816052881121188795522759971534556943589142278368558670319757365428043861269508274792965505696244188843747367478239051576001760457102945980735449902698659216137221851315373996538794486355947493499321052512296620689218964852768552631529030502362324533313124689155333136885045860384353206030341327317517047663144327711801925224868951873244505485759189883813031142781407975332336855374879120687113725444181768949123350364647038674381286892872258069226427066899809221315616578514575891376585089884463186648538096397094602168983058485876185710406078400149748211428561802110657510774257985423487881123806157219909399263761450778546505941228340769455997431851037944671982150931108045924182836663851238738348260034435307340930297734568180323196126573724315265730717547710527357664841636811772992994828818765192214240101922520139029732614388231336748967873616003518110709452736120209664913390916639381222308285503444788723020011206677222029998751057143411324019625238724083303751303181583143115122292907171045190128845890348548690858053070603715444981425937713087713091928949822016109628549750269566829212319533385615951566208991313474071666580150800833684738781529565205285630667062556398965671845916851452528288430574937591577296339786317140680200829401751544284639809898278579250407336324364914417109936518392923386788355623454545276166677422674871609982899350914474570481731982986140075319089047953746121888662909204564531431930836391537775046993229026005635120710635390807472836204945228264713853266622482219834308373155900207665963627686315669497931496007342382086550387739403550148199444364046228921590883590781146719327129727701728017251238391243848169398271726905840531700818330120423846381914745387862118237013596654530113279384106398781614560195523143265379211894059498732745450016985130759442542591042713776013412018140518701211575530852238310632892112633704254593468425703619189920096008978637861068090825172887148465060589710810487345976652771050598099067269578391448938680226981514916947066754558007832774967848457334509167835722901869240679990884842925018650843193609227320205603937725220816883765060648952391846089062555219927735640212362962884283932266314194117373215725108426412608442478593881253472215793443552649917143266647183757739153258998516050172343977503687495245773935328457899354312005947660670039108880481558911593252225814413061285986226693823055280325378487721077862275186237415256747370454536414105136704940155764604985791748617516726133668414836752951003904655282714461635621560356911126575530458367824432588203080265039040010280995154265221005163445757030993222664260159518956576356335483040921797378115418055316335334392993800717785119102527618398625169870268832915563812098223089220141282235707785632424769306778648207336493934542651852158387952863335899245264165362273662271037666321825766488447578287146205382327831164217791266840788090925205057856282245573456943911121694795052737990448728167618118754922508823686889220513518656407478176803767563214215590149850217719051862164021037920826743567195114529997370442630706198840996520176920138329329932302176805678540583171945472316857547795029454542272373665613473932784275701145456315284964075889171949199815292084800594443971398785190627584600960519711401454428631362819216691894198232231279132236150349976858033236049172810714853878996805560231533773136680929217658293026132062746008425061923341717175581138309373223024199442648556744634571651972571900874442162520806018055407664054582967918333672058052068069722292243526946093727045511162282266060257984055456291081576779751941184015550359837564699906449500916994961997535405272916801187476631078563699467634618796163379730938957372538818340473686132795785913452106546883544502762867206397020153743657616791767570085394369258952636765900740891489406640403349453364773853971913736030987817487100636022550690835454464841951367210188534749170588609270340931042010295082090926526230587023040583412695146334835250664097010324304971755685906624735383288953111231568416495911243596940523227080725574889343837236778523323305646146064915773736479037853897760816593587690834486995866957145246551692169858835909882203273883310501470243443816791318033152899733394676682447425729326375903853282032875941726091320576908790655007437994150435854173797602664425396678271491634902247302192888384768180017865892349795153592096058093200427125812885324442547117146910506331661862882244893201194324016611017669702532027175880983016914362871820889565355012017113452189901446919150784396648915173845025864305382539227607713333321545433118043333191426001521691158307350600991428569247897889663745569079884792491959656786125382592413145405568553923447020015083153639354230563478153555232731440484694013705557973738007058350010887335441950352145911111935920233743386878275391265764920210365042196457925205525223075158624860350458793992009992520975420271309264884612551838071567568500324549932110629051754427803333173262420064165205446573614491345345051544746888078867996226842210470153100364334717120026478674472547199851545528242237766950367244006492159468600190295227657624210209230857710620281646791884083059320501787704724102249237862886694431605618780410196630222428566446208464012888656211542931987641516387348902177604514890926851579845416557380513366586759469120458198213213237264448709933680751302376347496826261757460247360052798045811150967514918333583409202582462521904296516401163454969715493883313711903931103647713792546854586952413008170293709786936345831683272321369105373052099894236040629714271498877597357272200950055745441944317178590625445452617236838216837461150949363959741182304085262722745336225326430593338203260861307589178017115754984989720975832707705011875486035423673088324475645863013111949703187480945665082652007930751599979155688475864153977165039119589374994701708053217888965133105713361730616362964049768019722695033311180901641083781006553540961777513915023079564279047096101878091860245237613237278541556455760591583877148054042508949945656535455826674651373182872894750368867588705262470787070566675482571571224715739551231218115559181047067121998184964044941622344718189042470812255313805896095275066042956046703677044262114033537103461994297300483618674737122803950323053219318562291520339879588191367024431340279015417170807486433426218647908972236912060273405200574663005763056990483381359673386725306390494084031296447631502672059494768798066573467623521877643256188454621045659141245642176903337248537016799724255047028429944798967034463369957438066565972788755075456762840072232602067745808229646956266002303048441033858590335188476459329141640364125875863339810333365772964394551683218162698744554926731257446754627909956037740062504268229779961816711952156064728870271279574361806880004161227112885736159730108404753399094731229761569202869656153733640344284469085040735559934622176553308966482419958335115562898639300778058565311000963703064534631370102471385121918799203826327037949257930917137009393234340034278485277180236157859328679132632342567065746684133704888114509140265459340515318092578584100768144027619772857431691917220815625705485463972104239695584381076719183171058138159435631928314868727455158119160347808451157978234554645623723730998367830260141665452452676388702051072715989704041381682959608044644074209661094836545740235495334782453865011099990524863177687629899020486996664778656886413268257182957809269998785728811010715730503007253523173820097109776928995151806646097836843360992820483806777110614429349578200112006347836134139210009297543047154833539216755118877403770681152715218038644595455885520119188319732245165512301506003877423692602903924076246638348840027062200482352094304908647024854715752673558102245018008245622838578215032591140962615578820727985333039792473870026039024253493600162122676720332013084719230730230258080882985122347015143781947475211501649516898675498533370571178531557845698472284573859379355002923077658776037033966880323854419954272466179534512905447036339873940233465237148415924763915689926988820471936367927908285112685881662323858166078095668793425079755679318092602632124323178893800597234553081374360773411094949992122843498586876935910570956390175171308693769154596543728610479322602544578080329693159834041660597829360932287805764498523292886679645950724936385571617338054371559711757975960882971226823635524127388648051477537228392504407410495587402116503591522358833394413418088206660688959948484709233679582640191844974931756809569413076565959162863265078299694847869662202454398564853747293517817482599626352688132880768264390483978546729247598647947258441378577054479316564870888540045568287981498893827810760554843253976224596939540985894556138144837462804322455763189506183340036145482129263394358016462390383326464333436950362108353515667539789538986009014148756320124377181725510864575836246915679086013568847304687898865201612823793302250676434346047018714882736933110846168374158501853146165022129191871975808108061223978734016163196627118457724350516593976196829031450135656144516213377841243332710859766000218143047106372736049331748942442604052009427366014762049709818443666291720472848752530061201370823972416469956013295320940355001516074208239005561790968106492778944592100738006561305343920911994268862906437208945553485696605280109340991885858489599475984131368976727259088242035348102622048126598663669295577919548189371307485368483028395449886693727907862910638640708623690398044710883424916951522044275207497023794984032272283139073723803751429106502610391987806452088578620757068155328342804598596066560275147198543186476694617314928602298086871468365094077385979450766643132250350500404952853174078601501767778672049572877275834795347634650927426403172366249954461778871567775579956902480474245018888260109618792454122455110627498267008869394798713226534757513361772083177459149986490810147873541644932468324043980156036247184653379788891183931507314140242749586201989747322630961618984018688331534521079532859445660627027897920658191851854277478133328064035245054378728342538991112444655124444748804130548900746040533559924681592283239295293521814883907120532638801886761061297655788039100934202790942895870653889676284917454199343797146093570842732959585290079355216624742747884848638428238851342296899478092586483750717431289674559178479582956126430274824062667979864634071777558671468276778889781229889770739084516077384541809027551168473938058593304724841780681656346375162727606816790293522556164417212344939415333238835982820339680850735146505199609788556695214664437653583072283699437268121126010233424790674543859417298454296891769062066840758699121787201196218633073525519160793548231083401241759085604169773925957211917083336641358627414828082354853133615162279366266494061416099446464691115117489930315284645412652619839586396987946519925855470839570888721507432100542857574763206350312629501461109057672522649403899666681332525283407370161181708034088117935971533658569730296942978444136644022084532663600949497806477450756113538126823617516307873512507132021764900266618082059701090880653146617981543873940077274433781180795853257095567040791636802580307275169092631354195193115000815741464156450216812923772610864617763836699120104636929099291707921669619049169130423539204362621102614114451238444955120534126186927041846026584988011888459283652446589633044828265034050274222809614758256337243521945005054061136108771251682586868735281713741804277539608326389651560794711588475420504574244193697474812120904418567127548029657064586415297169894727620560793007997408041541125968510570665987246878286031591231052765631935022098149650830562435747038859557203227353597184721270812798551094962875124513292864822770188761334759254474246588920578965075062229465816478664587406647049157664290622744925398992367301369220335406875601717559043752781416982278396503707121235864489167802843676730227471766496875075971463648866895790364491096167487181678503443150563709355625509254377787712053886256380003486848104093884189424179291646117463506990789991348436238652226321531616342620969454997092438911504029759117409125821725782851929761290488452297562494745132705850732402754246567315371018803927972228297491483014777040347499980375785817263637727224501280524472166247953964683571979442031573736251991156490686314765213872768127083395913950785409557651147341079180322543960928988911473847815857077982117599874832725401581644906559170728937042509756444413144793813445824304185611730921123102197636783581373089907075953679296401087307228659366979203915151720112459436724927679864628203763405424697444082323608055618965929158648976587037745462676812135997854757311312191628155850459488613642690511800536502064247155037918908800608811644302207082437467431608168225573413266239022150271780314118140267386682314355283531921930955104039592066562117938158944420318530581362462995688427171835118708389053720383191681245919984154162862618802660479098835194319762779513918540393084245540440255812311486980633502377353139475347373017501728473831346834813284651903869915947173776640774562393490012895375100462441025689860214679551262641938132620418000657136588779595680360199693978840108941008526490185701539330490074065324229290145571473865010241539761972713744103132793415151411381034146792166128651016812069276861298367257458721247697981898083536771654345153623154713851589816197121954439337448758160021773213940536287796698859217081768588449156276323082143039344456174399914564400721653603060024602649227827371095649369991635485975602078804252132445949844039605825452259084357881686676600555402701745850882439821063175901361050409196157486658896753959417181134333462204212922712966394662890638533742139465508154637697141266778341396773025637019991237691595174803071001517572528466226692182175845217243033533641406575174017331069190835773320337286444370693582158905020589499862130297310270505963423114901901800664738614192037116700037646231800716281483999079425165399292593410304715077114750560464976887856449899697880917736474460859959076267111225399715464778006797339081305524818995810664232604195678878588516801844208742541422929177133958151317753772114887883062602281905688301783250749671233410417117526778768405314115210105849481992949569613704429739698612316826901355892848439472937693465650159228192902669872650103405323491409594280709734007545435960039316761203411447809458193420184571511385759012431527021962503343555054830497980667520593619821696223892119364801621082061334544143945355395933164177988049815119459793886607668503888891516308623856789649348923986799779969415984040233396124904585538779378517540195856262697838338000925747202663934110209559462576433967466951816666725683450766246106793258704066349221838953664021748490776708300106941871516997943441422135555454093313644140311689989687443418702708164956114476372893760607367537389857445850295470945251236936347287912068683774131624425660429513787538810747982034240846527354675542056672775148871451453202404604762497816247368396586933487319843233024326522137040871358390992527945063690167130576836662761329382364851114947646003881806450005034321041403026545263354054901478083273062259223100626467960549477324192501887269203210350834604569863493897950753643005541806675462822009502822196979690371374361512156258731529183342469275600152381838842924739316681748808796444755116556598826278653550084849120973811949225927022892463152620700978522195526426028767662115176395339575875938243847548687509726168122543787192094083544059078133589528696119432242043807118772486453593303892137877034879323394281048527248074467320366084916101884695632932166807587710058141820637130750587556299302786375847606408570619552705132419851085834147328323133247004868597919465220991621001541595470372068969832474948344933692965876155043675296803468291415774438850001178267844952358116703490298492738103646461284730234301901724792020384069038739228585379455800453816075307044244642819791164600064099913780465266044440504280192611179914429809438657560631957687655299766529811458145881526904756210862481115349510300752234304143314488837985717460237892633011008282572508135996182560422975824091795247544948726587508732108783639768290140624201914557611191179869513412367443641636390242420353192582029397731188776250911184419703448592082852020537472304334800297010765227611017179166958572474293568575391911529560682299981302560917898006719182455415370350678254126007636705178732253988272350380187266887829222514795522528288678774325296454474042963716088318208663725237179933947602900779907141572615476199052178731521405067139570581457218744353290077486428257937640225569925382617959577247784572480963321052233579977307206972597620715163772547429824993370632378622274334957577524868773436285483170010433870822486201205028391949645740729496856054109258228060101492391117188802796369546635998430189873542612872923516015862039887561406373074096829347006951772738465456363653711302479715477368160646434761938534061703721146642254394689522511704780939070887199729321361172617160667435477810510471351879120023823095985367355966174877699642277495207593209191646282195122317522530969134037995315177438240096908994284564900545218695249472296979294040240015443560734948720588450896309451567910381460066508831291096083052629036409822498338967160777632083023478590349106233594648148874926355870220551759628969273111442191431982648131476732080024783359401475231338072100521464698166505358783148720556980885903002511199318464433453957927920704821514343711914465900490885683599204247846540170244389747439127357409901603754265471542833549922607355626864820597908299884653952240965816194017642177707396809583869434843158352284226678735184597038124404434833802263898756346032446080811916755832681710692724228986747607521579087246531139045821965520012181362000577244759834925975671171786678659942475084796420554993263060905441090931169121484433807309752720293305939120960775931473288553041653367835293930407139501591376868404945760194644839458610290802585941444886924186642481282694185616249167023392786924147404733132758570641461825991946140391873750790510549244615290385161772490376291956015897345405075369061424048544845636523468921051759496897419566700779838575725997057823520794295925649595809351256862077973465562973950788303819559082159604739378048393889317285862855534508442711841925100649445006062054263767512045698061073648027637962336852510611667930683873425998355026620411848640758764956517374556119557700866915090453935447576305934062918360180632886371136913185735086010208637581103498144677136560380182406400019622633405415953561930642247966921537525781736140586921684492861549549897264152234688495696212364735875265880856819968642959392523471027820084461203292757716504858209157889492067075504786649534907317642477566316356470535392016624461638707028652668846301731705355836600248173053205175930790123516163587036813190451746011900767773005847959655696861675968717259665392363761221046784113140338882812665958767936319773608071596113928537983796864863158171673374487754832413148974352881148600957329154036505480991594815628038140762933380800936047973672981989293971210185738446535347636048997228449360692691572498233652842693988533030830362195067269511668384506982118274803073578004725342103643313736988022682525377744481515467733395352199093785714818701432544064745473482307679247416433109474983607300813264482275129895480055607137924805556544166680735608181584173839233956447400633058280206081323122618440327649311965322439358796507903954750695115005568990915780748741374130204274755904587900707470401323758165742338991817293225410392478452815541820629891921334718425631868724078681824250202259286993958151230955114962281167760206038384589646172660133649233273797986636740130839867097672648267922896677481832394364905053029668387243537194110344003052292795732662444957184610557699735501448563972099108215137550275194239030911194521366770968145139704153721499232716533275873660996100152148101605766715816078457906534565055811938641657556473294672647271422219427906674874130764428068205928460897860853230792665113261883098811756885922607568072076000170240104547847131829364937549323922223901661066874668397985557598970058755419220365387204047180640511617561199103797294523483188461080129300745176879287855392805341494222939073539461393473817370414936678939666618372801039637357998836947878631069744978454781799031201841337544786335763780408338778929058127890083497474084443918297692447484759938750970310295661629924470624824175533397696039246088023716694768472417850596414701732994745892576935159048616626735173654291812793485923397695987674153991062699733991568296689997146595026302131644905039571898432996057506754091956260170738381017673300764397433404498725285705294523390098703502168608922976489510192943344248923002153127485281220404546405311192657673677506701170027654620328319644269241705135461252994798951000251692952921715007809590414604768519405999249940516666202844586179718186893249967148289886127886958192885630723391380918911184599453880582248489574418106540053577561756455498144642796862838442099834235646061875885292769266158978718407961331325494361070259997173030013977099040481991090510034095826491243739408337240780077444261294266526318282721750022343751660325807459364753187009188970973372646052462670655555153733603635980648266660081227487940757092632549170586833691853637972532697133547917369284069185945903358167404416442320433503366950748148859524597845124256714054865256935711844099975139015403737727057442310387538716866146706885062640807491149295248743324600075151926302522694456698104522456279015377476488708267682830708505792148131757433280960155234395857092005645539638619114886609862828210655912661472662030517384087447427217123960540371021356791983155426837143047959374066496431251108531673471256575832276729558767702998555868021826618472115604137264535464273997200634617047379249193129898780116822222624300527582672905467703209493720833578565727438633941424379159415301379873919629484841071269693885736026394822415241884605443278687234311284347839779185804439788884842873428095819862346290456279346934584893395348328046367165806771992025198087924102022874897833066574350076946950540070288218528115911956590648591885210091365800555742124391917276582905454029410293794907732574143502311644705619393483778739133066645271554410154202078212033080689508671925425417618904168031367185407447905819145452367454368279149796513749340399535474487688098661172646781349037855343094550708013942020251734297296793640419052021426065611115217628948155218309411473269002274456677816280495983854217790683680221137035724814586025929186049983531089269171082407648136514526394093623012262248014918230776557048678824897750847583720488559219632397495906864366955165828386862864066863906807533696908251144303864830729504083282809810947691193484451962110277943799106571072333651090489963350295808309215294979998046405237380828285068318874478542191980611550687071640819679553230521507611707499744278030910355112867215707994401746029305869548304248842879521958164487533519409557674969268518072197023597100900736738068835681287602634158506027482363814605083255608276782510722658321986175452477052088191893724564681276483780813759479106644758682050716880290608707677787522823514746266349923505418356794912537576396355372089438004674866709802639362302329867052891193541042580927724220943849313100604572483592627596635564544012337222484189934406127455817279339769418435534679624907592078348197526789285013374326900942919065996800104246451726518178497743682249635371562933334796970183357632519322746825916464217032406848135031063964799211005835861911424548029001617152327488979956322537334000972629876901012526609628425768827927979802020873564104505392874208595328174701923680740969299862543261342902016599006141854685264850139519135159945907053811049691274875239319288632687265869172945681833536362909410961986715148166275784510334019954660378421084435288899536461542171822908020396284451529502566985500802824051457194962904861659088598232096360133991643257664916769146486735419240732731090114327564890258811246846071441880821020681137627056329955241976393325979976685274436104791411300792424218412184888216828562904796231563923885202969259226199037693678052536555479262070212575091235030122708497588639849243786802455361836482874710353884105004308173889123450092398639722154025128013669375631877965635345579026034372390019659674492786925152682418299252225619528982183203582200354313433145071726263187674600012085777724364856527806222628970629690184093229614934010071991528484672486178652077630504570525900229906548031909633754200140298738207107597182396024678594616721911923648783919312476468431480354718702905135487767899250600886356016442423196407488001788501245265576720944879601885213190645704405479627395236791044578051856430848824452916045207290254452328808147569886496813318933396016458846185297813151209249119107595056787064636126505052401045587578385592456040194078798206784538463390133719963846377050170347829159547471515946003328157885677946808776159842943467656336064539774981057199238433393568583622620670044401938443236901479564618002967101108462369366240380343714044395858045118187694991070429058861518273151001477910864883910369356499919804339060425752475153109805074746521934622070254616783660365678740405818337298899751751336217684541557128403532348767481068639117707924485471670401775453371473299992152365209328277017378859284889598785600535267395268831902766938893350263228879248717259736690663961790157303377079381004194232308676366182740295547893692691418325847667855310198233846931387110819049625529234232884687224199419706016729801633489117291384507930205066643701735985977407018732653787716962614520591236056230329481475246024961729638469438662457552258049776524493224718995528049304050747946324500117876826513716481133924385899729371195758577618129449769266945870774743446794726042944805550349702622421395677610033176205977982456837689931575304455491545605139634172319351339011019121240845643354045349535605438808543490308601487086455175281711697295122343011909421935479549954329103948436765498706195695073336223989912484255294463385841426314140687833290609525390440388343357366686046208906667633811933957159255056733865412606619910115931879219090788763903294039817694579857498988839032148609229688736073668446800167605541918379945459134745761281280484090843850282733374258287915346839583290110838251286596939083098934551443500232159430288337008418488107685162602623890066040363411451401631226240566681212749493143216447656982494914344382794104511440632714573582013552020595001791444178007439517118592465391203554121220331219824622446260895953488587723117732251117707135794996049778977705862815934371035278937784496388881420930498161214900114785508253879571176060955248447810738527216937795963576226328389225246722732970439177536686530892110538507757329628627093035047024257063388313782059938569117614269769282293589119258468375041952768757466621200139704701334789947077058887711026270656150258169509300670680695974088751433311987213346871749199127506145194569936901949617314562475266418968219404859912585688105092128832803846884493298654921456759298777412468714656545858139419120395150139923837324861087510104544483444660937572760552440602424283585713833110149119890858266850322881657567141945890759711280524687302493250639039240441696915235344261452701421368971360005417688258498908199619841687899797155276540069775698032916030883127373067791881702154243416228927261395927598040100110169548968144808768960985483504372854050276790576219668369373719716608349509639535535108274801075578493378314910137715234157620209372423133572358596632735177727059941175468915796513767819660206096134315212317489954444798190988803290587750445144107466021535590680441538269022819552221612544026727241968641240379631648210279828556608859811511352662494899378006542598647943454136715197326912096323479893088715133075976504035697205577383287706945274425151032613268205682753075570553971275161397629862129503647895231547686040607294348578756570142978080452940622876638728642671025978053707796390477623736726365575892393411384020568267691735830788139080219048065686160677463428217828364646153056690536156121879320713692137497339259566569862272572719683605078000876680007045682325414806491892517810553432877805140232641034040543680586607047862821429716184134055253576874208229859506783413525937629476835320588301665407499136290535551471958299391972741943484657708831283887641497169370329508290246005318187576836321645986625917694002112215753364616991480412692078339257374408688328792168625677324568699134455391560130679934411588586673675766577926720652520959101717456148698319978870743450021870213037565673677917104399352747599327663121247753156648585209062094388259708988622964647564101475578782041994825707577973481247370495793413254145177057154278649780760467312504785830302385630668772167011367574020994893060321845125486918989673805663418280543229099047756196467029129082007114445035033692446380358845316203664385804690213984207445142089052389641989664109435613447343436692673756384452422413879156438673303833250116293713468289080394998015117917181453169545959442057927838278979787525243068929160552832832739269575508628530395861424936099777334150678071565983906948877274125760888379727296460828560656995766041514641483559198364893699697821256201751311012673368271102522706154243074490051102189136236017959130914667999951461235918823674705787972629324341299252416464873197142308479657442185757682806189362540106129743229314881492707714812395235124396096762007082710753846227555252867160446214914837396517957823075686044159544192846003372464393272589270368275978412165356784678815579281033894307291459052371816167846572599228149415501742565798966491664436161547049577904541499002107365914573797209418128643081125481222763831285253992374919977521259102442156345454895482702658813875544144509724196304191801327535647842824596269694727058934973555508971997314555071551078927948217067333800483434626780375992948240325476394152251495682645253572776672543471661861751727726707778201458492924430088440433358462541498231316933657309964439721938581751445888109567797263037245233000152663767264051846044854809486751978596521991764835165360490106542703131785012417208542748500600411205015862009469747697177096268282751128008844243851770310612489279885158417759983231650928720622266024403080131028432216372902003147021809603371014343654369089661095840774901717082039837042011085666956679856645120917023829365612881756474388242417809615090957964348178958659709905684317289897979042580161235597746049812493210763152731717509786222586144534713721833310228321056487226772383024951519060513986065887102469129696494722297262065190817473868365456187152635194638166419231560773278649389579684767636244316304892477216600284968245497614499910651858543280973574077747838355827523920375755987352629264463771577258310148971295339155926426316651281642100137048636472717371397225347441284187332254527258572407455949623542345697346804939816053638014093002786436960619272535937592849551374927377788277836105755758844580454580636360528780961395781750708419662617225237922206683596574350644128265421993417956390391351860365741782877496969272352422612860605042898521420459835671601196804683578850483719487008484005581497263807376300878407838670317048106073701933083394400617526295268660192163783229044341485672032471000101775063736542387526284727885631146531848618836602491258598151462379438240457896965683855347879263573335235215143853138446370636895177192090605020208188498982581205554243604958277093477910838872120749961323973367842371339028625309678390152576301826305465338060948385610893518620019093575848672320667685780250157586699921414906956374093205460246763890349453223702904725283947347720275687749074168133588251719241554961198900864590199560801047036394007056894820279189335799543176008851903634145250630679512398620126078029998490171222111183841264720621473814814203976267573161394811453548562087573966426108301017039648043538783192263551786530564800431987239876815542627193913168575379212984007172217304391527719798756669016809965492162571275039894851357052084827805308343734834244699129968865952832135245179592423233970282118670518244239311861349420410732959847340546424447767734057998340259350884377149300628922218781227121424099661254443586515227513476238828102364334575056345811818233182607702545265086625043178864777036313154056234650537402920818503984912532609384714813254034153191814581964703196984860065233644372705667469659529554881402913934969717122133426501641104199772819771405482608205754391270023681345093777329716573291296988499443714509781933376019171881922819123516449037384839831137694204435693485690474299605842570775285218253126997773981867337785272082266562746761927319055961261671748577683805840266277923017494218784601913458544162167285851451168763273114701094652657447515979841585793856784496729222420075168161290861332124358452132921595957326621559435529862654633328703729939075044117165652083008682823202168388371065380696651710170539782665232848818385024605212922959797988362958150468853896291988223811509905213072608899354005302915411337387533399165076022329638766200366482015394051888141712374347096508728331676931464411756752974147845049985739868354623565753892272907341659811234985983827127518084933285455788638324328318577775595430983664659457980875880017635084529090448936172468679660940558554721566718399573554424904406569545992100224073582940272980753034204642620254120115358803936783726080925592235741533136368692961022808042723106080357689621214318706551785921548187546925283150124450014948884679805492916888745165070967939134507952980780480488474487905473229479593654075023553643289556429979723928752744410999883835829507741023496813025369141125582291925374980384388654570248587499326104910930506425711022276073238994479296424994616069454896180333322665206611872600298867808142685395904151833574784484310672980910011046395031791746683064064352665485458957771659965835469409505292601542713754399132130528964507808198253236195139202145408666292079145293817449778237229795269457376867395504917921263978755060229860211596183137919797823866421506698626268240444829716437299145398557039211399502943296443824112785295836438297568387646417776546510421129179956529240806895269783849934076391477242453197119909307652625170432508949642652073396987478383217942074251578923627758284335540330309477425963094162764461640156348424603723859100841728313687708068729810203656814662977944106762899857971095159648997051206921982225401099742383922015415700925983913617163140217257847972612368922555513493279596472544142438719508126075960229335273030089694732713380639169466264920629000183551374285884759883732523361695881848511682706885379800665426092861424057511220167080120124842031431171774942365222859292403885853139251253458105489181286012326527303370573363298015312494907689995625733097773002749214570184105232286873542403809016456590555531442629453244540910615129949843210167014115295425902323558527128858071756151165305755519043236782022090703947054137262278632542823370476748577702585216110550982858720861709615777114801758580289516110735036319376507741003188104936629803412357536335608666252161545382519941328336199842684978269566025992022078924611959961995780827353065783880311980697475234868843507262652935956117771459856339479883220397301976110437387496107162304010236146126437023256938900476132047423021271877992160722681926938552332458131808635424320142828480676850378186774490781155092408703959943938255137070559178949083352334455470835455437584184796407004623933094024734301558599706687216301239874892565508614290206370912891665400221205076504947377853724623648985017331092692628872617469254282564062133602425769943262953888210836512328135736376140571817878736247708969825625887290155177555529157979920372482134938487424662149536368192091121927367242830282505325529471052682430214571738528552222144674246394965146971780398665943854165823628248663663239746213557919969604648236439782018302004200224352684651331302641635475856063929717872237911675986745914183887131502498213374827955593131526486940004087688333101653315087098458183080490566461153829365721141618136972422357643847002568758691113060466479686876834040427949731920810940373389991897631458730421945568395141228198114377215114508816678354462834819300999630775820187229643476049860741059354836266349940285586092403570507543823576085220792832829335029065737674917295822149282353875001961961620212131154857361849035670714960358082885254399362830192406793256166437736644529990015828391751307506051213601708904558153445246717927012830678868645454861374666012211882482925780464430001235109183162479399227148620316984093407888533953739824918454510719858356870907616530499060820745287378007892932599418729165199945056033294562022988186929318897386932389354885509835570434828193529564346873840777743340241050792331056224290103202308641645845500606986513124792665071499889738182498879817944611341239702444750127781756470180941014467913736182575285830617231961977404282927312256709471661618888057813167143335166542810565001400558424552307719702183519158542826732061566910134077671491355069804042760225317404868295106730081926797241939408067422513480455231347308976253257437644380985804762178502220117747345936336342803720972503322721410006603173272287272586310179151283123920698647633783444112404978691290472669667983022397277024405934619464397649431560832862265893105402729847895244926902118920029878134469422629043567537399217600540753951598124409145612407731967604942557763163230061483706535228092455026384237757122267224884167514100852315693834112423513668818127930888328619095621802870571287490041389317964033825323788563198199127116913626571526733668474047052326376747430370621092623548725294077559215508192844272384635987415226851973135859853097712943327756312636763723932248067384074730801732416491329848048485782745576327622503360213787169108503507039045887165547694311399059695740791879699708637311579142635242485846268912321940910972006126046702863498322983485616893775145340517213156112929456240848013579640180605248273523606284510728901443721633706259430478744711877450979952569463193618644981638257047103994667735749734831130964950283304048584401833743935842141169667967238016108684764390232605055795538663264855466293520156723491616116956271668763461885390912822273914170598427464901911013874524758116603337733782656823885409296046536139813289921635996075326697306634095350800937475388880144734098733599265126204408990930741885427860012912175236237388659455636464895213140059273347385668961572129294216912385044607757485860114517211774930345063073614139148575071366122355603328746726849366858807482478437657236180009594285799997681443015648923549844136125066379413230748957531049717507270528380392824488448623613379289268961112248547662130578548378984093187898773682950252354398212683281380940816982805933418693263094208793606247225749717750777207634286741248333497547347885115777059109097299183761974215210184625038158824691506723162658931736663244315817722664373520282102090532227784437871926369431791999967106309342967072811296943045175657498904696024979800450014062542868218931023654877995335702845719106081428166560981245214075235746828513414842262456322201352214213797338153552481433529670578671909969973409018879258193272501346457591904315958995261309145539091539001218598417539945280067075709592045825754428920932685013302734260142033783950124120382320919563446142469900259386868891890059497752437975521503914508408394340044329770558022425621160248410137871385074073332743545795578484903291243328753665491230822972357576014710710368509578235489422037707967567941301298090264666147359825891343698229875187519811262435367679504078650941098566893802968158000014900717268128583326672778753591722142685008163357213487399724492563161458271665640577809458547162263781030493721795608269479971737199708842191581325293847634250974980597754054052921335484644610409993899636375248522114916499095590310969892022088639214981836912890165541347834563367173396929314981507651934979862004332063567137769687074276085042199988640227899053120289010322276592597318483278145533275140465521177341954087188534351221162555714122125132519863279037743804909395214146169797579538017411942860296385795749405348796932971065476906815555729636261187721434933661734114440556261637519973884806247338873201648202154858740793220134191364466978260628633385773006228917647193593590566646874250335833926919123419948674284627772708690956536553040301001141350881058187304373055547770492591417148811617511269693226453329038766493482976888617870305197733498229713551871598476424661100628508843190232736056692124100430489855092635504337850419287760591635369497204125935789682927097356476064622086308126173381688540204676684150415389787175557912110532276414688843185684392888646877496948517703028708112880104432640892378508126386342268179837835584585731015172760123240835629576167333233248906471118693231937724286245740376245961609407175821701296995397554106759863675318342830650840640234873567471012114532843463714664002113665196866193171172753152645657078249751831317636776418522205346819371893856148110219246114308573289183938178969733065621015705285040971284257982184872334301893795719134716996955820627793695941232170701823476132004106869679048891178894074134664723340678011874173066375363917201382730189667856862311011906469520907229241490980087320790867363836894785812674576303005122956642254772163292415552742015351883667374912515127536065059841052445728497540880382752857562640531611664794826334528234990362607016840465873716665084297045545838898496580383613167000335196126820223301601968402643495431384173030782189820591669976590343376521675877103644448846632014119079795611566220659062042721577822450906810999233514597311116829370122844142576377084065848159378362752079408270890546937953188416941837103919066786331797003870271773330451348556897630350331051640776763947937787520259347803034026347560788125790360075175857348631941783644730085897428854593758940030553650340413534988702965176759279569092284396632815141176238731473388330682264994863877700731272036929508125186002075906986667669263316864230257866461548401888155623113692328633811784994875691055568837567826383230183642195970210073570023901716723692184496568079119531386149664353187328057000920658398065974965129285933119652350730708231547282861262615589390289894576955944334269184976679757568877704383966583667214066312994330957083615395091415289743452578876164299767407208335677156087752561789039207093342849916628048113845550747334135965971921007638948976243092943005004659743215610689201667216578180802682880192158520878684080795769395638261231411384795420301127903226863703005587228935646668249272815087031356571266281183360755407832099551546911867093271591974525144562543826825082424289768563527612116972040165667690282383258159030745913057196500340770520859533595279145762253001003446533020414411123182684777741933167842857562666856580548290158086833917021422966749895785346946162378899141585249917859454924450973410437049930168541741470997107324976270658072099743105657720030985733120389859831920297613562445417292369513327827877299678847335601142092067806829842058049561005764758145033833519578607050145231435334337511504480922372796563836695755244095194112004320977506047956793032470937241535780020888510097222086146352444329239369561221819457478732052663495736942927347860186498841991227003104823776730227528828005977804088119884816337191889368066110170308552646009688874301918082115214457255955730882893497351242220352998368285181700228316053563425593912714544523072177131189959828714404185523678744428638143575509060255222273946194616856072883443045547386808627949836195998520308597001997466042830077322194558944940343187853388466637269101350431462850366313848683984193962554892658378421391266844111770538664868871408464621517025316265482178284361143590176401864804935453050449389980562355791427140122618708587250983239143510151304064570472679393347870378592362715076220031954829460705093121532681813294270147201892067868357171661965207885567239386436639807027638596299141565411111507619122425547378735278676189257958259797293459849367059480729203387224766631678399244046971871863946227140970287424423047543064291504877156991535889500807407778349936672451630585217497481637120866135190858298005592141823789808153659344511128675205163824809930039253062620633299431762401313353419530208718052876444758839813566315714984348262564450714872866925339136979389894874770179539897529055887632263106022004167610633544112255489554997145719479380412608152032930568395743728630967223181646457378500748984142746060478724873597943428259127671037423269689084619184846731696136789283791598740085184090169782782236338798105090981224154259341202074434276631461507123355015491248166228885623637965104640102480847415615725245573172583507741023530455565534837516462205349767777540851397940167667421004499881377981110782496379565635491897574791006776982343797280452517435384575286850636107510161984808929069009669668725324002967691349932794092616826966000372591847183221041259290720189750553916081920384742132629448454165340127355878864618789603287169790536144258574846838866240260569871622903237571317308397400640866344778426690705020246095811210353689115209500391698083826889026436021188117661804628951535873077079226056615344768817608102936219947499474924104035777648225922322893957372846815906896759601391681496319864346539068073701220620938103091044202882659553708696301926212809304386555828150974077779271534229701553579519446168173579902408216404540757037361980918366613779314002566103529889202462958938231222920347705890280832871740596030920437266175209056403574174017633380936627123786943553773322297331483769385997954564607995028805706924323128356605117094840820637726054062077018551568019018653711825867846496049348384213489265789478403125100065060903345745950675636837528225101326626483114826282664348070709034113269455864161398088088310081238144191923006472784259164287269806210665396574161865485316881873761677770818221413390139162112623067674018852755457141346631058171239657210751429257768250759903784333788741544678950669287567018084913062783384847606287978199553358052146891295583041653297344873541830822621798665253425887502349950764335308473789385961211869690704850074612841700457159633787746123554952924387681469704519795291476056476196186389310883643966995379831767604436380464365670631229972049804757937473616280849152918386161779775055361562920261567943409267477789267613364929696632907767258618676298279949656639290708437593690511846231754563859191547471932187549349400090248777153674564724628573493675182265325146428536878180892001141708243827243822743069122198554066750778689932691750335791748025350353268462786299630909709529866781797850645741122850762650565900307739209072777157385925460743257363288748162778719189260084251257674806697829743290527597191154367637417479794119883377702849363448833363130767807046451101560478711083459396217145520018103902489038010798639632923367010494461609712036765328763181165284215484802086366017216964924181616313620907326247453236233695327192297135010794681834594617063483745563022511054713174193900180645078592709537208491178131318277016299291842892999408882268659606441314508320886096085561958037256301710227257142824657785708911665209734998804307556190739179085980597337898355045964206806606670733633340944776810654576239967067147206918487135509529753387430326553898232429488248031672358884989438513808155237485965809343900807173315016934954284431445874361759432714021434635230840594214949141757247271129418742280812787387993891718611412585019117834381589151040937543412733911165124474910992373435171385998539049069090176520429153229309736985174606633723063279634791735792532064573310513232381036083046347200987697309728630761939565887967133431342541538870208986742217169082513984045106372858132085653585010253857772290148208636721136529688821669182653461164201866677664913616946211712359064136941950677939602505057377782305095616629954118930531278091972087627812649717778779694238422488796071346678172712940741681515975868474003481431089695929326598257263261920960754063883020615939289917061507726550812547954151420235751611340660640861816533516920376866656479383714364436360684305428829322912035424276073718324845688888130534759123563071813344994491356643643529965013994696126030200100161921175058700225081760186156975860298633965565279904165132129539293200746348741150720056272278244925097838627039145219611468375636698348566149542880911978078659084765868800550619572257845967630951967396545011907937389490535063616062679785841833497074494795435928337358447349465715675235492917720545743885334731852346146528359942829014238684463299121903433394535049988126008452807161979250140580762707525482577794381087412955964136880486174714954876384640856455944966767136308054014672355979459632566046161538493904692026231176799709609815798575983484904462134427712836240246871085767180150477883684963618324813866468402036576440282391717370092531290453175943019594494675826786006669616296304182662272879297000701391622054276923210553173142284042279497194278963271982427489396963484536465371034856869800132039124586411546962615314484376973935820119705782881691905924494915748745756197862203566281638533415389176273780238997558289708567630577306945753863725849346439241198135124083013961832720270274172018737450442789008187211720993846550712290420317160875737481409988257718413354990529634940044752336199651524239526490910919014085466930474586479860358052028724654469894185666354284038633729971242358675514527706483134380981584095980039165839628554801978425285106630243025569247154624999048172508232078388153684745374831767931668813697109672344253686370047269757178183394775526634499789646752947859028050608823116334501264375754210613422292313508846716798081621656258181234439732128185998832997939935527496744373832500124021135988914854793707425717303294721514530118169365373903128935256854762117668618104142871918109305623031383835414279626195109545440725282374819585405620260826342064387976637273800567998482655418804159367226185221468083550732806805364886306801223186181867578751883066545937367861819267615891104272147158049146930804856095823994140808853836774915693241725221564966681114890953153857486507952187289788138943253667053831958425004789035411730255524178270312763739503039394152299094106677281745972263035582029400303780148222427513133753485048325216622181238000657185069795878640561136754526877446615029073821239039469668833015768535656617862796206964527441236113374822072976444605760389163358907110631348632125695901908566786854916239462741438303486881595860213559989768201875049944143188165587399769400028769832376282262124656527764540950277957659880236357248989076874155112735858086009523762579773352530194623974435261706305440629105666659818442856549839184355661728989962339259091233420691052429199736423362704014110708864847708494290558272000680495840028361087994444471756107022073913750803970303416400689079600136853273458790035150445766860881282972548101056081567369750384510084607506471901552989560671872033187766998248782000102411786306329204307678986667834327969300777948617589851281295139888661949838062827640589171908630039695975812292430551665709208639001584317692493768876113994657842489173712109738491960170954262391584994338691809502160199572508427388475435774118300797163797477399704134723347641261032767182628933207056534233934837196008350559508064588830012019775105374883582056711656149502045564419226644460132072354084762744437485038690346119473842921842964328533511857072125547285302113220489637597305448186789588857550744141719287263796169073169803225573410236736273289871627838677053726107556802155875379187589003378575275127278941622015701540870252408815050566570486713332805976989875838912927602546053945827807602036628984876396457336465713265011391031797470775325240526312269067503771266302600868137775268093160214228207321961580378732439691904552208298152328947803274195737844654933770706364835170663691631161739702467049059689232998975350517312406628682183931480520730250114902656309010071744340016660207303367458900451572531667816450878023974999930074323951594427116406134542554292583506679024495016730559780422716138824630598006143808601371458948945004795046066085693124604748306231193453468111982848241581602194475688290463475325200025550316561122390481428173435931463447448211671614694660663968173891782708720669556479546653959361658168104300921527780608967045690224418790485198159958912443932173727699361702065646389880258566181443428066066176901382078382513567929239271696263425225784900321338925691339573893846917199703520940030776730520135837543524740414895601192426424259877823729271439354890605775775386842146675757053468956056409068648460933662740070407415464883405260176145069335652513859573964444692208836899260522387890477074135574894168283469788971909519972202635894104812741234611324615889782573397654436939827603953315872264212233059927512336589024560318135783125082642317152963842381769919942793216693703335646768085105711177988388866734853984561692839851687869560020857985368633356870885711461682244929450515556763960930729874872586235182384796259621317740874032581807694779574958446822061278491760545606541522712173852977718932435482250649088417893444449500111433554014856960138035019905298946679399221647401422720870282363235767798940078827816452168442787493590323599948358547351581777308169557046305196966725979632053254147072839225214706399829423814038177174453583712030241255016699971438137863276751782896794686515454375671525938755335689868879387770664696182158418175822245385738130630031422787064229184509348558559346713984634112630674224635748001933662523551544142510233835443432450087328745555852885252046188534405530877591870480376698064685684812250518428230942880099272344286617842462583765549003778556925540082007675454514563500109679304350385809074281328118974355462701941941768487923900785681368659982427548696949493197181745337051687778534858047840656042519915932326601339923132008569681572201682268739305340812230934085673677781731893191558070994966024694548422706823008099222924885119207059651800301859176004448081313387914732939460626790591695782727732234513104015722294168013250193392235387251672647920866430814219824968255813603423171930532873884996694772637207305174216103304930007095747891021457236478676682947503198815517940329084376381649152530157551994229735659139975294385679949381188020293691519214285356494486729851731857083134291742934863585543736507696865200463796766445338415276546830923527377811878160849296390867794810395737522981511734943434912524164139165259988855586066041258409340339942266136379372139946954407390199094845827072663624606778523978657853813829157415685912234312181399120548897832844800778258258857258200028626425726034214427802266366533933229845219561547179222627558042131286476579358009412292396922831042376255399084698118326326650767308251033680595994907362355843790122382664714678541922527380568211878952661651848630606269797695116177292852145678523782563244656019544940948872717848718304194945496953516645505385768800995387598677752305520097453224591148896828146504936576442060284055809991946568077399015588632964951341138499888054393950349245370182755951222066710341808436534489273821720481366806153496361791486932279842099135466799199642510251392040891521865105229653184451950412630191129639102501776882328069399679866138283136260174990791179084869897500749508604658226105043760641215728196358447779883373242174602911544082095797171903817164517378520872706138073760539319132434164410074277191610172750984407059522789015678897362409007507582716109971416845814308128584667600315881710597038438903898850538963234701748855271913067753566744663230712651772117515521647828575433804126899660158790850518749329640615504900286817105566543160718378053168357402627601447837682272754493017831507148165618211033562306916986611873894429165674739153696619599762158225286427745182383670104212582190559900284795088347363887855517341024062591890758573646783458198814860944018333369001821735558030457398922227890466643253087181933820817689785953479813725956063478398889387784285637327824986046168638368489741641912716116580500950941832827286816882099847291368660080957446626596912617747087468837090835907200104263450103871335650644061974691163553898610574445044050052184739518094569975111201610702662615871013946594094891955762834253489506842269112076257120893178294536379728901275194061166989120472061275976755745632767169014689209995672145141635999488753995029705413177482895615454935739031495533080546442113267090249165185839629484977707615985728049471189543055081428309205309959537513210932771609515077252838703514404302851634643867103766789821173386026498432468867757774466716633859955478975280876872691520225379279709139866445911108515501308461486363613346908646713270667744959275553095693971236840056786680866641216607705270263740448048517447515024947109251745455838804919436808336103872850494567327051893364907251537333006514323007222769014891169077842459377127296341807737930894515793540425260225350576223527366070485968981262996677558152342902007839411106244156669159250780205441815518511362670834327020345027842873857039260756295034209963906985237137560371019432773521396052426854143671747318379880806519302802448730727430543082734558267267877381776771333379819613432462262803362674306442881759184456991934234175821637494206749298621092339382080797330750828661538494759398882102502164540437352071058521795354000916958645256940539355328652076653605309251918631595498187495426720203596102258202736001322233896234645708146166558932505341623112611794422412886507302138311798232482333351423062394082290413747617663554647009133289297189154258625835211980680293275175620243489027689662526112511958369884986078398136096737354914704275235907291283885767221643320383505021408980287218292752750297186660824826491058982174965203618179007233967774097013458061273701779046053425815117473532958880040814799179429258238791663827622287479416199587755417639497642907902853409089954663164245951482444918852628886730165350136436332456285965121781834868679782021654238768159418373961471129963893025129017938268107615415743655947421575479578144878611048930242865180330711298399132041150310886722773462840846249288129302409316207191181666357043575028285235807570790974687137850375836238087382338172842644008870282056412475961063710274017170111506853676180732212669421709919402347081633337301754339866965179963033121275604817256638722030092677443272176998173768418550416169052144043985488690487744933385686268784033205792836686144441652893896419245040421194368807102643457318999423394483021859726992933009043219688052303674809925151108242942394969052601182515387049084718392435204869850093910470149410533624554339183648721213345654245502221916969151666108235223338754343421302553481912337673251792019448758745094252356378188620115054007261464755228008788550410863975232468631797711262312220397927233564309092075482875856534030216813984282685318587845956673764723046523824301077533848277512826915694277467143382212474081978588495356129704090071058885853041850155693906329339674886750345358464869400373220576450212290954118434337815981402353667756835659998279236506883315915981198672338326650016528909695870436299106159191000895542860615605239623536200898874836647273319371903316146595120060276710656295457916809498226826727079966075662262422399185771301514812447555635071891963096778134659431011896314045221560121378777346449835618673267728329939120239249120326332752791131841791725893674870298166731625863969969574936613097967460952117768108437887842608123966563736783537388607233259807319811357986562646171903918228331969541650577399944462033889325887478948826575588727820231076996163243773836594813830171387287075735250913402568408125388271281712040074680570348234522364972804397163531895617566713438780229043230961843584840535142642128163786672071621128776687130398165026553400317461182309611164153606007271898174436004285167326483903543606957854409644244313726617618805342828279443952437975853515007426227213660630006633014046657958241827348942186156551055935564094668810476606395576587882283933923590292938939180882207203465467604174434403217643377514888977562560845780015555198782700001675021877253608943769451705718798341080080023908543317244697300030866242613458948769190248529991952247308851125430810857881927183411873407684128224687435960732362451698110025219705342220316270909552914159698520909252005529771236532240975477855441606181865067072052635139814205366924735826891634326089468952425464575216414572521452674030454240320027669003455054620427292516298384996210733499871483055580439855411824094986428507851090316567850056005523067535874021876142541080101494920103898500170892119048821695503565414960708628403306617817335576873056223185775800963049083717708948924603306105211068822304993677736661005597198178422527762432360215094644862468172817046220284832828560245467756925028233805403400236395824413331658861075043521227517751996842252461224779878224072001005392248212231869251518655193361829431652998544309371204904668782209157019292723127066964819777273430241205417208056147374361261747179930570826595135197489787977753500217575760475101068150531965673890347919774517329385956911133571581995438323911370988012958047747640650858987718575238072731521492348575240238719771705974869533676144647760566833810085587967903608334102211469802155000734028522586934772933171017803978486752455278926846451102907654771427099194317009011183968966398276323309532279895337031730601703734538509469067011325488899999925773558158308169847780320020125703196150699197755126007295339502135317335153860285476117653924357570521223540242747401211289444412756021464094182115812732830745882714034746851700618998252575482030588979245209294226951723294994142858222944075055093311077286584536765135497958053395341811998897607821752266195134692153267454676422724704779052308888660170499718309881944485686736205690635222805265915460751241432488779438237400162851835447147262401499678980726569958472283982058110064978298294719981618232869756872597609547504399049844503765471676385700996905373395407508313436208376499405249282585388812114683279008400557925037827948476333277752278537837099329555109168798863700719824251405868581920731230004961315317785685722890244330033556536582077762638126526241148441357738071617380929018500097331932904460170038163861763572246550085003672015328644772712790055356791188536517111164199403141064733565947835540112928898170539357309851922547557979931884112455720596073995059008343684584504051844446960844613346545187759491398718504083461299367521763885183243497021945294501468266068050074608616072479497103479511244897301862773701978578023647192982688784759077101425426556908188262567980808118115433488003817047822622268757331667925515082147420069954550396478548326017419484491435736421888125066503547489967077952065053811546761517298532976430653867231985603443762854266709617530283270592915595945258649120103955173255531983973812969120283123066266264694322613582094193235566307830925678087674461607409254103313945554060093415958845344124866871244800414434709553816808990046023167564934880957224383009540749568427101655561233934819194409625176038541638793603083515367560884113634214443679599233091388178361035540884694357882569807545201088980078570083705454352223575379408867765090591037139358064716792479242462159378560148585153150197777889528541393684193695873574653888894215246733192508393013624932867729021933033733716343022691609169287816254122604802102041597198925128132939303592147035273362684358946034256558022615272358768686091852116835480877635028766311722343426970491432751750187834758439840100535202843103746017958482842867288842866669986137627430618773006612907576411176350234494806797286794544446562099643094639380526980987426529545623225753931874576707055758140206306999674631105595417810620390209527952653969142805873755548951581120913170931447619858453752139084352867414952293542758683762344841435589717621795639187513851165507419929084257393091327283778499783447305314615011275626561633713190344223798449408686066761730418348519932756606701184617862741317328074540193700105968145292992146212088231765113177457615554060535893202929026245905677657361175999144863821763433460393327345698772524514633679312887159735546243029974243312635931883870302667168837340209213122443344578453826377088345076306456608331152178786876600683673675290308847835497751075996440026045109179555829216291285972732502667889949623515682497803599956572331447465232187316832611913801465876910513474712551673903651171320756191665514256151872693074831418938106977077245728018107123313953188767657345136160663570188730351622297977806582433305434022986841080381225471391646457556813797735242714857579104124416126767761636460616955759242366450394030577765630714343842750017019536018362428950292436578498554910333441136628341860633791825373538167998913977380001373904546407576807066132390372351105578460901059255908433210954203247869143218182459568085412423984212503909771457385502556519014580926174579566160851007555364761718669393420259399501285908093016977354883185739435983673684992986344265841473309383797871529611041041742037569267521805187843935099057332652373581582509984982336006758260345760269955557030149301133194470992493264117994842736715542406458586097709901874071081441361378967662086843820305353960706753264007701881458295705023127337440585195005624938707766424477346787307912711962735930425092039275648591871628088571352323357148473930914281749149268557217188580761595428311189655064897757286528897652790807829778993195650429221974249345502833815622104549522304358606575884513211487080397691882639960242182146253749652223189007902960121704301187724226506561388393423824079422159315027360150349134997333413064373865949349353752729837895209621402761908246738358060633135168441792205132044153880799801599206557462696456975898787460903332497572014872493678124477288674619679491306766880548456624617669729009096689224932221213610102106420678963319098912033818730933741350718523349323783680850123462513212542462464662202532001324191408180292613511670891396186212110557552070353901810836715531305880377289253822249874469192198065336138673289391762570094495542209210231616683484417749359990391441825772422968599950754925396747071524319046942086325100979090710783517668998584626298575864263432760293527381238504988436023881092801460289306020791225095884336303985315781272174486866583800890912340636430135383624369217230059847401521763223032752016834054666519841084441580360110214583395716396550385272897686948411253369525804512113467774375102312039895380540203672564583869589308856364183493355239000603352934828137741805205757915286637659483244391352558033181270263186418492073847614524483248364293845775409374506088768656734581819051559678765668504397191761969901613111956029956699627524291723085010795548908175048998271919777462426503016684148144984828241329619146355259614285732252851290712832906029606115685496500959940843217855161795843835640996940644553964392650021067839125547321734406002538560369721932372927939329899514106891042259703318609273519737360198173011077685129669802583306381286647259391028296382318130586980795646049288953124510392431723740137969483882471638821449105535816655394394106402773010663299699706503527998695261914958366756149872277576485538351798144486407564482572729173863173128365460988681831388109821077661815250513383274165641956280114139572205067186295341537611333294682257653838733068878387204295423925809368104711805330903847630378647976324137294323950131830994687604980964572565788675877300132476904803762667056018762055236488474006643891231769240788060167978965213649782138067206353963696903818211694510235153522655693778660233579413160486665295331934702498470971798940649309308487763344893874039049809429708456887654564908240372314400494287950246666517803078506890030113426054724382304794398529307133352402882000374743466625172639973228186992738341179929331308786484344343703678444568783528787399721620229657844673600416540593980053984643725632881392875045931332104309107051231220278029139664793853918595050478994145521569311912778785470878394000980704583141546952734837508659201372677006342391077890226650486039000566825155730954720786582621880810883494171136108454483631216956747869505232567312194951604395411732936227698997027967449798647236526345102870461937725769121931445601169570963655210185281631730866123386291030359254640572666706734509697343097848593303149180508793544487446670736433160623265099679807062120764625395810077620054037332694968456453449179220459540493784980907077757220072224931489921338315432102404473386100492635017092658732710331998266956643202085082282495739989559253028694920569979388154310032239230927080047939969410032961514325299161571508071310003339839204768979531021976188268589582714640410984755234008937468114725829968609935049872954945514949651745563906478411484654106638793007604349883868295054939966649285559329540962647442415810541342997517453745627885663191381744922344951320099258704272738675583507962454838034794692817882928993196129681681143967980598662037244679584455088903323047174513015990600011373294321507727956196687252705548707280578438177091092546852625366813527089725564224599096106530409083826528278865066532912389653639460536200580887990020997877080502305532254072223074897549900636201500817719391703684599164206546112109905368700368151290868646036891989709032699980815238083151676475548099315360688302667338666000430162591808147623019618782584463689542570541179239572102236231572474483488864581725336421443126587183977102605840752657567555726446032515760221719055098239070891114927887149994466180995253561430382105528629548157832835218206736311355099092045734449922893973056019426209702907736651880939050571350936571950122093711079837231641806003443985797243571871506737818350615518019751335819535724649163497825943536235886103852990789496647559886875632445145076317879930350432949652697250979686174429771859862395875880184363348440253188808565223982632020131452809156511961893399377153882360558170980483103461932587965291032965594111277091167204872423678410567149413029953221631373357700312520789646967201079133211934055616013142708255103256882285358369496282560605807559236532770956757717365142285990564301130625749397745735848080804864937457901758134852293741390054858498150532576023939266921052676514825414954645316219877640457468664964880101560088414905952783046961511361087246970939147071701596974252400278983341833793093457968863538089653055835108034547685922884469277424926250665103506667935705329579377492133822264082774817811684387091351669977038348555105420250745653012088390592669611651040039712130904599801575076354050639646314606763541397830044927990166211587692140099355799807527938317412059886013101085791419509425082228263817151372195139322035469103383159692699261103919790484457469439702379219100057214510981613539629506026697548944104402771715328395241249758261139886794312193044051919213529208358009012627791806195148263040155491013470845951204501613082588010480931931658217301539871622710708101149298705414565110904046347752649765594237132995180183552198816568002825999358234359626824540120626584305916675018217246192085009719516389219709141809073783459889496877223213685887315234525196909265052490146086795880700402813449140200506255160117479454196718989495385469416944237882156646423795633274214254576870107581804994164784965049399800499919382457246370820507937552969896331143477851073195434716866092402030975422017750799524051062348009932404405964179653514579858225528818544864269829508932164103028510553627441877429191595583932270461275512761330965905157761234973790426936023843763733964249068607969759915807232475531593120070195712751257059940201440357247938345755944121858533107092091015318376712035226540341786009513322709772961835171081722922989746222164176290431573706583858914594087022742377284889986494416323091640931633575342950927688016585644249193427421895874886017493684645075902535414399076568909206702704182270817737842095844322188508515333009886142686820408447889998474195352518815667754342590848621116254032510128544637322475934465914069722334280910071390580640774505641366839722466443332402330239542100832835810574658254475446917597379214839232971447035550811985214794967437124187542487485110658825261294876692065034709769654336982423788466595882573010867897870382682451422235262094310410575727640725658588273803863601903834086089446702190394671460406047390348811330968158026626077502683479003394380011528512598789446953109242931601917364222286994324335489519769802853888440005816465404824097443884498690431045209774007446476975582856533655883765729574100340477750684834111791245208870157339805653032156397583692048986370080556051871355644160098093033374217168236250850586408908679494359920518508695715122570936636857013662343699608559380163512877755125840468625114478678358418492876781960675535322848835532811875377657682146406539365093435513564016759021447416667138867069086056866283232851669605947501023714286406112116831747321171915383442656179758358180504141151311935364836779688352804296388081873049261354193056672661340362321571330841642852773613688955319242289746556099464780772306409115394523713293987429332395137538932170109175357763266595543066313608126045275374377729704964491516023102912330796697944233257207601779221960087101380379833033296983521642196229741667335341014651307783952509154651040725246367817609808187026650234313417238246019860757684062003244088138801926646447890817749862344358914081015045014126656268137119930996834510701639591361632345642588810634200455880613208250724910904769695333162454215246195356730034273167778013982676295702221990410538672001145608102141795459452379798195624385377550677659277857439045394305950136616538704527275188117859628576987920678956262196437219976804579972043885542499234646962634737196397304487991954293973971741133154018439572871264699801465958115279563810495938156822173491378053187339684397404026278779010467796610162228345157909283267751774987891146623783581817694410046287025521777963316099955040138176663445826234360201553010377419926204476280978330994409843287828386320181000811229602571716572537951161090473864737711702759673239297821527045343359408902030264685158177141348044423012572641199687483795873056844546816755638773962712549717600473726022862007147095961178889767103856960298155936218549429294644259800629878199567248390723303402960949737290652567502887898778438045632655647440538158980046553253204258578058866256886979199406422026347558968731802715332868823492709172490781199179005685079182685934283792099733868231223564093198400755688030664906872183262245467817179913787209818194955911716216605238718384855829543462059111312948294488296392077711101167225753438493454509233620798358727741930715281823852399693163816699399468261969036271330387925725909549528113996128755515208172361569667960350162108822684738162904199521939860090091332530597514962973615793699156975405446111384297285058300891473403035683783545744294997744158824527984489989074724395460540536215416754344846470380670997487567323547152024444874234124494934283945067600527808844721041774880271011130271912164700062456737424982946204570216381977071494068362540790635273426666313920318805552327275059339636431348441850035665174880604799722523436394045594580460800990920888382268584744801209956976217709871016265469578359093541460311219975524598137748849311273746092690532089742603481517853510910370754193278337513116342449194751139087413458817664469542250837291778501750932312045491672600078397344239351077323750123526838107291345284636736382624038146447976129892939991886050915666528051248472384112729906992245444548880500320646524856380460980533642946794675890826723866519652926090015712992650658789354269745001833253023944621700369190645159964473316798908796509243835153939803552997998933014680265807861044152991561549326608071538215722118012489603319468572151950316188407199037195092662480369512392803839380482496919751750517457428669468738653804482698823187370455623221853284411247011344702016516813835252944296271028050683128594893096263945526278727648779426842202525735803374846013444761279154095904966002240640112140610906080139988843619018605989394760370260666362826826639712010972391743910360927343513771245577105003058292455195632323820116050492662908487309254830334882260382562152002701644243882436883970484545613541759301687890410692619437594585407370869229349929952303523674789873213969996432216095383073859222663738695987626183584888382456540922054720767580927351056595964382817738073832819785157000092846617822928708485389018247188321063310997973468246690894280400794472016755713509545930608834893909342305859332754927423608262851717144814744188929580648436719797525235581483117901107396045732139655589173774733793944962195284618412027194436597017529613378357466998817486202724271658645874729383871608088226877209600818581819251242709734516915165052137326233676977455094338495084323233538929227310025142070775064145673547312616769579690611812456894810412730091609354692008277284775614087924059477458831129806878278041936469161501782115178923969045877316821636593693355491639653593420060987231031588462004990207039574548304840289308700523149912267933537078371762013117889607315588496981047373379660394060894562722552026917426438232407131629618652048114975349023552355894739690368074385167849689394776010797434393399788469526609470188992729067685886080529169430605066695963336712519113749338328559683721035305019987779291486564656353752282765262174916425711328409959022867221360744563943073267386792763994520544959992411119117879720082264711977033689083238293050899026977574049504416301260896100510487436153851172845048489665628153942022425088518816006656474086784360807130917476834189791310493485588839416156708315059207891957078977273040993625551455220719850646304797147470198653039277133735866029009829585588503296841793314445320982833258884017004021380916602141479522861715576878064486447143484088252508139909855370939163452519128702589340158424598227401330153217344486432483124812131785517794421619746131471324702659770753179000715724393989007855552152225677797113098131952805922687137197298443385074845126052304033522650844255019688905692869131259430955286486304817865190956755283357802359040560627793805446615265148952731450298240395823961893650857094020123767607540574134095912271633033824866659259278115270767000769300969995583341757333377390128955978230077971564681988937022372170417075047643771621160925662250125397801781519198696087768253179091331321163246067577735292592182190816036472543588581011597996239193823626069299317863228778331752074146072291453444157032586836182927228760027413381842795953893694292862900931085917219835123371486696171514670226678395536343090493161486703342983115147929156716234435459921699061037764160056251862950262583572392079405861069955198534085481420979053151126868018637832655677704688687807191821730670453117343030538618085284102981195533027272814443332008489529769549155397650129203246654977609092730198322128295940077801341889225194131776053131256412876712342146316801129870903113588617260963387412584270342159822598069539315284527942683109947868066060275465844192579517098171133629786365990691575125951590689538822042542760765210903036860446470019003067325769917511763986331621513550378242463391596410228446319819138145304824383522887384585894316190368976535743920563579430705660697044266787282852943996324340934475598447980587542236462447951308638916367709112230816719813560354670308945271725258655365655675369958283362812815432147317701502897075324969584664253340865118054657138326476239011610662294461064837873945748372199134317813663229057242975081937807142468027529962705664446572344350425318942173987813652672643719413498757098706439699249789102875767565694178277429795086267698678010698538249407283539714038133442700100694567359031473178162476581385628991259509227630929287731198997779235485125013273592987936869301949728120596661823109991396292381551377906504476519667081466746767217367055680790694146332102457138727265745932530836304939552032068920659095007228785017673214255500331473368782428959672168121230926917401430750906240212731190169162644219554486687153969582267475614969246433155142134027111431024462264317287898082456965352404506516634467192266558344104906551320136565441523216847007384317533968021137662512594667737063898240368274855437675902598918327823177944983952397661481355471522732783152955183351256773750492832705018425551805519982941806135719177824590913231206998023329078868725285068087471348246586565549444547833124022737715869814079721506085577639101073841201909585198377305008435093716914892551099815216300658697723615230945222561288004427377760436909763873705343539660330546908105643715041235504641392618787620970863936789769357225100453675814377838421314116148637558634446656436210736998690072024449171858111149006619372348387226646782714428710040481733111570505357437986456737731665469268168806606047461206913546498648674451752850151548867205236989729201054125268111403531211556597380019702567226715746021115615613884302162093395871752069523784137167643423779687924190568164165237116385205626085539699144955223028075895401187338685615861845974064805908167998010948005640261141776208613659475586508329693726767927707822109965043458555592877876533643221435685670357517815068742782455701458959319617527029683574418251360452496224182591008978325620485484365193958346920769594097097039238723889537033238263756680426456196108791142283919307343822869812462145532770294632540504904206306656893999512697478278817083338358096016846905208921146663368054982307941069661616636934578228561462526930186651263565085907159451545598687720983674734786144539932892930894800271428734792689253862925738177271213719973262636388605974961585245512768004363400894360697633299799494973785153432101125082409296662194988272604302739447786248630714250446176273153217487267912665228110152707654867739909047890491767728219523704631102946207652900118184056150392130837005604862379432244327657581151818580980193766561206685715622558462248375875006520065745281511859200106337403793160600159649063026082720026628463337897435527233633205935317006980780459396913824144083795225645342341490989653581448829967576988682981402249094064972474515234015535586568674162066022715772354330285378852368872188640681756875479483274748078472535224830819724207047284273957788429161987233938950361858768100928211308514789874431282891366891338725864969942437014021973206382908081088836491271637920256994879742174750286909837884303875219499577207640208050935118251706645094801598152540677630464384504648146804395249195766155754138043676332943033529702630318060622783372510546470542824494532500037353795902117514207269176804895565033880558799357078170980347312653242034648477390310408368302218411756731295642653256219517101111882388282495838789924286820914627299974169481959436579603621401329320958140055713852891349057847106923915908411843185589446660570058173389559174135938844961438232195073208040245980018765367644227064069173504361986091817157521314635230324355738283957661043673028808119619936576391060094696535250733333869540667230200241087544957293810554432776308552357584677932814610809655983593428695079293935152294121995656857150342530890186638831611245752649307013848458433065224601701111279570136886155195780600005731751913447130153428167211256175547779178370209115424009310292478364440985051078195030892004911100756787421549761890848512484372005241787327216016527826390357017456274898208752090817361090424927642699541081623076543935093623971377714403148810952917686962857160785084479421980951432994039557435908260258417241627180694382480219954130702922333530214186474702237471091979153383442202297514353169152521920103627581069546855001603639791709145148256325593021739252368787896084902572991320996423027572175738619182256124155726784220286641542120288381563721695422608993055753101224161259445993166455007520569551171427488227791223885609451438842494042833354529617400561820984249334374323873360928097492478025432247162401164915156507558647258587463098668034887773634422878967018552566171250779040894339262189879816827066629212824576723638968070318425622191371901446125948381633757645410251643877971679808674951529282811876686365253270942865755381243051981242683542103885409597960811369937000302546565979145747766837888427574678401203516816254421887074935497524991026320851045431004430944662786377247308203366775088106296047347268047177693954494697366912929875729559430603863002904081593334064738675880399126806340674110186867193876490986050082360804925946545213187700423857125675595479910993328908635582431320192515752539783414665990282184939802995379753411103345723818689246060744788544276201144716789063861058994181983956793681707893671950746745158292652905539455713729144088128732061355254220024575733551497074372377346978982117446433980651403224291613780651638640329430711277437231970892046156154271867534969348008698412572259877056831444128997312937301296666694227758191318297063660289943211574689825479850513798906644139688959620200510026341512529496229212662334361432146058087608654953852917197384824440902578973692790430360749629368423648118915007964003418928849658819062857458357779080155255041140329213581568310933556662163233464323079122430250334814120247490787219864586713263400695536486043447477827541705699071287186296191319864147810778988025203962714115967332852054845053864302790671073491944865657031749347732988555285327300685408526086333841406506167104713483031437186105758496999099126399035290913583229706219344280814923476104788035606461513657209458187423577834981621880742106755367580712981449168807946234589997094066687057798876841429624341938602939805552263060523525400647629875508049281882591047358029497187547982566737303542450092477447340645706486393538141653569554976842129659279972885482877603485112618278038709458072273465285104421056017532952237788473131164242233661732570567783720473519298089431588838701879907903981692758537135757437852218151929810066312749742153525815387471960837177054991831605253886173471487167301340613071407206309205267340880684762407528004931991214086863250354982399603783005611455893107624040050537987201397080693846031996040639602989269131677507978038364556768110261972559872332100985524576920985014792166749497624769963711670824401321761647250492184748828242840502196074587873486987942110039456671628821094193316365481139107763078779091536113055375767304018926266263410066623436955723083679004093066557396969512091244504390925052160624770497937643123786243574319716306903847006008309792877978746765711523447371019566823718849597520859093194632976531728735642976039223350343773180920609186132668460787386894850911167558519010322440667407659739939188856986602815045283672827189481220148232254649174819968822203102055946844471823844797874816327176366334623871901158583845971225870562361838691054405404152000513000142749862471770307702035972838503151147492870369454065637413515319763905687842667906490033968799180126210828051564618809414198421269111449208237315407027745985305460745926513082000117435620157453264490086705883961119313125637709238273126376199988456107023381483759245379165394000604138899376560897519857439583981632927022030317474513576385984375026404203727577351576947274932075193660233351190578570320371939867827458208742762020496460154579137241462164951809025625374495985629697374596136724686130637642618160952942965643798449715539531086528904903418471292683749188937942158548704953708440185464434686423450137413116731023511425059266703883283005001906953292989094306106649877363738961594741903298616117347157045159217132261973876942475923690971654078750762788573768942715291637579522468867830206131754016898087464627427525666465642615675658927564826335337377660531341523935809531331683834749007145297586493757699211748746282457965722443524201030246049162368976249221026865540301439221361912548119609104052093324902904323476378540337240368426494549625333260982771740114170496972268747313332218847484494163267508282869164371517078336064591751165888198076288552707382178905187648839484351353015614743603703469208953764527904435034310560715647149703839136565066065401545985964802559121440194643307893235136374603117046189833332135380322490477765986558659699797299240805247447329951634811227947069655472138021767652731963890692777812746156234989737532484933225336375589243534053037276048605224677552231420342124588684489040328524500684214826062768098501189352098147747844677200769629994450728702764972482477615527640272968801017234570604217112477654645556648320552619315132101881068230338984268428111846907615613413975805365090102331306087857551230161623870534346227246741989813336916218835152998054729569835632518365453499600873302642174462129082152722949971596766046080559680467880886551607192310427625888460611013169169155774914009131456285126414209303682290538048316072644761886916836669344336313025819429594807410775052384694011578759231786870420234466398461443052388859878277121803314987458617727428379690810720404080362165738890464464994246820944493011257086684369856232297180021154930782865770359877062117423745014134586736806979441453281496499304979971445845672131105812712894711106819360699917665877955931322995905996098300073843191683152775168381867349791296323693068556641745188741071556856072803365759305864100023299462977969323721075980247679507847624183183791847977638520879385630082891880242110378503359995710388250482429701818561156763232749945700355690576496527022201556081171121587193470678333550429643448301624935339933788688279154919690890401831666538454323426900185285563356911283212430207825505641435039106169116975169815345391681558288547912091450261403921116370347194987267638756114930317472515703923934079979535988733371658560486299929438968282715394973081999092364721784522648255249348603534332920229180573279308681264062129225146057562542637010690380909884989611139606429306865094398577751317337709249420080841204461405966056480508190358327798630604058505390057995427397509623755310620016134651365019887968612461272205696871555724127873774238703108919848662931703193227909545429853530212527545988810766231166747801598027927002117200616727676403298311356346753955079099932118558759390758135640380239928977204736667751799113964314411363928692450721992032091924443435914045451598115511642686534361478117545212965886359888392416412008335183035634872113604647083620823949227796628798209834030276230391340159726564173052000996223541339737940930777970970621721327437812076388971561386910958723725701870621728309795595067999320966710836932968434361061435896869605230996773088371575546267519892904158622613274695828301760264423279722098196265607829373312904552733070456200921053715553790753441435041922276197631459704604454537579147194638751468691393611840201176008073667683756253639335275073438371118689912754885427334835068970510452129284019573914062781010325664782890355077351049852484522067751643755311645497415737634241139781482614305775846420837595808607241236635967402325286813291497435394378286063194043402884700435611752679431604323248272417180404755464388129235207733808352489271364079199348267119441978678993533153278430251179194565212027911328036029354177548777862245702319779510554463803979163915711421550224300733476298391630556338745661404195285083368719100780692412001958036893728598951109954661755892994774934324918929188666017758230336639292164363674415915945450080260456256082239032951993125948366313302577707690819270114068837285706010506769427218516053026869433972903087284158446048344205400873901330203288155729910290086151236299544099026489236325659971740355781689686966216992201476866247878852281982835338217597907976774360634983184130409935899368838502577386156811668248846478024965798818429985364891039244986130217995656646425020256373717012969029596110815663047020120532763449062528396003974910709502641232405932739453727586291080409054389526362138105233839314096221317622200029905478515079985811028767413495324645688522697715974095366115672498568252922579491567141181399053248329704532682478257656149135371920533505322456052989372922403252146542319056029063061261738337563417824299083048490039619524906942368745864953686023040812476155859248295458325902885041057586039748043623588165826498327672789375282792407464748689041560807562864727785442239525558878993999976233978813913914876222594783518380574941531225204016330769075218193632494058731396371086760875191922428923943639374107761731086288061972720233247288837766499616436372457165012621101050901884999153893259249616548891439117235197014654440771627380912789851495800329802195822193850487285970994485289730832116417313061158773216952132109188861100285786168931315564885779393244961291526949322802445985591442315247717234909501883535554579416140128645231781838401464090034399510775292654377901343869441410494771831200203030894480322722427245679367988870863582753589841675889764338354011786803775749172401903650201670998154372516030325551194395710108324326818390875761555838920230839857035095458176559240987432545810752508340323301255918104499045760378633070057609331033575767179308910526315582000492073244411739620702705156775805320072872846068496146949182519621480623192856595717865405471090380172180850174921709854428838139504385092234659551225385785862934587168458338634797284008344537258809176375954595217122007287988550217397563897923466328240001693239912896475607141401373390993768791818919408738446631605605719937035531990315617489677261058918377432872841014158919788228208896423764049145954407576906155561554743789488912196828076701773780728824643216841390706495811466490449401504246486155618915699654594019909210840188077716253616952981415517427540303753807956337381604559029648999473298807502895862080681262718057870639979146312978202598708573280275204918499941565383992141762140284732853345851965509195321107497998159199920301100626649149654382743883020820056774819312274477650288296333793695502658568185817181670677616926238236349093120796753765077533685476771256271552127114979562489760572942577074824239149684242875849865282107488649271615043724243992431488809962367237813851361841738293778247892869547668771364146425525411067262055447244407825965168339647674096187054292646196840002600937109947637673289962457347982737519165390159533788473414821187561425196654687237623779218977141848564576407427051430408744829767510955779740296957705752608273061365673431049872739166570227271821693551266505811814013183739227601916893153818272952589496445423921387088337648612234192357624314588164754497508882010162466981488191054771762395737523105366793947837765635691732729359201593572063891358625123343284005639983850264911372800360146680662784773527151084138391329071103105036555064692853774236732677406462382609151719849058716738600409856294729853701424404130314249383907969390976805202713870392311081116898752460325802934102784060791364499808116103363971095274905192469843889896499334314160369383503945986646597824600667046564913180941853824103878929200679659365812510582777383026891116442704203853866683801082233252453319796529130960057633223952015681460047624155733235193324777194477069139707494269047612704669195033799444619759285020472575166548564533328140755481492611955046332375956447341052355092435124775016587421781625497242663690112988261870381283263500527230084678715879242838753645439699352175317460938827551170807941734511737524972351701429841951429809482671355671162718290809748469007308632455211788288716253843334167166589028353959009628186536858790548537258305152803737995333659152866477930118153280568294296988741303050086974551607092955335317218181441498075216166492252233913680699158564262702610803521213512287401679826460533532256020095058055591321572961688435427773587111135003057902251140500273366338439056788459630649077534777638440933206472073034267176396969590643728836291709245080744496289027645907300479810857910077045692912406315933486213091157380391081142898452382441653987385658655820713131242067413188518999624501269812842719965776401863557099230665180801432941604269453057844771614281805839094108903192052253062020868679517213235784645141250941039889600092586342718927223283953878988298709575692415865125671037838984452288738594757589559709529083029276222153280123907837261784813519431342374229135160061419231040881593039548933633304511871657845120703842466382875651966359224955008600849136978349370308424067906748741139751320601050920466317895208771124604167048961777619826993464555826666059884761199271083678756504065184080615353625641551082149802268699586569938473725372867059215318956095733610550968280844870461274709181777393318823934740788092317279053291115509601618515029789760840103771741889424769632484909279361724524542852297668360796351721291769625503816261793975640561910257708640932153696255106821468433224503766461731571594592747339484100710842483907742594268302383056606211568793071594619744143706501794790566180843386141271598327226059738670791371597840587463096559470487069273895381234527382477360136802658426903441191053741411369134288262541005890574329341849871008470650856454387028000398713409696837991210942391860408485632448123124203959163872584468381996127869317759804780164221803745909668816890639392095268959163550347964507007130450382735265259753057408910056195118586322655668912529508730357759255800389271271342159862293065817412981311509497755482735702970386451850516708616534788685494616920222220618102337973046291408364658694987312557039605062913239270343363359110441134084915342963831855123390093311773754922709010861947712976448431273542130285597559319803653689419191710123613863681001696878361032915722005985274010813634242159702625738943654551438137426934733837479096991335169210304106573764826038514217998557793214285176784042543631415551022956840629535790621468328388873365926166596181659428248922113708035016747999957362357669505541807924669317420792846931404860153817025154669554897229361945464714739788161686477925237304539159794273035626933945018871116477679065849111276033348688104141055106654213757642190554190453315486607164845897786151484994291367278393437843041504660809828942153316006045885420010270946045364255964420015436715620159272264969544232136646143431925314040680410145665451002386188497200393945034331321032299137049143888268596699504953949299808960307778702905342401208348678564857808647731128208571858005119022884909454790654513053562864948678152834558762097817672665268764334910278258610437048573662299555774144920810844548512012229316554479309134157929939016151514622737225171008455871395156098868225026539795132130602097470526362623667902128468157874260291865554244741379411936804322483484205358245674488993133036351087320853556582344019128805937391703078307234972405947755938569392743313823955928681146927441010958036977606915975687346189812973914215044097895483176513764020448504421371914018484778979043166016991062605874658595272272607375733588768758988251116739959542712287523799528137338548673944515860072179088263864345244783759051637895792318390706561580462595619864249020071472230046128996393820594851793146771701720649370882822667004023079820231223369929491629863475465606493720366407821410794117985263142859765184268537805541603916178538750894388853060331641593576419985613234466250679161053033958859571214129851523268950311250991767397559095716307553726772138120317414937624095218779791451584145472591808156209882546958326249449661600179024567796225157874363078972101660138872143422879604853931127249912955304455661924875595588717268036687581756750573676240974977472121835850726744173063559024883996068472151594161206867655164850316841983966209924120019290938156629129514031246695333975764269358959815642317552062543943073258322261531827005185541249526550097318184877668880285753409325283312228064131984722955048923813493461768797732505825232905181139591127200528375966856142732304142132816426973424432427356848731396343954708572669200576059962090730105898501418694643186971023284568512304577050002287876893679410425928391792100124829019270173990547899475461431888497076443622817949227097463888942151458865713006732632129283096051327940917278825527175613371241805501015009610961239940248702626040552632087205425935486619669776825983808028446308287019697931708763653081110568437845580995617075023654051608132920145481665296680360014682372959341830342950469485162616462472010567617228255804026043864560444872234120515558535019899135667944521462231134396716736457341088980810956087248690127702385576327733402162689070101086095852612341189609802884091047311182898007562000723797659598653061966476423828499256317697764338105477740831959969564756622477396591099442848767499369315435981575078872908991143610540952993082247754023214665166262532065246428396059260102628991302828988365434776069755623804408210505476396754431537703056803327377576789893395568178578977827030272542863686563039515517286710657956139035402260244950074330599742850261113387366070138181060881073718165603980754982618611065897754651416449461579684713192225269555967967071910743169371571160460338009556310355377407516286397123947197112936710282892770031559188997361928651957318054033606165870504787969611305268321758826640969127869503368818898109472956823054024522983797085877285389356766351436387003803337205338188964009207964418580241233969696567404930721076121412011669173303978872668932690455927718913825007961409424304747627434598318562205603125278261082738202429792742283330973370136435718299299039515573819752004612947069998752424414679860636203681093322631799693638022524232909190256351297955929560096033250811834169075576762201803953331128625489395819801657663013826564077069044924247011352096537835953678953980185899619888398561957659931139025270771344901793294488703015823488647552314757501964572371324350908624060168729757185030498300041329673371349335376273329145141319185460728217193059910737468966162021254112188910405399731241128676022818861586475305002593156135456248037006984763909021795376614093965928564952480543090149539328585645157784180688410952963569875969382742002250523141082532274653187022096631899061915918647765223123588313463315635056325048945036899800647618197217882116842079064318635300098637773789288147660916504821700322958353930652113595226662121048775312896464808849461631142959957265218941736035909559031631674615458003594891142566035467435651139642084518366275480369206303383842373548184929560697295241056752165691818422407519618827675566000884691273268918460704087368792440351941126220780946223670262655503812744890872855397405875217054349727838670753526889764315892626481980342704708783789283999325276147453523225378662257522304141088411013682312617148382586175872442568480359353782154142779818381027557620504973608152720328604980500449238042282012617898939268059319245676775238609209395864942224807137328416829891426991699750522247596157524944940593296033595265956012307688307753301588521555184196194266885152267845660867912160403279922574255202251581435483157710251161888042015588495643546846941756554559456766174693596663529369120638669751601720629075321167426571966840755606839307542173648240076560652925209232837257475930705680720107842309708466492418051041476176947325571284486305127419871484726682385602061240574481614714334069380798632059190374052799483121593503930367107124005955031492501923860565535040523523645434940786885128026815292347761668103222486472520573225559861988305471193001738221123758389387044147205206532210753641965135710441864020260259168467802755492372024637295313616728839392099193857374863265941152202501310304864481700535938605054912857888941779371465945200897956440625232804238192059271544695497880086671455310115259491177065286525003489284532445326492089149147700050835008911546339498822211073614930425051078859858882850028332950545972586612609369500129027352546236889643567230944229275746081979733623279261840150786523409160861673026029105370440285219246504707536230808112513643887736246331735405620717527752754795282570093255570643876949583065091941684489169987583505155136428350003290084454972086344599798932498762467773760272012868687932378565790615812250172087807002275473739010681827544068076958082933817440986390993241412819154977846328120636411672044803727750890777032124630837914963077310675389022940589120924156869415432794325868725303208584433807082893930719752361925497754133536450381781254508785004871931173707424661497787174188054734105572427348263924184420432651457432328719552196822558655487521214286750144833847194747370133526886451541267184558556461425256694104391865383244797725828200084149947154015458384336740332608469685217916409272110330668787814885839066755835651263449547675390498889856904035037509107600395728553380842128682145093965899280899173724243995457410737751301277644611509327870915760141367366145313360468983983190820177753032566168974149498871603630720294294689260952169525282580376392816717878513539118840466235753814626363699148609327184786748815052934634637180476961939387556206297855213189414002988411450426027150082541782376433357006309991974758464502869877055529255000500506542545791675679465132967581742349830192684570407510831994137764489138527393135147773136366990923807958714381495427177790540381319297635068904226522355628382634197192919529482381301621986034226387396953023324347498255257833997821237188900551717261571886027485413047811118441776865819578708843662949936890294892105518449585290058916778056835415317850370852172029575291982688236746803657387867297794648067291897965303357047611706410043918935449230591372734764718143784495643354194596329805576411048022043857715956298618424661049421286146660276438032147863339787167037019320262603751065487667308978294038432748581764678874321287502028824329667397675004253830938722041181692492396494286125836325635221925463336312787303077583815586840185645006078207107799102642521084273599134890275296655227232451151275273039002166785255387159953472752853753361675130191669456622924352954499973674642800889242800071934871262913277640626629046085437762599534210839334725395274003908574778243017716822743136728816411238183756418959108853214905964877896508272265565755536351038788093927725771921448256050177850233323392000408026012144599334874089148219953741043220757497763114828675101031329141735916576525573422054803832069681596562490014292042754713831518205188611445505782312447141583658665316630574513894554598261712459391965246799511280494165647227767983542995956258415570649594372965293567948607711100736867572482729706145496865195698529516401871169773668356134255967296880739833055022439761092438303047104489171179732981756865351596368315599127244929638123913368888290398188845768466265914317265362202877404790933388894340653873886055593012531610911795567033852299494801317626216400472783485928021384226678230920435593952019034247586501903153106286902208465179894007990855376864810445036378459644210592989567736026299332714980832735728127630830345343903650245110529243505864987725215778551027143756583791176439531380348319127037500952366545400342847716172617489380541432967722244660309027098209616842373589075179356729119289169506154878672030567335328961284086905424630190518645088576860356591755158948686045804584690311997685032606147474863206225853882292229499352331604566217864629481284968761930361337461391206126066371053651070148960474010454319883208974786085636500789342859555862431110720474935497654592615193912171970742769373183902312525892368961533684323976596641041283628395231937815310010977677393522959488025429232032483516807566904361766325267459137006020064250579613744792379294302135915048997119830358840290498979642078025658968118547701427003074465045589313034686224172198309782734787406313673298808518911893940536140529718365625926167954833593971224179833524163573994919118179275609608441526297823477624630488257549155192412398712583875562802451061117287196827355695532752627723590144221083900088500544812215577796790710241118901760403655645762575178633858466887759678906535634437348124451870015437884012414447505538576021945240560123567536047155317128636972732020521577723774608671152678644221663334799736803175052291231130335746804830093283855990738213575805486078082638845669071669893877595156063199880496430647447319833796092111749111565653646179607750474425874286196084424295026357926674839756584104067122062630943586954363413337747662401057038213185602004595324209764771891627747205306125730032332083671389654512797115602646405339287370089660953888757654231959375513292026252575322476164888509565854947833438257768534474818080179341817135443978441095273582842663968177013560463559819436749386079529362692191258945191235928401907675564831307314372480502509153278148169025585002467903223317031188766419115236993983660119395956556484909130036460382828207287357508845411572407705292347342104212537172294768606581287959628370032743690414183725156630326213494038831551203494332384335767508329977486321413655630637549849168290446906401115317517124670983235242863399693167274847699833641479636295720333529406634166650443728912653765693620808693229785272782038582247990012694811345781883286557412823044155070718345777927872667098460529293938319158013299376645363857129115274875496676940176209088295739878348669676697090733940693806674292538646908330457748795430918582208235190425570125368481925099901421881248194665693203738813810447739649726470144770554937708435655631315369173740295595785277379918658452188414763511442371311397853662461155536156451374414090842581868382579351620689705522153663352036944238940137371842014909152807441844158331098505395151007045149950212729569820625222815372967321099723545403999504641961403025190147595074804440767298944312334926654953496271473952404013008407125034264981691664882797108078134402403125183718132040335156214902221642116066301114423836062852685480804432940267389136433885499558098837225474593617551700804161560146742095836897550108115385783413784025129002148256151618749236056629001187846386906805238200062676043460580378290168821813875152710369095008042872160071819118575643970330256904619104234530724118941969851152561473178659156522253381793445692669294455139145970345308461971190636668197845105069132854227787629347831360949510803544182962032171493513691122459250438781900181988963619845310099071177323820670518776060202140495044463178449291577726331849755585958572743427420403296984511015939130990408154066036374290490377478830168148526559627206400825791031518075633030071169467514226166079341527270259407544572423708511612984071301119338606954270899947145248609859166993411829555866621591753864781376423130558520932686768608973623987380448004437963752283473737005288050160051239919953692209297958743641972168436492079138885999251127408244412306094620454679439496314025529982871035198190218178577354383503578844864002980091637538701984486192863089406432131111087742105398823687855922438500381640225455357258495069493187519233760234442353123650306226167674937533999287056236288657214250528131802344032599362368096990364604579001329970105738822068511866809008521402881021512748419829249290217601666208967805888721866158287362669011911648074378756378205896999900773615553200635382938991956088193692909029173356854553370070829871757869151516104336074784688344384177953029778579169134047694668521911564441567586530294635455298524636950248744929142658123000992109213536469126599322678306459488740887179828514856212525694865186447792445517768373804203926384368073251275033013288231011590816396210041866281592360331850750497805240117855147208064707870526315444827630352993770316289683866021012415671180140757463405165756896469912068374434757028957331268039356956692664008231240206019128631528098363152848041018485451896215161825533772632736477705457296717436090843887076511958936575401773926745784868408785247106949475322581078332823467608598198928579823303504105579661332106910792285998793784631921392709215443554193553598097022548747460426605873375234806287591364732416137120893656807712902408841606189766559618903575908813304545710981127768617082707318367888782092473785944280630626956717954402059528527461912498549627075251190054065471224180694613292692080150224134019352626817715495017717810141504836141062004310125999330073906713278417083607817367608421104171619381977774784646097283363216920122530456675666737929692502647761979490101943020543723366241939690676876281613506241531792667688681833496196240321337908597575951686057161686743891995640453231115248781342150564047507906894094104826325313458429438993534122770417083498661090446348699327871644336572929939817851496226980379303408774894120633542977861704577855521875036382535170327071131128970152107995990586023464163615991638569091709122124642206862303727633511251584069195606797347584638034602210959978134029246909779590558281878004004774975156010663865490656310965632248881098703164431251178991644413661924312204433394201058358385581531169319906931916814472323078505589156410484977986792907218828126166862070402054970045535182192166736922360483969481550776715322668757293486134899305909814903634462300679951158103448280284391340552167279342006118491129579025519453142905157296766719751989567863894597616195712417359550706321720611043730117864867002110084484743541606316097138374098344163322310141062619261018075660620781952768154056200141066160723437429435636308931060432251982553802275418422911050024242791787617999078035693522760749795552972314064160674454013013163939389709184449163357644862439894102794898114098400338148602905835344472892274829440835202201851851650617859921289702797483205933935415058779403840611316760189130235826770562377424183208557759454860244800141345433537999045253811294828056420534582660184858455419745656155198243095476673240344335805722879181035695263762490064664511195737276129093083073822753118962090441421192793084943359108471570562632441336552462892331784966932807678217719828047544815256800771862911649050323633361248990752679104469857941263952521348450266953960485129290462511194584575753188531756302857914832760800153162722728522283176106417773737738147230479827611846267428580637680320005592733787501478163599159191689014889885018342736668224186577891625963870231367616746911032551649094154245639692419393602777910018084441532700216907979586686008771100023608142171930958671203762175582256375682596150686616251213235313625411522324691114769926854095765826477401239014482601438188862659961822462405689167723695385434248918243360578829066674640645847405511157268023480478800752858123787602172582497544263910816946610459838215439474513519112856076224775167525295534288756311038226052130556843057231192798514765992563414418326329449698455418590150121916000678745547046451555643178314591598823402608822015994303647970484619370880844383543569978957040701337627124160256234074501664168693275174141754393772793045738362523892856998377832104293492845239280181608827678916146406421703909380423067971073959377171515858932291606532722377112084887790996328756926334545091448719683940264391059729904526964289607009306488038588599362781093932825149960831416043299981390284026635742234283284171299441082576057679289964978043632322050856646768448616303485481017794558228832021749919952556753204693984661547748579074729419653519690129245394826295446690706999052319936338372421727630843521534091968361360327652182634505388527656093808294527423178530296428435731757424102318897141821244617702714887461474828174509903543522097273192953041861766978303725873503744345641581272617462817028787533615665128334935343686082567634719656444894338182491472959994125174342931701870941809152641625047764119502790003316529966119475194799961525320859757161641699184190686576470168211854634736057767355362045935366492563449571336878183518606376071745726343479892026249794313632899099707553614009153970676858404924350483841468843743911169942421104923555328484259318627177621189764493281882391430917874345998608601536489442490503358289376059205215175139771443794905921269777609248196888005424263595555285352516917253963883216660351905139396766034197291293238932972256416373196970907292615375746857323603583163804136083296084968802673488719757597190278398790914657873170617228879314624118227952938403157164022886450448004279646239932403493331771210900028969356885620109844998702336194373832158929763740963400476184885686122007837713025741080993294215661266609261686655968259074322882481191622759593696419258796641726196008132845487576916036023459494034034273024865541215932833481660098123219922712018445130441129223312301044537186013418718376347665258892887454130999518916868335978050034210500981374824181581620367060523300740604174301729502671934874121409770788643244142458926060679319387398450437004053614830329582529411249158628251360043654638159062009542089048885439318593169993634360091579805360849509383073735349588358598965481796422915751110050248587090285668843982646521048355930768365441881948918667933733248392825290207550380816444890376449456548974581035758433352251842574063206505448878777451998309450771541944088985363859854868150371901406404468868095238296586009165551542628215147723176568052465456900284814758865330252463568993064318828010410250615639474119060585870640441439608264511809820084330820648465186580030068149212001588832428992385842878663119869475266025925186711120838271261045089996600632049804346486656765765403051933162410410106215755811865736396596467004919203583554481178872010578786796352550060062792672229548374991738411416140393502619856988541899957759182616056072830895062207918084017870011766380544372252823249568068881351460051933035149185034658382980365309449758624268045255059572507390073461950501684848528159320087521781931651064349801583669968270703270345621013647343037327725013193393724314026948163540699494149522413293216438624520418146626574078663943922274875601047192392404063605844652341936826947190630541346431243005811355940766069861411554456312965170439593444172803831796255732953516684285250084551746840329005282269475792593556491829593345249531709985512105493539329876757540587793904035441741232551786109773775031550617945439380946619217223039137117702530243010461114931604675455707446551781614832736375415688387287706472252701898861849366893337015436759727876818862221299547665122707164154472898325064957522418289928313120052001767557694947242140205897487032569305053092119834179452273416424959565386189581335600551253835351339331017928840862281437569308692225708404438231962891061452560615575339040911599880374341015001542854382988007060799878280122523843068712359931575359230061467801317101296969869443688078297662746280310589640638505619164180799734229210961994675219173055335343735671589004227727652556671238573577284089618101072229403541243682552178898904591128470793405955636149548027119228289743476193514569822685130665049030424074295273056283811438457708806272622279800910831654674507114503861548990232986832511272144131436104689145463043247109346406555894155208497468640207118175052903537690689764539727183646979538606972304094375210380657061206904926664478378897934363637052353475779966950264762360925999317086559823564609478241983237186332449600914608404010851277256390233817103755780093388238757170974875483002786371991857345409647796601613164481944225843504291289395310011442479638937327004670409546472247259777592429071258391914281989729115075528263850424141895248705039939446097706784363301160694651274601655359227821380696358623830417907196687861640424798867147008915715461638759455860116866577653037912906592485195362801900029472455146249084392771851962363743801504772188934359861614241955053762555336883832591563537271574836064376698544001772147349917960420674835411972278398696287136877053082805275378606173116361128815145194395372028780785610192221326323213599835755315860642820374537225337353921825577331928409641574310676010132354819137999632090209262194172710976126492367349329155687660872082965739881442421749516061304698863433488001168895790795385929556315354665518883442377272551010909674423814522894256650725698033575040728214169058730836240491150592800749208273936320166210749077345130561091218357702629031766485990364508367609858583456807394257037081545455831439813345985961182131332649590526901377704498106514501009669351885776975439947771230256356089458181679807580844039996429216626724233104082754678888327556324400030652604543222824501702191891600018071969056117754649272359310134423183815630834721598930966382879399478503363212762369709287009750378581340544175524019732234445557477276553900174304255817526299909727772656803450470832165553167229634019099841000777148679179466408312136280380026585933791276582440223769618651234795090320890665647895977802164968556069766388015538457506056280163036514890137390893687877438489364982683740467150799874478301310693569552112336580646194004662566582291619222431306348813913524269192433048374368054256223330509513388389147176333447017341218582846185531472277970784110979604865976492789073564241533099144588424360563829474439408424424833648828452611007419100879306086869068263955308206335223651394407187092657840172886625731423026633518781693500553658325763727898574527039801446533721261805809145372350611825585447780540366108226201855623578782174222926709317350993098992636390935356405348344531899440864398495553714666899183139787448493480219754268006407387077900188614227644256009914536805971864907880595651128297453534701663136611622990492642981465929484861444647066197202490567509434183304817096330447328869651198084417480962439664586324921732273415446745964966932217828713733324715566220607936878981029606237607059296413051479359873836193890005015640896436565913750505442478856457349026025364185767976765667381155346927026145917651817092694827511177455964559934139820984053863428950057643608970411176090149338801296854562424819264443571800568502201857894631611418882915272935608069964415495618959572617457288387985387123136844652809006560329950494415016617741743922345382078806514662525044739696721288016398026391262155644596941153697142271742586314452612558052990032817182390830696889724218173130431224346471287478832690361599269002853843300429019801621692034225303675394691949776621703164797774331882096405394276492811450502120769168220196111135423630505255824678285446786296810891298456356239861664475582385150912554631820703763070737100690868281528954681082450582954042038341326745912203101535232837205377674337902052181222094193022051332852493866773414861492797300950556002955138912773136644348330693422060133182043977565958298309848250123327071815415840086385265401247084482316414530774985496442853488029480013657698805264987053838703033844281645753080229964843512123080912924959806022947851347696020297548336339877897311390514597287256444485287029523842734222161765724101898160485910363617855689627571094390939893003287742515174131674617135552185081913822476406526346640974116398111853061717455870791952333072668593497513423964127000718156204869480589900444462048856542747439030341448524616666036163911151137026009020138484008104248659126690527964556616379016302195961697027987275487185475106205905336217365127801150552611247018725070562681241002346198600080139919172140450461760406637127663943806448024128792076337655374716741099101539655483483494016535463758204973456783229804046903263480210933975875840285172806921170401587026453517173407445251682505855290210291835904607432239368318031066762210172070919417023315124975848083421124175497607746378314585647512106835868895787292830180397791357175765826891239903575111263034454383260635640471566744137067814705837649352572572742313243252286349761029495728055910464276553301629353197937700844990879597795303124757173187149591440076589270699949792323893554980732336918333498151153153240491620621041242993321756563005870166375037997973014045923448932137464853857275042009561481411479200993273801875366212943341791088148239843733185364842801891731808588814786213218823799596013560654877245809419407845105268230337520544506524501556006601563823070859881015127421877449718543050021723960730314581575044071562715826323102927525695776903498309874748100850889599194356533245689006408821231416722676681744127257825829316296190032504219306821087270154350083805312854193663825356268182656542730049900597771286660731029568478380419696590617802065195129805207997906915265128891927767848840792749079226595298410798751027999338671228044386898172926195854028196602954841879987072517785589379385413844053292851175144824537163917869443490047346247963640111485581913554979785304526085932338452997682059227447470951838038965713122710055807848779156119762496995034660937520929963869769574904569482921329883495309107723350517836183545369815985850325698982751193682171235667018985039884944489310688350740244536719528506925356290305912598490039640834497272810602863342857784542565441834972394088703334507674568062008273297431527774827866504114286674736536357736186114343738343135436045760888046647830663140243011943971670904958240073500601856488714336258055550191180242929178513689811495437818867828099904522818989760393655734118811261470975092235254308031683180860157922280210606833417678135247229092178236392931441380058110798039375000098933031921649459508991887273432435189723465243596400443540690062723849416771304920083382643468829174864847099322760476522619858592710056012743409277730474233613490023383850680575948121797145902002345575543429869493285766620082173925105949843682045556727562422261275564643009197652605925425263172533616022560030420747411561881845851530818058447625266739312659138298230447461689415337609858155683065319160661828003143180259799293042748205457650775522214091956119673284160013890912297923220165199754201692809508563852958631090103654126703848297613777379546520910140517405578588558097582655942331891687912719151140508248834465476661663765103162686764372990028653350170162133837946197346515867160448456199607215210193103440509083159379576152256442492950476888797667184553194924187744392124191015538645051449911786806855617445625511519025286889576765322022068186737290297449261723182407915959757993232422897913582321252130444945534821434616643940422191549827620782380368516956502471855772510253203693732339871768086665271526097344894254473348514032843323128914065412358751634768942657176379209003137019843250582496784751564183658698586440937762667903496033121438031610281643257219275755339287508242494282043850493435783481042304205326485176119349289625784763546438197181405506112939004802313375112266480576812859046553466715539371456766670762001268818369449713047805387260621033373029822873736686699941536472457419564857829115512590771717239090153367145401104295784457322374042968952602539015288722710795651630593183389381194898575242052411437037463831948237320132864467766713902685386866885202354274933967869264861881291700235960384609305255232415344954340223638214301950344426611663838332441451607088470529817549523035931567873022393025075855081562269136037790780619019185863380811347998846524181213211932233084008343474114821987211875390843346594775823028134713171424544198201417621503284513765712856011542060508113404057542041809293633264558661909417543453555409519953500084814420975037241971523384298523548386598329881683422421757669824438411615311888636914853531845960842102228985586097581098036416488856887493484909454052681163906495946513541998157041107312674556188323217420613702376589056714637447453663720024179158757042193215073975508748792083784836505782162156450853358755703619140175293023287935169802445792319380918853507419764015413057316547432520948848555288004014048297532421089867446800461911676693022771140884674832360679717043115557383988909879713064705898337224239268253540129894930689832705281024292662243645429180047160629615370881132849412887377280947108961808449098227886662312192795830144855463997629986716618261308763909980702040335748552245945057446618934886064777203559886660121636432577606880623574057585958904443400524875991485995820822249411022151577213228092738471115045801035216475658234686509935413531549854202912890094556359198067708987838087427122828032144506710322585386370386817772018890850414170763729955079735173603592217024171593251125109352528352001214351627932360225844090156474678895171282574705516846124378565989149423281629264324242655704402981376498961571386817851196584395995757895615844738334207190970708436549009143734574703845305904885699652926624000976969018311515542738920799269510277495056377528928836795717101987492700239807444842462293471549615019833207302673472136513514094310797165490745165363256532099500013954536893455241121772409713028195689661786528268730816894405602177659968106119377163749784769590615625518998914079887539199682065224750806981567600230824639837678467334022283035806885900838273345263903180330212515918928400505480518737025201349068571810718953040744049071611972263465029208716006698135657938953713788540351314485226087711711451539804314449129296127476593832946620348919692412045799706928168988131319244284030757453590763319550282089944755591890495942181583298676889281793262654130279800796798263137071753637525305116876429273462421624150720856837562882252535092974306526909179282173454248801709164249098731624224214018909903052806687571832582021608560380846465115103744058664538028284310195030257945069904014662468239061638727779462239482995646455186940687008500096101338981806010346523478842131913136114140193523329271483000638021261097114991642491490341616025689127113893945327931845543277737582640603247375275172460536247800412994801953374581871743662741561681784142549526491130279510615896364283762698840579334266448479183985779194188015642498123336710853497684044397794902167458867610823353345071394586710658239516332543185623968556301738069047747049285913690950322807223476106071835047586588450570745119463634701842934501945886545704607001156813856888402787652075342509260927303483304577444712761641701795540199381457021473528190719055875348034325386302799339355618626295545870543488066924759307745511291138304027215908142310083457988033202788554899075141898089835103595189568112199252045688042804222430104573395553662905885425021313312076691762061919876956556487734322073372828520234953170359673590559210269921406049414216739731201459184825324215409850637015283409177225220163230750575110421140124444929484025487311689278695133203850843718015192410144079306365758585223359906615198227907887451885911614275284623134760925965274785441333776365262180613643507954028575036849058678283384318484950212175796721975529258788610300530806870728442570541245878876589318149103914103420246416522697442176518339659718808959185546635485515001382475769376914091180720221731262165427506617802123298372655052267987036598939581283880629356439821720280598533566450867044564038026358963413264943184416060121973496551053522824040520661627851695171955745416137110406956355098465823205189907607278226682502774834706056885602401392957187875154816848135195311416231041926950566087630685731018324869719194167849936944473963215425697569108460040179082939376205185815382236196235042520887958390005851364224876904243675397130780727323871520865964376755097766135701178301256915812146072123696658796209823407041307989606927900271010415904904571618671498033562030037506280388713080987292934600817319455503262295746219830081853001415927583037857891013709432271269563802575335564572513654244541766335398196016630399912736710107643603582037777969069230596726460219973356119345520742643281441031766959456940283983076106281347820393234230655091887825653688699102329988651993032185721887965123203781352607763045854248792079833071897180048774734153465401808282797090491558261183028849614340626807325119577688186133648708955261313658560756468689873950100551191295849855623168199463151099386555734748069377038632619213587858808535685773490728540549474624873024525567053647166956576441822601886833788525602560682081131663498732539357754795675686644811781897586267439650278745096677469372117583846782502711204666000189467010783780252014996238596417706257379993674744417300699763639573109403360511719890423777792792080609779547054281073218584642467098195102436032177010655627493078272853662845592856960870344972171335818151127968171944821915484377942101595384557922467908879066775361899106304273143501923386402278413633492132888534999453831600957510911790079629296254078780231157093199457300591334159675224609800776966991621558327629612028172225758224186698696642875317819681092897826908202376367980209584237381880989387353557501837277313557851578526549229112594954889360870453065076435968663213611959261181918264923252423458069512506857973561006536057746027995319400237955553985326974996051787237148363339503921464917485864957752585042681982893198679692394590704619365322761877896404577904184905998966897001566419893369873017634868535609042895622317382499976330688887318397241815945629606359682577136859689147234194171755793612063303216896396925477539427061991145971335205997730916212013360910724595416336157191186578498738498542240424538513436240163793696388130429644849149297631117174723388520439110721558984329472607538043184610637328449292406707702049715205776149147617560914649708114951550546594545211082101318750255086420354909988811252731858834111374017955108864622686045836014219966015297620991578024386724553516398095074727728826743669761897069883496293179532940929379149353910408637701651648471386522869652444957121063598175615569883212947300047046330445758009972537209502198817891450202337343745899024578506117660585121532448074643290799149400797159180965051959455672528156098702184175873966500770594199260520913176137277591936706097926208268266578354547842596806393170915027503533105878481080503698536025502111829975738051844782380319553578881669276714850227656408189395792085281434984328185499958279722494133611868561498981235871150856483858833690441707979714671808277635751153017967453476751293138442349460895928474254742684823667200966578505610739652109493062230635849684879278636775527107622240664628733491666794512726659788176341254833346614089419219207989721077968822740928669241240361221624585917270586047728479835364387179405214195760231562950743290378837462303055859860636908580298106228949543482528929648631806097496827012546420820861210158242174835426342488360246334698193818452712906090977594119163883513285849880739040021474366124804213761971889053960309709349437275112440456906231174544401665575572938950353624414197848926243809475965867603089792129300527509191429930009352125741256639608262629708858405338529482387889636608231035129722528033682175741667880541893543380485739279227087113308429788848773953232843989228467804138621157060349414189041130531092131198786539950223800264648997583541531223102561379736429308349974620270873383980054382814877597746250100954492237311165512361876423829561107360449210107941200164449813175600182952449895413739749741822736073692065042562313493430367795582603432927997042064460320014320624409957364046477819647178283470709737118823459685882977715354126655016097730650947708751135586923916713838263379202452083334385838611559152977330522607962549464117469653387539916564262784955414248390791318442471098860602793518004872763701153268925129163789857223794435531090222805748866295774650507962461685057761519365646414337268030173438010655228600237276871491540332610149851020393594584753894190306266082893517722975323109215297981960930008763475787178946161318750987926754751215395381050409634270412626456252037145167947621922807468146144028786736973905459368718695564561315943537035565673359886695330683860295810849523374295443711138504454678044477188657432633118088639305172229608370426932813303364020112317952356139722735961275693674295232724678235939402334218938286913246566430674760504987726688297435088667766221729140280703595117350281057111497553653490124374250064937623406859594288197981370152473546561823693112952068534904207747295074935180830776253242261084292378717817689379327678620226484540759220558598661473436204387782005073254643879692914355048830057507001552136344251883084159136037363431619396500906639986241245187400647469774777036516400573472139620763902945673394174723460686118787511862172561803206346909097671019827422969161685406029537650406798047547254926928792950415083327861096737391444532733357819481659135463188263210600177753196610271059336518967504893208616385614572135932292440489600113176076250377591279104423723603421227209318882472044338082719580061863867843417837944825893894320190908435463522776992219205971531773148603137083981896154135874427375368272612379425452038836409859992227197496899213211292250623277634604985191125466558127158390569028612903934908687311727102662141159612720492964862374087161308027107313714339066921126683792535363295960216087751748779835610150092520204142114912894711965993014695956130056377262138290386929344434645018875839877833469308221722812171441982951380830769954192453229823745792419472571728348336881144624235528831068226059334912125693265467209898001608014634990150937095366460213349834152834487544568859808482377722906795020815039269759039143956242470322284615102476075593275943353776987516150556816629612635750552140196883418444191675966450615314861839014904700242206662019624315844527142053933143437994302882434928796654337693801410557418479785103913958333437923394033915446411632291474284607207175527754977424846128111846098735263126303858951789016890937224826181307265360674987783208697364589232844833446300393980346635103008534464362220870226368238305435973267246168412129904407613688327858824509767909564746235889623851925729021138267563474215211282610277692190095647259362349136899885334494008736138627408189341748256582786167193588153635467345468198121591203406580635597277570469523180034068838860518577533089123028716354972106437742167253845962818354478792459880995103463510237710149169673959674053459567328593539756434992796911146831083683011569340049643064879293718866238515366572980348255127437073760083419464422869039764136219664326024747041180070037929272665200237103789026390980319676519119916692273292973457115893714079559636040186844583765207948049597293170321241426465438948812159566586284835942778477819698087812992537108275629317551409500025888665837625312898894983379111516956351299191035625852073585874815036933991290774867021028405682633131846512677784388830490695751806759575025654321918962348646616607916345329138782738811982014506125009228522955219645798671270862417275282709911352243682610762254410317035023327768188895324230350160525669687075968694917579054042517674623304210913234867342664101045608392274539425777830201068084017639506564137003149893331261957071591873148193942106811341243492736552663301737661552056247097160065621306135699403373908666068930860071546539271776989609898295184701928959434000076149921097336378218803720991243131213518668088408238538688485179777378999277920914708372471045275221977168124107388873825053763890273366379015310062151838637073914296899210417810323608540705836271071306848816037827821252742220055386606602593185446132196414645325890844675247496500720154256287476984986479546450652085044335940406374979378197041250640482584001949613826219692157582597860537776446668215466462240181462470964605119559883281129670929320068182385678511288161573377313881125577239320081332706245890062822771145951744884154684506987967308348757221071237195794060717635526634764920652385258513125503268733017006297945438794142829433807980878100333966002953363929958016506059985638898683586830957825282351712847544815033050930149063116494130542508791755355875137391093041863999366122457108034532142519902253624585714047282878812084213959378013911874221474881078697194315067793186205991325355129490651306975023335220404878488695149271661747003463393263808120576156591857990326910273232971270187971152810318077109889480387970204683418786307594383014592042612783790800294830577708575151101479995251028598106066182490858549061044436957638512129292331086905107938030791930914300754855544270478654998684119339075439600882021514152657747561772306814626951371318355833222331991265902092617141417940025868476406957391418812934035469113047964966167393207623198268547902404637305586421548973250838232874812452364921966218747643656654115732502504381688976090590312113597428518230590406949058277770133473206514747897680953880633541700341893447544761603060210442886903685335783722618012053792597263028641393943493030337209261221684329204794872473005518579667143866134694418544144714724032771825161571395325073654818199827418456489217221823262832508373744372572906194514035778189172341123437823107987618783232690946816046569806489677380582969990674754881499191233967689409243748571992741953763091724970759717038030426341470189497827753756837685735665942393677964458816215787849090143932550344107649215904267978466036715771780677828903163485922286385327785178553953130290287919976854329350172254709915720532938382468767853219821562266838689283901523012338255891311199862609723570779284214807780717927847717189109683981002225481318561186842693886226018081766031239791946959581456185700351858519853963308897370477908524213263085999242168298551121605027579979445663522618544046429398754942803237883982983630491964446902604339482594972412998860029444219024118765154640177529842254389051731247807298069577421764845177916321555072609632607605380508998495897442286761769167057702429619306621864122039466210054108920284859762507309338930854959670621435412928407167166231264983544398075665990758028718871228683740069189492805295358119378103534072001071332732696863015782240755184031062658879104324861824741055703692064813272367028806884105825894357643219966472813770440492202119534781881126960614010176302895298715942443498597148819480544317688143527022558645330104840776568036887048370236273696007150303734348017516616954268883428961351324509686676967237401462506866655229900906256248195436568878434831072097908399661333921682606886517378954284197341627877296292054958321368434801414906109949530037159209090478823807955646010966342582543226293630763320757622588269782379510276278363504828801380079526679865299195940592475188560103833523914484434767673326905052812962108908111602054785721144722385192307273167215079428628453949075789140180085031747276690959182127337322438675586425990470136055731051816439771354349877899901819260802383815366870817274994864606535475727191406410033286248032922137423141156775917810274885105357939934709552241759593482338081550921096899358788762031932366995583976029575632923524900167386942396964835543393125860176610662117596359007557207121844117192895576851298762310909555200410745433388390469646782431220362192277564271786715099588181573356797520160753316818008564366111051638237454295211185260775483030060070753271017383435756009740204239254618273232160185748385033863752392851344903279643486290933554153512070031369112818163149941667785104642935252591739215389955356118660503589773745333227697200373737899618952658544393036407086678619244349439889756887694876308002112677481480162679103445009590318910616913756280846528633440697366404160141857473828144530128302387548679616381873755173540047013262422572457521868506451266971113074681174070527203363682095387611641027486389419306015657560753903311705561396388111850554287357160879958399191463565035003706474373950325049073579861676972053539081576764281496632102807688284129677186142206539064609226129779224258229519558999135039290219520662379434211302916020171339394479125256782368534656692849025302034401869364561898181967486292569969149646708634137871551742549354415318096797417979811656577659684945832161488478523874830062251610088391405733258066020374190160323626444685566034515494837842675798646032045965815053176943812556093089894905939569303957172433777705685767300110552139339188329153840841286665273586370790518974171126820449140024065478391339932638038821621468917553623343031037361534384485683870075813607751119814205234560194809977526134319107955406049623982974395082207344967844796903346206783984595618254947518051138001533179277100350169901820628664347395874614285158195915106488109165046509331786598796228301345435393089368194340175691524398618476598606450353212107509588472933940153520330760234180670447005018585465664881852508125693607426890579983901401948224667847149066035928852064588921997221368357540224018081231345846659953053532353970513977610046102611912964177254412174165460266673260934074925027045725450702599499978254766796993463610472187816285145154676891553828760165116733554584299404223613067298342727233872092314911257179005510633647149560476213136224093342552546891167870450671559668208724327136652699425804150912233840063692823362546903059626497450823597523091692415595080809828700178163726362395944107167397094320325259680353086945696592605163163345146840353343902106857404446983376417621968985186228251690472914582747626162829962962692398028816291968706132496509415116989865514587248782589560948714584639835044037997205739468486087381281016643842807402151053693455723497901620572830952169513324625293928601491028885572182763594304707788148205974010835815067897128746699085032768361912754719463645675321518117630086759379092510765718394967886773515777889937212373796131354400312966290472652389706348500942106157992369132136988281982032935884437387997064265715317332889824838213327489247549263093638058027590076683979662157197178985098106888532564125045333630218992322871632451211486873601977103454420110763844879519483025724947067768102186705011320497026287521742421051508439473746790690712304729023500465256234039507756068977377372736176084602970548844257375387552734589571716873793279350597827344697492067823763312388570665790598101399800162063653126324823884193206890589900096090647035234944378934538503563659177424950616520195773357206925881538542578220558040614128006346263913883573603243945552922190407433687584795391667703695317279705951252253738472359081375226540585521030966054121268737610800697463144588732221633262779774756260079967054655669326250423018937032158175839015444398948258606773376469563265635188676667422914364145322637885454092939018806133392878167651405000737945945739220754362175093562409084753797495070903955807272781852621705558338489725828676442984121595208052756688280447209660237304573781764532144542422540544832754185317457906608606461152394624095873034122266429263287351004313541804616992748074434459965215433669611962219641229871306562906102539492708758318356651656911819913352993876837318948902720938336866205233511438578074351427601475250924397972126163329561264501247501759508321460817945401142986822772789630867199745129359443392155466522142088701180489648699898847366391853393004867061838727965550135511581378121575603831888318699581942213165982022996176300184735370799096794154202498450980815244350745825222008069855665790707984469557672432237995487167710585306195763317648014602033055987691144555665764547088026368384064040492565393794773825476772292291121929909256862667962472302532847458588413476760594416418023069714125059670324289647908327621351758560431267821773966193629608151788081116868532678195455736736808055822246664504272248273388858273398867150435878547539292559879522654447001755001322237520530317481835460068229851832050397081349792153814786277693843291393630523530490103840694797945227749972578194470932324331221456342882745864373589058570593720346488404420305140243666749714566815722749265223497558715235414847962132733229006254635216848662090496567410253653131241465220429420269272776638000568854609022551102202289402006975155750359545978040504349572966195281809278543434771722660348578808665011773976515940338436636063757047460277937984705804770436760307760352520237932228816809420960655714815772423546620219374689249600943070891148008776451215253235583284502965264920052606117706075283800251066487033296194682765396726307349510695492507460261577713002698592764287972328824736005495447094742996482538402571985063326309197018340041106902497012025065439226581979259103158144011523737751089686403216793920650094281234733085539198784294847430806334923525339907997008738581362786392082102909593801571983542460015539868450155578798697200407130761529319452039408293863122365014778908932539196999579704373541723292355393910577120981701431604534008173591646434116513856055193871138856613216934388350169914907397161011509466886467069172197389132051634184976773917960184789805608115873545739103571534593657295325388697739428950230406674015607159127257555363997402863462858157394721870347035169381141553939970809203799180521007187879453651650285216319652166551429735039975458377517145300773933877525561582683922966329247616217241553702814751527832730257496529497971626095746884881687286048694717627860941768714499802659255861415404626180064011547582915374732388375388519101514995190384519942887067799092652968087859489082180078601480410641908322351365808456358551262761049225232675172221867935672140354645221150414285653302534603130596773905766217318694019009091333163528206173310937925434575246707640791227347359359802944683542879228101533129551356408993515858027855508759310055286496973935964048262337711370509127564295577530813284402909353839389069487551036261514537257495474561771196452749586484693260661713769757349695794677828475875278348907533104328412876980438811399914651836887108288760289270998549911549021204312299593328686850526434673977394824623172667640465403533362904403052057930417420870954929055567150591538320201046479669090166976423924241875391556275204249238608141073427430115931670802655733076001035571014039117893059605710060269373431351696982359500816517234668852566433511478975463122846502879375417067951732089771227964550471569453887853291078301906671031467772108814529840285425671529687696153499389945410422935769179641053196114234358356048403852545292720220949656059225016567303477235519496641004089507334783655938827467966908266730233669136972727371927557739081699090683034596265793030348582115840921524094516630044415398015906113933596576458720909910113191822219778384447758965813063962201454625954786449794479689370646634919865212640632675364986597409799720553537648409097210751988722771886035472943850837871492748778281167609213265145970211571004010427586346433566158920576863796977278454243410699985668012309492988760497984167543541284130865445218576958458805921429403493722794541378677583291842888067658518355055984474064082204728620439380714546244005981993754322010101131110484128130453724772937986183955023214283553069346551272764773360387800820319768353013479628549678035435284863189657709562380862139272894020209966087771997183123083013328998724350607641398270919684534479940444441639059904298327829924988348847957402298244892103035749588056082520069065496830380182879544691008968571396925111596561064082051014406516839530623796302785521517713287373022572173035765639422632628478801914954724719621236842745293931708610590945060295897036330955964472171103775039939563361612648817995506909692571600443574191823775756110570572587724064018912031990594880249636608915925888287164066630096849344690556040875166016788921471999759977864591629949609599379039607434986095614563963440828983200774250332688540613046051247202076389297505359439913950285492883249036719854344482906218976130192299712268850907119839685177212210399460960468757088861768154897323687192105353662690381916701936711796947882998205979208173245300875399562797002840018968189419233111257307278694214166358947291948561511009642800449826127964190924054385144661709496596648445058423984057880590249325257771451215067971364766679927864448031399307879376863971713626376748282710752239913910982950292700488701315792218299502445856114403752178436225142772992411330681438814283942569298398932248891154226270158957139951944937831791106427950620890701619963058462790667075644202856234278692009088184111941721155426602047116927105740790599357780525079453165468798417724268037759663898270877992298731775342412986253261268050902134763488179115671583060264502976285406550379885198245376782581826089301376658977672890526965176329084816767878446919348657133820545545454179962174052249647825726886459182164035142273264203838329668684052104860390723141129374259719372111266398048240831652743921020878777052749824287250904063864447099659759562417582054841053728730651980648898077132272864628943308567439866452112231031673688732054006209361881805212646916654233145705528588412012600913601859999341065734012738695094376707282000064569790460496647889021141078900865548861252166817780086533346435114748532866438279586949808247811165917494317605371579315116161555050299245482629262918860219610768849405120741853472443465106359246342169374298913825499775715841006525737357970478864975153026512414687607390542583055092562791503411892245197528398064669677443789668544885416583416994652606280750422725965297721365001755855599947730583723620222290541088383208570626035039130552499125399330557303276466095829276034398752377534264255537149703505984107550847893708589808748032864940497363939226028232292867964654899785204453909302398172429339224108485477921714480737236385568768770009106147595156283197762295179613433171815921121103449520410711653220246480779966025956304228496269487280460376041508178694025422695976622688460022356249208313048963550208380580024636957909634811159662771259977958024409903045269850683336556195009172474242810082588690696792964955025387061244492610800067673366266824200425775205935720738482010442598319084002089910729896714896311060517066572189856744908074221049588678614757902960763303126117783596692664857561639756412116842142230581247997309271656663723780867289808625016391985475329785201957327532285092923991339306241469875716927408781164242998041147638476700664777189295093309055170582679331450354066653630678142130901785323352530029942810435750513362117346366876858302026486991329793148622279293078945526940750901970854259333552200378571841159240197776870106477076005267775406322383708997794224095532683956938735942067316297574395355139342294994873257076497018087837741725365244859299610162418926108867228392198520867086328550937494288969460161727066906124639925721774838905948973526034288459605927966734092226254666344401334156938208520250470650576082219630511680343143111293540373122169604913825445385925003551084622892965012712316602495024340640845069787467047966437742885983153804218755441321594309085979138062646428757324612850586831289671684040265591288344956795402621009400173010383679449007504324283579226238860458554287382664998039021386337869268252046428779246102423757317958963021772781709336005142730736189366640173677843507133478268223620412754557089274454061086120056327230308398791994176067200870478967723942748917161345548365095308492154449935406097228758318610283281424402636520245762869879977352526990509352017451345531881990618108377497562406788398286359278742515753065328456574942179768827935156294529257766296813190315190362397843261874401624530088359211600190799860449736227757103777845677430120440740184336121379897072951271556073670273548332194785847370182876065775118425026877475351018709866051701250046178726076053786356401170302955218655565040135383083970684556454334431115771074655469947826299001938209705213099080627198998406850371074834761599327494783692972462785783111682689500530729882591903739375350554875941499517647754992011604703376772470568660548321829189223792153820393865940910153042187223628855751825741928444702797993932875635954860217043875774715627716757679966226775529091144791655227883650088781757868624305971155690811469462274425359512641731405520601486505730389065399365699080167719482694074472697245156927279656216863937918485550991151691682082108251437509795020745049749382467451094766116621068285426942239439401213981631307960805489341939654989871658499113157567650484069364949764102450335595625988936421962132433893560179383916328285056422641833920550155351379261259045053983468601066851979073360199844403665046998652028530999666385428143594784702506586109290986323369935436576849083559049876280820104670197254785516998345439015590831031939674608588032348080488626400824504277765906720506319742297345308905439116892986154665172457227221957308464724061105979874221100379878593717931299568024512928074484898337451592397797772049731409540902663870550591528536942667875998432825932667684075594343530233676193390874025628158053678716374670208480511430881848851757148314157851885853220987482194808888284073343196283681965254620274145708493040670319445795409471884891313642803438863525037379418188933691664822610779488433698618699882350947693455005742260386008958025208252605662776959189739188397151410585341497018472534281543147827482144294503979291875982246628833295930742816924916328626564862472954550634918623789822316771425278480025987229966342434667683200859322621807786795417304848050033373326388018417877484506824694994842356661561200828207372907550202922801959150997601772791696862099816623513445553492569766573096937058161704867234239658871034172320635814607903842709595631482063008610366092525561261710446437417051309273130082280031260073176364644266075972461608573261049049460965431672322451634707882977903625371240081318023737799211471270449846387087189601626038928549426170613538733001014778362008407657094340506584743731746171726584656335995282950798698888278678750226668378793390836959728210645831880000853251044678944789118221008178194049778285705872240478235209977838157217953562789498417957853607813688525885582599087020765418515254480335910401091364341662833491959918672029354027613594326944538022173252672055372343391706069077800672394931530506189108567777860203792421514513808120123693244903411344145801663034932748027332632623801754185256605386319084788350271074696870418950088479052809645989574242406253789156927267210283462469901012807143862008866921715741726018524651204231219347967390621053369202740314132463593813651217524715582588039078375564036862693275475458619133869079832120789361153968674232224206002533624606354847940442103608218438845285119665393153497091866138804182803848931045880214938456119054373112641776051312519424124485406880744257318705601179682237794709869674889630253784977746594268505575082147437219114748589933093970645691280838076002545438979338687556648822808854806923632090297431513988364368964678985214164068263459631518669895760286309174805756456294837958281442270737351493157546212184754751320699951977395375908053398524662801887085601364327713073281009664018086792350840169712181226933373368411476710368221876619324609114334782055974392889007643875463377505126058733011085601780747813808535060397689179398400516800853004515957775800543910646323531547283511581892300178082865626467903045402739144678299674751284146345643918901555020213614552570964944279589655697451403705087364879977794567880466996671129151221499805917385000293624341439689785182616377987156696882963296156894929927921587749231820404180738546391872779376941269113998938518586456129646126474678398753532251862797331681978609699939283493311389380491653171335206696685468803045235891097037256102092210602985611918528265634719082508167756800103928379279536350797911418936023874892779842108156239449287032769733477788464770344736773505088810445306819323815950230243296859340341416581997075162958380919278694304514970681218916318142994492920754469355356362724353368003547045674756629431849779468657286992066905812332185222278285580372712795507769705006361187209784601078424508980690965220065304004836009453705242530446047910027735412583384032760073702232590406289219589615554495611155478989219205385382484838140552337393128556213544678238397723387243990826410344404414826758597997649310450426186855054327918168552888001684375867121854829454804390835501320393592792966884128485791769411434156060177246258569906300069254653923110656817229886310437268538164971083551277036739181353390142716170825500140518389245264684953364387543948794395488740406207163084535423776445645480014709688674130286706737194007450384172285717117464650537117482007772024509853700867137091311162552847437933996011343470556520022488988919495489808389186587202809839870330347554250522528816356964122074963717280840212947314054310053117554543559472804576736825192716433671564626331482442365817124488950673852302485520465506984055015706732988797783274249666539118648411840756489828341342948000645015270632455151805697070014194476996935355460915922744098444736617285053703979916945475228903738203023038470336863670399257857162693941368361326694753365337007559532404277179639712201343261001835972633667009290473170822854985691280989377047815225074071822233893248629406937863917307135868002442658955505584222824081652377589293900504964544379627660715800612424759806436350637666133450961345556770959914169991502635634615621648010471767791417792548327097371232627478513547393442563918192438784360854724038817031208561150199764284405645069747160815086241592404395822118680604650364485882015229405575017348247484387485256140515009597446084730084109411314234066180188809540423703339807221826156944934194597656644019899374070734806155998605835423427781392676846426252526403174194183443925546357721550266055556740128351695506849641514550663444758773659568004015389856538044607843361111723347921268111975363952950049490039814336485087561046333705135457401825366992968919575883223295002988234735312822009171651414732116617777830734513263651740413085658317701949195678013179965102509967620473057830794479452383726602278624082615306344952132850708407072323046766572555789405088065389062780640667194350764779655150266327749746575269873032222413430192112047027993229572381484905307139529040038635739907131824015911280401133246215791400419324878102414090420934282894825744061173061592029127766125334009708054346572471789186447996736833075778033955637972203011865901355192949543576132738733424350519983896229757574009238745750897539586199044491822049249959120762195366723130308051631524357691858760448187885301362120331646511381030170308668693673002840092258287903808656721674156931980223035691047883150574594466130989031252069925346626470255539716622620133017581535304013762187090475478320670968672615349780106050728628793273075910994233298022464880053130272532448248708911550271610906943539675036751851003162751512115105687929497979176040649735517373787219723323937566636075180966658809973239445553043973374537038898267419082631453968563890078090004209623207653499900395074763152132543381617398784771130803472791515623345831782405853545051161069306163115624465995556664110710843328878815798077819430402271208990404822619374633930829596994567986329455554885703486579508671025044083829450795049292444463136627509816483005269286765898560619144868062273553849350669141610311261831093724327250372627018815232804412741964019670299187850786351248432237039801530138109308599208837121936283900357155098358693881601949799076989075947688792715120050398864240667094015605396812712307674875498666983095549470585574919353073672275978643861567005495592546931861882382598385321693863545821568047796445325787781430291537893631981651873967956973893131567278469201451907455030617973237422339204249828783604202263246106950090728211648051525030126369980272567134799540080403450254198302660300810070892509851323126328982356744552194971204661921955618012172610072012490609370803322047200196479440920723269717664381338480439408669878736196598528140157667067862538000871634965606483155255696944965902671743854920424016839714242909577288357781868359542453120631162170461216266862720298683624787625894539477051830567331112793110136036356630160476112106811596516022775216716665768624892235111580396169323575045112048359128489559641795554850976596065649487664844373634426693094158166796993303666282488576387919727217686608369387785197219251538652118965961138481992993987272769945769034672431907322333700908235928128145896996200662765793384587192564892974448274069682854063598040437738111784334220253855543895090556180644855284695564924533262585001358598236660999040658756933942145166828877329267222648436651269575244990685243892884602247193313839043863020994389283536522307658217568020333314679106844055716183171854987100652750940018836182249977632641742453910140532191830463056756735882257036258540004024608775596025432102647573121446909760008392935900358268935366418065266182066206329477270396860144683434126908920572772392257114277411489842009429503971459633334976584789668162192268669415765632384135525548594121626358635787940252397875354785972752549114469369955080809492508866490392192618828424207624334160482122980568644292340774629487774838609227849623852199206503926397087090996285990431235800740749548269035359897871349299034262338226867170438252356965153759864650257339417288361489521065102707448547058438497503931792165812864421183635703634273840141582269338225495244652167896855219070005349391786184052297796897967623219385276472200854397398708837399691506329706713325468206129557591535595954299617659799156948583071110097543403280410444905046282913483523628668042806351219566466567220454016036428251198559899565380809839647006070581578508263669614292005783971958581583753143173040289746421964616387156795367572560732263349024334710619787985520218760205048383642596245805702735822061490699359923601235928340152652070639686838805783141552683806329880001315685324483257254678876983080966692844419458403372561619630706592137511927849972495512610317295557136334220922394066347057591017140409768218318430875123918912591927349718587362982844140570955170628616432020039749603555587832347822680446574157294867420126541754433979957996656001422615136873339910936604304820452060000977391928921848831470876216325697522733287896795763445785633178509334990597009500454811369668915543233171773334523551444081119419384656476384366798635596474969566890035384496901952505495072803762904330157807880322140113719999107008614548165255767240664170940869321001544216055262718396532034565030216190278579693508614524269238023517802522208975299689037303427876850148520948878672023401000043512850735218608212243291301605974455794234524543943388672792989166728009614004800341445378278649044785735861804997550263567218543553473715575257293795071808425943481931236920247422709924470539322427434480832467983820327521481448607399473139553860531787396493564532341669830770734055987046140202673448333670132935302449702770158161805185522262625307935435350148290606490779357786735466354514519997266775304044284486107562138561833517387861744525324178975737588774026654276391444732275209580847655668720548950142979536834789665542570167605296846755793997674681617998308614999047566171895791700661346695923539020353237140386903760206117088015555683007904509214452468349626172186361653960851524349650359330355875660896747361787759454006920085466646928557277460663242396139194220163840269903702478019396769553501926519046015974602765240247159827789931312204777886314086490478790406612979835068396132129457782395085713014204293449746092210506916924349861191480605293178513394781448743865667822556837716104396010300657378603415805955786360326939819711480955081109692119568673334510271936709185302105015711065020960450918208082000738782699792785940011439913520612317167025761844147602594787519141321049039017197258888374115809076863302944939254638639774643361218284900319959203977354345182292813161560648930017476567197759277323501636899258911238615683306725901939188396056420130826125704752306629358016313563825748153193617500711499874066252733581322410121715441595406062574391013235669191960418216141594584752240903757632269309910651751222160542234944514823740312179530551432335315295542442687561959680645197704971929498643425848418475689200750398721003564502586058243883059514011820376994098989711009391979313458617248850011512195783122237785298165789228917212895775522024317959452768251436802333438731799506973658827240995557485829330939760531911975193265140808952790364810732449997363098574535109554061588346505333814268000619225958892371136147782014497520763179145036279734030960871877329552487070571819907047877359486094579340948859731422115014783753703114267876500856715235519776754702622095335260780872578312936211857021140100721553991448317536809996812530708383140716119238727522315722934627451972045464887029066199302034236007975003973155688018215060016975347441806638043526025506550149819587695216678288297365723342303406963619187306170712767007128423225789363880609356082451852032824837935852316534445444792388099392773607270584685369077495799827568253102347161113534161105780638113223433601554570973652219283309044655704858344026187179776864795433308174023771419773713158596809517084475968975372164157317129063859279418576775963914599169340942105381035351720515388117298433963675659970186544120414601732586978845937870054383831772479382588876611292974352570838240171417949621942012138113052557236166311541260582326308034955830973074638237139610616849923735050093226971928534647369351481008956373566001735810963015108978963301217925551479832931803177096933299663582078727202446524597905828826947879816704370308662977614872668181640473625050069673697608582185165895435523150198986873023637146478285918560191870673062076941626455531183821703294544571503664462878720495188962341314052448224848694234646302988978245682639359289000305446652828909416914635128421045378118496399408508030668429086163692555075410961633022094580417482955526140684153800799129061668103904528780968245131717538169718416042786297452427975900597909970901826233694566726814466675403851503483438853940946734021476361479307111561797705943533924950015867835506057253171164710664878481694802114904007461476733858429649585468119159913665036635126855071663108680091649083892984950603986437607367842731285886660088774770541258635653174807361224106575881724900919685749557021656332127668052409499493474831512098947898022889143048946671547346144271590030936798352870263884496420843146841183993798447243487543312921198040269843050974212171813609863383118181870627539770763010575974442589501725955561645223427777695851306584952420312988180468268618598492233196644725466027495624919017073227011365185170596519110077331731128721764902005966544390583188870769289462883187111519681062679645469737839567554031624356751032562104083167663202797205143576800475714366942787934344617099144234337666314574740804369834468583268971437207673040338192350317935409035806317616739004151410748144375732391254354475284728478285624728199203513389618276207086016068228013443275222707696597740191847175864362560813801864262255145070875985675983672579136852964728639162579069388771024045993327997329078058611766689613490650683095927078182078410178842690161409003859381317118900295172064351841013834156911999394028633667317794110555457087631216237688114281705904724137390419231295400241687521017940786995965319415609067918967338295890210786397618386692395088888562286314521767029161012566472515420290353407164958096519581167794302070759207279673254946513017005597683644709946108349769127168094875144364828279688505307061356119587549052997736869711316019145703047048696891113229470148667693382118388640703054983976373022949727436602235649186145802685632002995040530679332781185270639491704188956472924085064810294529723313654815119008669758180007184248216515652081407469395083472085308280007285498078050102059176732984224963367455991338990334104326331800152882047680820541397979094330777226726757640856275796628089161086691205280483965742626908649461413221945837201030260732212167220563284888494057795470536193519047423313726506842204392147527830989168670487981871401174291071116561062883234512080735612524861115684024331140370987846467552465010400003961579224975530227445263400898218494831780018745924933261061931329992462186235296455028385466838453321835284873296397312969968279541399848223552983160664246342082319301783919802167482279660666795322865656984783795913281778025911028206939691982115577865533999489952029783085603072286670659055083774921458216128733510751828745485110060464740421056833606488524915473238889742099720633842360327854002690978186655537246297860395717425342632393125930327206732437105931121547035836528861457250572765666754723215583820980065932122362914458051501930491882519798318670547326201927536959665095830318285872391714348503027268506680389879692218209424962205838762913029651026317713281007036542592407996304563287050286809692716143071130599207412923364226463977028982882306640142146897052245247354593796307735572195831191917637282369335725931484370725108054923004400510659737412140227747462089200981793925865389851181701649840085531953940991633941777269196097838434364265575196536611465854438120741651743126842205636106897989220828461820948617399286974603598088638196141165073136264238952494267093975742213665452207737549639733224714875358292118676633006686270725910849576790764213789853751291339644147765729840638734137165020604552291566685640160477082872070833388345607310002381499386086411720920272084661268057736684115841639028659095696922265470543825447916303212984246466097091844092897120026248992764057318470696846920007456589900782335095683616262846273863613819960549371804126475045247941422340043321069928670482406357698246387758028142976405130285189918338343354031420423907507784737477244093832458126397635553382130033859973152877468968922257522810822989968250724559505783980039885034930302365310911166592710759422751956311192500928238560775283924351263083005359083714647001755433471267714686189832054710623996100024725131473077412484427284479806341960938030749701386012228003717609505026560068310782748065596180232930919392843334255163586372885895262912227341797266591886623053285396134263691436562867179218530066497773749171259830056533973338249407225040631321207322208105593492865632894695806652534422162752896015739458203138285216021260247384064444182359135617038553159290557257837751160491126793397206629364952513278334259545986237901987640902237808343059099177818725929967987876330771966535783619087753680023818928400272260700635231001008234784079678435255692733863335351627500582233911154900552097226033916847035847519896744091460667475247155959256176449272960606631333112884907110479943806274269084886235066031009737801899054643378522952656188580183069256694291558228138904401368478720054301329215927530882606842025653097740532267536445821029460482912835943295895828379293174632506548530068302854661392723743866624567581613702866787135444193420892321545106920369210592055308425618986977001799102132287276334992991196473718813553422754075475693411445643172007055190483065413157823196420954028457390582654053648467267644015940489087830694347720248396274134072081418522131296944735356252379473349122599570782551835719815782568236130346552434283259727160482410166976790395550343184297644260954857143677398562419490881815087795634217834241075990434576559152121751310074848570711294648508421209768463017520197982605373305291410216686998224043598502080875381320513952019201206434998325896172275406853497387386848726223268648499643114718335452665394699560345150420534974804365884866711981516212291016445388400705129301806926959192417904601287308444071037201034208973321862848310869257778912731883059254657781438872018272694482009375097524980633385593171977151118149021038659785934886374853285207755419682338674080567290849225214810789110682685610156771584363401051695085295716461290877127177761697435320512111396831339934068851174003616318842963008097217564206138836618739564098472051953572689530650833201841764580616795330191604569627078468363048341718578846782256165228931439830648923521928724780631547123361817222352919780930548999776169865760318424569808382972483801951749507221566877383608861423144568449492284596003215732970994635881509907284184671184276146525100504634834936920050630451983189914136690800602412137263794099399768217758124957187505916184127847651991769774093375236531273531460326392038318307801630242706846024589074812739714042729427378449138600531660174534687801576762907377499255976421242109792693020097547029972683957609715915998184338413048562928748709284714266470760939098142719047687710479231022790660867111291431016883562289848544926944398935589649592053419696238043833686579760562662598060207131137936991568630727688191257118518203170720482482861137266678646011989171636143568999506726796454134525236627367828184000819884106036842944157217240292464021154747010278769198571836611806473493709488956351413678097764424588246787933330935066645110384140354372915099435028109475385752060856612078437085942747138798177860264195119416375868231068992709249661666716194528363415849560723308462280965819836995902861234489026282445977821339163588772676801137805788728244197789260830559116585401614654271491852895901204021619235789238524314313663487825171609075984653824238128927345685537679240646121297044218689047543560155364231937785379184734478860163549429818596833217360315246143342468510958284380018957880488057730336346878796193052483663761587997892351266396972293738496875222216408119993889305638796847254927562633137912658915052526023920450241803071317026398255710884722868561309448499992338277334396920631165525541976772078724181829079543255775261287709992569096828535583601794098622928599845857269813072298739200463973048106234974821823029550327545451008992963441455769407437588138629126656198739928287830506057026235998255843557913022534194279133399835204892861527529327859222046153789721743763548123210829047898377559367680262574425486299915029521618218806930338180793712922818118619739217072255134118707018470690716576470211032590836216841548980964437664262469538674966801021447243599465769511223448505540925815435437138013901235065527403656538296735930517095614987317575726338286302799356398174569010137675062940187921576105735937037572633306125347255841176474622452198709094134505591557010190003281458380345020265517088709629611734799081771034047098097388896321453501960164766452542294260435292157978039899115377594534373681605836043074708733858117092427173683923109310349780725572939815562140238374876769376531403906923330577554109885302811677781762368104685498023216499709042980975865558849568489427215275318264666048323803468822232591761521921234046930395639208185747406732081332761906078865531845102708234567525984028831932674877856007727501002102943299143382705617867864017332137078943440810869806942033988828462026517787469892319791691007537159164279278511888766044796402570103529334596006821619743103380072274993133861773544396205775394491720350755347765857145618885714338849692504738291862202770764943831497803185918850698786781144886189780945963418344005472792952460067262419382549563187748794777988673119318612293107854378907659770213150436588358979103558627110885275846394318237137355505276624367780088776126453544914623717853702758299771106608722647503744236595964605989238567703866400066109912191990753216956173036822363518498963696319527690413245552995191177519478246829290678101192847847008598733011480254467636039776666545390520403576073894280546166680567356987937948619679997304248947996048027521161155617388315542507586476888444619358366353257077175875901906058487720818979558874638782503058482004104556727885888354685056270658961298675775241779031718466559970045841721351352308664552626494277657767256658002974638354057849633396264561033860966979739750886418038678874700379449423329762976882407049461019226664675171103800853345175674496895995461564141678912672439905375718812845682584485386332651727016692984154761873776930703230442957000160717825485913511798369635563987460251567484990211713045447272336328270231338022522177477736744856047285805277641516065923830843568299999773447202932632122748609559859188895159821361113244667490748428647409304920862320127590876171837018492401971174328687500872392450933337482231190742994646083940033986957833338036542041099639958334592814396684327399164866767021076110608862190978765436837345844033426959836216314024945550718640260471866550645002159667542786706564021913912698064580163531849480399683090679093837200094709509794690971214071189216206401610867407326061985146760518516964968239922175234239465824563308194309560868690348409063586251120780569721336423489585275621416949185388671873981943052954238651471115022589281396820768975556907026539493648954394417441820754376300393632187098112822871520968250651751877681514807846743044820169036942280466701707504879687800057791384156509515279290334948502699326070211060737287765337646786027548634689739186437726184291295537098976270953859443491644096330901457246777323634011980540543651155082435843382055269600062068318783389496938864410222805936723668835628180987919167057803700451824245228813801081236483540870284176846397946504210647160679643563141748536795692531473177958270861649835626367897072434829155141954537469442415575987761081991777132350114889259270047099074742925851321599909326564835707226644395688514279255951761274764402255857397983115395425540294620572197309388176641477365177034989680447994172618140555618721145413194031004361551649025308862880501227021308013892043474647359511677327433605436384215108785245520392657517712408006835233652320814321873664233486918131139406518717533418846007525799073915364963497916620524040091672187227739954692055669784358243810850840444709071041884061370711264079009017336164187317539198626771848185396912933476088913507545697733094268487110236293844950176362074010129068174636946797876305308159523528213701889432583612838276384071062605146939774146617553351508347688519828437128348328477265823159804425724407617700962308845832777170770404918836115027994106340148710798825102152102817768194727902439192022256321431950952492609673246083707731704180942175507438736993966053430363671159121658782270322938112901761261247177328447909087682591936753621711593035824254730087768412711974324574304341262462672296008910700886255911428314848749442095560527992048039613430979031765303617304608863148627720087756646086685766411787961519572730032906032543059286116761240708065668653094805746590355313500301098031692642324517543769569500353152045148672627538978477160307326680972203350723810582386537175692147082648616738724745077825631980318472402522718323015012593815978880927288956573726809643938449174000957168359137527766894973299149294232702460561973294860682530946124505877682662500133384111333671368073453544462228246448425606888029539318839091277168477277088575251098024058888897163335875723729058677917062128115349903346155246296442016842275732255581374896776457716951675877592024081848438766009878467233631217099276939419862508208576144939545947428413966980022400126104988947002934276120000253986646563043760408997793509648522616489150653073370512435584630217303299031419025268564906966332614748833968979877369658146520925467283483358891687777522432555343405380322189384743758699855741074729482860879278289978596102662523379568414279876265538670343864453129901669684149805436553652104044011962383464618943530971981137967544898343008182632726680707112069379230992690873066242835558308118940010626593351083641171554254586663170508111729144035490928728915632358913284287483982115708083320011476916254816595272992529384848132093474534165352326997267148976388647419551630796045568891666181018652477183170005655942450895595544668082476933457596067267457692358059044597294822600424223088718783910400861361129448781238713780273837302855273779270448727744092406947995837920205257669139495711592991870459517275022960056252712202841080125096910868141925913506961010618753214238554803275153027122400916050803324777156225601065649650296663073517302833939494837042723048871796019418023265521420061163269791646936319066764806770179343591162796757080603527568669308287081332825525658913149186370035388233506180041233612211702490235013813552345113535165563209346558310453826663225152825747559250867833138689319051473327302272358338423216680932781316951878128318849427894789964675374526839263316465198300174079190401700714285150979586340725950232825088221896150696535005152469300582617570195339966138571881110124194939822015895440970921107063267667491272513065194278168443692481616379953486468377414118188890218169531712547696536992303079769805547894891363006958687910054343168798208933908618271764184764343288096752496602715491411822607220865389297680196321747572340131378453840198584783382939362919092902075364585370700710119998169125420600996343757328760093513557851251227439383176929782966915883151300892089730714790994991763511356554972741874002462500117391810221591695509807790202724110082859530595161093299654683457398151778378655113143241496212041181841355324541389144259535714559425704643077927459551719100942906978390774352452709384110624366427639745283115269904536979027904721917280900811832857071884722077145719745756665460380580249390830537147531004284670024491644515381544101707095469945560152850480596676706990724851120853234150418054987887642370652610409500837797807644944266273540652029084156461107235317400270189865556473118383790348508400576996656740740316942569852913002347638234116110432396677023016112663556156912950381208118157418875095875358737288905767158087842984173121064326594738078838182201218176500728773626723477892930167440954227415079617095820680480326533169235803194649538955044360658265561677125079246007873811950733656915925847868261338397516714766277634747795686849375178390709475997896802914094609000951417977892187559398710050164508725187824821811605192861280550401849905511324737838157570612318801306231684804522001232869679916699826275157796285371084855970638902305402028397476687466761554367409778034428801783333079580618981908591186595995070125394861705240285673561363111679247107765743260132757313393798570977751004627893670688809382940204899201223429394409547215556742465989414704250430424604816579844703158746916302901986575759051608541503720910607312257044987330961391980203941507591290147077233398702045432337345229394996684872478259957770842727129011981484876971381280603733226471897744194668842491343369550595850918406167476730579831383768267852204063979143965432573536146006009460012328543571012097161899455178269280154330569953313308434919684212982018367712953200975565591121167605099270278219028722085265035652243347804807930651378614558778927151268884763103834818420841833829831467286338175762402345115839211896553726063747143611081082810846924086309384749917997370763797342202732207098227614252026886341922364054396363577775978188712494754316630903832509561551571571920133997776337825666405762237126556574800566050595356441415208605227723983771192649811916774074348756180439875398946141896988384166617988339231476827357687279728941490149137064015125334910403216845969279081865428203948069019615878971015767560623846212771255221019400098247629125468591404186363875935919378672526592092460499900667767297334173892352832316364189696370586190353903650445477660199290451317530684265241985451899015579772493046183784219356845468877635063489941387015091043741683152809198723149290464027620444211140333509469077703014499333334972882671975847864464931462734920048714967253973991805534689343391164306421073531776762839577375216907086686901389728492125728438717712120309341073318526207382523434977895913996458085863595942125896015420929783170706911151393280704030017525165646909237934002959942618193336377560111319234166819431530791053212872398849183781915034826955176695997896639161595588484633031202575335474824297017443931186376004263767446902247087000466669582478025845183239370086274034646774890624354717779519948862570095399066066179586426704050287344855574126557593105962950331846136579044072493377050753000646089930644041615553301143487299373803065974680529398254427293434944480619773186814851636909014338346063710587410986278890299888992932491843943930719003974056044223020541173653956723154568016582209072838345205426390808460607915938183734664778987846152233474714325301514882138589421263851822208164979185112658749180816708084246651320899809161393075418787822843761374596517266539514959237699515854071673530138103589316059547379519661268382295368222516337531787922816922942387715189225917617151392959463589122310009900693476519863610507092271934848950624311476403048912741194062849616929794424278448195590386986753722102579499832283624246689614137993670690766601418786532773942615985630332249173537564036257562411730382569446798105562943816609768947642835679587799682762202959873566458182260046725354415505729457136750716730003743516595165687061854756810955364325654743769900756565105502140826795729938230213931121092826569580557418640081809562751242941610638783222745722366462337917950751232097721637556732700098834905544778187981634239150781914808892225874055520218547537143054894883008078702521252740075862378192069302397126118117484662254200361268741662176420231552871303539092649634822681744317212182155764363103977089307514266797473008038568619377144584085058950209919727634650115929393748124297773571106071942177613387806248820280128762333316338094744654139533317498742498996039782072097109126963024372330138265074755575207457809771254113644365441941139553187394560866649703900295123468501848093592804532359596924125339055781333039566815107735383618472669053874612393377853732869512490323372528796487341410957978047566296929709338501383003496271058624696120097752899358174695616503100475656222790482149925391839387019961736550634779700035207404365728951415336254206233910542357185687605111377123907658446949386518097698659953439879851588556846153302157775438735045643634765830724819894702685424494021267804225958110632830914475469618693338788195590036945277721787421995261364319110524693358676774613920423406574956263765845893989262857061144771284744764695398269595491673185670129703224747633608205729186053669017800619004780721955816739029793610039002264231417763198577143452824760021487298523294216300063407213193843720850982447684977077107128352156855554259811491676820799784456442011744204700849013555919107255903892236067469416615463188204310898986234613080278184396014917139283280905734620398119020674078072688062315957547786855950026697638355274583438860223599910501935434887791850404154160125406065543700968274909285354422527863766918026150889952624693983585173812187254255431872179067414521565881395398253749829922132509002289014715591383962110828133873429674669128025540590487524430993932845962712261715760542820086383727710228408214900504581807557927159863631234480683451473010674750937903465863697057219475331953999122879456884308234600048876848907202016030225384608448283474288089637813965706431327450056815410781799522274115010084735323331380300646984849262850628877475849023845578685096111258479241311905260684803117147147588341143261237740760144988488841615055361952842819408724913728744764922378414045639032616005533739129841436607212715686397821912850165561420433831535574996548771332850480930204049820318003995947713899952196535996775924952115517874126464289589109432512080737090574117967265669574581103726758569416970025553001735264834947075820440096999505584359004568110100412849453365170661123031548153183721536122696427143920617336515842221867083871051139126738130837708758383489110474684689074711138745894357892321717282636125497947206548072841769108470257967254337084938950032331294613122970854777871749762171329008023557621022690406385007273368648814223740871315470407081560027699376769936904965048681120904805749001771943263190216840283395087927755613347335479830688390624653351014286290898518638728182715671122354138896483414618959793292702966721255820934538453550419193778777817789777576075248084452322580197895782831731026019342539002486500313545371945619338529837725846774295628472965372132161528323414901105394886149515663552983859111106730922068926986760425039521684070926666214300490402066802607487687268150300060626899204958046808201134510469593793028978092270012872707978089739083308499338022652795298934283891364525357647172346928082501147357697638282183319253862031744958201990842533911077315402236820478657371909128054495854402202808135364437367100285366142331922862790867959894184592573599785257440683585742822676091588750709273673505208014490484504615074154774476304941961034844137865681182864088832639880422573328032206744047057375450264800212775587939917082664315817790677938637843536582711058848509115647573114653014449813515386386890867578884960944790463377788681020573643315817550347143188881797104847827289549060993268177116200665387317619419316323655711151978936038340629596186380500503810924485996419031773527592350235387502181757058029240679788667299860027642798990849326219001437659650644570508951583425265479110400755390853031277423442482054221104885109764442687644435497220793398741543801636561141926330434912247243956998223990032618186999000417496504892272115615648646402868071393994349761982909170985358502518041569659562886586225518788431075228685263154500773820608195897828984234154859828609647186089539527158163717336136892356789364924108563408854708775736896823490783792559123470593719547745424259292654934295471466383611108843770538984102028911693787987241627843151977176011860941848270449942601156283726333301469035718210091452055320226003284082570478585312044375492503100365612753816108750955842055685111187100711187508457142665383324902054059088131043219067601269942787381265934757936619556215645018454507967462676740184160749459129523466602695685363547673275444670448887214635768887651310632160690904601277443578226398441474450938156919351804457306206992783278268700337789569070319195609855293833068323198540126424086201221204528459937974425452781897504706680488851213025432616284966527473837127258053423530053877693655789811267177214534400245836967165241332470543694266511798480767977449989257837550064925579470518848557100492812292461925444993466857881396273121838555393748290783306455874303320856411975521509133081670726066989219475372104371312722653624032786854222775630008792485853486561314711121387872050994882396340297874797418559790963332434985549497798454973296365865726932893711251964135540282878678516679893163173608052920913150878363700008861614234177574285854009032365470523330802748279683718904191571115764475286012193448220880926790014871892045212241098946822791007957871798969301562689050133273214810850882738766597276381142826231884584230840296059021491286000671538099268208691459515185613100220807685990181891693353094706383097401320653235572539802452684707397485070269807588817506986754276880334295185841389037599475256355325090949247491125955980040602022119825218487142148993319572113389378085405541219926614436305736922220418805944573910722274126045386006803122912664101780138351846713515967117393215424636343114272083721082547768651448132197690804224333489470831791816154893463748461821318908072549729229779657596288023321079602613747935612290694894326082909973913133600136240408364104085462161371605948997800534625833074193250708112185114959376640008650221620721714898636947293691580479764765208360275186703786614833000570252658965627301125670552285181196021532753851163514004438595005698847579842645745995853743119470986990249616064237832688245347842088851364471684928310048079256339216406427959416839234955550807127799896800050671291059328472505737069309901529949327371527370374978406419054508326341664095542103777320035899481653034232258679747815090743116627906255639659230512999459206299627472789860174332493082597909716048660149063960771917137769715858925638440373617235267744741050761706447270110513785806679719045306969366058213512875256022042462816094133925219770359154100492116005827345303373675423657078630701260587111160880724376024597928867792708715267908420768218870651328800845422338605836389029230666075734867285510299396043916437320743056975669887992495121194821235973710549076549127063999028606348411616614490965073316450050176626720166885575875691725746409274455666714203634738217962193449655163727225506184848786811486362850103596210101938214580491893198270830283558934970718379468351418841678021238172151358936769257249845752275583576525543383479849005779415666105382487113391213339372886965556166507056817099314072355974665480333852213482067378256605637126670435478863985445046555099828534482240465941868988890567831497212479893443466681838902986355715020703576571148438816020037163332443317374942438763390735428852082227188032345851117721947831641814493513995597442980094567955431155837075836547563709339993191978775729400523875004016148139317926765224068638935233819428971286797118202930379310911333671567058045115489144865647765465605426325544031690647431427748134130029243465659269473434115741745076767004397186989368244736225397372529947333329151168080221528828808644819128248430420661704580373622905364691354547367034115970825205026265477058794361032012511801074315057069357702147303505860417438187269190677938906815972503145711371941467620821924089015299350592605522920194688728040519055538327894162265078247266232702577322813408986521704250637128931229676111359778228124504874110464588168733833314074832648110251156156128913168675421143225766547517916854968675320952513203516784949445702163272850922339273701192462902846411042435977092631433389590578569683039916201254830309558711969835393695401391051310820806649929281343612088483398562109026291016456444490865849351704744854597064138152938344352057082046379989966919726322112141450059202084244980414376022868523927461424664541585686064873341884128102965692975352880813729794783061795438046229484675284130432899942789408645088037498105844566513897137546013774261179573034085117884411983702658774517840581473212774098816315786857629393736393625547612573118760382769612902773985443300104980399987158847819081382608618389783004122975143144808148235005458929994483374408975216749958641847909930352764337433505032308989335610036141492842508328435569809625914218353525796595442480318192865596343036676509681912381686245086344327778896807241424806950470372649209455394109931548581507048718777967756490126172727879749566750007592653408838506066346308523128350863348880937892380843297787732635290445565250485430108308337581276748283221359101562032563587639306883316148677629986231785951595498781965768752886067645161702500880309350751556291003207680805479296956950403578384644739396640489767425555342445966422220085394825947310011589986014890305183090963329553960135669159628929465977816301080041356304368677038942234927401709331462411313455035802954345339437492125079457090604851419089545580371268577679531956805361109046921937287605569433974307795673044026519856559566344321988363921697690976545305273715097931999302534346844620920943463095666867738840301482218245774034270565730697753503768670737250914258766417912088006703138153048982846202780374426781780598597532711959023614054963770492973851445807782118063870057826951371389027103980772446004258052160078747892544144424094378149904924666148334261034142945365523624606733787193476812831271302162912453260195329934116133762269966346168550554593367947889323622582620075545668935866994525068673139515694967326874482203395912534505407785666997654179309753296880492235894351138248559905773906378521385632763067750884282085628549204283944672511569035785155001149983659515853830218152697745729742770704857736258470826999311241823328811056244778719718055031670305838114344980939944344362261223715444934339493188005389683198282203782991197295167613076723176153226571624980150657320322583631390192065113597097118276883527529418170540170614099707595461673116143882539743764672634960032860557090169316174098847831743744577002960977073936980732655788795286095738224770503445680328968512204918426929696446553235890844518376377835776640769809163919400160574312702912764601529102244066327217552510478882875332441595704150316022448745449109811922127848735063360521182762253129939955360407046003481877205068379390810063454652848259016042181819276094637747444997357443570189949133819464083620464734604682925047443709678381886755685051725043601473574066468688225824518327786686415666397840240078130250951795862459771445777315393614028980374216274345465448491211366190980646007010049807693260168145189122099317058377391159507583811709173210982121398807001118730884419073694125187165528030159905541539028738016576091019527715473210533369200924597602279830623855785033091332252441110415093994575662502775414811128695234052124263980449398525165827836927050713055062817190850716995794680903748723070275689304441337775252938217111554175598587110066179574997627619281431798130112802028886167039881425209338711161976753165907983934507450350278931689150766795225949797056624807498873335558995393552270086504618521730920419031230200115397949424770700942609677643445233739659640068870582664784841259648354949689993786795482399420983640660936068917110818907076260633207383722461530461493568402408731293418330393700556291775939224069207942011134224145924039760117804539070262624568976710530296599227375214218726809352734858984270081975370132386059825459711020022466831402736698658415684337973752715455042976473567240281081578966454886819749124326237040965810011445359800165113073831454232052623666153653899943660183613386138144826862524217237724822008706165456158583287292911515931013939871380190323436959863963279605707556130879724481107203858652162397225049995583018642524157325821601896992666260015726073583118887987049011050030953553473826879964733686954284343766333893946954924665036182538224849318764187111030430205720987206881248512467835086139141782862548825998018889063719394019412884288039975411831608847541954633644193160696017811954548447177594713614681193719546815563948305913952068292901508606857674254182524359860740155115849739737244922859033502766193486872867004545731386031654725908740671707607241249515642739482655487250951130924906078459615034689928362749726458048490525945375317199929506902767309442588169452044578483567454630585277502738447963809053206755713635536884409645343004778184718321164727423766481626543740737058237362678558925179780660923937791719168913158109194702381461726336459980971962518443282046837526879186650652862077897562742141002162738795087165424012227066959662280645673153515660257943901388633810279427822522507983054902833675380505155838089102826892135129704384590517334444649028065456123312858885356126659470283016071809103120689565169730624772738045572109354191379647159123531598937324771715144562647039180000046402977700078983577452556965113636636575704880161818469410300933147511454424032890355063875256260833861885086200270256878963886804921505794577689457466858298817173162276617565261430520365830285899964563598294595931456841300058515327134805291508639355299026005354394464417944083342074256618840368705349492523992141427221132030313401971420627335634924712578692457240588778255350555893183963931194395337230212028283398540324538636565249392426184669027201442677455236575991593355771248762990542282494494618810917371371675430700876163777037370847604148830640321083225692855258250134729911678961019716056729901105242398725971903712565334858114383322195274477955401979292629539397272778860382370872541346620329950708158852852887743515453700034719561044299682260032663199994374340373464252465652154714403878526135475871888871944875675697138962839809590549804444393484441182884137550210014367825636982067423402681837489319398989237260066944017030781321617992475547026249660604534119219451785726375916400746364242083142566224354125293048862559948041161041178877044985702707410156906999662837306350977312956408710786605669788711875670806210319749898107453535252268492604382414284997840685698699524678221934954676714160838690014248153016029821525767897444720689238761720798638677137353174164676658853112678661700916709334046844216968409420867405324191299821990585937629658876023415145835169103598938150156775773033042772978179239651472227068760820665438285815831604810723885384924138284834547436054034544894170447818333661382848926359962698638969206046392018175752239161162471253253228981950180778493105334257999233664191510712531256286376641021931279549360288334194892187041324390818973610582008020893939815747599709725531340713929265894558568508991706239653818957953211878069107516910893020135407658030175381275769593016128703617623362078576511728895689976799982005629040027460704373615424533263798246764359419446481362271033159778261869883359026206271668806187238896485305861023957695438475212482376510772034529611017605726391225541152243727129266505813574492666808475284006353235726405479446707864536047012749391693329554921154989979392950689986675612709486608983833631968361795437692293874225465926105781635865032697544712970184643341327607716490062844530572768727906733253696998754587107610022459047238519221652971073594910142889269631507768896710105588589260074853853463576823662859790471806244362433147610371715989983245434635513520132757590944517637961269509907872688238402521253100907104761267859456293482402438568774920759314476317912573502645251929953559196882506500693987851751283160557624939222234709904088635202374083580802465747962129074779984854082572434680287201339955760004953022333241419157642812127100041771729329660004661351260611234523041051493710745096432556861506741282196590132285763792060892034448905914579440724466858799633350691051796337652163171299834181994113714201439212590527914835358281042402868126228397512231598326875382256750454238441833706417374892586416310022891543785073195215244520187275586109288126431742208657594311612154289196831495899659415337655612490569052108915989313886912026296654420547060944559115067050844792968518314665324238810587723945417251657539469784819338994392771957774902576583611809396340541492531793009570604012254971569921717753613420155094409777596368002448602317963430212512994090160467334273355361145789566421775707448726597430286279934987760610759767989763203830281242221276051136088062266176940418681768717014111141778135174608425572728125340259683372854760725439991845214768603231220930681184760687718386492033298125063100695473215548890529044650216300259317511425602378675044855367048895738961634225957549189508615830654836748980602665245250283933924145000130235984356538672442703951169619622253654338478939852227991331992341026174699112770736277950111623347062143884734654695402395931277023081652849983485349682767239566165411551084763547924271973920413345921586471792255097078767644186177676025523949348299294085683509417798593720850670491589193132173288339346958703823892372257189055582024891603848319732230479043888455215903292189558722677355804848290487754809144262140956391599641478928491701193834900231879362929784314158160031416898880717960412434516316074038691428685306736369227446915713600986406320502066590314243820883071075749554312681811276248417430075857631305463597530305540439507824960764773141110295828040362193412067954360990809332520421974135723755083595035356462704139164915792229581888038164760355857447476848500651610761585762456412265665827061535838047815573383384770641166925630690034903748840149113700425121204073339885234959930366620432866973220781905847748495710015044913146466831070478626352941466023020860053323793833651907127607353407556330111884634909314636483262132439305031705757528829708966100226598684133690254722335645213270825616764919487900478063239886323480447515502553038836121863504505518002570759766754843602227105503587517347466538728447880082232004384623279324560391544374341303793072333501683366973265741356659708757968790759993562841738220580996921156394091100992414284107527355217345375091838921835105666433218806693263781246471960247343091273004152256594725474196034124985890083824564778776748744342026333251086496106929460311366780835818403053458342258196790722447400009675816364087221894795992537090658879420478450609314405939631889110255113696307886737792474862027127628002457754741084770802478541085449646348591998959531163130819867274167796496863724048741525291233223668670183577068843852820437153043908338471033705406231180587048955606260346604470455164451298973005589004936977123658574833851163862653504715888490292875407242193075421927996635559376015222377195207170017245012842731393848906220265190170817981073519975810253798316565094810172418915290422841078258619366918168833779966027536851600945173464953652143411493220422990190476390674918561683409187296341708787701738127399501720191761564741525038510301069659039851931597271650761217709123988781934375698619161967176844143171966346191849981995331453385984595996351524632115140445763122118764343510398308198866194368236106769199890367741427115311677693029788142755824047752181112943765668363612314003766093053715838554866511519394336580677758015052048514408405125622577303628130400293703417852793167220420675891882308804254617870600570408278598885627356947182718426422681089275832809936485089457093613333755380112944746653748814089492072971853704967155875034055567903686600005054371664972729932975900815234319302506762602502700961583116790132166392429689460008867190487387772324606477930981541274168427289524042328752462327894042468176189047835604457310920508269379327859884897821830685284719944992445660130825888925253618739259398534339121203644652392443399456177338833050297613182196012161097683379207369144051006445749833744573892296391892911902580464155503465546346491516037494683651292383632129096643340579402875200277424726539956014035337377023863907583351084796526602478054692088795630461612935927168583371318213908022900417500746639883257766471164515607648902181755367943699603189855438476724864550046630794336602324610550984879297732216532463936430214202933033094354011335961543012973425123929726688897106543224815287664691309646686227051182726610650564178546420639991264002577765375453565355273442026963231676887523342053067778912355016394289072161343901070063985214403492545590143573831684013273620537902859198825067821941191739367591440130061944716705545656454386117057986928250864403836479434378072843242458790574791298695162875827937522353964300246590541564168712625787284274620713445651695117418382952437935365715599595501341190932899637462528392504215241478593833496248456206153655973953622326437894353784296510407531188949299974330362246708085083549017988641180277718250442774080308629133315992141580566829178216575815921337897179046860154810332815373640417362860558034234410144823561687682541569600222776392695538960797695900158264980456179132028836273409190287060147569446725654881074238929872782874902328279725200469049736743985632781705537118100351695558543444273006656709604042984394343199336292952919098495450940412934035104953555570273097350225780420199584806368995999956597880865055179982883133803087036283764284145046933328171359936189051342142643650583680683820524029817052781534669692705424226825033978313872892885519173873789062013008025985947708262189563378017967620093324812094610356137567737142085288286998844537801868093748763789734563090145812538471031617162946187779650678553403447791750620188298608796458085393931924720280452448618515029695229018580733088483091323307257081257052628651659678692979415840303937863214538478418257314972428793968831975127119711976807682571902219088963001401495796404522208866705222458628204438035598340796001556735628643645298213048524663030206579357283753424395889328526695308704634424205240797695882792343214884503396548432791473112016477493276686021311085445110311840417993860839164052077711982895183175066387109702012659233632645325051218154297090047767805953732616160705107449579312527800541806992196495969645647789836353072113306687534674382509387352894949877290215632377590374240835973932237768548070777196306127354487692141513645822320858703744855182352521999500091856067741772388721984991490412142341547919090179878594591825298021738746148025023253583435585490330108436203696900021780636960868974700716513017724243013858156866017316903906360710425576145186632446923523308141900531810309807935304028374361579314149503990025030229206116703026457769461643968536986779556473575043998950879173745727628779937464950594573363773113811063609084201386380548455796561898675041690550413284345745623877438606531235335665141762043421436562210124831563104051993658336117471559301761181987174224933984219728504330896341214864382310455596804198051663453992998997685336787156077495519995284394248535004387568327391420335495063493122176297553080349911580559104470710753213575400201618481988724864780677426117857241178937897235750702864431735011823723069009156256805267740493957694054966379341113365225552635549292769291592606843853364136249199600094192412676990229919674775413024842364709225880740941621286931668493390369099000273381098995001208362484531756754257519159831200137162430469417754888073135158311367129988050960913555416897073960753801364467779633531440663156038783814449902517683483759387434704610597589269793889441535771508492989422857794318281001065223661208999573416831748621390287501808442624145288110976319167055142129357699962532306007924044767838021978127294110115244184601320922230732099731610170026741731622193026099974590246461536296478838202461193126293141913299146522378098006170537735190972491700971919752815342898908338207927058603861191579249674397622070903435707608950680743359058522715328157624137589837266537998250184540763499242834083324590498143314425804065207336594793993129090565669903080573381070025047955160154358738742454667141759656828253875296450434092322377072753062670277535475032755840809777859119547618582906121820925841681539329466419844962474085576213412169793257269495091717781879597443548049671133361495666064880370449924602863702892318016291710203514866803172152220610747601658434408901343327263563077923673005400323204438102617314194135511782934708339689828128839842903873869523769236238677113186966966456859202263540181102784694130599160158570524150732423438910207996134758624184260053593545108068821849120380457765711532955068443527511338435976857543060614504804250423418116074906380892987828105376627883151787731585111598448238768977144694677821739698300773945151745571162730450250102035738660439130412543681163324792650868806573962389733115249491445185383269388598813320435415494760829351333257772662830840477077217591212704301821456545530541687895204603578190040238138062828888991703517420248903959311393484961723348524005430611298071957342430430332681245251768656076429464412958658049297716801016368236074307060489556822200377537927928413242805906402126955052403324602722726967820050208762532045311389948742983121282324336125396864167465673050529764372784427814729437795990412965211334140976003857907532389840244021601405655573211282368821481405438019878496584332460047657242151364972771310470443092955827023300739400355490400728293139789451841511935658857213305666315580225449948732422845295411882147897283910222743084448423006909844162070170518957136906259547710092970727006821189593886984383655252861152178747923423467109713735753853420675217108845008567916069848960014036575118645174997984911696968309744329897900671678384209492516322138244371807046926339283410214683756719934491262034880368137119540421239825187405982777142131228715398194768555135028519598841109302737969277109240460392126090654850299592929805902074639001886150281195967819190997936899521087314123688520803616682424485820682989899086937929139331348021137831239552086942173186225730033542851591877162751082013047915807499032967342575796179409531662619279109379178284938218708857545437902594764684099551145926969525019485268956031261647056954416857499895420556642396547929849985716938360562038014126538610320369245409044007858155448491395637128869723347916107934865454034997692109454282543739798473746216460839094086018436534877848509035931754101032482652419623534734708636735684595739766726990769717265933170453809674907524181804602917464144610511372991364453015028033836964167852672549244233156600749734627869624765227877374503575178313233192872939663863893897419322975371328091706432881723235791145779481090592900391246871248857711943059713477714138411731908288303095657773181320492490416116347054596409573128302922532821040192937824610699141089063971925791470727619638259655891613184745407935190266746125503531608979724503189653300127957893366058141631596140651793384387891864784930799856954215903709249778994389667516485799901680781294370544783446888535188213409168583346613774255202717796648109118423391127148789217631989384931303601429393368684236995803777506820655827535775108209528513717485304592914235945163544435573220134990575276156926263001040291000917376778191261672216475791881948892305388373426960431476763229844762030301028367405259594037874412185457955735313380187669474195376240314069531478369738804857397391664020855045108925823762725730976297974178593044704193871510816277077192048881890373804138250653368589378269574092335507102933280332188350626944240161256537199816174482967100976306406957998101090539709238913010181366386081646263873661905270509234408081836623945629745728947340634701362904278937050802993488801190863560876678959157323611396309556345478642368341575792105790040432101188227753826868845848100183792019230592763136721214599048108109904091395986185089157866781524480588235784002465679479122354438161314775388604365930295513284177788283604135335391034748897951184713630029579693529041267900137617637934744073765152270926721671601740650082554255240711971525897683233573973028605868236556811620559905154457860977392700928047276533708028178606825102767374009798839082174432802736838560100962971389748947889409854254580220020524601261431839029293629973159842594379814702881639447742829346434432249824995266292384207427968471058326228471078410040158387578802444272441370276597966364557434348675642916533191785618646808871478604277027306347202640263589702479262428634942703752323241151643420523124607685241375708875536248052919849717767371362131961742017830403470069851294112169168253115306450144188728221251594214591953700310488951122889365716463790273090617310637842879607668256878740199553162092198114289063945572369663914142225132642466460588831095606986403253752873303526884400427612543839778350531256377178046097753383918668329614985537996592207705950283355853098150854268286233044682676459392659074728562477771973624864336944563121411130895263249007498902610942278932169781467735103546232056567795249338589090440380061851435887408885664198684861795447182516938548076946920901938777976785432667815612605259674722825245531309076228950253624137305401525563447824770524208666713398073197061186974046886157028837537176225295132635334597355575559984763338962797643585664814819088751354901095387181175487348176605861830267790724037473583373733817032127040728049562697363591002600045316612489362095624631542409777803380253915215163015716652053372382954561164541662049428915246374270644634124669928393056315572909049482130069750821952525311334425965138006781308586356671463382866846618737524441883399411602949547049586280054814295780077607967002326762795507483610299681640697491489315309037625447617642898101368955605605774530941241997801874761668243679082952190064084807405981402951285350210770835827684931202720117581481772452910274554853411426845838872883517237250647609306501467387393289012710047729269173982519985240627764420284518524024563088356613318349316282555043301784377033078986448585560869486304867014677670949022431248487649086741120796940734561188436387116634984296203622389133669653816569947927132087763185156692462258908344606369029821966193496777887042291893423861699979752332983932206696516660719138508942957114139203758830468834127669409206823040488966179396869595707522874680477569197970245167338162196291161429638643872830670639844488767497281970354943391204619063045767271782619451154707786316214955635515382413633372252213293769391488080648869826651544525160905034698610836132027782153112011035719812745074448237183921393746056113351167636570451675392031576215309087378197351091451272766350259517294607891828338400583411722746483706732800802148497250164039055734961397242705026602109502689357980598765637346315177184570524457681896694627301316568083034186401611237576987272808674196400873258078310065527987053854441591975377156264017055196981409716539627660194546066228023018749367403376192377349552687272725025620994224523576390096147083469826316822038494105696232463802108110250094642113772202725600462988940380476206292515950108340112601925892669290215022662214048135694694358713147052442998907670041326614772861378211345956500098644925559170667972733637382364945498404042558647533007684299972713880523157469366426204709519218595865303462882722534405780626790064028324987213868944581095762068341519828734663119522407503516215360009398361060219085124761163168842731797445504591927195772929980015373883781146887909910426725310584684105762811122861869071408133600357322991101770710122121284043398284441246754272627134111506195822237492261545591964034711910790481411891554579632092902348109716245666087905951612843140327717040927359698342771897797394120256647261964553761157291848508037028889418182231284261563888766774197107679024440579003035000189745686338740035023691930215325299023103863073375065632721507158964552802308920033515497823108638358500555120235147014629078359889624870017758449772198631551702559975009971427042754484829498969868047125347458550121848286308492365602540753765310128326442550288994728205520002632930522762985569015491377817901292666023592884044335199271492682785058145030724992801300802120763374510621728212132688093506515697828612292893224885920903888704712587029457766490384579270818945797789553888390951692105457852393550091054199217922119147659697837651031469388301207746667792675286302225864469059131029357180570795427923934600437529486068348307044501834326735320251596762974861890901906798647669642408306084926080376200472539151377805971818845307893856547553909155745869189592279175884326068025491361713197346322391359153755910908050647596520502882668825284357750492599329448839294287781387205846991196095011187073374383795094618307886917196371465124977882987620677042816700075036663037606328793670812671161419615504422226726357625848934631245111198193032366631043061034381795810212442670587297019922768310437225713300818209413095033175649076054463701644626349898953063800709114582998135319515529023145134493584935888147094226534537656880617287539165538467350169404034689976449869255092524908245801788565500991844494186393473864860106367052761437103541971480455758111975142688364371534339462370314870261012528017925492682416208459978377910582672332744848250463983476962755273957828197913557009403047990357006434504176475206468152746032416971895725337522013964948816456561571037495102468845893857848079416077162675930314697138620646833143113515975323108507110889963228592278551006907640235105811870851083882856642149738161996935293181531735611225185563619280096636490112923485164284352012541953800220904701922747110277098115131333075290942831802175729498619670546722844343055840124285939457595065438434106069310869947065387796912004103160123615627956439194833331149247178391818339324139636273576548383929053498368058251755232206387389167874335795829032109280561074910093053568871580639619430543654638985605217186890659509528203589587554558271964161658166608282842013171019851168584108624561098022008157349716302433636686272785206512243414541220103681842422767973387266972916340663706640918168000555802705758429550443723779901582157765912266224704642363180537956867608443444545314744005305887102948539468429191993774722639603409743752017339652043283159561451612121291688430509999929445765681242436350392122505426356217258709697191795093087479810620051163395506239097407550688013089376610870353355597216233287634797204484968232392831930432064630551364913528944999429430287441482691205555107999341146844152988833033987856270621941545359674238745073555764334965479968587975125979556304991116286687057616197536500209829969586014053426297519117898332034375605057154245971190236668389721009183393187883846201129527440668883325938987422653078759611459873690762658952129356256024412615202469497319899509144422411999105660049702161425731583274444010819962438213572204135818023994226164485612572767116431317513870885124182343209342770637041833343840198321449702056763949660682836701787625213447039454045424408635355355696431480847358003375523505294238658026437166000198778892897321126427751767681525958883094113479585848671655823868580656052738091710091864427845551401946664693573924121252144542277022255867105267282255845462446830973745645532411008132981678239155744341896415731653209430993228502322581127128714443883869732803781835871276665937672233070470957614186421992511584675763674857150774761319676793903231233401221151386830210252726184698295103550331141544230075479162568197568021404375757502192622498712901476988536027128546078901761126465759100745583718242797164297756537582488430458743118782216632476369916327187063146272925465594494824100274429657576950755726536922402499250330164194468714547610111712828723097882176746182316037897813621200153438629343357635716034374183633005003816645299345910732488625430811184280548647261173481358475699495800446532755402260036784636659772937995205021612646687539147578293113700145462100834532344966976992179847415313962983424047077554861044551091888165373491037219275706653578088807917339573952755745502025652886525088161017265954437879038149225473554935659127611989996473941392775420432644652319532278200353317500701541102243389714772744182992323055152353622746159447727353967037534219892411643282803963150104970092072753957874437208460604160645241192959485597205137402745633953654206815112606420563215076907651480717827851814763918382410903346563455411943996939982850438289033684059724523857138953577046983087143114124941570836711554174785867547424905979763453115756801190086643292660461925641374147069307296713773892229778409083864818070668998747199359965839313049664721916963244121376535138284977604656949122577849034848807499606133827350881766524694132448767792839405283017516351721466346142991169842555988930778264564122014352807934590234494351115970780705703898079870745189957302749532626265676556613576376466580064339199174460085641291475964226048282632068583141727546843055007755226077713509664217676147384463690045707224873549196013238049386169029438906529344202588323458824869433316245261397288880574056520011980206036529053371334576181801729861674122457152657874047357882378031067548580165636785535002958935326912800694432748187729972290382428766072442751374631907128474390855637820646150934407911926571586121865341899095890025610255946012889813119646751405525618254169889264279081817872960827277716235354968765277171546416210045493534959386153263979713379378382974407190287614777104612886508059247810149197444918189548933950855326994884428204119825637524211135444814353608070593341422897203648514677238326345816199130823214348222790711025360925405062148847910400449906969087351238545339992096187186501602933355048152751678767165362021621472258461669213839938754477914160075252291338992389937859553856259883923932768588939602732463763652558716295985623299263973187782284433086247949587164188645285752820459406486235205219651756499443176052207081046184375642470528795023204110241175234811678291877819516165428806340832173114069393006107772789359834053894118866619521739820781681052795141222298999287783146930429861295515954423746226160098418512426801004248117656723684129782817592813804278752928959975967710490558158623123495461677392090480477231118662560959909442963211531405411297508187167625770286701436037949015948918933120365827293718647904809878560761450071502671894318781397959858259377378108517675415464994121557389585909270309201038611465533836792298527608997340216248958275102352187339486968473381493832807437178143044456264384355674995502826307109272177205736849047394301313863874657976215014577514466702203388329009612691522434508113507647748024470012409922679082344735682705798013204655255817005387351824278100017418320923228581664357435350632490708518149977361065796630310712777940036783499055019351610300940797215951467016001844723938693746008388690862820674613587230942397124925278344561386490540042137709120171312419662943340085946491213830622787954329618262733588864055196919672567383682913009863381309113646953667994216440981674125362461253863002261331172479221036891405654673752542515993099449812468289369515324935698513159398810465686125959706162343198839019903449584950154793309223565350902868437797450152632949573250630781231486326340214883235821677822248227476906788840161271614629816260475434067719358321061847488683590796795442592190529326752854246773155427971286927706451479775385490391747071352303835257194616781304114485550631196938032748031854435944290116354999993160013141739664100595726060391727843990523741382554756806462055606905540866492373500749248965841757652356193259738829828165110989194792576404476663662393988782260629063363072710064064089062227866881432596403878150111744714921978886257331700582203224619678231690734506527945456868826383023046580579256845358077251680598691613806242730585532619727054204026761038143854282107047013709333333835075519991980937071407657758554649931861842862521609093266125817897038621495735617537051646149158677121171747511942159035004937120932738610380784618220237795037007750886888520002630060922550766977160611956275612135065609986005266925193335371341380608855099576596978761528711473868208840880809107391485050116636352482885329915265038658975177960686778409921662548616091328456172372850237900810279511527115163629693682600787750570139946027605661966874298462183468777521351042940553385636544385903794733674747541437125698141920215101292760673462941626325664277114632679521114620199730941344230796587119314602124567830363195429507579253825311290097986474034247285921236504473770289577322382952163263582489790264389642958065785373092188851950677224832219278729553495792685921173981158586684907399784548742091934048359541814167087513395456954763742102941299525220807208323292278393414675598796620867198230690981943335421047841152410735075104005131227568828373014867885118519228961727796064998058842797609593706273047266213847181663926982139056541266908911882746524886637490241813659179679112826082332556471782386013968812900742344650830987391047098654573285775464977840503412856322657336051863121797180713141022740781690524439711721180490704817780630478636884665647369207727565908968970523659142494159664945389211195854707957513529541899319321794960604315854433570457134018435983016517583080074024131827917866895873350654904735250506976009007200304450050531566768796997366776029185585301392253831066341095408893761150750853142963766248225321140347253998572918368632315392856212830619948878011999601538797008376369371749583293018314862693100401099684410454468875977962839515255587707105476297708320892703316494991302720386431912398560564056001800824513283896546519064325879769481871244530060598656065996258912840326514830496947233268240696213715554349136016952635672822237412055503995343650544141320439436783086728877286159277208114116514255803573319819770058192825784374384770261932311636937112682791725386271533924466442039126521147672303689933679098912002804123980134028181579338173333517563339809412170113853319269220492514318159455037631143618250179487448177601803327734704244288757482999054141347170059994673483591107792246934789710127983445126194433844122868712145429340496485310188889971158660384848217996129988387146847935768979236749880113963348283391157860769447719578506229867836396256887966089611127927422332716571137777056861253195804794773392974908021361678192726045185114045821455441396671645731171422103382448065636440146589669448447766770859274744434130665691595749251111480266622260039239737398545962452555686451100926697686083928741825226399540657564309951545162294213241414360446640957145842683493830901412684829490603821424760187389705911804890034053626583385886670226263053835763607389100945824501056201181074937187171481171702649813315145439485862220345337521009386767652280919187967305161202910876761579884351691208063669973891020053227626386938780766730623965367210848939301920373115104358900596902108442314740911539655199591015584244135491537039563223330996680099829260574829287170648712064073802452636886494458453886324005093371659257967144636669981960308351709234412666811656931975094562401539049983364515351817536450606056598658267413610025037025306484027643460124920472549151079761580022933667448058745064574709301192409538743252329119322225602100996706077480679541666760997591207792488228901459977374544416925464398062633060175128656747520881676005289544221793189114663205004451329346165766786604082665013760548855331652143781903833905724782084449298546659961414667460866359235804068676168512497792462803812435107963070964186891695450695824994796444795779367978315761868235930989423436704949035593199901971639826476839580992351877876718981543676983338266660671793181865025439860058144657012036950618389795426515112129161939942991008548244139682538679006585087110832769470445193394332421990193700653700530106857613384673132262515383480342733314977884959409356163964282766838462359138883412072255874349870094919687713606336692005960665328337834918998375420875673612226886673316960775889518957485926742960603536930376290649831879762107482266618595085219586613265537783834154468796343621480006969048434072604250853754932566869823404862805611359460648801286688120560780458967319745141391843949879246434084028581478770140831816956602895841576708464174049483173527033946576801429551358414769433090572312578466989454533712572635427401671672815837400317493914737075029275317184308902419843247555314395404313675825093837093615522713876814868095809130338662410870607718218349009990543649795386673749765419108533907414095029500667223470423910836280340694879937819456810212623750470438402514714099537061246041174860443120814433906655975732126549592254107563119354427471336472438200562536364765950796422502224332489798398274311583586045750080532342486273650195076457053334901684272138662355757688403766297425344184943976323210697210899337525020324166909438053461391793528220734168057463418629692233039333638491572464764820598150517462106047981694922885798643053135312839044082694849698120548250657055177914027087611218620982012304332449328934879618269840428668145060874310907092728286808556567809538466216145437998897483366509151584751378126494366250886385972084040396758055001837878324539530276272336705774271909905408036124028293725375422886098237835832331233623989407928386511268633789452063452077408062597027587885542164660808928404578060699332170491066250445400124232908553727167202300419702903611539532965250751645803406135870296348788645840203080348159528770260994304324017684133495967858737114230587880574883115996049207969075895772395661164059787738170675422838862030409099445514945149433331015783113036812888530791803262440397498883958658313676729557088656376122630053423216070848147595342970755121751220664848842494803018467034766244040721168035414763692450148145365443336851392958302126210830798380000970339941336489749882873314650798178259457824111707786171762049012698066189072231183432624523913817821166888939797300632429043592639534319665240976459155234871395950379157352708807161688226556724634645167398883901089112675599934675403606985792546592272218653441131343924151723237770544533174136213426570611889017869236452069276421899919756056901460266388527249680017802008950381437326342368915247476072069656772474506417386168300490410119990682854522915202957042899516964674738907591353621182083804196115578556477117651275922382454398805758151422402934499582725322945129870608282972330929156570505073522709968434374241906437496717020446231665044081169932421135840644777369240750074200397917310741085408827995276404381054346742872217755995951178892678669632796354747092427505073930478647208660857604661352346234855925759083507509307774566680939762398707471859247192844450170571346515006966611752349511708087187337667273811936726999598526641498722377528196659085917260525498541941689180782454033419690134090991562457509123795497727529361273979714914959099777163890469292984225747286238200828510853599454545403266407437067162024390969501626179886902610049187962026523165884555876756313776563963087312077714349067645509937782529182604357559653654231746658439217137528447404695098706061992080724655195752721265238968818640512076139656743384093727979568888176119911539856636380800156908236998720879417692170349415907298468002047438704183320332087570122308851865985335181562227307396299263055709981361198734440198285071305238027347904008054170624342809269683349083320561558111101439008669646017069199219723895980198113336981754478311265902468056886501528035159920397161843774093338900905302341969206995568779333239304997598265440041291543468356727310371184428748092912814219854813186430713906333675741587455480938842603787379250884275630788578365108747405244768361288937483999615544529613746196647316533959113937798655230043657799302398632520237628728804442594967396760472495699580696744343564877875016560708533832886512737358357472955355489238563625147891649545223502979847890657800921254742500462079692558337679393259228487934790014244343827074397298023978881697166937221376980606869088771940351087130555259348476881849061765812553366779485391846617959290506571937697055366044969967761744281274485207537179181108214898787863373510798245726853214520307233515534741834727140074075746621411883480469250436984429239126322419417709834262874962096623886003134400757427447907593105675582397201596868347788515465598094080664141710608902057871545059171914451806141050144330529660333268203455386642419222462646643378382777026483363040116728651484896714196295218549511641984751142784183229695984994566644188312599724629147296971882971873905249859237834417994763883648039460119133503263713541967159896611877506131684173963947463576302070945222868462367803256715114493770798494804836230043376381587909466954043679199072099608311441512845205485780668122824917228824064578195701438137101171663601991844055524147234576732954511237034162839834790203004797780117910950066561389458949355296252805281814371155771226492449004107606910203402297587461124041174087064572957927372212143094408671738293749726379303814932776390009652299160640777499993735927331224999737791038094326584859995025524603360269820951252745298424448352360971981236168525219593027268242881269936549361992411206105949020878465226434081470578391929873809916663690866126157680618759707538197188471792930235797659614124945867609550862827337417436394933010174085304242430138295696397115558915214362952758081167234131136961753774993399979127114758804149009352612597081483852645055287305341708659021303571876131614660912728555747850111131037953708408172224146825233884918611728856192505203372358147139287639845756872690424282066651678323303462076459920916951180096126524946857133794870625251003449799559995623855420449085358574335868093372671180412444125180340807789783808442746389785197740517049711250236734059977827650275692071404267358843831050747958150127166106017999935558452951244901086163245703796998191290164299588624905512775729839965699554640475201707452528462398722717880789749094174115648521912296480919196353889820143497539815453998984056744499903120550827981482903911715414996378741944831662191525770341749446111152770951574304145894984283723687904542669541291935999894546244617268822799596559161612208236300409660819454763786719234685774920945750981275540205692999052950350363296105789910398808558410478041973070775840030859822117376443031994168341626091209748640932256405618676948082880166468910251211398535215906544906546285774049629512343435906377243880258037553328455726826828351652997496472710935734947528904052597785939692985188009404893842671300935649664759376408600519887208666222696665087702794155586312663119829858216322336036710751210827504128030089971080924266122379742158416022656974058679974466345725926577168396858566157126129595620380531030189730086837642921765975339522198238721877122056922740005836296223388267593494514789032880853973439927167120062047293732005211353186195810438847838383145675243546497531364659085920151936093375748617464720038673233102009626415069710013931201719521670445302676686635933471322551436946795625465343258842137237315764738711409409715444799772519291217658858446482076356337956375903788572632674830512178479495597571178004675920873250260353188431944969997385830079613674298163240676475124749397679102669165063548640498113629149240265494858509416807268575336084025792518886273068638988680345903236178996235862579319479656302701803858752303832768816731572131471041736675254942577024134412180777570441532922581792955922476970037256013662840760488346472336753212389348674120821788399070935323257431708737555394247976400157517418386125985898045427577322627672691510762206568311139410866316214372072746510352352096601095274274319441631896517962829672332165953392724567636126722343824969465769373930734653004087442537763586122770234288281649152522388907052675951794099235550920480494656978128698525247714687702780023903739950074566129183265584917790193442451700023317509256589279948257848377188286265773565531778525149498917885069004068894224992234171363219557280643137329876506255413476527822427234485980743698134494750263871581926703159862047371926971612786501553901140128134621935820801153514985704335985124974292143164651508517530134556717355060772108633837540967826051155344067156758241617753910782310930404779802982704752773865423631173837612413575439204744139632161253119052257946648599954289544690951315456107023650758840595660645012411936286755165418167931728214930934771898905147225518797213232220200657238586419203216857117812149277857807424621984367368676539850608311896100719812719003238907702359435394259631395544696707915551040856400922391396433106903321864113722885229334119530227215670884555293951706647543081310397298225527145999447812648791776874364274428384429471453547315619860126419200536324405798602937204073917121320396341832573742540026665700442056153918885538734585178701737713106019190740558842379994096553943947996576849171095894696839636659772714958262252463624921549096826510842892194859215667914147941634487758595207516893451092190976937099962154798915919967648834223430728264660827657818016919494730032077954783864374696959790035474522343477795122976467929831177770767369456775069884981622120049937564177298352609251348850093659830587721117961696504532388321130720605218749788297156928817642926651098276476271043674708060932578134202815593654759625063603492527269749139274435183660794160579541228309250078811158712662102035414177737407724517843559710591827667504565779041703693442525567677752874641125784014654245415565672041713352005986908498943500009340418577108911159236653191883693423073890200468124568027381175556544942487325427573846013829783987669593575918142417783687172826495984239829131323657195927043706587945842278572761219469495034000539068399962904406787432021543826325901930760685831987068156146850287124611873717810505650815389574521679710681749586466924557548708794113430823809856955354453982078781154672794699149708058593277331618350280040855847872762957504361616454195984605558017662353651365456930860166784307299871855350387268070068935175857383905978613880031261033119606700627374397486351758382816732724894168713416649872814980544466620648063068529103491336309425058919306021454442158624447822943547201694323662251968109376721949809126421138668591500992646110930200903293349956819161105620727684755529817932698576473390058581732640795918041820981653052552322966464585781779407849643435694282148867842325337605729056638831038602994033637179059430251851920005253714430575133258033341109494494614065132665315214575446765286105124185673664383164194428061008355507395725069461301657062958979305638426207976097375384549052124721655682980666177964043312707628369545660705864226964916926902342083786981084605655622549645765607168454938724445696673831700092024871001965498029271293496551628376798780586042579900889038699270599963723368848814081179133084028939777341293014448990444330161135055716373523418878206212169668608496441614832564647440687244122545150823418438043647736005576502537300141373197282440329605538456573501950155740608370688190920796167795701239788044020943630005406367244901344458501703359284962966359337752776878411960558184137213252187742739914822577508015117486784607130456463273785645825395957648468539188029611215628078219101815320974362607419788726787850058451501079096621170395318546816640329179116678572673799428326001490099473665637168903119086847112112299944926298403876736831604096197716047593577567360523327898624628207263161839202881298260216365834725085949568017514845711031394497881510201366736210364373291982555192069075869048146605792984352597708841968464747292795149605375747455734869540851653805409835825982486641029013279654429809937347663701318133373095481418141426913300294683089790711705016144968692003119346953414893179508830721065424668170646315474947970296380906293565944670736573322180705942732254286068949666076046114182460834842092497943792186634929617963635485438133276158318038709209307872102109166635680348481478421102042965139070867246256783123409041736523970896818778969940014030464869879154264742960758222737908961052527047619933629187041285317965570612096566612293520494821408345800630737809397257999586975995893355870678009357259057925631134542344165739840885247863202925580178081665414776389444938471701009431657357066328402395955898091232737398791597628508151060088208403720791718198627243967322676225719485562924405268672970439914189024235022699290261900501208785692648571524997493283397920992294740368790055823238828351022068808303138517243064049066279673875395908239557302321310925044916351778155132762892375869640669725470865150201269167653369833860816191582891349772027208383863821649987187504309660635016611830490194116443103945194822453886743581945016538268700683798113890587870129713823240285325416078504156840955212626973272667574618763843333701841999338337770406623686873430951995125582274157804751605180650797610653555471623182653385963770519786917920310268701667320837931829504445553409718827041772017621302671277703927703908758363399706502990817490360985011379049834318491349259045496016526850449904187677199864436765261640180331704669030198809573626781559733382223966313856341399053377443726114123628647005449280066957135411874989643941601627376669158180487726022490531594891358488788573584723519230079900093359640838051522744731052634138545698992061367578735568255588581783073182538780202298690728802843220613452336840679587023393069371392717259753561096282511611836439484311261857862573319316231079094030593553851742732153856834516778790111885269817156608641066118300921858954951921717889360638523593767292387541106361026186699404189769372559878283829841356362415467195778387152426212670476364614692702486452308540204829102745493552094245938749083187529340521047329307537555603971857829358019745787771418220398898302571328035465035388701233886727461565341064522412090083107442218458732540156199258393214526969979441139721232577134046678146226080742427786357240867576870075349460072820597102445056436702347324182032231145954054110382934019186621860386170991350328682929475451579576098119000099082140988610851052004623689968032217919822290385145934164223643811619638963704111358538420548893980043180730169083112889745283232145807928196115086553386073743720202470016720378811230857212954871251280744714546588078860636206615237397385568665699504705119524719126482456319037041406899063314678905130877245648529513632471637805890165182206260336394223432382169690491200837872781982378126396161186129918599134132866252776931066197350607292036562189165353133153263689941591047583690085471857968308024861865514801722162470921209542526327656180593819770256716610362886605315635523744730958363401915564134555655713834944451421638965840650730232143706689217604659188751360350841774797207543466543812668109146913347763702955711870522410076189455105995897889795817624612185907092607768117133538591072329905621723739373120905683496124916099017329620630258793372093040576881726530954181790482839223051144778888387289126865868009532414969889790681599729819674196756617974596661142016065344380444741579301726150927049412734786716433286736754524729631719342461209740009014400785400529459793043343571629153114436362376219735459132452489494927691214899502681108587776645159852342824755164094921423096610493713103499959614608149292794142275465893059068016036879838289967739138499197441198882363706051262095149840977322388081038366768199589797804304864101277248312036311612870291948919092415434918874300755963047598679692033067716762420267698601519519601051287721241629381022533799675735001649049482348296212275789494943243823727812414991328645396211533332071296652222617035849752577370683024712609886800693797544601002624915288128073620968173355143242763836329779581134270786488093868070360342871833275596386818138073628540571443900175559668555584287291388336691906206530995183651077463441751146962723420505168102524913506243367815463096053414065099125067218374463742124007109706478217631603553861404762905353803237091424868287226019893479505497398927144916862517184059593356627880322659824133277892334000516162633572432239934693031671985555112273599474548562026938043817847915518733983428002068952018260425980811298965733980889218199465062322753541139827727297252941309042061350918793346343650643268393717526860532666714571189214628164465365622922069963094261177475037541375658016491024215554090206034162476998353727932418844783149890472388459758575042308089583581735213475859662326769326787361811313099333344978912406552727327586997099842305058400728581945670283463621297985596591360867496572548994998206045571452027336464815575224022566764481056107362537133218365056301352629218689585386020618664317697356768755389019075482950728429161835751226859218547775631249854186046158718292447919079722656075091156030276676984473683978925892053815145978806237425837064046585560532166251309768235214682794267245620826290809880185634820274186283429824493713250091888349492237470877131101833122070676233778038597741269822434178465555064238647137807854136548631774160877214074995476387582313662931539259712180505579510153661456700298191779136462053849420293219214309861316182190896901115280982140668969122113285006716673146953705364964268913262743810391933577103723927711744379379483201967537266864060294942815163024951800563678459104340594126095772441293306070931435599015217770117061681610254234920840123281722622682802042341380207813783844041089236037288451795136851741662194947465617891216909928455198019361601406670811346802331344665617067914358074202829939986682559823706981436911193112029815517825824022977815026022997251996540791061941527154421723105397828825930001372634185738879778393895462911769268448497376464440079438649795201340630824283633949798063303113289155877824052293844075056165330234353816033500232124751449984558732694262811095888051915893146030257390634472326107370731501709604806170764846122144612268408595518927913808707907665784546514465870394878811168347047347760303424251667767588425656654838257968590589540497052165547677338052373101037534307931761514803114495906326286075406399150148189348360311464859870337571501289661146895997403191243428495532996946196618454360797946758908237967194719731476464197564973129051764215903819587048739832215900482197524184372341741778168674148517299945607402359586067304866817940613794317400721609081500837550849207164646034648375616265077437467675187202946575906844978775394825235881963246357553007487558054914519035982690019599162312960328784736175532034477246686074962998248552089437557988291607494349176219426786618098190129388562070189741273632873902054022412337789545150526755710674063399481469688698600597130511899135218481290514372498289599833909645168141917936372600450389657025661527125476836319130543685212520564162144232944473959509191838445619142962663094811368542300472864367532034028693870415687063691334647265808964347845247901367787213329438329731821550204916378998727419581118089132084862503927679899813365339484243878470543827587303184833088854161130554306172999281668722782151186898817152512716010692474780712290558564299805874374381681728330646459594800089123691102217407295853166326572923943883373499889322239554407212888265059226252037608476169636704556163287539639401811888510606316897247411203524128398454248019138848406299172926304413769450328926920078098779438784993458488399199467533169335458399624873910794598514904568510765409378621327383961362352939572694771682350182620544902372126723935568494490355007361648512366013518998535893489886059380894907947563604879456987800521524920877843358825334014519055657395986645062673297763752451273182969542609886374222518953820748027649807142376607077797769956426326450462231605418219868032093142025957716501088789837907597796961634305887278105817888289875234051655714124090972367494339990296473197965127685096595756413092347516362974605728327923907962738721878502446878228660304582454571666994671870298512853260527307704234752109524892782016069856205417603020061488590765671385966515520185242965232816592245292878661641527960727390071817806254048503536651940852086403344346824880688056986324184371370746759163036391067863588290718267163025138175396323135847578664046974918694445262263297136397998800730529062817258627802757458506638119683638140923681197179767001979696464951420834479195139505044221598319421993276004561265471980472345622003457540668845404807417249820019245043050925366646893598548566614755403908117384188196193685276444525161588715918087035201428536228744928751771366869534399633956142507459875198605607618488890540214431657231894764837889503222567131560043960873524132728673446595889574273814542822901380224998109334792225558593638204537194097365657099568121795705784894900952347908004236947670236831221872777167565900477683000404786337120660005881009873205292247158470219126774115966156348594893638663229009854949195392137582509756176659048279504051528093490263476301647323392392139967620625803970339550301796255797186291116233495244985440311422935009057248692270567299253736621977622937047261728550668928885757021429316063560529096658837445669615395085258984233964406593815152112230274150732320395532474300754860159829218437933166246413117843276468471622494393472106532341433725721382485198119601165790708634412375673536852134998133363054409257401569288888370674491872512942581695155864746798770283543380698509929787833459081032758038406114499779911061483003351055351972579067566001798296158479419929873668878743063998045046849214930573264659078420196624552725323464477392171983264589236944873545960780492769128920155766925685149873661052032148883554253011253461289578768392563741841284931003573120697238228349494349476298343645611575184213071973998659759974854157117723074271139011049228938782267909798113883057923717864943536528700834288843510984990150602257873882784546245931809448171156957225362803895130659480095140687740380237200740951206270431115387561570275957784596786344760615695008937397051058506152487787030677126703238336409127753389484044158866688151687360120212834219828059123871301851771982279314773718553604138174129180287726198933244104625364810113647317347781746009292824052874469461443078395754167493602800276451527369791076649391629162928793105773827965917592642951787052137091703503124681933457484565811730098233527178055979406303769991068330360561996834568033025257043649093961886321453817659961850523248633673704474236595028550417957406506746244459180608057867655582522574335548131378929555836821955669597776537198545184016235113365665626676138168340900193721431221979646699427929240059497571171118878392023275339410375059593410066448009159615252985715254401128091228785366048794302464836191848930258977842605459865699489092144226797139196566804555016284765564114226696788775804150717798992319723753331288178334691200028874671692831412975934793101816509542082852316765366884804364475028286079879739186757096232657849220376168046407558689297826384179005017005911171339678063086350245912305545848876080952262911866432166033266365587501281110838902907720322124275573190183026728334503612520595610822575945846850604491077117065667803721082361816966164961222316893383140520625752588600123312566102482506139896529303082879422918417284959807600168753618843879874544112857487292815144262998052836321315726075556964165517951648094791648469925600452880658036679832797589840907547535290123177105708288776049126101890746407203149426755153497531253831880921997215273823674876781537709133711371981679191162778904836546313237474277597651034022800460306431620895883956975400006046613526652257065831499742400130538020160997700663722030741553995820476772382714090823713012656908703910717672663949294302421482162759649975539783405394900252090261206115428806254760665709329998142782233375104025037786599673350707456050680178265657583144666073313541760659512097851583700614770867592555371078459346938455802020837971457870891183751268417969132025280806698792358511605302269873560091764705346935487179318527924562688049348363791875653043400099128996558386667965744993184589570388929750449245367523787326703289103298304472494760386836835113267000206509657621712176804391509148501758934667900751923792500781668921757923089929793860797016236430413509988966887218137249503857151219664360088618162974152131105333986680762361117560803031165943296926018982852042984263961442058647773370049845365172825020641975774450987252600419849357751725609383510158024846767653269855544075669779981990004698289948254788336027148900936871087163042956436985457092623387861956862752461787025185213882177133912329163729171631023453370848829923319956942599891069438741030388047991993304363571679791182353456919682863483502362342636712958463281096227597333295226294393832544103296473311233296444575734357619814420380394598861964268318062433740200966475418209150384644824078374203576490611105685668843682405283350670706301274163963765647558331201453357367017469279285384065588007082790668409627329121071882948409636586490697675785962352948721254195904343911933920164266373228458422523605748268420264793232148571032937836687896403409959326797809522625565534660990522565634561957079953621643766751036047086825259413584554380652419380339009148805686775299188429944919328943347275029353726564336924127875061781883369882826038699660020648870855848867951505205434438360956603083647377684901000629747765761436624306636301653976342356269398396627477560882056518499745382387212490204792691559043741214321905176397639025392684674073248796115028104689009421772508278658977229609270840432018920551212986077997078379071140084229568961311313752355933555603128728364829010039275704739228186496449231494581617047851220880668805592972060722588039927954043677972970225409205315962549169861582065879014952861567844361289357148771782176787366865588240237476089965945338779997767875724348554150353525938589640087925547527624912708858677619065011552765796055983651524170039018137749007390096449157035191263892099953638201410063599086072923504760097499413211577832096794447057287508947641870477831251252187002729515615966610046485635900182140179034580640219167730020678404019092923632366821974694983941647012708649744410730253203728908297257603506872133236426363221752982282474991488340025947890251045801424791030104430547039348447807648007106912003021373065085477678907891021530323964908894708931746863087698053507171584504812996354186220335218427062851220984776819676979619689974154417207125011481764324945560842004425140259922063306709668874600773220066896908694065722115172973355634938436893646971955763858246864321875152786689655061123114048541785770087763122624774790748705735541595072601072273946510783952562779066956274262951634658995319292927068741634650310790773251303431924811629985652695104756519270402981706290203778612622229093797991906902659240867100407316120287010137119463137486127875468085477173279374975940584450139577050467996167768591931579338503323419501804813056614135467953736223293958235942058532413112766973096434471627220101338532642648851834992916320669873345456570438133228516803715700205957087936767818483939457417825003596908397140713084214251025456797513733821340012024090926596348816536888060529626408030377041174983248986878096931025689298698663413110419502992159966875404844431604643315147820703098408096534700282196269683220930701465772726905766915069787643806281292109141437083311154184316539398571437768789466625161705893033369209372629000238497728055992895425223344676821731672293906434042097211621551116132792968293854016075738234875931998073025805759538915776253487153898692710123771834544417339268664521851158398510499269059628938489552279377493404607125223799210912571273826995257805034380115374031230508903914363305193518060765471681307931732992563298067589137067348296262404735231651636606747720154612370292730335219291852641753937875085511252126288796707709458928196891687319968417361697678909364879144947468630853225225779243190782077693525669433129693046807046269827746897909402622170056141839987716006945446164185132693666635837361041359811347048527624034062528746855268208553711877933706967308093179430220814234271152972157186513868267565483511331107078739385563695768143944853046358168750685429369096170522833766883885347588658106321004053487147650342194684606073267596829725927638259298261203214092572495855589943512723335507146240580551806791669334714654788631838447928796914361963373930520246057181155178525344566870868884573038020984734032791620024176260318363075549602480901335338439213632550045153141763965096229161929339780904286135934063185967221831498133791847978524013257526083082595135218921126018097417047256895424733113383062663552668534303152767841220189441902622229291824428245448879106973289280522869787327044060883469480257432866766083409985400271372644901861276068650533759837448030404644760467480362867087231368588901883337275936312237166841889537373409727114355085632496000153337422064866458790478990953169758446469319342837042156710080628841772325078431989719651180172365344422577243581352492565528533437426909727110349855964870182305632668779983221396111363849362777614714907016366377250321679783232684876071190831884131039378144974379283057881062138920212622675907899331373602254569403450514588032993143088825976629476337209301652786786469312585592043954567000194400349932477915800203721360064368075763808781346087132077104447573147968727439502467193099885096225448502609638092528848677788379892202572688017902815854528434783562644903492774187536323396135522751944104310971635108083445268879940231184889323210779556181238683750052199394948256748743969890744134240899926397103757598157228963265857817483006006179899327982642399324263184634018951822549740199987147987293853653602512216258205500511301358031814591703522341916292007562135012890082421239768797774459631732061555550496902488430149787889571734845250328105850479283646732437697730251724515692744416909560905972895427314451663412365670525274540796541455666269598457797154644535122718277447693148230105598739088349570085335125816046489727449027199874295074205048589522815074658785470400878272382508264274719980026370187063450094161589433759777482079330448301138673276363322031594269482610614723868984625119888635951003961918976803657372218697408486915278500931117580870783398431108937549041678040094765840376835596120670044580413366164686630844676279799862297228843777372326967399798525599990143754263844515028941267633220337173190136286157935020721630587970009353128982831410290576064974101695041948434751932856231394282014410493223379876234848032523303028290955759502094512693520875663769936162987380425126238061188955761917572540320095158958363636258349590272669170064653350344435257398656751538047467159118349425316134815101289897190287341307039976274042311233973472773653234957088768143494147507157342557524088236965302564458038048790343876381984538615767128142841578516578451813265995241101934023815858903829174950369282659420713289344570383187952866028492584846418631063518963075241475345858594583586781112039293421240496508703824933436531309553589430949330874708445538788732376920713948380210530141262445760680112945150984782997415545380566707609925184429135370390656938168682097254972240787545564909279218464217035918237159338044897726248831797948557388155662731018615193695228663677859156465139545592017954847456546409584249094927286832564220239103099736360383000149199990569594533170308470037879310940297349289233740103287556419501259624107672124515536069969827132208655480181675284641314290647442992833653865958958842369473333184752636721072425979772654099457568835898047057788067770273385395632256922019880546859008772276473080729237839535869625386637161725993659845345151891518080030968361870070680927749999320380411563952440521475863306565538887371203267861954338482588478129736052359069259623056471066917430743669912002823220077058862243837156897547257425306927607573094892620088005576032872718760594462915864309194873519471406131614990144644220124796023252833408194985507598192632873551133180430997448612661485958528265248925172882701883229764938975690859379543662057263450211415216660338609058373161760239343122410471587466375215849275899316176385363714187339499136825205691349307714683843002167155351447951729576062286271173977537067988008675618969793241102437856262778504826123126585466704092009772060025570430797269970744432583084522866511907061095825883145096640650380957478997202253893573305873797359544864961654866780486883863089239571231732062344461727976428095401663636209500368429564242966521936869450955540145396694602805931095124500450717532203500397332058970018707174004420434727413461431259941164367469866607456694320575189542115921567341576838073699885500778161398452466850663432011513359013569984148178870503178940314927671302769154178144009591881516293842849114978941835060621562704245175365952285429028376622750953249020446418166288261025008459393330067131969708167495562857061127105439914328673371817689459711284474239382560616479008097679519264377985140726801403852703992043390453093669576698544605635903290165984419271032203270223156966521300028416224942831951780264448295521097157540267271984873522398703129630764359103203007236008371409507926060021765391584449089540496199169388995699248248177555787071456903071400429833071543326440274147282292221112102675053531425200700649582433340783456964496811691642296076823459680235269599953164987282171672749401599836517080553142628754412950178342062142933070149170977694320201993074203074502962035602207469525722876061170275647344964525006596764998054089698295130633235880501002278862379707729658795749875328873120640595603587251056883508356304422554712244989465600469244955490298174189780882568083082946665636005044600704964522659298773697140875133204986183188868646650524190859999064900048042533877492680915646575538046589180158552177760290176263888345014140251972101022401342068828960987167598865727981066500652002067434481520799921664897417785329670478832736615113357096664179231172206548127795216355927108478815213226553530244212590072761203754543857655320807740364679385162618277536164959048723369847346557690674678268151248525727579324600432910523808731081788227721983627778267623359706531686480312462694030994990559398269608562958901937391540571981655539314559452598227889310435468679202666509494874289252291912329266504711936114240844514416119412285774785290019758211252591778243683588681779289107739230464991544943060746411446095880966024762584097833020764229573358775010776676321564495065133784639928092638952351181619749586840322285164879029658357489124718264241701806746302587917154628484387522868479490186885821887060557942340995819224800864374393370097230764236704693014818594184036570967652096025636476988206839761517922711566622242422642786457303589009822017813165575631115291797240717633396132037085042062806428956721365485315458949468626153578386560716636186764601550046105961491438785408682932345634490486308845307483681567578349540139179301665686221353939647533463889987048567015985890035683985162828141730288108317721022571832754589284867489054238362828113569588876132438969271048458995805431114667755445068555487732032252626646086601561045859294002242824728178278949496622105484384547645557968666113598779938916076542096182568637491659691635560981027276563196268480830933979160753235383903267104866664709676187430033036658935059257047063302738587053868215928927562651646778552089931572414121634615451291657056276908989536367025976577599279904706910839821721133997692705920161211584995495742202863495428257883359626603804054592544030457590080845838977292106240485557348124380164777284476954166755607879160625147008815193422426850233589391936914231998675328277803095320230317608969497180408955248865284710129822892809209047106675744181485115724577927140113711728091020007157112483678581748128526408180938701785294801227496054692202242316494164928726753548842017730124388207688993368252439300223130136858678425139382752474695276751553413648991239089186324906676839218762154462494417600218950870019362550034990217875955053588942340146453150160792211008998538589132057526480532501071364493622283352673076864296214159188553241117947153439608592845618133986775838080364772925210694557186499666580770818930519680957733772396710354683462494519404835884920458183794027931071817325890544672947825567616666924664027114452792111305884563716629154066058414309412200241520651395659977578108339196886768322396397935026849178884140598389245163053459973266599420371985756370990487039768618706976523249133814555147847437131914883397126166106972121739859570201464086923785717947134591229022247187507651577960825909506992681050690479199868342367011621524744688173350623884104134975234541792614124206868744214579403040479679195960235834337296839468389867608664261227932598128480204758783052815418170503270739928893550569435808156988764762522210201790380592751507052951077921140082993489210469667269321444715080737246753313363914594170164691507291458426197472824338713862647094746761795358411144361206478525828025861002949522602443976596294475073224515394062453453238747276113972389727347481796797754320893211334788426847657889385906853862481911151053067984253649596232004355890746347560963614625003343710422533801134957700283154826082449760786934728143955855486594666350724564034614604509068142974132196792861815095694871548499369238133268306750078091020163754644207653011463619066926160427921150614372580203911709980188396952511612585834860616383952227872161981050016712505918886117983496209937527849317488010166960053101690700018353666989571533102501133729272032875718906190091830674126997040862912409380751964017366282094858216073817521074357039715179250195175600687747070306450557731728264082198031785969114605173618623005854757388502860616323425142838610686685789713372009174622928227363776236129488854909331126220826071824264407828591446097540388466344079188959852515668860714624822758543261607502886075090035417326117734492864724606311961186320444993910934015400943815349343362203727700386394555414660158413828221040820099560124524943100204543479921430679966089877238619282147284096415252918525696820866686205549064425162781918161320504626740825661530480519233157488180442705602078430134090778454617667512987251946772317239979902740550112019482886554519862821186852192223721856876476151155285185773680086968277576841341445999020680709977025630977583455381920372287281423077742489692227975662331605917858347574660741927562131599579258509671427188709725679329121730196824651490489561289079185936124783663802981373756453932804260014995648256160082234212817232024347965809064172094479833714206697964206385412291528364808803664241697356459538130513641666308918896956353210055734669891781707816858372428338517405910609665284829030001957094864508496444390440031758434078858249080977887446622813170613541617293156154855267263597285727362165339281629501090781746906703811554872807891697227164327923446920277625423678986930897291452783246094322426070024293129032717347713703458152146806664269079956920749228039922323601855655811137631381872239632822931924667534116048547956482250823609984764066577040032314162466726225076072165239544362188891835578459537202637476045792600556634080064210318115737639240961282603950072068792931988699430048681665133193904900498375702644617600462847176031002816997094302119921289659842581925994181060051610215458902126712247621731317523935943851073290935131621259252347408225872018531172875533115893879202374220114229858954385951415259716538262578998682119773523032091300063462753145376721443329658939821733089046382750231285957840703064735746285641504713705078432439311868289245353942039360824875302983684971894406309506634387246720357285458520321720711556333819319146122431347857347129061917130789169580857913349970537310768074975813904684872255502617731705047953666206708098585727685185641728642275276248096241828437825869140861981991552835099597833402541575905224715998270804717140555870550246119372139379343862623082600717466496166477493254583238777299602438922841606011687536006623888524510585467027321952852267880115722971602285469488528138217584065148415513857553842356989564655913296291332554263255732402060276001478402108208037998020533434029355265519041248487828221888357899062816505248314892593377806689520398372630303169266968825352294959389779454973650507045270053453764552754491549795659313750926267566026166226862123435967050346001666843662928494924465127706627759848064532629110968113370121387011194090279480446656543423110351479442202830381022359667277391802001945373822312599061144083096581009973365461796545530237219646881657734954190800566189509185108898923705143326507822826682218160458032608962087379378006926746755862452410346989314831450022354792093832588938612540029261136471221318557275959086333356237416231235378850801359712695900311913414207227575686421342525283656317843727014161320716590948248219449545692062586484643665131540984960861313379933338596475239119170698605185316065257839259429794264452847522142567038152527012411140757524807762473839794301706741040406351131847216241162748385820026714494880008907109778211496518946484021610376551125540298650465278592873667951219408549735941138033623177192636271705395075555330203540336551900179627726904802694655676341404350781888607949825260120698090647133148756173485382553118400442658129360704943773630582629309532498223328207704001095241882309496195611134934308358053639984870648647586875764315913685808150290059198772573208198929200859239112584070103012913843566819800620890154377888639552234206427533421574825548718133318312925632047940847533807573386926795568942140254570921249898642972037722687554684884626818787203631232027818819101376653786162727184249280871988415009524637689291728521884240321333797745939603201641044900510282375758197881888376389766701254788021571499821288828218773784633048321122194838887253882829299854280931942501501234247517550345745849236939416551081312874702526011432197601746516843956334707818207754827928684635757641280024774382665628410666032248375227012341027808774515537630573156763222307416156240306341453634679029820467438882377191037079224423292657978955578610513249437948722990136637713640605458661454532266879560170526642886702820232394966332799468990686067109385232286033163672452680795252553318809019566306314253456247857929294374150334906915089259502179648642879088557832300416227515216310986479878740309197183461559944500192123299463542948623753433785645964533826329379747698115107629287321794812055577469451526732191284613309974099266810633910165817361172678818416217215478805061976181742016040346554045092321388464950596542172987205629312046350668015531386815938308302230723717487951295201465004515911899529967015534174640220961640037275052466497845898266505863540637900846736502478290946683132291594059318957031013946462937350578267908994212339401010575860185434814131252867052492988943605842083025931106723438527491235178385102027680054785836405988903131610237473498735511030347191416467738704203787972370960038368773905594707811738639248697293445550746360576413559980163473704160154389973954433650164186262271033716711910023452111437055035035026016171596333811988088029853917971194134967205965990240625782419124858650148247517740502132651798938252754016170986596988362346213986292739018597523094494062468778860528781127614160437626786214817968668921625071062667095164517570625352224809536300609291477380514541213379716252405386654614922211308384460739220485648078900550757350864893222884243124990435637885305377811294001983704324701713117257182720587702296284657835519852119048903988301333893398065888447874530079910463504761812999992117481679225766661888235528770321396937748324433677716890479976196294974911971000769211857547623720840215901180520603245938460824751030564204823782274621976901124110825002256617219922464969866659936439065282588587360810719478930200906412690460724503687883850690192270558585617509843811448962907542432024210042362808425365028678608580644767877345885340351421235536386750033831696392082777501944348456622916824556832024020855302753917634725913713627717049375648383481091915290601101535752407815465635919489844736715046535042715780637468141744596369324345292490247301830925274782609995735457491586095056701733954052470858279528368603938162393532518619319322419623732093978348226455778611056470196300089224284066288816613116341416434144958815181965806257146081526472910460340821704772591437369475811429965374302349992742672304108741407824329286257749018134759287171448533718028210168607180202529373475604683529326937122308329404855743140786780906774406167148791788503686978005363725892614625939036379216367658879959599045628538826093466950662630936859549215881220739258005731387649788985878132901444505281035169503305883839906583388475222602512564536575433669179050428902190435116143683608861456413169077076747289083506192583998918677732632236746106016091243929126243396511874271234036284091097023816498940825486740784444539880209599838167909960587368702965364046700647008351036292641149849664268995617423034010293976209401603357506925228458074065619463147431870117139226307277291674248930359832249143076062110690520472712080610111859313493017314868520893288755605384079776927389306071672631201004572679431298822510325691893872183521115449102656896858337110851453981437688812080213682684444715413829265554020520023909145035656261800749647156547109040600960814968183653978618435318386348759229300494266910608927519268360873298729093653612072643457751090866586433152496421753061829219718442078013966385154784215060921458060932022724850283735675235704327229205938983258717965656763294868763197243797604486876125282314121507064778158193263156499687035440435127296401971153727317728875649403723265469721997371343952909666191879610335710217998063993910331213617975300339462338521491068364527726301249104315530302119762672432587285039221327984626577312113882203572417035703261469271559609958702762678653443229062537821105316062845098242466545292765906658993688797219442539038741713250150223188438634253775520178743580827297043678097587039664556953467058512860051849773346466374552965295027488256843449762294940532862086813799175015408303227510830471089295825028358320994640379274476021906920908646423205436990495855808707667970414135644409047892153983053324419051720510445982399851322161423732522923669087785073941648476649378963444439367206322246585243335713080993080682427354485027705193495672069443506368731654088749453491611630536921691218554108164931464868285440446942013950754259335623640993040326013050849579392872990283020498413021507423774250267894518761972558500025865875911368431106651072910552214530017709316111054305321644324951713944316616836356628187104127518925041705511790443922385927887772079826849938199486825987227514071565029134888192510994238638751182771474365966453253754812791189420868353153125764636607884675705644994415162062135628075244190863671443969376647266501982400911997626881233941931814618326196724274036704633128156868260732436234110684237242174166479141611234181754650524471624529340506607055767800137138323828890846655425377442159180967033955635008190615246756199035829027483199448283082763370561363452808640030083040685853032026755518521578315181796934493282427873182807712921035559716431613820733891795332476416782699308750001543898798535579684432687359164224779636428753107534919228819601061368801141955875623854252161852806745733346928537115101291316279453968969524197611810096084108669932502932627297092496085516529291162932628296467472387683089594091483083806145966070018041809894379629934795003304982688565385722619076517171786506128481327787047363327655717035391484826567427710516508404451528678016319023163316252202516687647225416074066571695589009205110698537684054330810769042418342334976396872145539966364707518174430984310359896413954665123538498739279747115061681174965866613044587073996716805283552519911780869156771023603330971111653049585973877779082658758239761571391003160981846081599195126217129832347282685165389011084986814361741551791334426261819923179406260299971930864058003914825105862147844967524205566422763318703974418799256248747739205146426227134322211362525348653741514474495367404753614447587251907248953623907164060433656588728477878521097388323605289756658628333892248469986863228219575584255368413975064976440125141332315741834965113680447618794875505037900652193919282209299030304429028735271053091930552649924149341968736509817422034237619520802805395766083404685973650967189761101285009615761617464832508203200267794177641298122356331096049051452318462040162791105422045212317008117926212616147170512922703343832079561540064527103050267840067652805616099543450571750555669977998307027042910328918630927029025738728205230412988349185303458275273481716860001742936840916075174541398432302173621460485545961610803792083094157326031567111295290315451065527972367711490187816809460684531801178700582833855959472140808631963958003473942678847073086949374921491187022810460165834345109453956269468339616041580023598637372976344619568523310236815194627973766032719132339348498875736094422462748748001754310978906486527283290277373557917263500615532514235401157521360757917055122952769965313994164704163756792413831606174749014505619568498963490918916668104195233915654097319670110810022255475969002294911314651956542239761068101670917028375404116431530352419923881233649422905932262818712856320169842691753885329847837581982203208396989365202372253709328181339442168996149167267892533914335048695403400777888917726620749514135630150326200435724295045321332511422924114288599928424840723583613526537157338283891200169459955777237956185991782315495276807270896995863303704788513030907604263855416368570280963527331312186357040555930552887030345292602200915027580324780782460103364044457926770625092374168372501427844759539672871316076266321584548428706845130534176316073373251926006858842623063326471889857548319347807226025168616588680559859207691392676024995065946392183092410107357603860571864632458486662551509001942766421227590661088115009034595749836370881490238497006501932442408771920634699993521849396888403421756985327511601984499079459064720936609573798153235892407802746786857823444454661144684310039989247940502247814485909706462494101390668505666883527859827701202262237362170113051739250479326348807913747145448401403300040468175014690998945313629852906398250372285868871752673857435989026755058566128308804106230331108877865642313089308713734892904685803908683173435837686783997874043331339991755924089437607870396785690392093378979708108339935932144908996640763295223905910280835745832497066439970459312068954120923252093254295707344791751673370462092265922979228140471833338531569855015547761411756690480694011417877007104043551302284740446166223308077685265505018759074097290699548305771392576951271454179307944926675220699202333652030915653054188599190907773439125211132708666045498675741538336530752161016361592436899194313317097384541069147388404837342207320847084387208675675105104489223306892729544120567192070911835011607810598654544964156386758188994849117623746687806613370738859464492046797839093610793563977277564771299643706372284723615091063744706170798448286683895328292671746372624629738165722935855634515025675045173729385143476397618415205829035904436027418031792154945852654358173779334981244540040671753990367018757427863664433941908674763135794869710100384981393327656941291136065794899317073357141718364462112796709677259242020201996155437723271123454150578404327578918134072078379865200599912573393736999818817352377624209572226370350858095655505263402458080523761563369107704357612198411465513556954980219609858738527082793374689028196809843313460554932164183716097886190642568786335297326112519704493198087864963334419298022048003366307977870246499296759031349667816119730141130721912748881341697451094535723024921479846214699550714346567204711481373279126500517353920516687002404407984517129700988798328958212253999384725030356658317831169330808298716193414204483952129433151900785766019984011768176636564753471404647053889817835598291145469693310783210685860036110199343420710638959623603194693620773696298643232690733806118950476162020200612743518929208988279406750200568608689184857766556026423336409021065687506606306361399034622992624860761159072053078267997650399558792041344699022531482719759928834927646895338965139805212911637570863166080419070887937099251398692095741065369320873310006160074836918950468211585229171244709904574206959399891165079589106778432244772710152394133822199958688234312267073102156959683459221707339346825213567767807848912512811897177385758366578937060459174566099750305935241495947561974088461357534610968410672364745604074544456601971020462401509544288960373596000903582978620779817590372684093895184576574370031920062321056538990604286747569001164575519170058408856460884049915195419026075469979304150816112723422537016244610077410847892986139665673802772591246561625907020944636247588416999094009311410633591010185532155111912968981597819185646130225856005885774243505028796591237761532957828405463575271574073995136841888218771471161970528926573558350118409121217319546958940118652732921143443151010489966587829215462571188201392199525391947373823822890452885023859383315582750656003273517374781314463622954424647351687019017185521402156310483175739736915140564910285902695898512111298324031181784452902564001547448119525495510319679016916803061161089295723925613329748987093802429166725286958864353035870194946289001965885108884483699265145782968471119420246787060812849789986609931373233438787262130136875931596400044477486975307137752907965765855159680939644183600508304228618465122977645786955659188072117726106731128650669696178839614167168742555919747166919135473876561870598680507863050756830260681808756720657854981521355836299326108557003784535609524949655536707663008311702672605451756548950214528028185728856189744166597119645499083766471516008632171122211607315787414356842319662949200371919082874303299050786449386209639319225070733469015567274832790430526585573350048954130314420285129466713819720066014951263924900755082013532906063774257866018690925490107251572924175323514106582883111978426788068725641137315868740788896789825829783357193794777315398888636684151341644007778812788906735267309296233405260696150457437858459528872826824014476084552194139517077963015349702093813261543829678999117039386254512287191447366741859175671904918213162114113437480965565181323262534843443561048693758213058797856859081100641718338419543415318022477747766708616752138670133943161995678205158643874504248605497819929935368293737258217039923026283874087294676966275913426635063282657895982316959334691574978589911728010786239231064228643070520175630399209665627219246437372577532643821925514763646734355869088821719835482384638289250264980740664376050889713628090488939298398912465675249645677782521117365052594612216652162088665375705639199218616565641454718887621970987829796804672786876512989374572606358336169689201362890045030804070018291989420303341541884642804219275534893171342727102208639571196756616371654921960690915836798200845674524304651442063073550445385712836194721878101801184117595140080075118744653003168041914824530327098536190384163189654107990403248265513527658638109842223331321682451167910698904741086362063421122038225152880739360264499709931634138919371054289572266268129097835741796632248821893569088600792404715345714288033130651206801178687291071403447142548927756705297267845387926135550597217632149379888181646847384368486565610018158874026257874859033778234692529101529154322432727190239718661344049932583169573494242959425163424492309353477833531509202790610649598834621243558480075637026706590989608707296120464103145567962109374598590018291108129775095364901351028338347983021948102909462513156316095788653736779584085339696959875475012468744405680501863768277291746140136360042064858689260596987929804077036759160825236791893858424689118338679171025537893974097879418999834044658257806253008010033146085754215742364515578919933142876415571282229014161948536415776919629213196659572106026810626805165256979949030988940944867402905531132134606037493389645612459492499139791704862208458706240111722464321299140759326435041618833452972363864660574226941563663702200401290970590624789772342495487392363543189227928857122912945456055955971337559055567142744962402344464280663309506762083878841161022554770327635321025435001863603291187572035484415852387928811653256233905796150505933149327820322381526321069653259649716594918164875095195310356329189104081273206076209559528533299715406660756620741766139234323305387694379235224798143978312604128333541800637818429843363363084292376588844693112635989533589608015396240883466298322274675447538742688165907622049253394685587204640589567113637099117611860770499500020133831847262765254205999663791362013782827301808984080057943878299852476089022015441402700094390229242288016885775828394393561157717314941109369800595577297024108350750510576581414011115925350593129630291768042236018117609009447584649490220497626531403120363620966434175593743419593061944006407456506821210062075175286980641122187315919258355436704239336679530656884896613799276753416121611512430470162104625156180239863927069827172704174722817307777168802088289164181097233704530425037147379118229291224059753934592390924454451789273348124938653622081901586471788016525823155272202068901517521830283911465434764816850518383552992183118897454734279246848649520194479377119643907488912144993927075084888889183122316579511581733254331385834175075262067227966823336094629346818345588599391321852176233729197009659383558664477351664292637155218762279621992608481903061738270024452161038832007860712589362514194729899253922395627555660028840891848729046147599473750932478359470160117721654107746789199689191497521705671396521801765668899948932018462381131837366986673376003263098426425022917573310914141041709154461167622322092168875219046540281889600337730773565901076852503964336230782771085315253899639063970956376093807576482255259332143328606867297542631339114376386240163997603651423260264357056007008524025588005037095530003514505523059908307296827633613875782616844993269155247286315991374080799971701546487526285505774827442812554083570016744607492266376884400785236371569788445821118303010904775490787317441220579885447396547339879408349317371703587897638679969980020001380157625160988000953513608712827716355376536914636152213302444105113040335937041082129090899432570425908290989047311007574640364127130787123787074962742156733790842710049527111690362469617552924301987169155266379347614933596593230333508292826453287962772946718826099055650916153063300178546331938613664812678228290713510224160529488547488020172238896107919113026104220228707824365580785994157089541665168416236222777277934430168232141771149926546707715700031071912967343260291420627263093146889293300430732688076333236266531662099112437711226365754964779851390218055982584266438142907249419726434572094109621908289117803894070863568631011081869052038338346335533567221119337102323532177081340396745145474814521050806096625362721510093841496903216443346372221749097149428605206107447352603213420908492765133253563265838828582806447028853099785719795227966969088887999389202157134154210992541488731367168428681131463273578355551666426870446572015354777587157528123454619231034832630968034031250695657464300607751983410918364279329771057140015729034059637246639958253830341160046801169518216965491823463071390671982815747078945498222739906212167795505005326577653189520896484600113255060912302013903143213912583479043896228757711326962461370893345747593835079697962243280100894143157888193534797395683428990533657667187605120753541989301392754150634890546459306150779955533520903513090161605546475294312748409284961951516404830707162394619330339764733524769334504856665912088550026498301208331991985604297408531658878726355845527533357731780392000329281073173186912543994697629076824219835868029436771064616351138190837677694817832280231383144426852484939938318565203498628987704170957259269204670674797530837937624369643873518408343258464613229034526264780029393409626330174794251645462990300017597256213707982838073201131081446319642979681650659967389292687206815485746470749207354347132769178098136188260848392850413933291582246839328894187699397267818958210084812388819470717953869755435873376835646541571911199943479342056419196558454991652374285678427474670112449566433809993896253800288240912678300350534299108937779278241174855220263840798706478225814476695203466555197061134511898381339433857838950617463613603354763976090650552476553993018963863384701570424509178136033367860681079338808948208104178840328209340845690441959604339900808055530358235308162020318635753151516135685957693841617303395958331008176498834068091176417748231453044552146371888868775219071170116692525373124521299792919159356286497365181303847235293409597647517950009238652278842948307049978410279640952039472058840937623894752189189598553832111439816491700533167608382368022535888706869385874277006860883066910684632505834711241700514849466067004314259160308244286044243330489812284894104113909019384340950562249521065424847420074767769442779658651711571381028213329317518466222636767283521657810287075747470833771367915984933848700527955111742155325602806139237148840364252727770788033018929278095739350408407844494616070434719983008122000325724914004061018736047139448595839034229023913891179880256516664946116073982289501715780816418419747797657384538119627159712938686403975166927336513198821556497276527197459188843714443115132893914357754385485218797758568771854745120255633048776994546019399129070607605349145770120112517118413701318711559302254846196576462100727997472373737229085770679726052073420083582239316778625932463815078986573317181405999760167697016325767419401482162311805268910411134690786851365584464781911568774019550598384943759268833113892636175144444813785666245344131136998618787270305799328535814214154410347123327580873105245069765464857086796625525529863636746688776892669955247194019317929084794950116305109859721035300153844385882498859129581653242652879967422065826984234532171296601137384383042311037828677589064863626014779047220748389670879086450146685266792295914200631275095134363484748090801055507275226597718496316557806899789413746323255025399688986112566279171871784738810061931943619365761307889503860036167610273458584967708138340206746146830736937719848156589898436876195134951420435300051255304631370916906639412270983261780427154334675407572304685525644481610394997012567360785854673884909639076372540232652132350565763446874895677871074716175978094222882189186829664245159979999802368433307722872790216339753900679151110683055833295776654318155719450919313641037200230674811368868198755237948816603144838435697726409456862098478180923447753167947471269872786518449052481813896183350410198027475057567135404431925574561226726735589693107533781127141544378883522558425339759606857866170219981705761720475771604642638581013281173784155318248851021197967084927045317633545917757699136176144409437733460925354537509961011083634010400683953411591130508064947817112446607160398928900824240202629111375714180003876858633866462498086104612622048262021540631098690972578487486169592687386361190522663383681581070822391688342983396871895320261551632187323766793573539340567333636273730358285756147437401506805097565611081046179314787304891298640936104905176684017192137427734110195033892839196105283236284657434952869999715455819305250363389223881132170869005636080978742730196564479988552702810807437060624874878645569138561731808019975250113611876908787176524938596810905405614185323965111085175052079674722334878327450373778384820529452826109858975576687116868346188960935373939126926891377163413160546968237701068501174673970942185231615059691861663200775005764937033205888302093373217930388596639245710957924268568837307357769831916393351249963090904994381128757830257733998220790836621099049608040321566865231925204317493815238717216590343062352542986136314988399884162055264954078120140232111157598768173833251429702612780700255589918953495525148859752828757589556610735347419227931841218529788914606213416808294247951212256799231029838836439372586607734849068104624525842531628760990360465699200331772164803229553313795290093413009607685772424034540983954033920192028860262092316152732234709229686363857654675157294712976637758883451673756623390784322225331380770759969770201097306864840277230518603415082010639693599943039860596834957057817723906622921957644099895353938567655430207248392380951799393278340977041393424919794250556022500664428943855854126759871363237142036691479402116106598609275650344399817903470416046643880613983849393395203420149255758394762783575591160716928982351593418524922087262041852214182845250184127770814719094052718776023036993332084318955124326620626285736201954000413582412268823726176401464190686062342718669156408716850356884524458045261721130612786594886054542552475500132328586633072727728851822567642241731935621441053121926174432525710080712577394382808902782381249675742416260458504079615029089482165880334219278255186849856058875226048819575094279296695160231154180218886259345841973070245386082870993445322609476701574710802693536073038197008158510983050227544955722258905782555503007649336341908391585749536071910353129186862283523565523983604397960140291265588907569246032938406171746812707941317183738714801429814357386379315303991994732108655623310057628160092956800641904776880794554531348806503337571865829491333274523291306350766285258094386774161019084645418316501972562094045184844461730979167396315130523057572620024112622715032240104681141313849124879356990443914072921205448623592696332114840348115269710074270971665415122724179845807726325443285642412814079352303494937925145062146823375303327050555306635274578874656651824966060761937689942322798551543580839469385583386904067426968800189343669858966000873447046693711872872502998128485740838782723716660832619195936879633243389145403016338501812272720902649094126005138445694263756546905746858187815297814154104357260637014003310018598979079745906200816755037110520778637472392861296962653078373604716678439755470699231111626250986904625220167128969283197885595921954088230185858826961007276367600799044849406432806365101189962549613305860805983343300373770242462104171487589556237465599140910467556162722880576750833777090484166745529958161328363144254410720263524340511161491028459026926630060601913743195564084344651276870172923881508575705430414546721152950790044440372734212630504409076498921055706243409255174250448297692094954873016064891367496028854075897497039244705823428231122821768792449161275855087468358434096248133429529911110645006214719136301071239980140090273992058983144079805930689549850578611834758413735957251192837847389556665891553082981277620525021982073452399805359383241116957978201342860401103555773886312584240532267797973684799137057147901630060895881388673618955776959184749337090776656489855464598574002205391241797755813066677215231744674343950605309621009765067215035264232289894274355063733796175082539174003767201731954669321867615730412525012646214038642649887055912390698814008929598706914817631306206941775248596625815742500520148666064117092084277912136681865670744164411847747891673622026941729752631011923364927717723158557818596584109364717503949101176291014564232434203484589929965780307433197610195626621507346922153258224842029891415723866749718631603888413024892581827881768796508396363020728469245841545399574340104153643500813452857326306024341313699108791810529314145959010991015151554341635005669389306918263416228452911624010357617085877638371352693031413165760446801120845421992504434832701358410190953463134335012161207226952728630309536549955767742924963614389218654352761604054731627148264142723568512326122287816246479605859238078438417940166554985187890719220088845166402591037444797979813245245567137601643497141207149294958567247732262017050457325720665081617400573084212215101949372387848542321534637057943334504877461380836224056358066701929321292824769170602191392311109692599738406241464974001483655226471658176055651741609384688631453187202756656475795496638606766136968712582951933378131238842227815116445625994250315498182951996899772625143508032686777145701166654830641759273494319873706044980856484772402331888763800537255806668571567001487899808593870093817090995397617151726301762138379975580396210371303539573876227703312693169488028054543360511678516268788269313376815697469477215142211738023241135952878196378456133641178777627663371043818406082029732299593635383284956375037714523477911210559207244844632302800173095216070627192347335890041308296038800515360836437879425719211005007277497121067992713118159721852636565830950174946880294155582987576143843768774542059769373714555752029475738339616218686885853204024946549177581210473953630931958996095059708630460310659910435997612591120867033244298625432526369737424341478191617667220352797081433848631378862705515012721206357513133860263650761299945481294078372200496142319370118796085594051118731248205336220954784308301293588989988291081972318881105933333338137354324892706415031828317831224873008935766447692336228652807032220369043755819670731274638240064887120567097012580639728723446216058605350424450638700803054920238880411408118251481802627109966877480861942743440885010256366706460143953417721178305068355065849842142731113901896148623627720160538747185830435427258381421999005496326488473972858635561527936559295676824003476344092092434976046305962769033816531187522481834906664194756580974847704750374275735769005373176513947396816878817396996341283942882102281023526931911251876970915788817089598106921241878458461277958110942854101688569354937404131502792270343991251037940169556109070698948947226878852864092434951003773792934820571896639082327701668946334556263954318972843581940808792066937983798251697426273659810638240426906312443784938189060735831467679481595096995849326954061695999648804237124433740986823332548183445586451708496569789377167143464512454792888842485507816520217360831622404258664921353691473918254031688083599875124447844610366359738193999788685038136363776924863862066934800072632639340015455958772439094386020907463978240005887521869391056141073938198657101172772431344900503882641290439869792921325984266005749457319036902957854089291899190679440244489069526718594809469344847838411544233478249368417573064313488895867011077508053926932955615945177606586240284796214321046855689953762565333993919135067440229164162586797286399352649644942889367166938609566975970354602014166694343900305514352369726331748629220153700536989902392410723211132526858074643442518465183021590282269975901772093536648588803264035548939698031581517796159433516040828665757582787717298964021035660777283131946874552319588506522287447408178853289637196905857668758625209954209330339453638354744633658523885738873552661095454145107486475618573736325281432236900341729862224504495320260502017003237796840895158632290778432919875914069536528294532486894881453892978173136307107041875633964168120839900598374930064198330902147360864390457960982361419560497204283652669151713867768690502174147193007441811569234444235212283379950409355871537855893823593020569763814761039862317748468578543427623970069250167164544022668795197597491778075191213608911948375699856431192607444105243231066313791170759326117854227667987040823381319800184363001796056075557987994150843943088004769550791703409903643245810814856247450977269308452381999436798166194862967776472957714256977212265166048916986744613424671627112053208509974920310887279294182899904123460027630312046301553530055836295724835508364677469793333916069945002601018812753983433234456166588087059652049093010859043803934898034286170475243744031044674825332283278883456596558245774219676277516657902244608903326892177253301891539786468473921262294539280428129356567077529721186194766251363929377050946131867205577001743849256990119930491774677391232531716926964612747363801186935092779188113220766530312615218616559651310433756023871249696885610095335921469612927917080099542071537759376130677142582402157897262648453496744895214109005044221593680003999031102229198518821987740644223558740306769585033150407642602385631620476284424419328585297998553126796240108217487411857545091105186674998030012033955002028939777705593447960194041642715136421891979621903822698722723824313612844408776350944069003019048277864194331531743788618167762668722183268937475664070308724772721673277593616160015665367020062106324476894163180847093520793957479222011679386190565331183106795902946572793361302531942490165380231342636004755716127968632867017894374274572920399753800957086012640519362321785945129644162179891291062288600662810346494391650103995657268489349079836397174648615228825726332230929516799439185259254592106172713208987327780251710048516490260600640355659640619663900734911761885474271216044273100966070694464383161528452415513491528026636234328793776782612372353788784966247921897221110493665777739144011013678782347152625902378974328750208786606915565934538366675656809217367008915615128777980732050908318251546350642230166419058283577204272835976236514403612508621623935275813975410954938118642346734776693610120672301210776286618959714724913161897329436457808709793155397056269713177858025228505218818861763726737230234234935719946493035287991736553477160874087031055035363695296812349894621848677437513228734251887476141719849599240677783647291650432014282939819014298022034216861719968232997707870463398938933903403083470067070799495617569791403051908814560552652406540056524632967617505534823691341836584264191637280384109312902234576813101532493910079240522863690639642506600071921650144570536546199616588759924173840069101017476641242916076467396018375488741369833798531381934878920523960314961188264956972169349957070102400567674311053137312327918887273381136529352472695359253160630382746046380834609599863896383543010203877361985226849500531687828319845744985264593036660629750363749674188388342587705246298609339371629822926519993826742491236979217027944430450876999939290595307387655013603480338893107819984970433028880396900866246531394803826540833614602060030108742818548057537752364731725413185284502742250170590810400228233327394765346329344774305871469885657867934147077651301702875152581890944124102253044286790095824969635542746322370908707499286860956763511989733581905961332451315903660472855626693592725367291942070277613964043547469626840987865082834016812344315629293121968612884675613571093143149381651108298182246390693153613099922150800551129265047757927722400172149098233402458453192598252128131455873794700768683570893269611922602301040730334495198971613357027497826516325464025354577714013334465972519226018119972159327343105094155055767031465911168696969879583389925703454366299674672340623329984335054017617501261926280858889491738755036398574340141124232843861835263223950680856597642348423094489671766873165270283712381752078154950046299062090732748806943299314593863262100486653134769742411773593244745490621385091737035966730448158792184857050778872650547321143185763559885939227752690592673337128650614723334434330860480736240830953220392928134828937847485799832856954609645598529028017568088515001367058300426939374862527048727780826524855352081163304155878975855377681280062094921273977475160271244395518310980916935379755344137061015210040256725313515215658430405043602858878994372707446862080264770116787072083120717865504312017781028786815791349998849196725569441074035201306533947277534572162827041073112272147008976046496739758222181312420041237507023408627713234159883181597888335509407639435160873283926892367582642769691910556140781852581248768108095618445922249558021696018124296659408562643716751070478232690447078996272312967704089973416877700367187368807407136340155350105255505119760620896278586848251388118419911277045696519123080721250179685250336992625079040703964912931407771756583600953756671793477058564963326511493941303331682432362155546059057046761036158343652268683443631226121273576790484753977942900262104690881271385898494401810707472542824311857567732420818853777677977267809967653180774674028316973272867681194974089245366761834348774125032309042091599913573437994668340249872392141958789750287506495722629019414131507821957613368995567801182606068733674716250423218155706165727129556889499493432519373598033125465919286570791981695004195641909935337700797891160810100644448225702713412301407495398226480714975494469071185137228564712066926751813870231946796241142817182010462554459750221337573430822362744731973438138383602399189012075007618886798554476043048190182891499169443862436566883082472724751078012629719000293903880517464886784643072450757228132692322559445629933500834296093872059576065729149411230546671007784992266235527408522275194439494053026546239619849714119934694859136508179008046863811571018564893093121168705116553536313972656700034308058836615097370664858997856757870568703362087506835847478302340856029922103515807433646450100649647484929173109994239101750299566143608971678993146659477642506599731942957246072628165875190534586709769612501574498416708128690737642565879264219164872865122672320839720405497672587205316376251023412808859937091536628632840843795226016471569442817465489333618711297495757933843543883007514095297099304188875059689946183222753950033393232139935826582394029541696162281515528214633435585638232334041868361534246630043222709506472675901563020602607630169128950368182834405658184889035773383482307902099857326877939757677034467522762932702549343669391063577915538882939130039100671453928520682046466018025782061049027965748281160093024159685837428112423596275549425886631388832564824900748286256640527302753266846285932680178891344943607699169609093462052645211434540881634242448816946253784299319663664599302974811287900241374543264751373935836104427817610692741479537629243286783950105654373998093940091270800222494192970969520862939883487768241332457141815620172246857178767481665197758638771638650885570272233231109761556653947257735797798690163835808418519228158024175924933128965797224350197659000713746976264294967938055339909835631171499236407548644859989885795947829757579178142942736863512564360303432815528331530007162108606081249207477318849808405463079939220052095929896015077814818385956827464655500450144456034025671532813613336210889019740265677655027192711537840797566737878224771003647971186975962725055941804272111665708357328770117997812937605484329205008851198791235613319522893268285527340034502933971150628743361136322356065269620439661440731303799070581924582249815616147134663229449260476558476874686846876144442401785844933219229459389020425929617570437383269265276941639155470573725089980006040505394535201868412115508914763125399285774741161752315695328613490127695520653804397122356560035278920568867448474063729058247377504791812634076006397564249211888501298505581050037130530038681630704357028472038453495725464550947686312184991845394971724664775985462079722460078052028828964979396795516855635179003191269913625754876274522558559829107364084884262492941439018100508374504280344092080109083457685642157152724293165961104011690274797369148018255021084020861900912750825730564960122891686894787289490091491649110626435379536781656675951016004741831061372422705550130802752528120660336217143676248291379238370272569270732886663383049878684771640832903883622392780380777800834081460499861376747996158965211751248978629422616934452927415988447556709560051059708728418991267804414919352928403241712569890161574897574096131445138995179452705573529862069235836348471842643986217658063224989930774553765877800628360641507497407076883798844281150930797092859290943772584947887346993881125671473398232512748665270166444755004631538408407823812208484551215031672695431324984798942013146263995712877706419340930375909048585894662878522605751237508817950924986857915401267274552643559211704393316378012077429723199698949443893016606899032769108871707871279382227813656574848551326110789447024289692884889349869360107713949993451272080219993674558100555217122625567734945725625970878466439744774443738341847368338550503660311339532968416504280569699788006276493011655456960067759778689710274264577957902471473984510688325264479160072733937660051208185347360082462630985677711660813862483932723727674505857667509208038848290655488736393831026305947802921687272061142138628475703181726758142831283218172249788327182013273131316769616237912450108926818474143707282680433490133605125695263021016945501467630715551764750157630667022315923917021113359801593319928389085086008526837125486904372812267843856516613379557103347110714480509100385162080285797418164111079060028150422580361062740111034466094080602359260464741972375202070848984481647239692158406235517364342424505584766927807832770549986023284406719472794854255750917500555739790522984822144757873763428618109547447257255763298528009858284516054524420617445372202629423910508011535978684681347199708885457842017194226216467552745789675298920054569752385899474525498474116499959677918511342278137708688295391807087371827763699524159137342921623045412686050186642912179416721030693495081011545221590857940379667652656111917264321410596168322472769541000973228709208537730193053113189311382538523860019648530787570993889309692682279769002720118169561761808147494506878465362215135674654877565490908655294215100056164537273320994359934146327157324298767478942517634930254597565244355769962699944984041066070225772228251712325904070959002975614405559352093642792052125187789198186112853322023532155922578805750724930728354555951345892166918117990299426746776785994191384845982612528319255748906914753727677403729546627935794860563854943678660914948211035079547101259709870150008809654810867547170451985519065919131798521123942166982009153439143374789292620612522280880242465790232093863767294746688738378727319236403852095866914261779275679424021858793561588616720375413861824842446924798748849967538893020200574064707930080856375963370350368399724959722769592018248197230661107863471914920953964951138429257952658209545559352698487122818211729604848085816505181439906213830189438788310681657938399571815655227679258352957837709273131594821158836222968612299355131326530317758789522164071541821379891662872378714852464351821870137059508212266930924788677623451572933830806098455189441241298630455298357220354876828690195001570894841129554739514686393493852558597147239605361041367645985654338683098712911355080357896085691574033478570897073996746187683463324859823056551394549282946891232022358287310311512627803635245783468657338947210658532113569507180829726440382168083029600540438543385320469149128068558382139904599328229531814614246891165973123750516870104453707784555958105821805536316542976112904002012090310233996812797592797977780483399590100383665962038147770438894670577295384595633469849941696357401212401565519604820780147825862458906105786845327624927462205723562637334665413657746528510709419882962422371004229687541865767329922280235153755722192825143998207530073691358731641382725872569042180228392230898113705961446118528141723784500685790332381097224593500121082593396031986551024978952728828416015105872721150673919563487638983220184268895637720336024342345093122644253613306486377058378882649096721455462505765871163391354945895034196424542295920680782831198400352218837744027446604386533480030725921836175677598403973638438074910159529988154905792469248244515985147008683343715354140502647171315791054355662717983895577778344896433297356049893824395916803650975028361898232022057444679757604081672182697579626140664919722360668016770869866780406923581142500432929656906155404557805222769957738761015891061177028730997884523155722065561333500177422832825697396970938672658506065642494325217633848128457169776459663827307608887786845548454276558563683086369216846957487758515448675941176011875553538111636077693247322479130387050946785783739773617918232136052212200959489772321845823401980042033559963823975331112733905572163886528478976144106496285331684404801220934871278929941136373244161707668674003849330235977145022583453360099545286670966070721205958874183590509288919888182608525535724670834922588835915138995329026430631868358350406299375861446617648168792487347589963807961856200590818379524332668695394188142818377470693452535970203532089221159893699430906720827939882099024353487240155092316434987516511804517385647043061476113023916646477032438581339732783240614530015909966592331297699844892048048206734821882364946948887943609601535069679895378471334638727832450996089298340779756396736954747720094860892180852173408974742389279187259364431921315289356328895815466981781276114973381578817866274768215109129040964680573320124805162464174556666062996298138343172443543799503285041908131213669515200769811473735713175295126517835981922955713462874275190702232801173173747910151420019115630317988317057553831158801724618908136707629985879556817166201894147609529848360400303261747134354110764062306946134543207830449542938746694922776023422640812518635756526907718024854700818670819105686094317317730153858979966928023199955904499065104110371767890244026070143847612859856071737134078299785665533530173753988011616181972766487827276779029137017838413749551600353677843930370107941096177400739497432663289009972196085721425197449004745815040604913245396316666257744105097963182797550465603536263884978558802108524343870818732823100006058525185128298679725510947306151599323425815065990001569371354285997676186336223724285698048473079039004909366066921129669660534609301560503106774953213689183112394749569026321763154787879779044420127507498210575395970495200986950384415836612622099008152520754715260503361841732955871435051439447053712205117756349297370502776270237281877290585163369704896871878861982731415878527096889356173961885400863123423762106424644619503110197343145261969111308282062278117782123209795564700199407674863903296919208260604088597728169200433413090943511121071228515044044650113022475963600111489317225521532646380287086931997570918869078455144516496113202840732102222536935088356518320394457628044980398256881538236381411183429755372599543420752002733418834437597499750914939384703193585159488220705794394239910281670049503286274649739455935406841881737904369537863465420136566546361272666435197532424725521785695361518835261817250023952717646246289120899530078109995238211603687301979462036677697071756434817356664537055277575535272824285169234709960474703237363617168422884510712692059405286114818400450973790905103754101919256380607069006109913972363612303569332157818913194763818259061642902155703071379678010589814732322201215735717410451180433342048238861640811785825002945857637960385368683651185865811800905216660204693255711889668223523296462586248538247466572551628369164410147378703556571382070973144455821136231862150576023801589592293199143636527419104484410150399605605319312633483243388511706587282576559157039620829313614246210213768415410172365777467538164618838843547435618727236025806547835173523100040232581903849755072732078890971197482536082728856756276236970780382500853414770567205080684685743921339981051434901966367970590972489829655595266182983759836155757169161096538419290342930831122468334494124162878163675761942909054432657272534652291011314680581406137910847275508948936972465591798482509205047556893085815342454011589053874142185131795023780101156964642312152019606274105030658168159917864741440193634885394615893857896323764727031791509344554719308913063895830545847506448881506486763978377737126950541173616221791484271292556187314302309225815854876490879299027125248376380004551579035785225159608775645955400585607635448616553818093664205536735623593423178759025250350496324206251840501246087259844086235095294690770625274772758188431103622749722470948636379484256714743441722797411270389830174059360705096882673689259869656999203467164945290245700637569858859920372730671240777053116100123015226932738936479552175753053690052063775436813560275949293216213082553505388048450489072868043480512550822619300203148830739324860563557815598556299766463536955612754522489257225307210571746743325717259665233351782225683663620446072649515218435734407286780319147183576072574914386855976343956571593127223945144234335596539955366623599181794191624183835317126775009467660243461933118610188111082935959314552528925411594240877709376521161146902575923426999145614461826198754822464068730898618900161742362742431678065167634529820451485767508117671542755763087247044103707005350953662261862204764858621268315605288013785112215123272672580619337672616107687054698422038512529275233676426464479250963829764799641263757043661798283084156511217573111321698648911688349967016103053553780264637712660673199053182505836848135434506959616767739258502970837333749777231445204928930180266353163945376255477698269473104345401203829460687372197783420490942644999009912841466731565162761473027936816683247818434552066161671907314497753344714509811844369848200773750611065756633588053144370751236903030149144843666866626777944781754305057774818542603542728611297349416332450527707724455177443628711430965453935035060760453903977493581802784818905367156231365012247782622075761714279285631358600263404726058783589035321581676576012726734785588709322564646641858917360795469251552731808739409194424616708025211039489834759672187934013652952522568836424317232263501247072059334805465134096204839023586398091793328591015768149157492804351051844756139449058092464089283183732521297779564545516157131442823186678611282705309491195458209212975101006222572152683734768661757529823055775809688276855078791115138422723015474756819526377185669801072992967387672249405394573720565008109377499573498340453765632374423324927923570371802534103071780477834295069361699314016049109038131217982680179086831202158177220736605168598884800119984731813724877956656209690796312861189893851594454446297198497492990596424138110918891659830182469769737112290993918092131726915047381056479002965181057882735663145178841038405693207316460298859454552934258277641072103569647217506063650879657297134912789568904965402469073952495064722825238008437856346621905988775567973717730018959268115524077601599470314959258576976571943402044686938805760712228113188243083029329746354747531277287212047387676625001135876202543763844577813545384094507258974197549816628789655374324729774477079615568446957221487783433617572307623937724514032313391673046501200837025556625294809708490295681390780218275687546433765581725652590125144202401320090319317662029344165309556734785920412407899413685714094352336879353942345356989987273598916062388483893766962032386215905954127705109669542340021535096054524741176633853579466294916011893682073888339474721746238366946534087142101870459051502793426009208802060883890438765285706181404852404994752364975981504307330076583089180566047937536196457399898596545707610959186529708045528072778301731267206138376967164945658091509045904852257858735561825841548082386568660538593935391389285915099008769286899813240520330905605128377825725008630667475810180190570488323177979870747427803433023292918129430590980719598606602981293104681745778115823838448098529456755797636327316278028644022643798470504769620445603096371735578368861592978700641919688164209151542423012169919587550638578533516288692409844714401002330575108936150946947128286520044011082747129979365792368077712699165035073846288673263562864317845408267494592787907515487329576055911862552803531134890489550351763509186299529250298982408888893243775342795742733044054662732701646210221929189683194620413790433168235276304207717434402628055402380833289353176088144424948193137389815895333491550652357690256065330134640884897603050431205311907049740777520346117160829871890157571275645660047519931447053902700017676209520981332940799989053139271336413583060783445741933667031627962867223763287748880241880043589684269563168041313744496218465190539854000806444365952843604750222405666986783954163017335080064002906965272530325555562944676968151087084611819363508393086934449695671464713917521143958596171040902161171309399409590972527903034666804496632358592292367200649953676190489594508887693360945966163137204898220835453042464004542768374142915793772909939501335423208076941455255336260653576851389336430993216882511794888439435158705344525837802284498214719051106062438684462050524663989071781689027358993092273334453989485504125657397965362795353245477950261795319510402533170409814092353853229728069479941003754960742722786201768338275352743194149940789970542589523990387518560306809406649625024727635528516502042258316079315454986045742400228646292402844493310263591871048312093765338371904785656376490662832298956389512896099422357360833877657777131929522292041556280491306326589932663118432587486187300050012420733494385560434326891783790059224053671339409312839741562645388792152712780390796842979152545946198185215441613300260057277095140950619433699623078593515503630201497365109786849274586233643026329990036164005860741386699411623463425440224550490480267399054322058330286347267444022237259444177673511730687991324725949742479919750571903963044837872659785075874597843510258359718117908601475857912686018630805591954812834034831939471680540741568114884461279443749529353706492400082781782309982861859857484087479155399943858466345327777324622525402602755385443354402027742204690639617346171784323008880436350788368252576410965656243015661821213321748197099204038779904135795887213102776200536677157364743571761579575472181830784709547468276205229370997374156661823580893979877878022118387522647016377655137354348714081884684270919424722911323798682409192982836786891796864679467450755481075643546334141595322341356136279335333825389731900732651307707522901417443609682237563670361369246390638828229190843424377715533390001499422041439922547748836473515186682058411892415512969287118598473838120525856328398860470350318548513210366007409381238367977872908158025422901215986242710275135429728135971762101156876448221439365977146579410864210084755899618479794520861587427523820685346597056920829754023684663707017886559784717669406843750617038288786766278553291757664350021272540717284555273396998126909521923163575003066597071522130269819821136744887508146526978907449261936647378881899281540217573095516485033368962014175240482074633721460833958705639521580726258916131946784419289154120260661609897387766028662396058957429495585950866818869267043103299657827923820503134327440522515938822974758766190001695891559769332628142228498048796442652563744614803556239761354842531026183962782721834894921944882574722314747474516668393911385198604904591015832869190330408440607752229266073790576504555325474753403902953156167533673642349347648880694622266663517665774399484577394610822874946896753989147698749476415830050620754144019907290138289372029995160949342284086872763274965731975467658351809102369330937547070529276120987978564849941545212552873609431722521136778374232739683805240132613401193212705531764562413344538821945582187446592526924150438951904751337542517453509569259806374064680261202650849712520134694314828167475754270517279914891377396724776182868846230675620981589581004590417873716982704431691519538846787850536575727585192720718810978335146937220989616404584211807671599423547054479472626872716833039610482435118832179766089398589997373700486744067534827751136083634065952758325814830378409170794351610075194287950565339885799148792591234947300586099669801392688396593608069932189615528769780172749041744800210068631001066994075941814147905514615089312223039589017946196339182566945916589439782635270593615790322496546060142736940256219386555681986465489814135084030995044784643391592935088076707587192129125137682479132926334693883989459966647363958049240372664890724244091729597720060340563846977912548366867243516818298678682628972450884432649947268242776727842098718207288692358965366769595292052786786517887169878370630247054118508070852395712705953723573536465111883943430746566397607433246497435022298047661590293260570141513332340284974107573773128174353481058837999001738785527420733433027718367450960463968534261743933219027931548195783387072976957185544582255216797729516981632972182866038220859370595667551598564611729717594394803989715987857430921930674492366577167728648374029121549951840550662671334114907838118473705367611998129401122603077318843707496881820631344269557232338438177668870654123514923307866559710906533003024023869981105755213259417143698115357848998516431025236805704311398312298080511329455434392465961487243022336915793649475311965706578025968946539985542949699598285763818989408268874965393746415827662687821471008374786812365747185840461142967909314778494409597738028028161711664836535855494493783802275097293038205303261254433680266416448895815803747173278027645848957692660828686237329352686955533977853584085437352242185963071953954529183383958715644811519238376607948946578129963333973104427506110230888363667143240522600770524130036368708974951425976221993288507971213437700319899170549757848550967751662381946446895415241038946503160810850765169915081130428082827928217873791112919940047515363989476350435406908579165853050990537029845278909282169196525076974687427211920969627952684043689990507720286082572637524795421857611811918470195875467335737700924975156140990348275600847158023661236780720089559377171004793906758738801974444635915785321903539750488499600723857961296351309564405509631410008647359220030768114761224004346495901164062516703977323008114271092409687745484244712306213220324789909510528568805971805231783828307262729709577568011037108561007035111571620214697635146104039701163395367982234149629906119716233568958429377426938386917233023217026373083228671811392854483047787409608647991587211465917876021560845990194624548674813565243686939080074197220000955868048430044829017006962707371180374181057976611935666076026217071771524435177635381647469672920207338019749670290140429416172578499327328307835598119498902755486465081100140032357744848023509458244866297936352694883690671899287186456168985209420686159509144427228487156763816262883310864767439351794383939343673379661930287831394907186205145791581978230321191471413303507430379698344486789117921860829214412898872071435758648269518758366129583496582599179154022733523539253904527268351498944233191397823140481612267288456777739532597344956426635729615698867110016244491188956961813985062261019235308818767728203212957390177709183144236807835553992828404312022100667286936245329563798839883997100941639072264701696713494579266359240856750662423690221867731111941371901355483423639501233180529676405152548789288403351324325873100528289282323506664991090384907407351714812285970699219820015788667955818434111842426083685050989818836786364231745296660499180858922768835667780028175697966878032519993497295155033103849276630207334890961540926049621799557595754285560523442697142372404302659729555279264779711346293222225874120313605449848110606763447147080788496286698879592515238435429113425806347335773820251256627768784667207828140811100854556534177180857555995977041173155501411547277199051086045175214122802855755094874716395776150025227383673017599064672599022719083535997470058607358611260842341473358413019343980294799111916749496143400737493175105181674674833537344404753153156834711324929067829482596618832131519861374841787327949143720452858257699088744185387231505876521399808107572005955788516016880683945831281041625487929857747062757211738080517934251637294694033026641100283189457410137265784108614166149622633480285557272406537599256711571055615068422069411011230215517426786551763561023939512853749876350240228526399060596808082572029305890415649534504943048965996676294045130960709195579567842177329278609876490504479166900876997121194949972834003557928288828246986396802936065649629110892384862933478691908987904202805636451233812075615042283421301481040104046583007729931488899487607889424891831752502424588789972557744754733126551351343774775309141341939283514230126107952310898730584283467213347486327169925112078320265281196454028016072016174237759886821732214082629296528642375166878434282407444682580026711916407666314667210565459697611347324174105956090360749189515512273396021900348082272669058487923096447926003565046034818663584983572234588149530481207008839610502824633469848840111277404572511226409363072681501385294349091423417397398897759910794133396557055692093805648771492483763988431363416281281324493209725096192353962821834427224245079979684453641200027047925067295474152720457932912403254107505343046140696840166369363687447447606662897311426752896537386514471034823727508998381252429088703562625407199479425840286653629197563546939258356913390309426465576730527768858307759329185823006670038259006003652108070548007104459415420683636159633415069144326168040654792761563254271543286370790446292840529357843587347933240680622766448081963870834209428420138211513361514357917130022377809173771751339833732930663943837628324661416515327107151696602329674950581567864792929188498392978459597342050675421486193205980519893220914011651931066315320040217645466467885226511745722240318451547127903807819528903844805952270511431263153572540467960083448809309317842343887086070730604277891047369440869173117614027269711043481014716680837275399397975460839475013086109451546483748556834397087231627044208779349381345946757914396971251892659176641388479508900615529587613423068995377765155203025166014427310439291432114315485019899340742036607597141099027176506351256727357289242708945323726549539536679658096200351891269008345093588942704042464915686839094255857091563523132560438428682522190936791240544336997801413346205828843006596372632185845495498730567903827117221182923849026677261788455927235323094249912876181538198677069100118137809507879338601731137422219411842576417523406011833060510786216997530025540891138552617799159092548250896723127534664234021001268975870324264850775916568982024944326697880283991035618895632259827982539487341668115632561734469875467884453706750244754343300748184717278891787121149062150105116653880729642323345750344006480177538506404182361130612667979549223037998426866029307990739328194031062964982330996092918310618203123702388724494412186933325981536804162893650061543254813699129492240530133487975923649928776237941765629248226168913493101494228540707848983962840781981591738811897161156345595801402208978223180518575721710199661575324461375670223856798113565465593033789380061537437738970727699588917895126376078133007692095999998917859677354200737651552567519828768821288313054954191451561724547545924239976960607450437780544817880255673870851858528821586595837336397264249136455502109298803759994407161606020240547482506300286206363681137778990425794440418257609804430972336177184013823116502744337655352773412504921016815337584600019360342708009422428091606466752949348567039083876755094629580569711239593664926940176448077414887806309217843719731869549972307857063424250764610907275789760737895079383157574036399136096843029040973918682905693917035626482675490193938329191045918876615011323613923762962277341999062201821507553112711061033091992014932719687244876727970366066272082115934352540033323686152745787048098897069822548434961612518160359157527765187547959691674643091681134411483960022957187531853288891311987546960406484255455710691619576149746724271053307761534518246238762413201375136496674970016367431589224371700887739585815386704236013573845769676942746592258432815673275383716795201015153063761196990176352570440847510758834292390500052997246759328894591539998461320518053668610039857220629995232733905302625605770158203651550757903236771034062657205207870172907080220992231136203725709066350286378497360471769313175013385858150213816861394846143677111841155365835651687758683952147627030350985298229250499738945116463722249290756655795463614088710907413993487173262542542597459106871149168606719544001160049452056756747361223652494493394318295543266214721644964807108943670094883167063824765289902920712612042414351583847928881376179531337110822033677826480757518260716926928422569400859560623508752499991411798384297480573444018227257135264347352960417488865604848955376133849781393770867378204138370054374765526554245292292942833584996667192745292108904102068424824271922590610009627451903031799897935490188875291004995991061781354687387774293459818096781033880935863859481448868907449327045313380065555359617281766885943639907072107688911667913028783246364568132280231235102252308776464943053984186689631622330734043251447388876116079211982747512111427539511838849725370983825144446298018203944501318357029393527817140165225072440219147347099603430159061070175364791541323747475106021163321003151636544995210980414344254697346077898982522859317930892824061052539839039087651338986847105642666012975812244946956377282111279854627735469274708090230251060795961010301818602888779504126257198627561159932664873922964027801653973221009326710477479379996579024885960887538000082482341845847060099877377055303088182846017373039921603560232737981798601653702026659824416890353615205453536102231609036390835297629667593630194331179042970878673311773244134305801516622156160432992329044331857364925493368641897772923205378192516613318828674725344832769650361177740696524605925834785523673019463125598343340039459140846169429875473714771402639585432899880585086438689748602339011436304612712158158931955661780249304303459738429317301881635720908654548425406318123854373606636695032088198226701524223895324492778164113399796107401954026157136656000646050510877270955999468430934738705656010779036280887404495080569135445060404917751668559517281675095379313988396542206183689609984063227575645400365255935593445855407202768131134695763879992957928419424448625268141862682984878164469192608403957781191045142146260462114943080337288634323721241760062803176353969383752060004883098456408215137680529197479237852093235403594730377795067380466125923379102900992081259983977736573764759749786008285073419605765802967831828343338242925870024192477995525377691580470060948571828745459338045652650462875237136330716796141519445909787295753601310771395153118227849389591183325318746768167436627556329586969598881731065967731322889582078117129381783984462687800396899374483894154066599659034467146763376444783648055255507348879160116178556958470725579394087351400942052903655302704940089611772997337215784020409353698819828699726000805453410217170216794491854546591109894345349380887306347034427162261323496699233047452345563629817780642991508569704837023766517896331641946270172999995696180820076239830866232688232139909385193650996338274948786724066471669629523608690479581486464559791797982373905756012518565673000302591066119202097026312195379772051706709272116367064407832184318725363940284699352477329174547676060151027244243995086162611064801670568111602909197075480715418591202259364540179351115388422812483162333170223456584467680527047929753963280571445766422109840842294590190308955345175392563801066402782602626404924147017780068202035946606981402029576201409226569614125666691260312144207816584060998827722998410296767208158131885512165075198901926928018143982119100370716493916125380975226797836480745117590436526456769114011625913426798457489041323936760594765315097526243489661241957985511627912112206285181399470936850074335697319646672890769681392528350310452446240300730615744225377413411321702398590907482606187124989526268156890786702288611269132266360712163930116919073014962843745750540336511963658232995785261302771206700282928368475957075273078541049724257834062349213203448270138072346008755020710184957839985149083524103998901754710841140784631287698282150119863339233479786912429836901814039069176058816132087124803553012761303673369869503164042538107370006315054392792786643210820271216236045060788415579524035668452949156455781190232955508612792759282643693228454952726056120017338960247825447713910646089258786318560081344885947094483680363022020053886823077563188545947503122180679633147330953508755356591864207430994438860236135765202167957480314516253046871920556411943390775140296200102591530039824471085630999730287620796960089979538615605087284195067184270732333941245271770464082170170256834349251579139012757163648756641972884181027865103475398727308979921226082913813288284867909779697483080748355334675398082908372393805026149194749829546501767033662154835541891180192633343807723526290168587625557115787242037277803805261851228734623597146522132689192966109445898520480216348470861173173291294208793384567190382307075288754157172096036337718418077302495845990356140882835834641762226560357587613139122205879672747725903218004763124527969840625169445287074974902985527333702250136200187992004639506969857690788775073179956337270963839360637504496526993126356781710223502565681268177521559933543007230856788696153696337840808244804725739818743100378684078282522663683593710958376815707598766024198719942176982413906239319161196137438858755593997701689855754918963930559265175534793691391475890567337449248683875083617037361873947340007092413449102762364803723306011054884605364156472005385741447555850632789847620203044335038684784518422471339491261519436183893186356221332643671924824018715846831932287114094606806865617651130279435565882387048577331144074532163147563146143522304481602035770980361437509251732502044262273697446254769349233335450512320338254971426416330993592228204800901247073427484037346897292293382310492321647867014964059973684944731943896669844647905280449529015639578887566377562231357033459918145783067041685899168630962085088530653964792339604650635432441539137362676041953349349633605684581195214022068782668332088825185154595660753991739769631107873691714659725493103317171828772242168154737305982798980083246516613599091760544026274913599131137324214460307988897255789738565758826334801668677721462622821638485639513786401409469417060945849055292217265563142437791617572298943583794332784636596649346055407299342751730033653957158755345023214676381645014065676054125691823277603402434348629614208020788966304257176028618592205368950586225335266184230194471334348823331416101731527751996357985192991069226502511140414352719265936380871127291226857877763573408338579290211544000507375799452916273650324690772297354047744579139153297420429470991203395409183718843169118173302380946906350999042478786550182409831831760920745265351208186930140730360327943235816648374346462836923750616518162945636282393507628660846052506734196220177524179063045368347125925065665420257712185077951998662239633165198416156027330324410217337425118975842137763570195793503495616411489598293062700867396673576016354862102066688625874882125387045049284894176489130471095095226981001849560916277333500499066502232567523221033551660106838279649161801814282189846543618212717403271576534972878964763148160694294216174144000141843171137932334083161637599035045994791233832003215078204665862920086591671720348397102602248141593779552061500865042950746459891358819506243525218085744819538119566383495727326138146502776605274919818501757658633953915668676812836701335752933075876878706111020317713625484005166845086510667395240167637768619747627419529354774476427273731605727846641047937472825298355296048188568127876377872958761382884968836569704812690158095384116577731260598733156196819155759404599652728003423281463182858151948498983016749101510074803525048487107243740364259234844342376184065539594595733177904584156078835528285524967669224020598978809941020719926347920530566048251466938083469295718699868632290319453347899761054345863027043830980689178955139176891178207707007501364645378394082695580148150921667665734249048815419371494004804163123977504533690847907418021066055826267292231905924527180286724241753505990804238628102617225977261633223065737484826918760019234158615464697913726329923672550731884064550642991229954649869126753870562736706231491593987178925633852605156577889539957424486987499465777864546436382857357208242187551976084666373577043738734713393968979801749439506969915510971829258052905459032077709388937412727727877935904761207611114331218376993179592236058026677526436022670807526865068503085185734921353233055153691374152726964835126206230800619270633969086747299683887452749547680990958773822885896379449363700734311846162686187387932810083992553640833460878068861037820700279284941133705120511703702012340057834316956706103957823210414664162392236273528712787918155013703570983851638329126326004074077262849324059323032104401556129159222092049385916859735665630678737678827271823374889188663656812440944467796068888310512868718878246174852390444471705462736127772781667888562240172312072554172412832782167711293996250151732364802892437598073460587672660904340909351119255245766454837844714698963024891085330802556526675909807822524357152952805128639865188406594051040732509500339327142333552548857622557466693820352329065322025498818542070068783729857541301102915836075642080497732564974566121505837554558439076110355187760402229058116939046585660917959283676646311875196423920502968569974424598211738759852255312165599034170904583173682650871164045491731317484121123807076825688984786920993677207162238078202407252474428055877930599060839309394571423867948724325143141014097764642868006087092150853750087498501553249083475675521655608096274819238343873707283498219587227243336698815247889248509108782520244971976946965455605048341507882619233293493175881582060437224888206569406109480777709934725816162160172403214126143713454326114453018623998781774350158857310938474760305351570657648324707864490572956461542590769319603133040113352461696916802229646922208034721845568972236302380970183189692212190289809220455783608198910361064755549825121983255027552016264175603315520575501669665873540504045969359500381316968081102544677217389164859253963062639092725263935917503239784232960157265116753878247233202940054209003840737496522563912158646157720754950582791016433962636938335830612503622566947528392470643737725206464313238351555762554562874902916520358285016204052366301175349227614526376046770367774615741420339833065619707961134309708622397232551356267249247910159902825778501179153865942756556206568428830184548058056270376124835842399138143664502108585404802048598540974815866932460314804623333580546114842200063339663634984965914555833286012102355867385220292870745994514646415189122840562833337210994525677889202929171627381756202304216267619728484418903637955665989130951015481004218884077806736401972790793809092764494798615709725710003920180544128515017466617572467499892790046262442413740122081055917326713068949924102741776170986382853386263610623703711941979917404240843058962078335559227669562147548235314403732722883205659983825333929143466614449215224801878245868315903901362618180042072509758073018280024934234240393198613895361840956883774990357473574466318272084595132401506933343072836031069970736267939748914932684279531569788735839891580529305773001171867518451262836360747679283258635599724508050347989774073195978019313185709904117064260404132566164041535259842957986812894928873594586970590206913237559386163565362465718106609228577667130413047140831166870028094220134315224088264561158869146858765393750922069510242442806279510222098469408738145931102583666039380967172408873444641644315838779132725151897476800412193117647448715359386150524234996197625065712335141600059929835031851348041439010179561060874710011833540883139980986216348894695047146932630880759195766383994914268774191882759612800108558250483294015200552792080695083678734861104772794854012280559037782917376061501929697759450366568376924982205196677577370150859855984359680066813644333818033453393334507818979602910199831042853015295968013732335480786022028275122260998603172399484852296815547346228829986119728669424007690947690854994957325174876786836032316686780199681690366438916774972220343440616081817376362914476642654474497533561713052821608424077791825149569213917185634485109559220534006843476041878309594984452292169723731294499017258134658780860281362167984441681987029938647444488139731210036920221983366412705768215165592187952085486754151260930486918519486523122762735081117866104818420006346840828551824285444466404864109813664441750838652872102427342921128368982748298599989671428762367264386496528953276108185107764899215605958643757464806208338043368708353833262879157580603237562027174737440700377246319315419484114322704408813407860200300629026163833065144433710948326834715496781284103332873435218550216951105740386137032451867160596110571393572718969631285207119217715039549505199841929201400255498853789899167576892288048524904001444222826030204535068116632509375177052010165416578112149465115798877196824966220485389975836021992225109906446838413141485417933613973193860778609154481636442701815475677377359887816743876798613561309601712082118293603485280927788658856371813086054883046144780787491893158798832340180611415256836433895457049879051680931600428904802904016971339516702605291788894095969011553867514317330261945670134664706203803653496598909544587774035587868037661860889037552135203022571937317698012519927851071214825170082255516530597650960656902039475629971448875525944040201543181796419358256829598127501575532558350578217023467758629786654547680017860073376118987928622634649844756214849130653019498088096007463063625500911517530686282013775930341437014892151945326229568921215575509280647032904812156919163914419687508016496346252306382308139074686339131285850560549622304966259533533594669596245911674047302364118023854947236525262477634690941144170495505544413590895664229788143197236400169708551718386976640299066746605064601278923805760793162863652737499000393199656517118324960698946931148684204797148646287353372880339351903042302512123786826273186525885908412971207896326287083605911979563410607261380106334129026076794676996394980461508469594391739704989186743967231267810779707107750218209356292200199719324301381213754616508749449264968949811613243270793329559309417511248017204106199046049517206074923624048534700948549476738554891956086217849428897927400179631888705815427478226474386744429526314956921552443237151619947193266606069703254762156791564496416746754975802504019444019496593442126480960531247048077146892328182341574555547895462790427259111458057763077154823301028759496227983319315748803618822506248015396855703590690802971810162397202641077390404735002539016396144926721313021816006569427023728653630604425345068703963088380865192651731860554228307479639285271900121020231995827151842249321930565789734401108062599645909576678265813103476539451727115634846397408881152019028258930253158431168907525872563586488876052802449894857433388119994336532218232672723804088980495876260780059975678944326493059506298069608135928405631005937331491803957399584124869445354822145225890880321182269729854746173184871524284183789558058041214996763692148906630182905013342107589840406411670138393257816926081431749048831005626345845379660075160310383476666252113863409366315411066894746261541748868242824680550133982546750728296095121408268627238806669521525216074056698045364998923394573536669680107470473125608546661012917297986650014276153185172798488056513411425523742341190403165351835757224603989074370582219921792900143541678499911622740542917581333417703601846495025987791320458807304352609877358070204116331365402965366409258678140567125011271943205909926030592581015390937329460373809370438993202554408420107946518050258423220562931730161574759795085645936256495396146598006233808750448161913965806510002725747896267806639600084206211261755169990784659307780411228786080174746643735200888565468957666538234482939346131293256430706869898527617401061245880964577957651473090359197987232336826444673905892722061688838908009504267293482514393753437152840702413562251312085768349308549107102444806176240595604960653751187667051439791950538336287533109079005300666498236215256596337537797448378164815506369405928521235632799433834330128386371934983763328915664218645015106185764185909785114843574318971891839217792473216712461744205937191462725717632760664966928661385725955038056887948709550176492966104868348206733417533246354161271152275460011616777949123734535355191212102375817695009537154609308726164277533177109331964171291180488190903328269573828073152787287485517773831712732125801015944820990049085055111431505392232916668396337508106616491081729253639790590130423195349091852777074271516084717818086958204454430364050972869614255672382773257915058678028935600219825262682424066182701134758963275596510907833127453023562355124912951634619383969315189700341657489633376308662298151573159802156290970174561937588282285612091416419141321497034020201893622708137143159103697171485107396134018393549013283299806961889733698704513491586333931606506909416961596053273809736218531602262562506393670812934105335071089786694936660504592249992845701478597621101216579184816311405330240271773072899548656806567791704378746040042958414233104953907216939202360764662736509329106466573996330143286554005971061696505525920417007547289932704126338371645838226300772237149439535375209114946189002238258259546941755931835005232085459337306923124174590800198041235984580202375294314076911924444559487948262515983007777804881492720410241087331474506475192128819054566704519188856973303330481970559705017409616102949117640566172487483817612826900569531925753478112777821126496637044979904660222492614507146654326097232604461977039646579242781815713847144676353886448691738536617237976593902858586362938139474719546114940603079233881968286439327770043739921197654760085109725372247852372302074211111759671924914239673316418729358402375719705635318578843468933715014547229286324621723632403976945081608982270324362524822975160278917735965864947442411667179953774608788045187800342996388012633873992287409767201408195904140617307852924575695290132759330655682198922118239968748272499122088960048894504628181004681649137672642609417310101762398984716209134268080241940060483165957635575062200119677514942852314940084730686248738550825490657576674247243407746490178939949510719704714910204900548490736246265186966028986672752741374888372017610282929418355955257099649344628893228443094242270335751526922474803977059575933688328146016791910613808976344017195268617361040488314777750602806928371831458530010217282210133699519580811801336739241221238563962004849018648690407359605082613675586404296034531854720308665623896179744878161150350422141191539470000395487317980380778350798389468507474452210052222811430405741773600478249530823561929110349087843289329927547473480489502047035140450103705600110183602888250298522802831881878397142461949485768785608654969458920595044484102337564542135606892728871259121349164378618880079618293444543459438134620118481433079626532258598645231481917869319790230855085429332541120371185259219617987380838145313413122811958247066310599247310965766887054115788635373517170308019919804010365081935913889916489917439164526543247086052646354678623807226192304359756624789181142129664797101941999083119733898220393843316327996723259348809304785513484790677500011016732151059167258000511138754474264464114186593830301254597516505449072830110382667003906289802003845592308315557565598060040891598449012436135407930714969088788240960238299514433776533151139785050975899462476036141753298274700136316576575849553760083303854131390789752609173501450891811686009692432766403694887468257508377116269693626565121355796696666458672756725365155727523678224653186419380657504533816676986218886644672988850571787451572081158905481288598049227554077215897817625931428399042386308277946129488874648734568443955743283471009852920902194680114237870129350632512458209558620746832863647117374916041651342228285748290398533812365588300755158002870233934160450416473949787497795299757477621930556419033855809913935947656189541210057341659431243472767540898341295738183886239443846153483829887701623109950139086654526595947097174824087391686147038127251491688838603456713486982842232520129945243817094757485125210784823374786846437357124035816031760821784561985543590604682409534368426884685293524469235672855559023067279366692689461629560727475241439556381469589422788880149068372904896466249682470850308440122952273762852267312957218539692239207667810709286926668481749798185362745342774922552255572408073886433020657551207781789073435181449764220754557260144946445895959570949086827804504507051441918933726642417119800320396155831030214037159587365988164467602906651407854938209299224358383467088194384154228978411748372831255949234363559266382828258088870344823169314974778635312884148054877663040883272070477687160308054473170994105980785319874796360030305805443630052390525761664770137535612931989924422928921320806399246726831058119614835904664953904612742653715156828166483463748436826225507750394930725362669365114179873348387732269962705228930378231671334794344427224851020359919622656474221551595983109883234451238155376751151560188987578144632014235740006968699577717956542626776439680106177137545246831761884378067014638038919722173518781498926813353468938043891787073712534890697796102657044747479557895886947795280231943054095248051065820535216002150505443305344345829700019280655010395605987916457857253136508099068590754567364463860409781690335961752909398437041773471594853434532768002408941199470023217366829825919942259563488466739609682647592942323786545183883491019988423427839616100634722890326703739481953942914937359825798854394279751016708636992043720471967184279150500022857140670607687180656290935799492067510788225433083474468076312760838195804405691337632096621066446211005441005980594851614365946550004418694553836464876748733853094670546011518952641606330312489006767422322316792670648716547186065578924575673681968266079599279265724791004619460013172196020942500060591831611797674327474837090008126726089885312569416268898824819750490268401262434248544894357541593597673494709284348432481321560402842021890814253426902325372277422142776712501370181746306733604420921269933564505340003804743643573397742583658782297714452225361636556479880619033793620178106011564920364921517629658060540736387762862681289898447643388602292520081992172905314026423572137553910391017101957691511135664511563518011714225469789552353805580551041939397721770708329972945217830737826827092415658343011199474943387907671721269606807942387778098914491274602162963373464859300828620625998740339543109384032125341073907785231399885135228132544507465658572306561654817708691264661298959332550449871811095504054367656425142131042208639595220722578843432993103902212161866802772885997504068833482808180889014501977947450194809360940149407195300818504371237191139753973218717213859858168207776265836404794576808043593236758638474538110546741746037712454627785277548367078873589019886247468640379836447283854240037170527322937182417888564659047512905566280756422452613842108128442922761258830331996053489280681552098131748473243748104661722778704518492823892254788835812539896360565609380640425846904865122515033889908492585252998726543307771306570612093100806309676462670606317425423357630803398350246057397447061762734991009260059038147678573557143184233735169719605985698929684778869982031429554165563838226667318816183749127331436404323844188329470103632523538484237302976873356933904524903965941691110527470843877778539648673514386211219957138488702400027923203247021791746757471344266245379936561056360606442274899690158108792635120223047861482888664006932282377543409176289495733076055069125228639821082754048443191025326037854441520087757115018308542182191016684358024237377656485810704346861074192256249614190215091930825265949955224851794882922596332536412608622908817015851893847085988160641425289585988089773715118483741495620761077733044065047615718274362341112404889875408637847780007406070731007890626021827874824285754208069704714739235529913416676057530443919416122288536790829339007417908648787419262139851303448030882031886982896187513805012542459960535290427355398230276586548194213275451247581746992030654362668129288621045043527198824469040985042338089962631899670945098081286486953170223807276670100614764105962433035995525301457482619477538953039009814364640290885047118900871328982179691426320508115543559725343863665174916164284755818226229572131087333106521222048995107079034707936896236036126396515672104601528308270459640433254747195042768460261340985761045652199670632410077000684006645755813511706108514803434797092325457983111831503628133781478429907077116207589599529797680381892070856840048639299273031335842459660899149093322351602256015644343723235150976728048528852385216682195098804434210445376934417701690927333903168200337210890251563680101891515321788739341030487762234688235484897704198597039448804955855550765255270297185807140632506438645487378655874806826233193258983361371766189926655371932882912271109437205322123035495489055741771388416626698998650677843068790929409552366273294711660330051343008935302984052616920523982732968896161954892316536788351828084970847999624176778938557076668478578143753724543493386051089821985404062293956130213755223946342141547312266831344909109930467887728797240424457933180377638258106622340554007796596022176886155685778359821673013895004374750627585750153924173261649624602181926626073040506844541146279925499350308700755673550234792243170987710863200731339482739626500841952897135741128736668154118790739078661158229116641271261370478085872324414878846219640903118587630823643691017031707737471701998897509707829559891436005418245969351254264248742211105515523329179513360734310912163061315974546688236558193481731813300474286918854433336957690924283001040502875775597272769284485837802512156953713753529719405039867356248148838648028610597582712021494961020530993593987531519369474589489787379980173514309951313467322291475520798344009800531826513784574747102586558338448698894302936794809013227793572488653108638709001085426638276525522648481318667363728689673051594139819663609892021445331205162712013675353079700434182463780647635974315706606315876465113488100889850786290874738663576934508722728080861764605387308087211702790419330133884645548724054945610755161353472402487340812669634106584907865685793173004467085835136026008102523798632290978532146616315647395453540437759934077603600587988247277077099166385568411828479784350158306553195458555823405683694942055136542366787346754689747462711687886719362352086882027499363931819636076981912502415950097873316877380280516659109325927378021054941721936160553637041827842326632689232318638836147833820519592477032917303942548878624465326105935277780618657347735227876238202821392039811728749373719606134964702937854328222037690068656486960014682307503195088257480789902870626202237848472063479419927240000244306175503209028054215304544526802324628288870129743935335310003495657870737267788447364587648827836943302918902320720226040883160694280366398019265848852596125666121050708784224426394522948803102690248406920338277106733215761445003011015057272694112382657800975591134215340843143416514829711561780979591193359775844542558127936303300159031040562333538279620005200666252190658051710778215140294135113798896758662443969254616644960946770126760828678856979440043135446925828692833870795351600393767598776297360757300435343105023593788567037135951947911247868983569684519907520734870402533241222364717398658883948193096957997887381637782668167532489041083636399120950589448194849463571606093902909495178270305947963735355974209969796636046981433125427952204661751032252928802133742137595828691859779931720531577085089327678315221524942372052951414204631125339818373524168533994051968333728171807088363474420720027758936630681961796602812501315448484202563232952623920464681965249549246877124043065260123128584378786590847443721521951844799439953566097177365815907616625706526952389286432094039752590014719173665739236671714814783284346799977352622991220378531450357861670334841306544563790880821005676094101762000414794425998754753011310215431399324118749751470183089642472161258058069005700509005188282887210776179701269903373545126668254907415574338974508535199662240962335816801981473319487643766326776370661773474099613315927414544060135544874137470157625149307932635310985339099189131990372038598810708866043512021128585786292326020801103948426850241044613723731787324842797871985017118576294809923851139856055858869026666531602326905122148300788381623129933884606958885436351625685169443015603535419802246317540493228192092876367129410765393742428353988935136777011189374964526982374963728062497389220231909367000474646992299541014064506325263929878746414458738282882333538782677976991751069927110831438510490271273273300100703686630627053460788995755175343196798501601834911360633966853977651905403227060529951480239233573344868362007620143664519876400411752281285234075891308201769278270382306738791305720584160783676235343502081879363793261664778016829000997273936575980802173792900760324512159072124083921289363990719526253795816722860583336384068174149017773010585720310332692826994039029924427840423968487733756168435964531709092032704461472994810515144017398812193904359236510394166161407815282202808382603352411099148341374251102054553654780571281862407963577019945520339035220849039018085336640681696739049140679501454848551904001656575435575971121674586220336442897468681185952570202052067981501627999785762690145143225904764917952841140203964168135312003536336480615153591446127497604885375851748140358301530243400897942116611452098433538562083681234786372104926105728989824517526014120803021919739708460016444696605260895242087739047661099019676318737910273795546642793105448977527208488519215920629949787499499859956261219728044309524141989601010542642833999634355738097233958654050693774817102393767051055495120551202683137152486805410748954608988827288325119737713863958304222608049601131732297734141090665615526674986983986479213859007826816978810414807322475916362347319277495559606923832957539051847283872194986618151281958085764302899236887673926119333340488808967163239410433888359663469249572125773542615870482961726448611702198552768186644778171313614355127695516750988590443483542702916548315937493914951132826349247094726122152704500845712424757039614131012387424359728740564352422462737354108268206602034992081351213051470918400556646204567851666377106783152270825099664792107947707803336754956061609216984823271798652075788443795504188411135957987864732573274346087688961784694016746543173859739202223027828655695629615495866605666157112794050869448456455435202428404184291119576631236109030650076378345801218663440841667868260439154493335008976885659425636307705488976774160662212218480898012900778551968804034912879590752005657398924068609470240769921835576842241873997555292533576226074243575129684916753172707917410006192968116085012438727320667265815545503228207753366082250376853876391008719563496245462595392554883451432385389053016197287477504593301958914302881954037972854681893410587417873330412004193995764248379446764293711065022275300429083161709486406633160138900999694531536604824849595495948419220275063927554132160509976337373180358235444122227344115156984374754828734861139352511665575759750076219698791262969371944770545106936546217282643090443785872168957192526166616732390551850741381773824227002822059970767789649371287429589695140557539415635791034226702399584377009475216616182632659356803584473689220640601324996532875229850356150795977282609023427166964847589884962846533362742047880790695951605346195264690691708717304688172357773139713864251014383970582201023347274967037191861833859907634583233716073714800756964237810819604788604724845764614850773371961265627418727291633969731703251604025660436899646528124998196519280655774567161328897825334942030400225634690248746320608645360832811902719296846203610913379665295980024796171735287716988150688645049056849130736127849121159174301130235305562907290842500315289631566985792608667173104782430467304782094455449023694638348174672192234419001833644300569794578574103625239848952909803544126479998843040488563939845968546121699658917877179399539219077848614502688814569881953249337742046740828905996080700302098278052395749073112680205425417560269570992861679322529735836658418621504272636613154244596117224562793428631081632880901540061234584046674547982833078241370870738549627981940402915516101248758152779469082025651508085474035414763264952321693868125203139842576341315451796938145738697497629165720925705089436904517245486199229153848228937049998834318343737924470101133953806135085770844073368589029145178275493786101761857661220239321364830930344025535553146909457388515276465380758533365041669083714798794248772185062115154715881781272417188052596947632022158507037506753625307732936590139643930964120913606451540669851761019506080110177348037453797293778995790439432930404556386669513185391413373050284702024458546585925589718656906599797339238411029913758108308902961902893883919550125441902135256258052874647048087445660880139096637542792006262377317457006307928742141435452450829356959281915537539090744124130022522266269754644793091274852719270519611970785056412606851512982663666911061040506481116252722028866060704404279842798641468025796566754743819295181167124828959185936407633595470662711751306278992855586942381775948785814941788836556579602192556002232719146036328280113198901137417263165453369690262730314723989633066031946237021457674263404492957611454333785797913121684796001913845668905897613561239661704870433844758609288319001642287726751941659551948010688739101910969151664953686059355972884953798066530559512163422977421836140982284345382044775440744742375909145465448776175088360417424000626539858153443178195436117179933171658368928354555755829717734821535212018013928481012242677956672487714180933073895958500094026437881136562806374676014428539937949350921233997115653122497241604848913187744524815793380361420955634215197567888874103777160588560883445225796131545665454548473443675363818601789841662841328261577874763963539226880583533865927636313882102206698199182183900433636838459136160055229964632682026299381957769909670543931110329615124293350815086149126492888364215414379557352750976235432647411271301034746247263102086150981600756888715737742368608539419825466011504533633456577039342867751660777983639835146266501747523677594883653187790576880124251749608179207594542035349075396675064319846503376130082034679190104009144487005414563433018162813367708158318482288834139284410075252576993916402779068665817245856934131483980060178332955154268267982535695411166027849999318773211825713746256008000175991186536817013594181873652787334763746372481650493545854652555698511777546749842991472894258444465314000521457097673803192943198269814537324765296778151334381440131312337952598896815730173124909265888009184965434499817665341530460407976071011473659648405274499907199208696309119576093121640807732948388824106113242415683793681597197999322817827733700390727996405138317376015748390749653549268772049244870174579593434998014321231746796760507051924023532434482952425349651275003191525114659839382943339792203062877475335226220360419430706786563755253255899928172660665064186516624931054800151237703419309455697857160546679833198109640654944292668187023438798876184089818721327295621525117782098908529381473241895959303426814078055265179764881038508519085318872898992323661523809226412794476827369177736159717184603166317735145794388522882520497855411906731278571349658943796656110993759926360607724328746793882109417286820219208754053225797255148391203215010475777762542194745043296328770512545703434356093417335198059482122578391092629976022970540456994254874294769169900274572935185054292507426297807273380458404705439587483360582273131650643103483125647052878020050857896431972975414701043490402567773484085953619232000648167306856698642958993465612825392719418802398182267379113656687026473048439955506411157305312292756533879764110574718520795271110452944861763909615257917974178708849302484848823449023381902448801004432232407317972107188811100492903254364893267853571090636602049144504736334631075105995501172349842940019799757966918287482758652330464686363578378588521936853198962263214718817817818710194452257685386474524735384029670776280833972730347468468022578271644754906201020865729808477482151295791565960594517264539412048619893447952037635662428037514053103799047389127688539843890978188921019927814475845975992733625855630535417129490772781005731206329451853973742521502179426534549610171349958331940950216551507152100760699696987619162529194651165737860379795887436806865902029770802918027627655941771327852728459252142492612614700238460263763854200798639466769258781777130382280700045985336074869683659689449581451046110715627368282624707587181939358614577699462508895467858659764161514858360135414485389076731710218109050181172653332427761372437112885784161028494768216421993079317660252851667459137455993802831770028125675048796650881226176129719911497331203989687461212263251905543095442199370330351268112900110120850153632104233789463161137455673080045656204209598387012644329047978025174215857279956943540015941070064294144592997168037696223249889712987850974810598909592598252554992811726840547126363533980605315695984933941694938372005163397905734300913225643700966287355160919770476855391903939500233100170443749728664775360478914603652100123253074688890269506804242615029208082770587911825353285291959621084722707194438781866956068429859173518246656192590272772254080060989337578957858067019367363602538130510217700404627429855286296391172621239309594194878497099038364253065352736903711129023397555723937048889281335063434264450102912065030841179637736355552223761633409665879549140535800882836710637925799662929827227063605466455574793948487419317668936319625138736865614423572746540119257336911964512446217841537843355814520031520095748981989045531984986756232232165431346098289593405167301956317087970457468395517641320967121099027402862888965206701677741358503452950680760205273069160615595388076430544556578771128976164414315303389241003511000731852037156272928615962272798294244253806246433216027887240859672874856296328797503320541296928788622767317201715949301133612449328381968792368270956753202317119392024336033309223275338947892839647420111580538357644042144715412219469940546511688065376211306481046760933219944615411795561938431742868825421026783164653080991016576948377024262035162856558503386376775751805427694244332827932631986827032090411758086212680713698716995221351887432442602863477866488701280410286947665919612441273714953080514470065066878109181688158947972523690018013550699793959587026618478021684352197101103879434333500172036750456855420824040095522868211469718073268502534529262907633030441788147614762782325169997836863978236251926339556064588570764653518028362102185319463118823367261029254784416361025518024781981334962002771118311098995020389579048536846545371344992768684783997697845099403763323890430084955427459337862479405423704434201617747316489780714676609616490103701101918558958002435260692886720942148967188211547557215709568759276237441473409006100290230630121678278853453418437604160211740630819368946122587624586826731353342141503855827863318259363686786815540918229360046176251240359815876544924401897915987712722123146548407337711713802050618547309600619375820186934115318117421473305681456273070714795960700927960039315578067331165633357550345483611961094138253553377244618732718222711180633832003457193792579390341656516426773486450541116759947422783474653537846195455048782374671172553376468971790626106085688577165404309088940368923637585569481170577127128865699170786424040660234258157831174631487812419436586730009354525577011687276358521274546363092253076598203325518211026924048881283328274123537503207421003962746623598981967415810254252594543150034925916313449008724536306042213684026884238742125210773465482806337946212192236742940034066583043844364861619740859626475078716308251878648449890959788621803840575145613312117666205581874243873817882386528305619577731741014597204422362442800595240270279347069789656227268718924826391131267382089628534461822180737149411606799419676893960007569560932013221949776278353378851291872628991103381811604767600964643554217832062958626337454183336573344559231398714115235045939158601265834939174404467817156659559592023753102690654822823834839101528762399120688952639396186861365033533205485949831156210670320574647719989912529996332434744949819238685753198825274309240919542984534805189787913920704840251754896254649126582744735956624920484446049818304452779601709304608119867554291147346270589378321864480191597644750769069523115220919813133094819788636148615069816321847948955365653005269222985036658413049239239625102801902333860041923050512667783409618950002637759016452328894341431434660484790546476657723289931706629857167579289634306011199892739147308249061168838448066674872702364005629417149354512172794294325094830085219407570195210834579795675523204736383453662148049456809048627755826026987924335454968060084682621970158096933262455972047907550088398300754897816834882733330374915349248486593051263627559693822790905845606574843915051890135411886070769967807239376550512929135153000524661957181987178980943946925325832882593403063731087793673851175995701641364449707209368152917012074204817637860440790202066869507245959647062466919715796666692416410420849565491521273916956558729047569311048127328828447076080032498609281636893753312579313752895585458428614455198279054697616365720817067542664565224938792202048086559091103806246923402932306752357231783093637620668196331184451042023958769920427359446346527785202679095707811197323536030595111210267010627230613110883881043110459163997187833307688538181689296889878404267258799560204268324313868644377711973893240960772116423849621789908254366317551976955308794983712131781154994931955019943435659541332048793141462603834466047008107053736887636292832175601379502373962543634865240756613034666551050492064851957223291342999416412893517180800912685162267615883400565587643090726077742207212781653979412242079720915373075726293772380083336604458311351473561655025332477708158622884664934662229930251945687938464976603128560760627742241056349052906316966272557677256722942016766428815899928392352667070329304576485127080203172686811434916687974637363470474307528117612097825180598402905558921085728828111686038296130635887174312433677584847791635135133179715882286126708553347003711488449119323156869013830956201271783942011475445586486694109471457228468005609430724822849142353046178678347706725466182021977667318596291059274713690611803715116780865038741110215100753381443029663868154046884099339638968551967398402764371903876125774368192410395573915201761401735138274330327836335309563273972827011599672116756381138626711223956153666938703182256220312014792158440963771613199420985843262896563990183736603459955807160703548254210268674212148195008867902632537691438791868503317749391292972237670432578240371428781892174934382439843591869873175501976986014873581944730213101297638264397644907958172005192748131196296298757435227696231301552335016458817357071204873939982971118722313849797603698974752605494487796076721241547877866064410759776343852226846472876033408203876313141611739889436618845137959225696531305260061511709818914642686037466491359749458551568460491395779193824296122188362668963998995120333067614848743708241077165459189300433880267485672744037268462281704439776517720521485356898808790128588948239004069385300665671090781829372086860503805667542449171274093018820621160001279387933436137278629503392062837103787996290367908064003082460489866995455328905901072187676484850991194985545197070677980953177612806372025068515986255783249930082788835360221366747865856771546978153430478912658243731478130739402553091164040076431814923024640268779139291120335774433987891770449735845902087200408657800651682820162516158010074349684894306874294135651321751963294049725017243114882210537386796622173937353235378503325761363610307538362414490225276999714562073472487901117963331353003385670298593071480944229197873735087832493923760340527972363271450235296154299552924768659998603785527175737131086837027478081623644720037876345707243488463907870773503485687570014422977187004937626044313318382850536127023653688734182772034092221117328114002161255504621116638204646620235766379056466545905157690765704178937292162134327170850858275588239993719939525670048437272144768214310379780774438753601458459364532690939183512106825340445033807300818356392254706979525046959995520207220211908203141201623563559659889057294353738297233432372622046015879253647125975812065400634219067894162572913533164264554655353872521983968254357015408991594578312429577482914366613691498712564860857339283092785721944716260759629729178960243849089419390929089437676330366647232087992295956047768172250879318654580447415590401467656882795848183285202958101562656280359804204361847650390348062228437547608902241679187661924986709466910506522745328624793697008842849893781733335459741095568415259512480260336804134692507152193347163167403303642444089573202896176381603655297894144524613874391489222057018379229852707776506541479489787987137614710763263912189727068729679713856981317882436469287830427317833914004694206105855698130008824089709046529750345375586958702413130330811641918084045627123005023347393046501231883147628895795996228515369900809110235371151004814146806342633911370096077635571635227671063650208467091277934661070607589699141900398152346973448303966006268470861568908993403224731705628981125886605871893140028618098463990159954185922673081135005958204898825603595398927038663810008460568892407702509333303642571939465714666340700145887369706872328883346785429247691417614886229297384656019070993492342472015417158157840020671835786042520209371252189588991736350680606521609272925948240528473874388000446453355917512903224341300335994639376379518368679104542072920321698810002756935388725572807863776981620452798433048724769065755870169367419433834951462387677887954570541754791682456096160365529709999179147750486439346560893514325567392335698377074321196625112401106035124746076361753600452178171181643816582548684808620297582992525539191269390240282580430815472735651227097536195631781359918848426410949530404183442612922221696209945101672737849685306506442558847558405454969699960138961717975343852756839135390674917515370844817424582921947789398346539487360572697973035453208453424250219541524798991946015334575856607989193850967029134762071019999791341829997665816320857617758372127121184360111026223264297640792002404704274114394563266686246085857678351596559246531314544182175453569908784284360070843822824085347486003956163063573982486997770933807061639550237840610733352228835809205608937686151370484594666514605701903870480608730945245355546376232403868223522013628175450506410433421191573924427256819882948703753300980811922298705247647341012769251967089888978467513669210865493248654150631736160308106161087242821104955500422931891345087505872892677810662545638322854739798011063947440845486989659268577378558552784304568161010665395843073070754962151250619801079774749677735673273170081428590877578847973161154882971143411395715316402559968629211663699929301182715202943624156336080993056907502370140387008987586612944920007468176870836101539587076578024806504602603254056504331987059830434719744352573425367672865888570048132526600791354509042963988395930770065453095853933351894527971974819962874738531917655666603473377980081078051077487369591314788324337055431361659891628427174244063228180857765995939601769295666079959552914924780948966002502646406537004594684701648496475035349782081442557896995885235994937635104855567034789475466695844000842088617563989712499761473930308991118880384828900372004615426500341838164675888266959385989236107575194452440584087015793835126875830662009319614468708702536736871568866839675421968496376182494150026187914649947529547625407057071488192944619650714934706914431375667126011455086469317085390024554072736796012414682454673715759409105637200744261494245527239976575216369517047765545429447599486918972859203187883967701726671086456434438333857288683069405497685919326882010639480553375163589719034753960347025412020832139388791611955979261358818820162308382598884231577876229912190793238260268234338303450995954308860448624850830791485769096882142723844691545430185234154236412952710762477383971076457435674382998837790013954524090250149890969580120252472483456681993971324043599598745599760619674495887982473032156208312155081454048167253227647658402428213412588348266522630432869708559491727507374316948993465845903492691245212360015661551194244626981304618716066479133642993414680481513666992153076296755984576736650053059954996140035978248218240433351939265741368332994457575772874276351741266662356293397254592899324833273770260463757590569834178789548468233290422679472618111059239105766176500537809035360889178118800492102617660053185649319918726005041101535533053412243643028091249155976707674739024274706156157990193482799480184507254986581475488626942684432742045368670236778963607787721537123896785821803176019065458980802693192048350307115412261648886091499281258719204578142450744567579562740197125008856249947302924026044732529211760344850789960900502949908535000259356176265087975320584920811926400202320063906315826550328176085597439960208753838045802113589822567670973430142151949611347846319249158734789164456475911954203221089693323935516182993400237701929736004919241714373363219910175519561569692445206785060690002961653791373540197894894828999027728003793785629043364938460672417201973706847601702168704097860362382871239105708497490427494815765444166683528678704973725554890933879162519729633979448433804281631995774660816008682096963520040042483323944433730913229729538144162219772456954663977568963098497143910713404060018072497679658794761107402464011762339447576887178250745553028956558027160417213163708371496111189448447761625774946063838935409602448020099624813641731683620822124152026770050856895692099476709650588110205324993167304784947740576750624952274984691357688320518900898100684618564221649238364064135642551350627788830123364585036032898886017714581655917812953229269710663761751590722433406232943058265092719267003706395798287403291333168084283913292754019699129112112779815708528466116974248150858855119135242856136375315345416971068231926589288368526427884627761197631684338016652416844684470766254116529523788999276849807916120656552204450294688058621456240606809576088952359595079495093079101248938122152100325878089657075390641922189344312676139862144068831942064101782668084520603341584762172025266963467290401494677445516051452940003272128352632299088684528271626009805620832237593877948339593234670323738045637952837743166035278313001878892804566627807508146203586375398315460301570323807311604084134696256315159815285856920273143566251577813278093889281839524476682272805274127786304667463839948636827852148201259173537347392335114821998057378568123646828182936613444392060321250659967096969787486893798257996135190157996590749074082614817557597657690291807690422309511567438369614294149767048208951405912555877995127122842918448340924955228759758121308555496176773983251453228897941815375489133439962789029740696630765419442186279936176692026388672731973783236094231897510062536825253258107030211484646770041598686533108383168898236193635485642476058641561885339754986905318665311613020207833075567936709777167670503804655765232619309329363561812550254744117260090680858843321013611830044974809302610401080728126032297744163260937925712965149046006443621712487647811746912080324738221013106327219590722195442644801729706222650623058760680286366336176181987764760030471231279095906754796360867892390103199397465759309703276872084258310121886804001623037771570898400021919626174141930741669576766948427791795012250470739702665972515818962718110575870051622085417601875256606738706411623847179897043804937863449137358577533025283094206838452153521081815623759761931845878772044173975966401482777697047679278257370010338612555002683712599541058823476399131230335890713570780115003577818339441693721993879127627353855579625724967489335453504817987854314511868732457736207662912447865595880485517768143535929567113712522321399883907084677386728285243568295335100696520943174184165935561233820805628852055550487209440121069207852054232433314768647666234528307292988410681215999832114869789503155744551258492358072454970345949822337693335741112882420718233714328472602464966766557349886031314969702410308467320632328766182004020872293850816965101981682816188228121004616934552029170033178208874760874844012861504522471723646229193727275406172722650877944618900394555220082852680676360214216052483790423050000855053258773746305043325864836158955925473605956833318240185503549469608190347875789077385894150734802866865591703856770127343742777616941464883802461263216119037840203587147402272441524997974358677398825373616251350893394444641551597090113081383894426120099514489288857422104664561935273679568329647526493435174799880532394339398663904564191595707325654448322415421376631278780998221872816949738723846964818256220463418990890740278429082874751804662424954728837757329104704437590148905420286411794116255133615103549842149988530894898433178075839100737007637169648627966828538496409298480360691867975445330659252816184322489693659279204874464221959991945248410006640864701337280153226948300257361214058816245628199186245048594164770771996825571242200833905880726995742090955812288314405328329365129291425394968708236371196261524965089707823648122659810808130843632529007159985509787387787314987257069466404516732028476882986028244319161531366970718446614623480589680566185918885399940599898632199141467759152236980817289997940275829081119297100263202758542673504424233281583147014598285072165644525588698144281058347287767842993006112203623608451461568005447870686463512704594421576272551043510955766818084614605285798641633678569725841108171917680556096198789975223088787410053912405341369646381254013894403498957754733018804989709781192383303709433940411472613195400917574632322824319798001670039009209856188788896424444028322502534156621615003202726549504246370789951561723582630464729165807809515024717761745934944390979776321785145611125598748173350566275670942364038798517701047756467714548312132506871663935984790794786477782676167372215627242351046883149508935078699249006740045016083256897409051985500488799727108179617900352953021282986205014487934444084519313642980576178821928343439681389003433248744106212785451771083596968118120045055719032465004246396538733397772810011333965467282062990364279486434500613520742482662261639701182218151259443009330217842831073193894229119075059270080689638830050630829426597476802399968539190604706984302749979522565628503002590745062165118701109369231900433236196189068808180109588721407562108005524869132784484970397208860936443010167183939271893667262076217068536150987896663641351954293129335552574860494737026301772406182066000434212777108537332256080120654341131806303683352815740099131900968226803826811520301300949799721007529548944685491394047475397379369163448732938103271724541621349389904380225748591803945405607911400113446230594983556283788756543657210866316580858309849147761939880869668607414718444463824896031729328390158520729133417613635488134253019239577773972846284533338286338774826425735669776473440087747966018272509421887303205450202284794811832319864402439727779036124245980636142627693231582838847845681557633753688308023858709928533571787481959544954958300519057698548964988083131815917660282251113635560282465927707595412024017714656544144164034998955141987797070223346545914845565249630172537870404564683276987356414540161953812191064247345156018750449173414577344013318464516962474067784563405055775421481746845710636598814730639463567951074175811425542402665039127548120030753716477556322434971593510280367550839727401287680272298260622371290654535235760857195707869319729478062987954131092060414517933457078389389243323483523900392696371237070426473338146053330646859937995969711196143609271160295101513240276473941011316131133486758362554695866314620669759438264596908733165586118825319599785924518057691702639387692770548012945436135440390100708407308556656491211157000526507206540614862971533887048590822475589025408431493042048918304920080315269858303717817483282491604720535797561412017610875757443427180044356935814500036356434095622187708769662212657979534461714758671262928405510153318939088305587512228760952666151162328670207664800532829742711195257303721678209774363078318210912967573879789864088850872845300731979081690721038394039756621262043330652875790558755214969089906858952961919641359974147136951293748365869585636097537650008891192518201810728461817468641098711405160789666318735816648313693621704365898910805458319529568957276912924742909785355918797706574151540986747068793596565480780754078835517736432229980255318093420841944927660834401965928669492917577084614099512207251195042944169395632084331240677931488103434367759541461118657003070862186908390708079932729055783692806721241813970622148846226597337622883479460376988774084722920519571443890254740524421210416477532120485309554127416146151905110146520220328041599481616987295907511063821111990948705841293904145069411764331569058198926134364498358885508558501286867225350822914850240821705425449718700908004036094526019076389505361268489208846078059162591156441281065911192695051118876638692078801318431142852903465676839912064934678825015855957755800140479993852260805335420748619167810778005849173436804017410948802743773431496480621636953584327436315143555163504470331634450104299675235737930147992503843594508769422442292946545577473256927021937434833251657442593467804665048594747221009875202332498799850154192933873896620471409659854429017093196767096925695608271265031600763059617706434912839800707454627288409113019505769826773826771418613975295646262118094118005867191702607576255560310353201381343421490307238089217529477831168818916181480139275939978321456276620572101055825849206995987237695997186006423023155335012728652333211076971953816047617369545437423616828153427748875614227227984507685122951483986993729294354505042083581648558661733663777097825131484842655151546710716852972826957220280443233361947885538868363272623193568384775814532420991640569702831210736196044595890694731463693122523774481668809611788027629738776494901549798175028436599172157289401458458092795022872020694406334190832550933361955278225665830843608226299218928121106548780934933605579760227091986696749633789505621145521043916025997994905137485829975696527975542735190006213013170948872377357748669429923549003721434715946432231766510828456826531085238955619352013804902835787995739250334352702040255422476765435433670530168368069760975685753147861456921464410229798483242084901117396852024405312551126550040908634670074740694938794542836814048316351253313101564623323665446811322724531985280519174377386732903453449922163189557191662165361538197812753934864877316439032645457419449509926387003825483721195604676652040797371428824019650630129169483115775555176960563417906051132305808985809729285830384959971152153109671917788451392376747331279981271248047607307069468832707360469044319706938889382472648815645508843756064045450697224703269510944568706556312033496891988027285118190305157410542096152362527385594081200180927975490202786752345852751742972323133733461431008707716147565727148438649208230727361302035981385357334402893124872354627889272203917467424692437921432292848959935285725603725205759387917641164142064375475855741573803692747119461958868574878126954522521356615123716993133065109559601305155122292973199553910188747481210731742087152689185606676356033236249185198443539175308500390603035139296086231043197496227141748464451101782641215664574216509353059206076862480518891604928447055360006924229256039269579004904541318732821709429648245398369542363306290682212181590987692222565322520873761528535670973151850580655724219490360037271561002944637285187621089996988140255137208407812836908549534517671679350906350633306769336885439921173797158426756625151511958276243628641018295401889968268713125011027889583572199609940188759411873128429329863017233805980208392532308570021584116430523927319743309125395929129032457778842639778884263757647768296722593367807031486824558787180545638498715979915524897955272188546384429379496164576777151757691577019171079490123832686672997176434318177380251167538334843454361280378213122576973113425816385245930404090801274355338681552685527641306076996866562189939630763426071799448925910174252362301829999555519939683478468041345343137598843767305957936182128238779694508955187097785115395253454356321801166679772268958412709122182231233887893418034629119660642147791374563100070013509743289585514118532349897057801367309242616587842610565460066498799761823009433786285856559179686310590671550357478264106510988231246895671867553738847335500507778929316999675071229420411241347869391526440202150073991117596725042154414994947631281228869928269103800266476875719809397521535980464240819421965579524763670451837038068536406904588254945268312322026595671446971847234501638205129683392685894942204931200954982190830235991967618735774347350304630853168775705952137319848641571971245344088556327061513287268663278785442866790327056777572295788891750102225239633920521745733614720991235371939647358715836590521804497713934762022892217908241195092771194672463814190247523696934957500979714352374439113250678225934319185789956534094440540289526716958388968227405772828665459986422703980425548922132904506227418485713868615188971315593135046997103649548373094724558986199652305228352079338623874397489569600188484792462847376195737442346927413547753548519553613010022371950566921053835155757640987396913532228179509135973748712895068039093863474444269639217082045494572924206689336541252040036958956853982645117811449356604626901373626573043311330501919407691038534550242051167507155455328749600426795006764282118101333326643279253023319022265064951402798077563056025075166116108491065370536854073738084495298629974617612998596868713101095075864755385331942549937156835932241873876681866817182732929533321729449935027327704987363391618626429882164973404521098343131451205907194340661164650204634573226734550104847995124604768643319017319551480664472552905474041431317316781255030964159743402732139010530539550801183202566055964035836672457038605232905364826664942932486271002880400886852537029744721768237633266867340724417730729343530499586108803927982944456995300237955028150715982615167983643695398656977725907862636979745186574130677700422814753780161271030356561236245143129218505489899422971915996936091138762496963767786964373648838609136344419412433240181689878650617770357309718590502957391794325985890996212840135873022578571369003652975603233129670032579451733827427139854795888121214367363695936649463259612017563995148237849620797786975862424984267245179188443602163354159230552371825622874941381302015921072949929640390934291343243785691952200979596695221250382116296011764409849391750634756097739612344178732559188598198385885636145797749732969576657649311540526813428160381020695934391133015893386059132186603638508633482708436652094543106309579964605124314124004351995179649764122248453872578686583981188339495074818315471636530735156860980274574535084699411606763501721802997032223850766142358512989527866163968319308994186181894428734183669671819580865656477765742382268308208077420372323368457757839694276072578484955775945712331666175719318893509439282635431869236051258135606017159421845457309834216534669494443928150356451300451902028040870608952969908223711161052105611954725648819737690014083399841916310325465546832714499920252109686228323711293788336041281370945254631913333240136472123159650585109466026635141694257899367574947816710020202417259269288206621897029085894093935949995490339476912348759869101417182834053758783650833383721398473918727467704960976788414468258542521593405727338079229786024985989219366058542059964593474394918136717088828847834820126874855713439800235827947677649478595947568925071746805972696975571981301445709844720379802066556629956824758333581983159665161732609822984667250628932896853733289512538913804761719798064100034770082697202620960226624718784485049409853743000458202725622335461325145527067115317727153316080377574462122048898555105908659166011438503288029561403564995732431696473684397823389484848913197396553365697587328442899924382989276184274214531117312536213674381737486360252347292694557903763584365491800465197958311774589948812650807106821499853851550349694932532276365142713513348954230776718172889222768261653978199954204030239989332422856347993755768165378240333767361770272674216900355288801457353059270840038865700726121455268967568103534863960213041966030678915595257783676791584937321489608590680388223229631287650808178915976749438478206138341496248919299279725432333363390158738107277020554692389061650200492826406573722691364605346600308845872858674467174710170904024681786515939828163316502639935230679505202160119931905903370381697952653624912796955078979355427364333367078633285240116083784760515950374093852450854967959433259468363550328947731126405832983023806130399752258809885188261995629549327935801195578796646277903791723408408245386472268292045742992222300313603096442052148834377194535497828854538961308261310493990629051634402142313417033479302276314004295939275290857563780624988705793403265267759699016676928268127507367168135167532410462900340738378344999874188550423176817151634861152433077419907851441989109812815342525638450141285439915479922870819297675567687647300647745143572489534298300858198452985485425630401412943851339621119986636697622616710466030840516523416126826216413396977338636902505181075252950463814009704536368029870288391422522987537353444715934160217746156675980174750828272669503840310483071423222902836608028097568659840919083971327803985263232865265378035292159770340243078195678981702604551394069093485823872137380763707148781217575935498335762650580579289364063309057275728565595689725609968195245037947745237620595780116494259627512743655241864892838418854583336088698467334263095395013237308884154129666191458863788093284502471807605015174918431418311270016068008209270003613003404391798137499826801446068066771161414929270308919633179968440157595087175308947248568447242551291988216508437184162069917094393532459776150287750366284880738278575260758566147639456187147991857183507862617728714366279427543168358492877571792436154752977462687905870110161579993434479889126127309920464137567800644744609150984587405134879984457861309043607395505499597269183002850938667832922252130744278941619347230024604413262704608268194775327183775080964708103492241399137300973919350840941348773568929113765732043549055522032390023463797731847247012905532082449451030921093422078810922132420412239238684290710409899382613204205763030856013341159762581131286084038954187633230322780553706877270192473170578415544806082789273019133844310250943092752031030992435025793515616090908409851250603702939765522786370557253154934978557323057416255350522748537335733493524759211492566096590193293446082573642279642564295162338642510471701421921493395642445676457033631561578753750885319061341298952310840313302649667321559026860040001076100093215925699565402277205674906493827259455329788052898750048859297898021763908039146124612906606870386711876296851372009820935711397887486249241339880804586023276156870433222451522269358119997023378281693793305593632876310075959796177151752728236762080120746674884781741154217162511345289124242881323333373898030406953482679074855159988121290546948940719654238153482763977134675966711029056132657982120844257485204972315971705435540570558255040154229923324244744343313395723840256495959468378633082600708675263474729329067787912442262754828843332508891353001197716292233875144959320814713692649472609740791416770154851991915160624987732757029421438586488468709374389528108579280377511154893546069109961236369290879441256468603669327715069112440842755085101417846889713601826752134856702382312834786420067560694018318918680352748915577997467876602949816736406700773169999582187438500908740906256344987054979379029398421812475137818730026277014530542565674924825188328017316397344839197168948235092726123075782328247658655689103922271492947904951359483021545172042833646716396622920440376066716440658020009380930150065799157900792580233202206040909931324148434573064079126977779539593140244598588013889987328396359515313118088445195593612410672247297711408534303673125397644118975876336053632932526692810976617791543611530298098395371115779543505972312388870117112621919469378484473932742129048611961595868438633409095712137683430459854139647739088393385207950932810223706006875403559622405328026630487598970857008348653848955336121589589727553046199150001232438540673422899396364954577758479887969469645800303100062948195771189775746028880282471291651405939853490794061165950210411314739760345274370816864338709672215952570229909185934546352961769721948801790371329253692118763724371789783742802374080004227582127909649145096121782959228798877560252588613843772153575596041058792795567879659250167912151979654585358240493631183812398782080914938652285258635059823147435833075865663116931387567415471295398696161421253922693031684185158621755432613775173698118089586234914204278854629823805496210550094560933082365061115582744775539204837132822613751481883429403201563773221301979714456836316935060411761934585491966679378995277925243737957487619884498249408157458721641201903087973381242507322673616424246529940409332039416938037837762083299933191717869246198499381588936705958756724027934428303305678163789545756750547550844681814352845862637141422791562166752827993242548077760692863958078291865675893954358747758952132482336457252282674628062680595451656892259303145745944585120026406411507113291922352478288281146553575903346651452302415862558526152390882311589264572852318501359372253999678107404440207878815783233273852511404378032647036270464087810892250382598856432339518290547667758765557709194825558157314191390532809871393478317136180747976465089001210983843151191315452234072545370670820377152121721998980140232519501803285651718641365373376424545599394632836664303338288857252213673838079587566943074800149666224830259418551268546180065873845592277133123184099572853222088708334553968280324111250076793573198417075954302332559384781276987767206607133383529953804763694383101874370278573065129815215947845487433560483943291024730727589237634953925641272149603199279577739831316196811960778431630403987950524872447828459304150329923411557490193942162966323060966250501554667405204660717497524444629872013819365349427428560596233244424187757375552461156896621632526787570117191501706480307391324134516604793026097009616393581796214794747624430897373261953806296285850768114892101979624023694527666051238672616933478925185349222040597551723354664704783818080797996457700470873851993103224073074854027405703074097916808135898324898647956581541007958875667777414382038745552739113049161679483530407831019681750019689643369238140606146893237496031941606681910598593926673294484598856903353554975109949322160948569029157725352331630082558311132839195888187684057071195478142487270198806920649352979806415817729926089929217484958225950790390422259852096042536148883178887036977415768329161464923012509299256596250262613895758086296522622299770131113263514656264979305434327098389538977008778205473391608799057772545419485154494529106178264688499088175488045904495614532610952065235009091852533613108736212822411954780226356622966779067099404846491479164708828664626797140418913764753940701657477849608973708024039503120243156741587879655514138171123669617259317711104723158178463175103034462195768889392115970466243710216326876866864588627700334357587690366034559878118031490450904509949158572757020111545438823348571142105732244745157990135335795469301590335747936612162451227212752792725364576411294651731300842455422952235347397052306256504193786800205393184964527685233635806092685799185502016770838538020788123495414358139580396063614645128646630731252956261657164080174493789290693930584355855872692645030290934899321234549758949591658569614169701139612864251644870673236947397976720490059896180522324136872582181670471610119242256251360015314991334375771082805854633953410162452650938453241659771220307941884488860504982796822152187751279918249463661468021897034393094547825522555192637660019575607022848799622595606587391357716786450487287141105894653976060888205779301262396466431913118039477197652861006237447254430964300101333085101950724727446903362524893929938493987497843504377188275536743241810794318640600325572638534203594555485257326811976584944820191439732343984381280427788586493933744408910677397937344203492998803046722666910325183232849696774670373036337186552408469110213265130313546102702461829151609228752702296241272489607050969712079612723833339169514313812016655045015424523495836557883558599468992167474786178386621763312327954056361227972237364685780646961580831364899965203242781509329133795487788259454548258570210362612038901997995158672804966296878307832715360523934565423834266308950294990010894532812527676622749301792872200312623400884633548087692068620406222896136477434829588617646410749628208320043936769744726960695972355139415525531594553982054222291485205898904965028058464891718142343918376457428283399251326488460947871650629560769551793875497843094921957440781489792007392298333800756079972061461201705739813879598015886099323577286153018631792558119152856632957633873734867827442526956966828714982893885769597193527061241663589335115810959552703607092326785853042997082597221835693675646107622003625570141091988787751524022909637111192792998452994063306940454650589458508971866356245721740210916200419049939849294387428254866449694593539853132707165239037727422321703114494128043523255034776005509484755995057178877127990719791574415600996824165141654860878293197302647630080920072865216825215318219396388245735050259294369819876877053832351864632373763321939671460370471177030945985451391320861297676743116111732403941288251168484273352270185907542521741476083756498876597161903680100075560498406226887296558680527828139038873774540850681322275244151290914324905360651422145056753086654010035606173802486273467811432517292011132995916972494195323405385459876793279623676348320682318229458309782658592170465692502488646654644095546391461540318697445785519739913910333671970919718420384675773256991114696654305851550794584267069091035929742164740112770078906895006364409456441686026604785170065836192284886485735906289891470974266617664826235083556302031519788507995702387178032679695773616715105365743688942083250141950958176283737533319352340347093788939346789071418133955127525399457456195829470797596809240468261004272324465272673935411132538714925957130721250519003398172580948904941695306127490726473388661926604554330040899311155207626710061087726587466801366712019969417261334393247510403818824317131535516292997843291796791760380203878570405559079176250666935974654783764630028129021499442991720215610118229586192950613902801321482630702988945397587353789054220012508225758831923785044379253455004306221727152584351457971321047132401126946569925104156891032709166850296723636950522576152407951127919153180911963640344101413187034522506878414961410178316157347081918050308497142141535395487419869124627052072090939485757960260027540373327959739799925269410502449335167438882279757684398742417429613434426340080815294967976394408294324340522381339782791270650064009358617022462246229717635848348566331040407456702935553819287532469551071994535491240499006083295513420515224097222808280092285174806930795694198049755592770965247134538867721651843003745798219363528072190339515210845842719183108581458187447759710820537154109858028543995165696503323862545375509955322094852643852934606140545020828363224965547418506041561977949621411822212733517782402447509904616896901972041906471242807549469900405977583065668517264802780300084421433781360760758069923628030706339326135919258818329782876655530475809454872305680104234016716236453071853867255517085984428390562319604753936603414545017153677906767083005314796147921154291003579185555326179018765533811232827194810532426406742433546622625421419100077280593748224857438261085354457503180449954007023882184917371055110594452224687668537617224896168119884604485934284006618659492197267964969523640159470183237471102838900404716227531839233601279539498531152266114090339035288948522709669672892028458548039112051535896274168017274154387466574342498516195803694495009548822056866559841216445616334736544585154998787019936422813435356035310441096835040382807494835764764085013881499504014279431392477122505597872977242062051780608422694122158574208280980048542153569489586893339957115943009550958643478143809573484872116008210587839962648090653561748554202287370074110738289477868195427262134669869307817811989955414769319717967537706520907000585304123274685240705843635903938911043739858159069631450578321365997183744728272461330470976254628359745137800761655699981473585909150368509013787090028491706168634404907080570032159884134171803517808264645167995587087553622667316500391118973088187848265599395867464559707906618518757996590051176533855951545560358186893247421826450296081613718947525744809654146487612405887544682622496810568294963178552874393864246521282235798230664197923387099976563255498752937405484146070138445066681988006955255464203947518503458965939135271369058505971917610595064442253878783701753739844072521624469513101207268564433166578553901743002408630775793890589350990428841992418406931921179940055320207222972316894589374272955984248045382446123958112023152771669396272505916403359318256358332543390540422547634062387154262214125956145918618310940600658179413272169824671177712221705174129933997654030112193520002229501263127709301322755640763508985843976483975025821986180929703158231373733150887542854357151385808486952143882027442190775965590266235189639479532678802924627540606434875230295196461828101038328949047455633206247515705930119428975703793838719488788622185835120821504637796626977654781255601718204347563223593769423876548697978916027395970598406359640852634031985723445173157721564397270623649437860523489897080503178875108378415566919084227059207767511379100436776642528353135497654369001389446609937316670913826239955904936152639759732823896410030808810261387586416324256562512208523910229749724956032438087857039410256177263724862635356856431562290803776329300668264739844149414524022122630400929385416373353396448235765008862833653057500942070585556456013374153262460775833796401200503170654414814943520653084016863947618828720330366926076631308638239595066823768235483841343156457353827476496095531196749762082077859315691974544582654606815422601060485322665333826733405921896892251487499288425487271350505915202028008919576337500048596322244343858654166312894573148607220181584999314419586015618351434727811314226929272017890463798574743450656484886535259856146461717321776535677015326644446544128011404071451841540078818048376546030289468878812877715866308960958221315273564561875015906226480260373046027155662135956199700428265321568665304407523996252703962643651539984508594922644049273501708491710708921229373173319825147504248844107934236421082002715984460850316519803360902347162450946873672565179795344011958853294657260187395839209710027369746706388372209462281303106843359700532007416092840779307449592212734878363793444285053612053848215134984868366276200564567230338312509007885826349871171316966185861541547227659057574274168365431077888015469064535537265213772485203819561596079723569247284665817185480799893254529197207994908905794992712766902613655339736495203001290180829751709931891903206584174566103822088434870703471169886295233281626907398113709882366889089411474017579573126666144522672035681158504957327433025960242751618898902104844092285623030987213433659484318436249223442737286791790625920298058002635229077939947161654451896922593909524631912361540251920714561221805184897574423048215629898718993925111779316656725180982272735080978255726392139431749921294791402815740442292097861599419312711499570625591358195185151323368818963293138795044558575595692524614884626839636920271119721840908636016604608161577503967715566301575111890014179019498686284252065796132566445648300751884095292960265269995230722651244400814730676059668096378110863128863742410600496113449286817188121544981165599195777308575767577519953290332476208891023737829400868249003391533917160902430875737945881064074187074850173887782002425883685482858593275518277087666527598816069426835668764662226706496733546770417381501228947806988901024716344902023144869992197730995037917490381902976848698174327542565838476143629466403182977429088650888087889802124051816865417906707463009981360016721990867391523760738361603739863239701017267206883027456417936299890920761260172714847034493523674724037919790323198277438496716375617398754487898081728416244617737228958037479974560355223856149812395942997606783705241888370153337755353265473603683953918751174798540433020148997054751956899315176428009061786939519582430060488562329389196705488812399478950241199732010655588401036740385224050890446511158070217195677159991006912082401939548635176395497501236754777534885509399078571870828116973285041584285579029717318336138477659047851695277990163822588532444823241783473176674615737313025268195302734562505759134564805745890983083545488673092157525331776661796546730825774977622967573988875545894999735377193775360013991867634352456615165706831583209872423171571407015648093517366220236837560914837452954399068732760302795763693269752061907763021238339953994062886127869580585216497132126483504149894267469071240373467526737653558009267668959473915029884913510265970511828187982019571158520929060274000943482750260268495270283979475308640007542209701548179053437629885576494227948855909070799967485955109947077580139938202807098008278783628058153827762724353326004855286147681719436814040278398894454221690148293992928760222123786607858230052425153949652354361689040739791657533866111182965038728177749161856265246089716185129699569489756910927460772648506825135052421079417955989105297236281573416290221352426755520186481810713001862286375823236600238178963489326479042668437506528934148690057355502954655814153581544031321710453322012693549000497737619868396796391723617062997046912235141496555398491549054156997844413987618024418966243865298928146492766063783030063518188047912907397770015385872457866922099109441821585512759210600114832990759111088356768309835846421354001238582599246040411134522685514492641352423758672618333904686118507861326139335056412239143354493632832214850243498369145292394159873847046679591861263287570202513720632664426816549177986038389070471304726035668912305270594571694204827736977565590436993386197955637022276817720010376803410594459438095994532915289367196893550612337836784639031687347155150076421623181082638140413860412579680980409255435598820442242489324847981807117698442352774125587920753820260552162355408910513550170524138397175551244668708557854891169553845773632936292842234258981491847282885189170544318958768886067016352075308493716216632581567470232042441192558889654179431332462879637830627155871244373502066598335346427971366811063234963483367243216844612420984563890255669678593267422629924970687498940325330852245171981902643713426212897118702990573616759281730537143064195969053620348948034544901152964915138404390458039192499174137293918239647371628867629461094172127417486361323011787761553336705226576482586287049966674003307787537777120025904055076224761819426649620678038814606154595419018657488120409744669241296594873593390904878413038498051376589405937474751150301565392130875374091808667747803780138521199700253442571116195492342640276161926920047167888891818243161791977300985074698954850443596306832149572195436537383029917282479089684090028661784892161198131457322066601193642170738243734748882681473502907354796805938032631086892506852625385384992473985730814538365540179882477653532294989126772989006904488038756546503450831756856681758933759185259171611401183567409977493227987116785221548913565159008348742075577742556570888084445190189317450595595273142991943854567871104575765345707702366982233127101273288720971356786714748320569111348036604675700904802924235594528351247032757432545098362766469777937772869492186062056349938393234898070164579208650674421437828592457601376369150141801394758792914355420277542650435548734126937045646319766420723839786807981269690645390183793200695943330020921989727271311217700997185854749935783772864338667070211856286505331573009421655832167008294141545881530921859935889464816923407590887300237938817804823889679882424730609346711784475392067529420104678516456929044994576624387486902394147807378143416644179144713064506712710610157478688991344277518708568146696272752403439622833730685923899352250108577239193072280828290175383197751439582255473486575836795520524269845888522962192489201340883211113538024859987741591065852214993923718764512742157865153351959556043648456378236338589909377700136121829354966666277697514072266519877580728038177492535528263045318980075362337935135827173576382017657181906391085715570853545083275823431808310296280757946866991110520052385296728278205231167672583228719767115233340572395684172077182995935804177871775830341739321267762486365552419369899388927952170852440060727882933208841252833886252781843649594382887158329311684779349931751778253570121887318261132447770304495189664283825754920765794351766021568737865513365731692989712056689496869024141229026170996242668806097070581532602923854101597149333866988084174020191921202964111410495632676370482218926774687998752471762098317400832811893324460404842664871706168373869370588318268997172767392474775841578840891916347264139206012801325672061021230108809469517818173975360257793102208620018914112537616934007085272311198893639107525976677946424732018396556213657118772301483010150465017839353851596029516659233651788019358415305277215369534575622024415927389028581110139275705476208750958717844623696759727837943257641568876606832972377833257324717765596217235713476830950707232614654821699821833081112611641043135642679809818337019430261187300412253222765556250138979285605918415467423871419093971691569446610296197541200544347123019751406896597638351608011852035557028075986793179900885663173767011447736686748978105483541849442938583674417632939987268549524072855944987611300027280053856983525386630000947184334256398333435981461473049761184325416697590291695003539099823282103804843454739676688488493586901862133322806374642996142489018740879588432822773676009191347448174539770693003973046460063303415799616092962198815199374231210833797923162583012957986909700194713198564850450907181253911106569022261020556700657369111838348983902534426859800159230133916938058311134559642914328850347688354170669623533327434559408798870439668138622522583747735795781056627253388865725317382902486110135021570843016518452892538371452743325992832166672119873963298107948188852039609025355500347768814515576505764642690928220961609008673840198788534301405464918993633306313498558133467946116823441335262020781052968127868155458683502933742168063988704419576144650873617415937653852848477295170414591238746122093192896183201271694039147951438935878697023196608441049067306751687892023820827839174257837963395659923922499209488003115595952849567884132940995241382647692427174411239734126483303428924530915910045979185070742422916105538359576724438895322978821931559065155923943334233028430717251214117124530344141825724790826744572449913746442061219365314253713753662658445380619603361431388024951427513237339204410821025644016840090864974338500427545663067938351949630523727222132843696051245035753596644816649535467228170160282654413711617186316353622353842133022970367741632707135584441992998553823478985426520164969453648689617358178973998829543046318187699038645556638627391234413821864946078521344726665801667639877881935889533965509944274554705203378489500254460407619278356681907220493729941127944875408570707324904153634531901672871946423302537481014492173312820385889656836594369872350531534204965035320028200266443137256225131132547853565203740495419116340835435806950972271134817479665563143264820785166980399883864688127289853544709273665315918001679502945788722201601669777572272687868431095339965444954989132958327988704095419541231478788438103247358376321228708178371578494126605991352095182665422927326363299637631169995009853220067380548921012907501809584829509218945456270989705755363433683065394912613863011940535162773628561698320207297493066948566828861742555358156515588635514307730290497979506783497392721608974125949152574282266672874647825731923609865121249434247297699693641197411771524447076410578302351486197987045748088311124410946339589420196791468573813373694282894125841037446689718733456944835540604963224203974900092233569312888218334558697413279810733901392856580250476339741476434911282215394541634627123206607697848473793873822724097071056900910945929649610045149999638876914376047733924321801760188583999136462612960140258528862484330885335281015347396546181252795663082901620804897928051049465969631992751278475641474302103018490252600051063347423305953432896489938791709367625022863640059765010350634643375860578654095080540747548289853960190207645991548971810221270470527593663721657065823926710106921348042599623071125567509788848722864624629311017233788453701500145213435957243355604600461360093964931976964008363523057598534748996220266559889692021870419087554581068542483497426251244444589908094695014306168649800092027227295124013767781744437766831791592750759492751503543695342785036887959300748818063430198524498479548200919022415243269962150003822225728688009521719660386908126290829312645523314375810696514306123206015739393506020562859212652800120279943864118905303700205542824199814854592417764844011260701380115422032467023721399241422086855466910528174486175963696923885377215842129112721872329763038995538034109223859131247398366505749287598662181895761397953009363089691970373274177031558359885535063281220655100061554989839919260645456976263109694039576925061648444862234303257316179488124984024225893908838965435822799723109069114334454199778149977569737211937677535020518809115264138962107707155619447075331955601918287681203613999796790931715510393641508725794272976928560933769641847961135143013343674860255828254098279463875592553632817845473837077727663827860607574351588310118614802032216816966398783838377207336045579560654189716272774802212858141525481616372829778006849663048374239143806020665346424442382795029223633808959270626885475163862543031704261407671374729859664969590415822822501967571088459639519577885642123252278358679107676912756712092967531436719597594332980624915921136949065671605015764924395278682451804556923554299593695572813393661850631159325473969326826333027092577681877658961982094425681103803611978441860002385597642601476666581392424400413711473565659601175801126877432435333726313053418799883231937286267813915960741818325801698808029889001685334136436785349616360950954756889025201043611243255718808955634056958021906227536798586805883686469412425952226567431305412653867287126575153346856998672432642550031281985486500402019402267460063756948643716084199168559404964254299832182185515462280035272041088280386090010341020427529476632833936209399100814782946016058768772031255610824171563320014740567799973788708402574493734470985131198248623227876012922997613761773224960412550886269915755654837681459020538585680000729390116763215900484031992432498092694328503219771246481096931733708135364834800972616381283823146176767627706773603469530757116141603523504430803599224227822707838420211992251692540551805784957458734970655473388411681140936589380248290880309774705525524988248225722267142795368495377584568837288965610476157251903701621191520054422847520248787908788043840205596158573527186915748007922698738792644367884713297745293388553360848753583228051461702779541990691690485621309466681873046765707151583707951477766369823160403508455439096568471085268164276298864878160644846881350305020499465424174924252360849869150407026295199277770859226859362334835246071077089175652667019865790141943457411504797066626478379783235173071134209502461294507233976559276371117798885663228723454782809487563941888274261120383910277833620766698979425571119504257483077082510127626934737852452203179978471205435517003763045535779922765674037791910053036353577170420258426423915257659203160760196999836986649670575099418538612629928143811491594123587298363601683787039586255749502663086976183763445715929022404929605478670282166020771500724180117703756415761466984681522955928899619780872499188106264693220452043770441481436228928584248138105106512170220821034153794240709458921148739661973598816198147953349606457134587256320381992680741734729024511330541228954832433030680413944237183355790919371551206517454175521756004350962271523249611587673115898107946700041173485984721474406222808996505936152668469707710067122029892609325227145183281396292672686477865388182353499557405241675224445537755817863958718032605186143221864266987062162170919187995719682328839136337030178278245447194290724655830945551401295416578346456216462265702696456791604954831605449449345729141051966203047208944372717040143001518815578574435759449306558714310206293970682986043051032466017255144379314296444574021232879446417626540757198500605569416396143042197599468313655570818694586862799730731839591751934383617639602792475922847053803185652196098323511593037767759052995980766183209613077405159499626506895476866301456713922842474116082226232788165845280459372045568653670758138397803867551755009482464436120160485870705317107741756424105761250071809065681439750183815939688278695521337762596647645022696959454851873465564072020398302290309712867373888955431744938646374358585064790020009972219327811075959184966580059705347542445437241817254735881352318357929306804212164328853052796215442901536235893243829998872570046798057263040212296773073728329637436473425479633276151508299006654562595834223628907311146935885083547428572391232921322912872271950121528144105862124546832740060600050927692955609485937076078120139381855640746863840382540614558462942676551574256495296057711918820844554695681186820256889795934088923397090075039203641196993299871732109950516221167910092773472637178375599192073837404537497092612035025308442208795213093200801425418719798804026481156516455337131370981561031318927978505716865684410588135807787465678020472163537607512092139723410667683744626321766948969499389871995482591446957437593760540982090934316713860669474716419462541806549195956229845214043354695582156285550104084038714103613345845172040293777750883820724794476284322041859715207666844405721279968066284758914113458300756460724510390973763889868937383043355243424613115044968135370203808437046388451844981682619976364455352099165194764149675411976879084671577425151938157000813163075076229825515542054884217337588814025130614287776403549886213072156058832845202929304502562373871617181678042334421472997554927642920965009992362056615161439085196615069960523511401432428860609840802987104178187459431265293114055264565730118190120820190591046538444819133899302306787697059479933284108425162079693587057551367685483413814367827063309777432099755573270648331006134214560617482248423921353899329941717880169065477271404432469188880734116759846381937981736352950506362911820251385536893205701722653452208316200946520833567090946369796599685753119465201525652598906441403137168689307405523627443337908909849092432946448762612112532016885533288959274600792850861722155554632513871541946700996039232627046065733693718295291904265150242617007118316801617938083329345530145507981216036149140885865669846299457519389732056039108554560739899649062329256030978810000651755150728152676557404001827441477003215580437089091479176433143333350320784786431983984604670330851679828550025339359105651880905988214174327179916404702672820742941408200532196447154137582814367850834192416598143616351648055143003586668794548326232421057220722559166911580971546573967636117784099346780203462700563130927528477135778693916939744850882431371215509163671626586904896577715590888654606639727218784264906830278594557389211182136799311903675698897265717088732881830006495863064164867278053356278143144840507153958952622859185392943108012075320502889870511759807321322961676026431368640887107652346514967870001814366415050553080109764809946616852087730047352966946483943423147235269256122540203087291083173272723300002601239185974123305324628798060930732989135026909174515356765702389168108717397913170526885679843980469340805170753365229063109139340401334589810909951348795076017289063411172332381535450868076534665400812160318853475618039517763647835656435942570795221882695376896355139832224876524653921705299677229031582774173966459328130911542311230364104601214409166016276658366927398109409410069809110178912595309730066043673729430628937700928198713213948847103791672882756110258830549306735926791805171725527350730241435743689191050212357216293866708692807621623629936359319518476439612189303219271503092193399951210399745634740481408891541305842843443991306734901389755639202660880782489258143324469852198441275140442405119741675913790176633593405457765792224876518966130100373187044990030669592064067473114016695185169434054866744045028034764051622854823901393037388726748358697676950474774229355686926150127407422879055430142064176201582196340601626329199489257406785073309060930655543672947540649828424535570091889950364668620256360400888626649644452119401242937003685315035243849357462694425343805230817775084949122452065382648577972172934640214178991154323653332423149406368132781411050769437314903528659393139600737056259688357766688348958118348214727173048095317177743710063028794281669361189948596894340187042966003004222500246425503920601374746947361926369257962754127693701555268070054498207803071695443392420156552994116965627431733762591650247460839304747245711931455771041826862365216699420733143746346836121334115297791647087909268101191008624101897015398873932628072615120669684565009575819686682995777921201175473803672760039996903583186180058401556718369193295197074308490722568169181661109532731337265547154410640578430121287849228057257215244491545050446449667144943759974531348968104254771439738990977674983350641573227970344812733840868990501522363462425963264350111848033060679795670234651903612971916561516288861626856694422743656707594084180746321331508622713545799329490897660406080351831114809851430037096323513535977614808173720440661638228707732563191882886788100925192674839035800158069457741643095045897156707404439122065160195419770265282068690988947957918340089479660221353186641695596684061003698795661995103703809576568166886083744453784834389522046334076749640332956227135053498063564141759610448246325007008113780191408333329002978960426341497571393296727549281777681540976984466018677172277423306008400036190569296096798745381149798955596838136310414582694924464268826146215481240647906607860090512013369950523101676076179287281199199015727154854662154966548847025500158400123192383270992872850075522869955622781618327436974795691658439676373159196637322159527205299239740108287377042305507725029140150442739035479625968899417099989778026441668712498735269801729840662520231739730384668520400877675861222782010159442398033104044787850500813090519403142693710982698862247449264190633642110649961369711274732999064535243982000014654724376183375122286635609670973072714395441591968197100708386380572112387153664699734902616411086118332489409783293770495287210249864111354354759686862717603108625120053815220807718559529376223610275903935547497421630831711202976656343063188802815344109735288765228280131454810587659895969145250228932902525257159279751743230219988961856570767778451877979875650405774385534547292536173639265459939134408077097071635056538170604283566884210611014233398452264832421144646697478658699740804107992592984759735589624630016425076599617971660001063450579726321004303217488505271594021010792447100715234344023606891110080626297909633220904349067813550927468077922752598864954288531755076141753885396868136797748774984478868535897993199759814366694822583725369895765856381527741135464250263746040621984718206070328375986382347730205104569277925838975908912805736550043802212160136123967797725447192033060845278381998301609640262917397533108402768704366538446730876889017353744584321250596087006681984669083484243592615134700143750465182080647378418011396051462549874861886599518474089957125749720022419275866555111617559301873542194749251314282208648215726033055077054330211218114347675223495572505578212104950051647803666875672871314242032702007102778603037711885125984437789789772234328827102180757392038687236317239148478436327605788351499666293527834491332280688229960658364420688031312824912839167986933824541206898794978610249858774735460869140745911771378791516246171406263070833975055517021411024520990042479277641001942389916404351558387289715409826846086594405669095940768179193953861981335129217184186525489664544277700531091667760102259388801117385275780958400847291165699976716254567533684960398773750389889971943167582419736764528308717854465293674089336162655653836233094889762417116568914267811016214025188693922080524528252996665559704446000995739964439373101528211717015796833994036993706384742824024499234562876238287810743544594805305957829881299627482629323367097578530920009756898721866774983449851334537671135339733670975898395742194479477682850332630811878004945935534428800886517313018369164964148300570478129717022147453665580003275895833407280880855724744031550987832018157514601044128705328813924025054681396862424093967452571094520823292869756546850068698868561206684859653652131872291012493362106881907666098285885892201303678540568387142202076283361753805351028992981294731130089560487708446765651307494763915429716228769453798059507953038782783407034565408301387643107795144858116682421074773383692367245719595055366972353709402739053509960030267521309995844929428234569680738915235809461149434662022802064502652324437084559388600229777485739122870130101526041067624968404668377933877987443759853136853103600874286616260614152521325143246181631418579616932445944194470877216427781818688422570118854353959991995919967939846138671161962007682123193829731412653626433511025614650213932418442255412771228616842839174108553148275557851636775960062909534835743893062803561358123791109675220936363512474162800221425698523718799771306372179987886201754082619094831505080688483338606870725048296307568820250146827529195633729348525641824286387914061841414648504591135915597753123662448166403938253671748535130778290323865695817135627469134598625503380471338954083625040439462744014441662149995671972750088758198705546515857733101101392260445704563249901325727475040440964434649127203091278937852626457638418768453258673353079699053855169219702396884538525101047482083699023684782321904447084345896319535420267189586427035007419369724145783350748587188569223472696856942759974884269191462927561979848116344756889171523745260064134523524945167190211151104960998120720984193296626143725641489298003248895595670797274250943492475442064438717352242045285289303659568388378453698797041834350861373848159234806376673215883808845595352552655134625065914411289981859356326322769801408379293442263500117199361316788992336252768816018935527443966402033296318215360283245884192399300618526841292068404666166616707975481397873277207159583478318926467911115437594685149108291380011599218608526686375349931356563674333234595156386503239179554071697877770726467454226838792838184885797944579189434420446003826282198530725576167459246691275173978666063775131414193020329084629523257778739115416986688781110833324432498400842491533737200619843450740447058996648948588971323629570460350714900268168475326399351102686954761933467007975347026544620636471915900588613050052596930238474132004492680342003714067631353005591214096708100889420606825872943953878026565707786025941146726188294083444240100506632422589540800479280230068924788891556430211468248352122663710442945617693297158693550515690201993586771634948862009340769129043386571362603095305216175734972491801626445124924149563258845903117521955069456012937961104803561777997329784777934644599028958638086150396396766170239309762887343738806308681758538278327580491252768460528751925964712156980682510007460922072098465161916819817337475880020993999331102780846992225912305797802990039823532282094439323153909779524578577813737208360777076739026672281605757616786146483017661538063853818815398042065340997885137660737973572810287013950342150302920924025381608766178750247504015907829801656850979572351831056809711566679864720946401277030558967200432858811098593915093042647669744058263999722556359849671707005764445749890990830465630744460417245094976535712846967744641708383701679049323285085331890389778486434424323533343525705569216010230631353704597230300437155233108718123935603396486171850027257827895635475550952030595797172037077417312037275031767527722710256371561338944877279035935353855040825126528895011244286141272978533658055793417875453659483715308118321522703928295785929266197760594689347089912091126470269943395415914254523359631888026190074260181235575432788994965797378097925656617385688779373276875202814491888696718544888584477147862180852139568298192887878841246424591785546947475072526519845119292767678028924622537729725764439259735238315514797317460423011593352740118842489112337734140547766765468524935891731460415551386059405040900541658549993639164169815873613012710436849499421146153778331846218403095991755729958155829951266360375797415079353277534369215808486810020179955376697855752798153031187432271405174324633076496272489877026847813640493218270117575698051533866985962754212844271131713394262560724828699985761367336534722869665001013892661527884067148543518826847554546454859363889384351673965036678406945143564169253097950104765331085127922471314982459616614412545573849763008409649593799201789421888463750127401198972617023997516498522013583205988528248208931709056094639306674501455884622752357003189708409788876867073315332466822587997256823264575362473011728104553131855033859828931613414388983278778501691527921129674092274033189710615363479724394462207962454370397441286238939313332268836846682386775714050397292096418650614041683790484451279537251998810276550971390711213514249918762222742013865007807936384683757744057826525014236657872708737300594299109424453791513578211356828123083207655979597071207429091675539486424554728783145589640853153549510663420724017494710585616663220071101218190309243035721040690418801267156630771922367341140494486149151467192316375633671895286257585992656157012946915243130866017936114418067660797075716867506901883783200715665231346880560641796113288425787194784958104533616805821789138831657235214686222477008148038183574160111892650024176918606575047160864376087446338951528920557500435932423561571339332858403704572552204129486541782148383629807049567489644692149534865657501196319842615325266704409386817755673193676262350561006962551229904091166043514622353531193032943278658428788673382448640031891803570404363280686286830572103910244013270030307442862981817147937251563353655592409482978281393591138249916666404015641478311075625205750325206225783148274864249346062579181465711298935433529032447923084270548748268277942468039590528968854880697304862127761602701406703881513708192860781150150806909896088342872340046510092679445745698782967038957198029986420067253796015770250176641111910781782544548254254809501464674319514261658597390564055983394017643021759801177322538439670292842038149848292302667818250671448414824112704688588583105847546432561361938433788856697452233777689138299715678942190141857147705541147541028781975031481423848599845758691367379146316571324353862596836687506147337221934013287097808133922517606487251492952264245878592606935887815149024135643715217975764418747961256856239691673481754257780046984584015963210036557519312162959423893162490607496074826501490112445930585141983243033119525326870325575524759402512267027722154162555651188363334668287956462326263689706602386580975414824157015659858551250429994782359581017956026778840523822064810130393261357841708118555505806065757998526924101681899849856732869475069012357209483536105007359606898556593450063601245747382553054290843465407210855852006898211695291923092711923960879331069666899331042300113113759300073510664275230993834465366299157536695742192044538406082239357754444865600154428370448192533394797492783522966070866632069863430173987571169875178809029412283563290356099975649425334538963247975646957672537474468310870941230191882458126430281726882426880312817954453980561985972894047570169141048676833673854478440764656298381045287489659398740932600036009895224601231971123894995964369777387989089039834416951429718113715429350908288114445127903319280633221442365856180685651320888812452429992955710547692647744278296396183899378716930262896270096767315402982534121514038820976665572869486423612038170774550837538604118615948992892679913363399573277385427613674658931702466366884028423979547960663709998076475717023513564666643481550446116150940659848610871782209923630682344740124378160341576650373135243961492592364476036182250934616956833496867151332948147523571909195618969704159134448438881675223095216018423365947860816980616890725657795141572602837773387863820421188399765107058804422096215684183141109241707715316050372245279732566557102010787153099967344199949741161117714168828495449473111207451919846296206174146483153491891453835787259983867704741808039407006185107873331616525322699071472852964111261539441524014445045727419864981648371950053421159272553715775617321667969697391969053425291073603830260668238122038498717174132223331072679929576397872626932112878735448174131018758289868642401154855411592743339089468638427605451401335204818670098628087711135241650642103771262538729073371605706081954251863750014633183216355877895468729359068870533063770630965012497982675191356839487598270614710926551010719428903515570830391517705761649513496392095438118963576757439782053865572958925693839115976667081416970683150416633300591940102043995467546478052357676990747035694303695917806939409964397289453697741133390545006507681328814615922827816795704053755470193503230050221816207306018940796331745444289016131756121229842728706723093888995409004815355033563028397213179758316283053850771773601292749457414791719399763816825575737318190629761766387391326137325031041192370548943627947665023371528804703341135727453437800929296819963080215289275928333689336735716854646468419188588513644734485516604335064238034989292647122454851410352676506069039466222627769021769689768314726657483172794906791038593495974245654039382963095255811878414938461582825499578338445667150371718927754677677917902572881943737541824255252179165390822940671002286203258919889216430450096048478717456624879466235714628485221754030349029145155444965706475023363466700159896083479792176301046436681736790113727103065041627907124969091978108395923626487651630036817845590041835603823250741034499641073989399796217906453622387270780564653292372618188285801333516451400948165339799531065993177908630593396019597635764583576874703812014206990097146849195506900581265654943792388194960446909010249687211051932567548206595364357288738847429095395864594223084871224462040781338969428304145152955563054635734326645065707354509088895126466331204051817152601903857806416896426787378844698206812754860269931669092813128217438171931034549724566786921228950359015960642729530093255617676765207962356620874688448522660476795021596356505835853540164850360634356175593684400387569388717024714702186940525555957642332504071090293436286531171692022801285516023378344249884170570787677296756791744873660079017289579645579710216517215833583975973720877265087177854208494178110045656770693435195428831233210509371398826521674619924391146605843710965612765231726945540211521513322851868921671427797092796303059089362006526345438845474374199587159112723305451590954886685898431964380669246016161587869866487227192938903101172210838298147205033714543227058859059475740066039312317468972644163601968880532979939232151022902361226749061116650817953483411059771670596937579457997754381962315697484559021064673153551847745817467630914190636619991108463975748420241725946219515732656667437108725657475179367161440740788427138721281544668945485594388995123860197814675614238422519777192572133695835753357512623776119813956403762206862775563989657917251836593480730758126067820215407387799649936297019641552465581221757342949258668931249187967650609945730160948312105300352784475748638478274941862913314202441760062096994146768841733348214524489827032187115095068184534404137546356100843285952624813590020459325380500996395391192412342106128104231362674077756034586997191760591823062802660428850824194740816095655676438359723190993684926135272129399745816389575114311038391666611999481420488769202249972771818228747897089841601765218389889031740351609998389771760784984024698755846644029484019836269103670082714238411792784531113134227774257849145129341479475086783856663599710010925733085360703033235541961083937173475725030360294768065298265552341451332040605812611444202965524580069484811605662187355668279317818739806477483563501068265595018792552447430310753591939889790176625789486014479411585573010197821146700246360716583239849606468314804450285132078799570286018362416064269733828284520063203784563879037868781202263020798767972437877735212269669889162801209688780960726164794747314037243403784728938594474136454685682793985207653045357066322807619463250858149853871864805007632351283292511612307229903036989708428141930759511881565858112963441109822493440172619378535366260077766370014834851675913629552605199021367345297273476189092273052103356174245154210578489905820175995116696909949620601991053824076842451645173902512108812785378062011063956358103136973627331042100258180764275426957770491393687098598368808110946224587485059724294941350808404787276401882703063501696414549578673266682269076431847569057403303305528345707898090918711105109522165897013142415649902978923603138407773013458211247664793067540954378518697105234392350351376391388487937599717285240648309324569392308583461651997905831197206957596777483208124823746674178418262166643796793985118428144843773459489518202332424805165434359915152525621259534674078579881899212579805457598439749092068701377009316888002329963118809001168002618090990408474739126869062258124051806381216169014663616711075380244884903673269651581472117456230158830038856684059182567632273269288210606114475007687997833481062140389726527530211243744284447853260975909510751961040214276907472125759655476825754452860142141957459998700153347428377858074781396192321220996018954824198991303450696793408617582905428019733031870017722646131966644462307454436312994745808442953931247198272044973251568489872260067733157969420198202371931556437300223893959332944129848768327854037241646694739495375279529382414334972627972254539253192150906284271297725996454944665459234075265293652763625042899063475403599805776076706939486285401720243264461529452420151951483631611183215465114845824943518491320957903486343079932259323972475311960268790967419759683627958241005577343603583376936568309734114554261409710584779017681279204457705857381134517670433055640286569286558857755515158094974601147905468472214644027139126637313289037952852106591132371236935042121224629038098867984508609232530183224086236989497311918141970653775637059931055052543689248410720792362555753245374106131504293415352722734603948560806575864331253854498467015749020627144393698423686435933231264999030519137088275094788396027126224761870842057515354179518558630948184099547812705003812053675119654409666008305631815659174810504963671313400145073658844646263955937064810128775011903335927883177186617382404005254432708618021114239186326295030269747754710750942655813742024461635730958654858694316386057216653508594316895147592807858405263916039645902761760721704534471758843901245773260839867235596280883269046925493252403605620698719374801617684067336295905714861926172136851581037849244010026337703185760118879032750590975439779171410295953522466106927401843575815681360902998689292031382031556921865705224142992959208590363918513433568764569056090698761806734540590435264406987524428680679444546875603008197415025428452270316738691466782755322416522852360393831563976131837209986399888814788683744935356859862046999358185295560414072199156398565291531360114660209634948462744346522879167546325677563215547172314846123805839657518233594112047067648031957451019612585930897086697246198714728597946989281381141161318710143489578509654918127459734807832861782361909874457001643706675243058882102666512437644339415900960710216035484582949972077432279161709471107702107104599082787736623899077832927801932541227399972108892522653805342195023510367384980011435293906866427419408518161296262121850374202739004878395940367947745980197541567111042374495431692462099161564891234755557426450144386213469679981029524554435751001920542773519506515760022278977481365175251025741595879314893829742750398501845049436573592664127726428270072547271477665281435156294593684364692884557766871387309907625976412733328745459817137681159229346116261077900746972345785755612128136431660615179089351993401072808218942066956591472958112284535630150585213379626762076930084524277375291394477785368843699657078798116630214453239875307072551160195906314733574283699550973221455658311741421521283726639202763044359196962470933381716408058721506792980196392326148631651477665817387861118046307572370135663152314513831270820489633393327048719534878120336449446633975748341254486304205487948264451081458078947079296672264191701328736571491788163524871499952990947484287463588524510819575318360505467828488822793142700038880296013633153017561382481065359362477721514504600745516703094895053705268799707645370037558575783235401073129605882291533717405484317405700287975231780819595161102619813893736700338358748752958460528726165223208617491459790142523692164438364878825510176645293142692297072185189849418142764679115277550380332628965712681494542954639985108681382476200276571364207402091330141969872655068219158312223823951839678305685547770624941225978761527686933944144176953226318048777023240151242840605440682919130340812299154850783267415202749294314056920568047651778425822692648550207076558416412819439937563124486908310456374873672680767737804787547403012007642450309066524908161166645796933893402950860303624198338134835831475831513076329623116656448757852175841035721495869825613672357553499482525349834687823187760940075387358844868150816172633398444567888009142890385572046929029650536468051685929460827109228099209079047271434359095066239427514851119736066811106086392519211075088511189468568956368182607702352941860057207438988445933033611043160094262672789293599627073942980361507164698185817706264301928207379418965871894310374671112238894980404150687063063240377337575793584510647959450440375918103600992431080413772028751593743762577623102495917810533591693852382779340409661927172980694282461842504092679623657624193786393486709398355420591466131135372376358387915741311063089281626206865847816656050927830588189912978896655744949324220295274182882755063952330409498427932233076974020468645114413901427168385313136866171972912975752275901329991398966728216063965056010531539901641808431436867723737323231075650484468064529317750184925891302679557170472421145506653412391634145975393826353656508555646029404567742107983886636811216824182471806380232385216057014411017126796257168855053161542987360599432712050969549962445436590259745258360207189512157976519329255121742555110967693173799411566187538131142860229936420848626854186723947244026178151816375812328297325059166376358610504239211211029144025683791853428436129060402060425637717559422772351697450090162187160058076702748479633416158900815940129792379543044999016310201390781533373600269150558765319042145818954149621172698188060544951388758438630878255930893312897563773824393811297039163471450374730915339686818365901415988397529431663146737577410113310674999551996187761752515535949438404600594200717972007367031476230613934114387509993669519334714096954954339640542284601597739288812560680150343695202584860122129015602417888409081721045617348007088882047178225041552991886319409377908593864254769028253091270091800253774875703009844859831315807389494730146258820122376939052267931042476752884226578450162817777386492483373145063941719179684310374214279984753162724460807146522436687021428483411165323252819298501454198115483141082789747954748491053837352312081014256912944746678125457917133272577001182351669666004961462937811956516130323487478450282801673969968769818324555218433895637509748195791216108001802734283201971939664615502778481802709558823925107386803614387259163267372652213011424855601593526078745122167790217335542740852814295901644678327064184058115738339160948456115924286058655967033167094457511903940229151128887932351112719118079439952084430715830438803028716731358368876792089428345031009721948946942194253095286725570057475653741097999946161884998888787194272863683331568360469190101874096358838985098374876218722990307566482899464984368074679477751935285675787696170919856985326591058372387945678040146753758038246980078440200871774085176180345992886525162296168300011554564405999173378431413573916857504422617026629336733654668023028213897695526973289413687054049487433527435649152207852736718203694233258164874460617512455186621186600009357372165384704279588129606760813182260294313267823516439956960137256724603677915437787519620487459869217053921298845229034195358546692003125205274792864365411135282759040693966301715828997373455170325861739110164206952750355968133939148075765711427673366018109697858764377152651545247530034433761930610638641435166747770288676280389280059785372413825381848987285754788193278752421818310603539291556430137466043331179501686621739405419334912482037821312075549967775310177448909859179269292287247779625808179333593671842807725813608269666233423448522151295147258136138664061102380566361138839710457808325652058598377772265184350028867600665435878311810341440838779237370165199875442089702205551074523100517321134450397040645072361381319116012608411530481607117439060949930174641010329187720493417828225641973224425667356051442944776004308621483943851764322968408688168921257541721683274329108880023550525498534161065491864793609777367038959376576964200744538344168066697298808055350527172917977849860543589056625879915999051452751965732530768250254355264014831226498469607655671045929212627857131992423780685388185708624183336060040525528377747795028107007375825784233426947108717643938979546950622872119056586079490239048353047169503129195626931471147934133319821567672973441649339189237033652940779922152952045014783430641138469720524207563622742080947523881191955812209582355044460340376690331105570726293297552201888168467174825654608173824857134985415715988263554449658238341397304465992562372081372215286847855184380385055313174337382172712417188970731283821177776075178864545620753734638781620965358542021380882859206472547270002911528308269767255746194211486911234293893408435724400804115464374588879584542543614458512019627079375736677142818806463258792778741315091864861853825368733539233897339976830858934065755410888968970116549798471456374635394434570203446671794096188567024012484152019477679577808607064678974135837693968690639783917742209311135988874396256058711022963789548890034268242182192498982951802380971108750411263036331294673351227323688946875395024928098481204513137778354141752833846294451002729503410618264062157098330504808062583053034086358722774517650901936249258773192230038291587687803815115120880265900345921461231926376488880016814208135747848404648344005837723215047366804054004947113376210091716087359486250323198458087656651708935391136779378079578055531090947843433653139512518010175201637736689467778964337856085502793519544016032959235052883872773267717235315568037430692630155087642404534904545675243509052332099074818617621682981341622423525156082826872685719336631333039049302496604918553949995031194188838113960927696341182001391065760564559217909423195730411220161786794683039250051684638807368474863352431807743682044411033812845738573896899424779012196261338938345379359887518265430355880994740378892571841793956241863988723625534930027493148009103694827416506860209502391564317663099210210096651619221148324863510536670464677651340682685918534413232253524492793762210684683106555731402981415830430245164140515220112528144253711931687893238636392372016645636988264687865200589672653873642481644486204242391861820841990260606372118624659036914967807885173106286794068712426429026942517041115520608520358723222183687342249075335176285229366734365396101473149338128222457080989618010540450602902163849163338731613071500392390218226878088859477085174464037289277092674328905586236029984970386016727426914429831231142898964227236865703313034119783117748134782016597922885989306609494723828443916159580613492985934314618509437837966249919395488244161063298143221750728847920758294556028481240465799677545864635100374775124768919544834229479275879506452948311404258123685137011980952604004392782336798220107848533433491779597918914686173207016462233401811467658548590975976367735387890751862403691281664850916180581807664251047304413384557541716544508349305684101600972455067097053900859146141265976959814449971744363425490769313932468490242671470483678605827345114698773221569008661437321951587594934743934829261442937695637417839758677021616989234272123398174225152519919975653392042315091985601495662089298737292609550144046520734494591223526273709232606914476234405381794080979735335532111621774765304390077225650665986785315481827913494117453973655992962324560564812239990045220627238268021841671963800830738960141577103598146080837054238846935815167071376096713523692064612284110459349887937867084027727608468933687393063999930410700029068100172658467976456689678598662990331386647007994159344972811664878797917057117581274811898195111294125089570620413872092970848956649256372497290153444995772080130416328161532689453724649945657439750085630257195937210481982025677720107649778531392044287400817170885126245579139828219478595188630685105984121007774722409288374835708635867443917893620928875238346181915421147346097258574316264560294525895166784400286041808526441418191935085839903955708068845995290259885691271107070906031049383197313071972547899804457967154682330672256081851977744411810598279575474104577919035416206666444780550579332099196586979510185279598479335459723706600719067067103224395691209238054448177675281543490217600655853963326927358644001426181257829308989881570686151834076321257036356011235856742715380677907274193056777239279683916678541491333411840893488824691168402531079448237635129856851824440704765163230787489131386894542951233036168287274413581463095082787012111139441402661631620344888142818946218311503287245896653707901355813523086424502224844119344422878290889287156910796824458667534200991705798934775498381370232778221139458303035603911117852890142798046479113901227016051915229100403671644412792029171636231971971397019232641145056179141818353582037356449328369942417031804307777584863488511963928758372806982900548131669922688444761596053043345317784314299024456300716100837331021594554980005815235365831888524044980936938719723809050261209717157153456321083471311412414266614591860695818774265245211802246609751362011541772614851592918112364213256339361306660514973207234725652087571805234919376817789633654191043707539927069421669014790094262856443723168279249571454409965957063486002988327505133187802805751572381459193829715756282729897215679389518275442045259149293242408726900943435562546929568631480882507086133009882338140399448352532641339475358152853889745328934172580391196788321359715488836274676848431365690165781870678237351744237773039604853239044570364020576060945386448208395205194554454746263340608473656503473558784985849968808674258837973331740537568627378639370071763742386431684811290179936463540650677638231360423680967281020730639214421338848456549677212114172189966357009900067950519484701201144790404193234235376004298878983011930904286291537194369472266944880006119898751135019065011025421052240230677286307784145057265170246460982057325936091302316098454329188896512097834368139102306033938746572547833891280875100108678770366597217817901776880512849000766611508692328161146825792603355320804623940796088727276388409293469723902967342762121906859355354466489181441866220197103721689430343241634529706398336088286054326906779758331040672532757375486456387976653535217594186513658200055698351229934270688775344770291850162284461343347138611875674619179717942662806984273755012486776469580398975393064005675352428595573605451117653666827541776808966707996494963477515279927244904404189370339820473936505685154881292112991416252178201634536572621152234268708963253257261501944873424562618443236277581146365453751258675912771282365545593024014078135750115798840030537741511305101390323432284676095883627554987473139033082040336966654122311962050497357691431378182339600288959057003993263078285172813333094567312051055411104796014549080578264143890589233747635610790208392707857802148611288326615808106413443875528992834290298289735465195539829073598540846889602757588194787258187794040901944129390024426328309035730760473004868192828955206799993526931258187723228691256081278291381834561372088280608924936448212599312071184904315466840075399330820121360130561588075256021802848529132764849600251441856056081129634531930085244496632714291349651547655427004199987714012917325398187599622854007390643780607603562966817873830050737719377895412488764537190179667772020463844790634443240512311244999694803623421495154503511351291736563059639272779508934783767497190257715670341444073933752421477752869128158390263668016388052870982086273030162925569739268921002889675373953931056741439119981483052408423085068855754142426703616624578804553621476362885374503865908424277558719682886561635499085087504494128726406185644430900280647329761645914328526752614198650274357779655862807071206239378382429081725622625970025947233961806723352320166958646104286898457516945590635232367072950352107827785666590549469742092127309238473942128032656333624049057925415268290735703684385836516940747359332705183606923772939103009402293270369652102978993643857300917629080768560429606038439696265488829109003137234856340008897317070625603646863154576101777400926937839588538902546222515463912216076762181393777689494167573027025577324550370843287686641256810169012692930753191995189352143633355676138559314354916247247274263692134973176335708826995580755853504760730463445215831115092086471960967417876347009791477891840038899513892373766922135522421208270751816607139834308700894741213821515115666668342957519827262564166384253376729903161804177120915227811720463356370040159404189167272335949996389352163079666779561401640033036088121883641501555090158278941228097677630769403168666895244380723692789288481733904780794462201542943243484766660649845885080725486561918619653247009987925321109812422891336249462318318230666525030614592890204987435794469309774168569306598672322570616652027076291446194752199771342024764755229234930721696788971646675421014983474013647802486296977414367987117864049402535699284389661234554159824720565917074875367603779733126336072709278634619736071172454303372198581679966693078485509410450511707831890287923106860158217462876317814570005315300257298727198305041022224991825278275119357689236646667726868385625766241116259171219657848527882580071958246149522082656714608745052539305768912546744982155777528969072741203931281989386950099856791141706449101135510844906396360659118079880922300415653429907999898208741026151526536476307508086164577798879647613603226911156131070158924756690618510486695453264643252855554913064916126150932082643049731567523873160377746124999292282309708798493103805469930786294485982797597601204571542712248721470766915660417829270651247880574996278095536487506288692624767954978059565125293594979400857983260856929941405416241413874351328972367944995512776385046198113079979118604313818033580182112104974602856184368986246499059452191464493793915536239374434802393114776115926421137461029107848683980202831234835838243609490500937584716301360258046122641239980293173342990496750096704386502476389408313438463442126000902238408433703595008260933020526889722349326369348373643705068312812238608469572949596430492232529963403025562084118571107076389419142977815996649901722239069510307865917087216198874623154795004776519745281634576707829891195070257334318053648599362775225982678513176075362441524992576464487441392527833155163425344689489904784901071893165395256677459832719211382467712320222710902666248145564182004096569513674680930956916097408229404367251050635236115441381459189904727783429179301838469664501957605216606166855481343268352708107337045014269266169164886968875598032154509608996087173362442951273305602242985906096678231985766842322426385888401311964229315477464109809113355747300576625475772769618472055942207100170976742016642764682816459121322392124183951281130455551770593831384327526083292716760195131495871144513948359541614972637876807300897741837200664983304479123924738420363618788377064770640120057922861513760564007199854418327908596517199761476784054468349619486400692694841485700521163392390170241268728540371169037711722865801460073492655243863354527579388102116981251922794710636763940947647224366783630939935673174852732878954339314324420926027711448112928692307597439215815363742910159603933758104313821534560796212049779376317232783938881413095012519419953816294916559715334630965756333978044636545164980209829298825703723382991025805792117467595808413167520025069192583507775740408411381153586194807707427366793366431771301321442138388425985618555514488401316263329342843595650772126752816826844515528327887485696407215049515340839995472584157281217030948950172842895407033359712115091973813455154685671206430835745310033470553247862669557583826646285023700113607445224076701480714022526279914581326940337862819568544651779483755570610536756545574907564138865670776119065004031810460529400301553805174034303970422718917877854320206908612414975501925087595006828669630640601172957784814985982226390268855131512694001434614916367151671340808048195143830767186292781249099611820911440229689358368194978389199508011270059019220760982465626465804544797404244913245213931260695790769946749943277268322017455831008174651658606820870688738496170332859421924253863931716272134604724522343328217269213220133498254297052009108889338992654552110000974955334086260002477234713204362273960773494622463096792016917803572298694115514523990498362417976840030376122907362601228473371037273651096088079544956237290389890153228948804195122047864991065034893809921284684652704874063322521658885665656872328460497138531072536616254318371074925367215204869338385821757931879917742911593024628044506203450115288644287662522164541461410481863854131305857789994777603246405714437859842546342345453327914341172881917457430222107076067037621973105660955971493326084376333925098258758554808922961452885091212221758868543419878664038509406997816840433345043831415412916075786485938378520374918130958263262569081535020775190531101273025794975482878207039617713950444386311428667871478500999365158928197659897518820791709168904347553785594104981148732307414389754573125449769366637577331113917656228033346815842733870380361082012934554257714855787230901728429173282747723208633789448303040879404151884691300319629438002475851119076359537907777120275114560103461895175181557202633371842116494333817812016742230210383928921061674671302029416346714637779121927464486808574353322454459058440989786247610556032054474376260371337976395609334895398574329334141406654596404825677834779511482107051324615956138209497421248021822780991838420568638588090686199263537936505008597199739182370482765322116579829047831939645382091955621942836046946203454029558583431705955451654954597049097463133875251285429845088598161771479315562830540882349277711854561285102859821514083661513473660016002456760129110317565673973616915898125600324033718476556342365891590684094807793802994644830976512530378224001141267653293479301363708085372438086042212054693428059593178293927462433945751907294999795690579666648647815096853779091661455917251402490387127267811887246134726065915939753218556928615882208335750684541444110329954266259552234824463113024193907001010186552869506515421485666555120996751262227097355557507363478280609725898874277192737881278746909869967180437749158140638364425436391353765997834221893437455942693811435143672636600318665408430483923514676097336593003153773993683860502282812417356172286325541932526929420555743514319978256072858664967731738793851809398987771377493294843721921721540593942109389033250579590741445620883511180560038608844109024470311456601862147219132246013598911603828261773969252886564188729493307772773161516723383643359186179340032945579937058036790261257753504404426927300197226284898449074053746273928615924128916710201907762478323427265192579903320168071032375039703705953416947985252592245004133341760531210026308610229064052754215097734645000656108906735854263548277985911013527289931648696584124585215555433382262745515625279590025143249333694390151591189751457932264879603877738060670316528739089050522394293616865863226469104813779382927755036623503906178315456179891801733252561108610064527096448122795979009777147245178851204177718041889839637670586800176471968370810442370173026720890021773044160404179231518487252186159168476296065016089367035945099318242877310905293130720780821655425425580577159002388705569254897244326163921177883400740526750302733055297698796996682745148717548247069431673647559041874326223694831367604292614479303656559978903883422916842940369090481729789562250769052391698530622256452486166590662360178492352466064887462931111072985691767749551317812475732471679870666263297945466648133498679403064805336611942462663534033419891982175923932343373241908354647771147516313567239950136782130665277377606645265133154174590275010760001584543874245475418582085102174471650996196543907095614857325638984080065433681967456565223938446666861486588127009516291500693413473378253545778510509392800192116404025302550589910732008846896883324448870815337054515865727244603753304940685261816627589030348916840722649559788140446864222971876425291974825966129830213563212134019444863718345825888466501986421838190155504345963433698700178187078333371422068125862866784493540911887261800342753999093900759364340440243716339077198665675842208389795619497631378310686809271736583922277549390723724295757771655624378422376767436492943063788368979268091484813555331102821073772202556988241436536029745798318846106006957991271610920912275924777618593940593771688836153328773985126635561657539598657045583956653952261812049608391131074214569301606087598728674201612012650374656938665801375199088869181902053818647291161533513468737991330015932205331173111264154215048669292138377625282020572480543972614821792765046240187567410454732915057671886078396970099137825959782239845816069843198144550800455998014810336852849091974892881782044322799168688589849368611620003888054061378705081985387923965341439934845839045856562543194409833569408375343241328512102984150772567900662778670407292952509820202160303781872119347032201431752820687075786285564291512996016918519608593421515638672859614825239110073139987548113180904565465214292781949950374887442823142813960659618225854241036776486337015476754762115754085642707209792561833397794755180481554862376684215206845985717275019191828746413251965504054081063098118354102628516507994793346643576131679881955965073569172824403106951178434179749118375640761349825858847206923446273784050504562301755916996761567895197883300848259177145668497788731505170963784035566502537394031864945755567819033426797224041016600792517101489860825114731286186899200490017639735555715153494592415427748133032743332452807911120839148374273827826820985547545491834693560333466212558030689991749627274652239706031586234393070481934562495180698641577552620677527693347382116171338866124751755193473371028413613297794311990008676335855405810433180203487587813648506173563193968254397073572341006271153280158919231343034835509687715258056591176876607281779661347172238745254158608775179824338315847157793421830767545968509899007915361826548708055498323486901063284122262762352333008620931835706328269658321994275787098167458880353183493876073589560364685020827748644371628731872768521077780566324294941468526327829732661232680850177096327578056112563057404178887034637782445943280889600770354651032762963459420569331166677518166657159959772391047709667705097852481664678531577568436154477889648222141071615347241778593981753975828063098355473468271132051627033947549049573866105060242659836903670893246143275114047190263148213140959940878823175893783034749906684075109213128202216751388311227791759296743272527919798924621109090450725923656706572387991964995627996172875698121998097014570980497331293248105186292151759470532679247578323024204638162684344033493447326849852076577657731598015513381282162949048300456978257016628126247695792012377241541115514252037483256726502322196910363796120867972126589676968990190959241950383794226668587816690524800007856557871680918198116470048069397802327688668537976749424442485641276036591255872978660579837238055688659282576408162706828389824359484301546648189777511671369582603113657598573081560941149993280624516541320514733837966672541897483554394501577966769747067055297121484020557781882783920642496360930628755845244200818616881132682987168496270115803136604985300282953518557926901251698304586222371540623086984288473170305219982517018142761191565675562565001229193268849254897382839678197898173642482201593918628756747413437422898554939663471994139212097630856126597080762921814956593565591893247325028919830234627675625331004155649352013885762641589950528778988607982210950096604737433942212178183228343222318296369893176806581595724545569982960521311901725471414489219017582614267456861558992067784371587124197928741069960949116314041441940641225574653593656640637603134230606076421267885651655632035872207175885214630614726342282502159831260316296135457803878279609439790266753192594015301850152841798301424876801433271956987454497721397649927315329343211994403469856073918752829646228857512487412166838703604117460204980217896241027816208516421475248310508957511831473297643148091264826316377733732339054114765366029744599318319051902749878551618552585510429538751537399659084466498799923813910088717386337172601895407368529637193303313955062104842079440406552205513319633881316840415483920266199399568684304313315245857231562003069154247819051151733848488597989816032930611912401021867056517747591674288888170848011644572693715208253329374364872759923764361585171038887861469672621531527594574560610590963019013103640139389432138155251658940487795798479745691034485090590414550191953566658180212931965242778171243656746864461151882477436892604109135468719786434336540729500243073574727841689640699483870943237929026387219034897266052315362913146982941283453492651653608328464338619036499754573388990885844563586088641158213264787145791959000324532830330435482851071842804553148918577168356541144287401366942423498794014710054578870833566986074552286032064039694890478424433072144724683000187043453128949279830664405252585490602648221057502714928746667157366771156334626574217792117924148284206897099919160878996247062316735302147287862757200200169727803165457305336932558188595530475307029332587576526922559279722268743010501416639270990334369943763753264192639029986186555623515819063442289373644978664823985854874673391380587160480508944230743370486820408273358117199493462005353280908221900344167375408297905488370438334868435804073577694047418099325176911698775293832534262551474371496226611139518584478631822225561833865840901261489144697391293047120520582662815912436660019685922610963559002691757651113517759314537388042285875615393447350646539952973590309004570138627735145158648022764783243413800837446477368693098636909281246320310606295450705421984991130806592339668595387614136197292975917445998678112618986119055725554999557009728268580217806949180226928192225339364575245251347083515654524830733573952132441208543137288747779602655667872722177117939017100156774660309950606588501709871541585837232951016276901540972877608610841540770517565155103900083825481635757996667009322741831753018889166529277846897305753499821225691612739863399247972940351736456622950951081712199470126588861886746553649038372951416284765842662642791173528111817610057177128051058057477717398089120236428916159676473938587650805589151837756892646349954250456864285896548012739987270411588016668012843273866891874625927045907938180193953730997486510741805331989247298979900424001162895065159995810060100993731936689451431704060903493600504969307500971851650939800084651812984434013931450679465761720234303642377549163764335978223185011201633907998545009760410675480203266236225172584647297618690199472030039024456343865384072399253109905383930557276601516459778879824031962783409307489248274833353219407858836121214344112592630485592446712664108557533674246083945380375835393090099874951445657001914223271085150682454199514193335661216980590233607023307061950398833369075129457753808361569468452999859605971054558647624402355476002462393534996693735395517830985974253971233503918457044435833150092832238982786507843631436825794734431511719381121636204857685247373622438782920080419927751051472553286561662591138502555392377097763478775179550896240201014078765656283804828716734568319900981647858613148447888571308146646377104216521861523520958825288604777538628295463513690884216049298655368277394781084875888086867938420781830850224323739035273321781688197428962645539063755379227238304781006781352829597556595455613028903763590407229394396005527252065011278680276022004215353492851574692717794091880018479452100754528675080911618390109514664431302431534580007869213319751730482446231983063023948629001887192899413104198462046432817675700075163117891955879236849345734660953695352287141529847089613822716177847361592415002740385959559828906725174844375267471378513801844428925350291813381560412361978757259135743631301817961595803502909410306640745469041040881804391209662353847298371203796710978293519552589849086361922463888453427223810204834301845529723056918854121726216828254032710727450274946697228101642451079990443829116581616783166672619100194976203761250532040866949691798537262541145852727203405043960333420933466051031646488618690749250710274425230930726098190351130416126259442692022200071165956170622074490672850405457041661849281518704559126014536669032602278272271634325096560362577950692101974761093545898377521377241559485071909264434814544241336079507122384576537020831610038122051389338559758294614136177434339781692161449403938844568842886022478620025873078321818173510829295925394815196391744756669034664194648670845641795766001449089755158237720683357436121100277032514963032756668799775486257749112684583127157414115700280592621243724521427619209753319715000820612168955721034502380060580315404647546972948951915817115305887140416166174164077070452938261379478360937116642636199739331300118479197576634935017937228300227486337978431483301632915532966745932339770633988111297596675824762672535536572459111697496450085454272400948845673705292220213053263037356893356285610656626289534831403611665416956303898101559756698909919420388810496765320756959643737502821506589852148746165807897264394054930572498033913481323431236130939142641211305561252630429716337041105514112799518126773154154263775906967803500224743535464754043791349766358900456239808743729829286843473464476398908668441383369367251628637384700563996748554635352318524525118786568663935129381421125112330773420109179653262592228950249864706447696905228357400985413076181574186147396390570687999684324794468868990141427222676368742067742875375480878449967952720461330902915907847416658037455605190980012480267848096731401896824270993678112697513404690330585527761879138132990471931160391660186593646892246498897736414449879722909153934575775980557247670519866069236591368214005480796102730596087275885371733414288148658721970989385025805857825807969011539252461343405804585627211365458300060193455128980444765907454681191360131371500482396934313700894988159545951428496129055716586835610882979411812562413206573085735037831883616030145677542165941379419270672338071679167443941796060848443399946373917655305125507518091047456200991820398970195820732759814832822589406538768457617320000337461835208875774964515573809005172145910406039336056208863900383241754289877211549868648540962705041378217581545206210650645275496619661617957666577662710137624457266660414945595047167108361337733473337960650934661185202241857533738869953786465111392312421894566013816145080681057977663430638851948453407942204525096125892670913557766941828361712770884994707331688926279883597851287401119128858799086844030901566041822740348248388048308142961946379922180529035903237034511074468779119653834778812137577172823665522884639073360338894547261740483254257344258352344829535578784394969199587231121034669401781353255402234226283622708536292065351483374768266016945902105579492102596210465711644772366135113423535277042797487154169914088871601913417481902768335275580224356750047782596050615906232619571817622928193455524308214885574716397663370043890372486303691518138507083932906493446293585683101986632219475755244854512398402666430611360438578029032092193868882207054764318539099795188106771976653822217222377157258903879680992934959257477242043191851734148056315599377152485228887931894912041832759876762703540133548322651257840939935629453479415006674233838506192790073630311675908484976665109073444214640478955305510487145615542668867114542689725890061225949860439377468453308945536729724480930252918305056933331161532709469038891200881642591346587635309099316442093014951846558675996685655422426632095245351955006760124008477972036527246810105588107595075586055945584938099690850859151514501993034295887396237368044562888190377777057955031318146821051119402517135965591335413884560750951978294513226222818825056029706969446743419320248620165295465684771255265069646318278138416937636484415325622408323798749372134129493695183403457694948901845308386181825212008393393711679206089947647924143319693997275992443083189981853764054564845897562666768854252328448283331740072188099411196527378853085338128043850940290283286227431950721258515177924466734211782626572913033261307744575563942490862698027238910898015562945712615456419908151341894321031740248450131569637243731888285357854019436168888907940537438615542371207417939471140652853757059095459272921016341949203685748892591731737717604553082738377870568512122228933912583935320356000451358895773993531397412278944190936026195164109724138422432092109837750609327970146530567031565818779361702870068909314298448358764785363135506619007994811546910127228627942811344225572175946449195892339625228249523413823851286657434977536480659592875920493918737595562975843351117132965631468203555068822176299524106178767078546265344070963917918349028231470239888383118333015073002336926756729515769517630312036625843183239699303859229365624611475728159975141224952073235501631826196834797632212182940806722478359566428162164297705565908007303260043186055662659868900824508532134392840408786811797023828144458957216648121858456132227832952277826738049763893834233552562812232507295732180862214415209469828492465414887225419029445985496699622540215363354634287245050164903894060903171961845813960219925064761563451315920882852741132422740816692238487906246152691085938553083924557391552781285942159538335806193979595308881854551549003841579767387027476106287504902840796101922280904572611998992606492333188109927111419374927833449951242405501094249407042580680277720631150060447552278436463452916917689627850768651970022917194723185454055471986896353367501775728208584256210186262301921965604264184358569315315605555638946612217797350215461886664480317267244500978902258146874243321427284115169234561563744783246846625099163907086158138349904304342729482413990268376399854404961082035959688460624829132977322704146011743740036366873597869960978092088792036758090974244529979134646545017054526297353448474544447985760339581059551938907998250142966428342720204034409535506832815352061134577720957377937732656459241707749723689848973273544457170530205424241377491073389875808675500437752704398189930403677057033745126752034066186593248657156926224755223348000947321208314995052715205138786002486818667167246611285221604572693643885784189291615631388850976750259529443973722241125941695794795435840368091186075996056029525447734034234497628775988284053512280968785609291964889294943929145328644275335828413367059444306313916502510216162746710754370595782213790203506921596601788215927295464168043657365866651899820948128158519588897330997053931281670009048676145581599582699698050466148846908018413002882071350417914069091248487548447094679233375034330436869122125420454540733383442535267176848130652951165323261332266233719614123513692920154213047563763298870481418212357786807200713765867241577123597768496328946554376462597089985523895695818105928866689115984241642160368971988692355417910610409505664442493861760181857924493984253452436201271024676779582932056553677850877337223736706995761792645364950128412181934420584268598063408342765393900252293189236648964473352908891104267022212369217225609244141090353553569348301799861607643282128628982893432089276081625894929455615640076474334078575914940835937617094855284495402514654977865897029247318413629908104371992325343537988304908907701978127450252278730579520750154378263759639033829645096219678475146155276559844557435453070994645400422428522551292519082411736579600696065336278435453367165291318859200367355685634707835075854627793223065976461052688568967136668783095800582631979397428878508138631496367016362834207250259523332215511521712326036334851479936035614882383827389682626774108069441634403151711049245934472915797579820667452860430254158520970424740314486983429276587718638387429744869407015130227835424339407879967512659885639828683261532360603905564639233560793364097147042875798239147123188491769725748546358605867542624214663847928703767464211430623732466922118621576334899167981419878883389598740176357962228506934800010665185965955412058463138500476311475539702981590534570717948075779849578451627859479243327499646409508835508546575693914286279768470363619088867869613827908587305258397411754161640014035812994623137717117866819315946805577790281946307082456220817891323985989963963426694134536726445045267981209442988167362129745928315958047425137881412226415927418144974319803207823204919789545965733525677650609451336874096733771466498873652012494110290444360765443713737824146273367866972499606755550922070619149086266652018365420053104087087178354108275125886870969265364903508005578291457802404964174537205870748526176851805045339172343497082642059830282524771358146867550737122654228645254774499955688400398269699721305817893934378433915794258340978087514730114706434576349576724661644546898096710036062954380575021508586913879912396682919604976030776834526551673485796378592476192202339768954509833437806029338060914882756356399206736450750199299790706711411234473602268298552212881621482370100330965249034259001391311944625916382530746027216358479880268912817790431728169634386869907773150542644581670841836933732589140449026334568096744505193390749816510328691218955662314430122711496199030313212718537487516028522539352366521890554203088031398024528413726799589597468919832899133876072081893018177544158756680746398653408921739724582406416648902144803614953185549627570858580863478277355990584816193713135406592883589211548575223017699761825563219037874064470893990662210613584633073978914901919824811515849408918087245966843409570361753669665965723077961375040222210203086241191924468161888524028117295843618276556816984669764973637202143776853167449536834577580320010517629939999971298689984842691975703725491686318875231346990386706899171387208839588727512434680953852925337827467817511475974957734167223072057859245071280156194932169122942762661273807167548005170960000308894953887289651068914605555058500315633392044693807864086465836175919188584331064297877731427369490351260150240348729059784310005241908394409294828748092183053614506850970793657321689058404548584585154920267938985173865223511416764830380618526762143426737915784375915334746169233407813925805972062487511957020377680983117894290680132079889656829025009740054270440862947644985653690970397724278770960209489387679444687379534891440178030807834348055759843842968621060240224439280907434943272379433270062636904831609660752472068024338158294514895454809783655131465575457736602644361767808754345146434423479036125953446428229739820413525895432549269793654141198535435511041408895061649007248885410804849884300059949718971064393450375235873069981076934849721102845611973674801586144987229879503227917435110360841455516492228233554927299380958125300278559710697659072654908739509908391383914885035888206388125327249865989493849523304884032585383199065150766042864741367051127033631576475401576705375179389952486136986390135199510309922788884166371240225691808454869656683622765548867266761967027477669000613097727148059455857531924641465994788815323430945090975661543891154808474088946616868027643355316290097728117727013261267489576080392323845001861919842451088107118269502801837175442424028416712693670869431984588872853895627110367334392846880749174692985949074691246015010396364542800160429281775093698331405179053532804694868768744020348611025196714114505703033416447784077293220896768452662604169750209388946030231445077624794844931198165443595671002846522055544145650718460628333472282109745336578272163964585029557197777778029023562657169522575283038238411360762389192566963349518031082622708206507831869074326197328988873251848698271656367281632687314672526140972753881485817813431264658457864913562862994801391116549148604783115314273665846723562496660042168564865260036914791986985740798667898673257095277071472784740805927634356833269322805968405970386999598557139334595670055121729455175790475191980836105136171902598125500837110885681243938313277985811369487589869588732456423336314900616863558046954191006987055924644804164687844928308591411421998771705129487779715926914204932652539441708706420965927114742532109022671162104390183801825823745694751390056276070788621767942346609567497086443574572756875870768269720066006617446208624372367319457486572911694903486324112763983575063307918029311024792555915134791391787666589690742701438596122168768624250713628754286101257693040167052624945506210614689409591174283889494127406843062161682597934072444913483888489394974346552566904811848276559702562654790830688435468216075460342242372786992385804000893390384690658982238915238647991408375961790455367157387917491166917694039468416335175336829657156602029726384794223413159062235137860252719599246615847727408113122965999295498073431271462037520150528024188789436989769967475941634495143435111081634105089798402063558528461764875589169440129537952242650172603748782858119893209094187962220643889558234122904125609675666703705094246031187985951701150513270395310002187217847662982194278974569467336772243105718301501569983350183190053915575456987149380118419880995802208037136400731850550019563331390975303885629961894505845872473732554455027848835717826929527537955461726391156514039565571588511698577218558534500736581534050093765502741034074939377603513191186082771016735104708640374282495624505707059518659225707775929791137123804421041718046265123128776825955629313304594945817150245558058790649636127416185807695871896307614310647802657984972067120369066846753990554598371800774428449326311967561107945530011359244549412933583590550783980102074572011332440606863049574923780436759624116296065670214705254643052995382786490722445874756391284516009184201556746424683803857472252336122973301965109602158420138305148539725788668069436098340214674886463066324569434707064004043484167133587362381608620090418748031756721422707069472405930829775142813584595450914595430025646158410280695444147419357621381559290059810909432852329683959045037250928874193161361644078877879335053858973051168968415452928686170989553071885880655245673409355357970952036653412522839249120027324259204537168870689260117932161360875827810126124413461224194645953580847260705550532944554752217785919790016230729047600169419661236516650414221640009450593473320421817954424236438071408362524430806895724559183085529641476975478041757014169054845038280437726732528065122848539567301176306333872453957257841311922346763846254288550035498254505932425557018007655142851965725882379700123875676941272993529265640182172493863011957962329811751110062869621622772412837520889296511757453240864163876710125238679134538031265547196669050108649689994552409479288386171145334242111342945049356060402776298882425452666683340350367846220417492242051844691754229407688564262852874878784421604371137172703283008065527559693391274227818291229968480006571774729289753312982173364706415093883423279930787877450813330936252742428568261490040742081188923495819759003966633174490136464331186345301500157046048287768846573159977321751839845203432280479805947503697299732037769767109732324941407523930129640949985818086941480967111258920127041467609430754785940182714796856107692854063321589612405170629450433794112401613050587354340911284886775605756318019379086455590512424922678901233775049780561155936805138383056480542568998441411510765176370775451802496075961794438988663169642270105941929241944783908988281654570090697708000456109328715928673647216816979526839742933150692346294686605706578146616961708295488472888904426311200060600357208763441256110628656827898768332157304077191075111734175999302979302800859825369726707871001202636812659720430628409133096984661734268107874247760491886189627310560204972386874492375629931648725487407353636791781746672112443512763763195286070799798026632863686485153046632005562697941995218845490730373403022696770064362602358284168102738540777240792554311012408010728904653913028462649145520824633984288132219168141024661512875141782681583694119735616499326774864898095035365362330275814955139258160025016475915183286982130645752750673803384719996639113281652588412513228476095938607895556580855674629737058401180631690354903612735245855311742986735490341430804884937173383151587534702363501216919270655771912718237565040482303468810584289609739467983561103097063398893745543624500758297076950652257377270573451333299672350239772336539838108007442809637918106556068271118070622394224566563554422206747194246572618832867479988728826142184461104201247918247913161571854422693023204922685865678589974664143245255918789757570761726529146243813325704624577249295996240199319789794664653978954533210431349089385262409707172683563181663132858255923666890225977483380450255428511709714111692879513619907529696552189230913711734041139700058374039249286347436885074597295108690904348689183705086529371211427268597500269356852010654632314664558446443207338762399558607824111386627715644068665196004997924450046758317594087969845986633475718927893446703550946903322842865770670739902775198109683351850870110463634411956960809644639927629619610595340903474239588114423176913261013004462653358837365620422308223981622250184970340951716801214300371002327866799586769018389979507571180234517184919737115772895683793089302572525115381174291062463800194866892060431261952217325761366781029568414971270727025315378598252200763100580113189437975931330481165228581897405092887152216428581498534568540990125066576318036466322871279448638633003594183339331485708377629651944749261424407212743656211648926922245547866174453097763728339707983965338786419865806491369496823559213757743681145244261459495515904664713300345008628091403375000558544443803789342286112267076824385453325733199830892499060177780374124037050737677288595247441085080412449164485271129574674906537875662054903016490167869314647580941576895649139129466721821060330689175456804589402082887187343091951388688309931693222744390418309871600961613879541507795425859132964919593114883057967719734152643874617606382404961776723367227999851791979924678215348896556454477808742731999351441694802279694260276248863566843957829624379961553369002465651138741251394498050227844802045818693553263276641245169580594364529800778163562010235204519730322186603927736549936985294759782933827068833282620807236338123868307144717416784882440845599408605830632998090269705352191350212020475590052642786293324808528481453296135460764429544239992013575103680673791366333403098236910813463336305637195102701875777648368425736409111769994762013018782402298265328900973201605261485972533418436715126990107124745207175206269248484117179736690046021263872805223770409837513753034468713183906608815360774757000960926781408956514657758920986214844411471145453937667739980717395708967238416015844368645148344305840387280388451359887835656225155001946585716009299338544366583477167597527659847133757130664019779385846860701580200807269211341331330365124867344268937035362684257378498654692818255795601069747603709382783705948854464320431648372225248181538264149051252430789086101065691714666391593284091918654259834491434572593696868861490914632010568855041186955239820132547492930632834308498776386367275487341337544716780832064011374624375773223308634978626412863922652963203657616172366235271199095855683165190288902587403266530001697141433803271840668416313917880448598771909710086132663189017984195797192746586952429986804125817331725249021951305614164468621777052152691857323397459110804825070097961567599817812939153004369203871535312628565242429739016394542355914953545398485573200350396809861095726019719033967500542110558636851474960718215557152110934810763742319559622312285556915186816216857570910701318117413141771975666016813417304745547738957286543004191829371779722222082399956689086593842806187185480972508199759493209207210629406925049326412896233236997213229657758743411369114504131474708274215171747001512097988130491095167234458496401795241397807711942058076222443011431359622237222094874323744826473263268591716637760780127083775624093390587244663022283450695007475241316978264447535054272685711047735728157984640743706119162046738871137235978140177487079931727018609685628621124551999076305554215216851499734597000975639682647154750075083751074444605458613318586091508826415081125175651356172120633265057929421756691939728560193815131385311389637335343174877895041139324214496234264951697446142753287297236545290183010117053491430268860789391183626350482634416078514221947367656937822423281594962327600393058777492127401918255133543894788123484204588643338707105037058469984144986647974687741722429278095565098130647326853227082603284261825147090454433400411679824631680989829060966569117557986151462205268581757496762981653938142054873639159001270922967901453023455474432363826438238212515896361131538223386729425232345946631667204396227627656956480740162910754441242473526001283896371459821613872628275624272639053477188222734284654786417774306479766792290444983637980904907809422641335004805570767578536061869827260303174801580933784117542135247149042685960038221428396971322457109052541036261590621714406573895575701531403260943431269239257106846145966604425343696370187044181442045375417250874829284681854440270505734604138896454768367123100288427346421184622249664365931951028879651190823257715497649769658126784561120167395513656711052145454225704341260049299235140028809417646384987908079783753317088437995255259484535615381566825199985497364918815118404726079188326571039484442666734413397469586096842938110536695043371848838103822011812143389466545536009132653601188016593005098775316550400715807840687050849358855762735392418860470525867120905998222098944334251628847198110018667919566159239446815565671818159148008877628724170842803229164551300617645518419205137537827057483016249995104650986975486677928874257488235390198957627558998554877810208827534821071726128353913647344020920644618428236376917431223025401831341365699178145103075936238893641861313659927591503921474562473617942923679837875671434089781287319401031075033528954985661147905745600052468274458758776078095956339557623390240831148158669729494539813415525004412470888933214139116286779544061772237697252882214573464020330307241513185549781163232231322922610183433715297864848343556089915808777859095565502933939584793786688798659525368883614121223030197223105095126338951289908041079294047722674640517508045244838606601011379663552623157872112272669300895172839342290512131864137817366337157706168460014151835799537219710910468449234832698385061124930035261000216756206846761869460510824842924614152342859793334579544113376022296615152164599495499797279653545501142603205825715967456158137965953475777265893861137173061159395407148883024741250473560636183363008351461290521681353321158526370780332605795135406182634130953860130546126509842508312781270650482935322143380598040521005660755082333199325223645370371311906575059736355931606053371271182234395981433361663100316377767100579366824562260035656447938533165051435766141259267432513514092177856661190774427527972536075149059364978687514519012258949798062474301063737206935892193636274577221354283325017235157577557074595126162136735117729929707212556752239249158132910943106892264450505876628148669172202650643001949998276676025903855287254549595874945293908291336689501626136766283493618773509663160666186103658520187632164056979723510006008209979221272025627444520704313023527455958212326458337869163385654359748191211542052277999489922014921828152392011405446264584175567416540944589727908345244987478620714554193856249762431169421464113666066726011455921592575286378605314519222039188115313691194936006110552002729073744496262979459107536585203401133516471292664467549728045457136251326924551872521559202671084936877347488238691116841096570702262320303659162929797855455824072268722674292633529884829072755013169638347938515113507505522637894113117508824096414414269902269415153365733765229431195015962478308690241562848175868464288427222472109163253602497135383990768754378984601310351556397090322230552694028598772513576528748630302040256838180985987542373472297360373176670912626378508562999886376262133679831040018108906745031567315546311693899833533211207916170889492342055781891395716522166078103917924230672769139121831410080661803322937688389897305157122398887603198657209067793592856782454843581772632725899796180801819796492824765649108820864393416024524313735693146266434686990532595730530101769049767362468962663015267008422944089488819414638726912172253340409938305557459288168965039245562048058570396713896980996549404817483105753825675373707739315775038360504778918134700229534657466526266934961272022074230614806311285986110020295583686967880613495135094447707795315963652688482678544888535930797107600266635165494808142754054759097286215388633720393967928892807534525393019492587014213154169328490717941785639073938362764938846412755086388191040170756299626331086379870821106633374676844779470355314407027526124368936174907654797677224790688853439818081733631290018046685701057158567704566132520847819176850155340816823621583772667244329165514941122665010431053100710059363369664696305022278920601949772077241494378399673992429927467501348355712607748593617386237969582059505655642538109676071573920595663456244568226291703285249781503512512306891334641591518729665072927767931387471879388146623999490972817261511684716926751094236084658991325375494606685188265485580793344845354729129680246209551547407122249731340020536650262809365406279599398096663298518131086177189755029279563826814260366459467894955666507730810400513476677595252407297974915420153939908200014736989356884372007175891917640322535898408821886902118439847306295644484120759788882590978843520096361621679125105072533849068401204997714052441806012686171685420005793533792807608318244129506731394824079203024379744500958578223908058134682747079307800435303676065262242507760577479760083844877839742496167203764966170484903354006675380368935832706007228249398764179349374531414688098874419600450098588879606693090090854709773323856033788749445296459576670251577101211574534480664961594867523377026380632370952234645655262528890613721035998839746330197625765419354614716692475720282574502041122398015627365551684676562415082687141314413971271478439237026893094243457616526506658190116306823782735127744893523824552945846487532734447167719706292166372204083950049318026948485624969697013581687620158373331150898505722107004257900908882142694463803763986141047727012209862331248101920362089331705736446111693517971667978959533175394119956851720263910696762906868785152679419112389563371831348644027200323503135703143584831842585224770567720495491866593136503798499737891670243861046846335310574911619557286794734330892032301025543156391809651206822830206786947617112057588585571025094376227508935407713737672157769974918707906684415459670565965719285872773588485702251419227431690430010280922108902949113010918729884283068903526074414822918518284615055121281980886361455626173878196192035250770971417081193954495636050432423595760072346059140103079721307988161033288363291779703925607878175924482631098464154680693421153940060431247960215097066408287569286426643072945708752677846011190051082409229848191169758050007986782316409651695914486294305438796399117272031412705068810360116329717852019611599756879201472345182756353043239048200987441465256087825997784437920427201893318782617654869508034348158935304195023460374288725639769970813400513350747856641340006014746321820930268004766286453582707687378706405914942192034725756851776099919020078246841060725137900918288493672742033535930923340333505136159458294341785951815273037211098980486392734796488872560790607009919550996052985751389268025944530266627926084746029654608024649187113847768260957519226474098636271895245234463663652388212546663686752390030575860740998767183106529039573097693090953884068406986498378328276957591113712455176814855614113781778741757497707888614806020298503741743226100313721623455174163843922042347343363006747771134596753407440119952771118040583308050051175291970877968990603308257338190845257994637161533720229666258325780857119263290548066103305649923178987674638492622370096341932819789206379984918642453038096121967419695230896888331408175627401595520403236467818782229164667386393200120230835475889902737150020613249764963671630357650814025613525297223460681231037830593232117185183580296966299727826469197867930609755078702394174711522151347852633181569954821054049973094424249953067938162629860835703729949189921023926664907244316326991257940358199373296907208691775901207441356847395255527545931764813666266501570168572126252468188683846464023647603677999937152700785666712033183867282838681293142214389831344689478443051699560962745755034435646390634638966755762280218954310372987589294963719540860261262771231465915401524052273414138078905740195945165719414699976925295563142031706869854274403604533832114290711442549690569304915214564359600585484252516651548083376154072308060281241275708927759887622396946893797755994530273588996059476694935897126342114098611073002559573395020657722408928094969008351864328639178531718880824320141167857345938461610659169025170312576353668346052049774988517946807837003487115897916539676053208094486714979646559442767366405340769369686455231583299302064529726158317476269082934710286630353909053592371622783633861094516447180449798106237714405763946439965512075374556696924489909515163245487054382225435203101515640277525902356618142499633126121907437410444031314310175877262436320655753498327513262074136028496662874051640442739519438306915530678777275385778228496214214603797932941536666724777018093384908178520309892251322474300952851285909213534554878601344367542937671892098698280398603432527732703987684548860742645528819905462809740865117026152153663425627411930503677054262721083264795823850994417900628676426990126427192333771672626424269164946828313307291122282777171071152565128534416092880732737771887920789178923052942894373569542522691840685326836163168259904481926713000679272231578176315484011570548953432161577812659552127293611903602253434096735033943675634852780893094017315165439231725294109529637421786034041270313432143218569921237805208229570085116741378511804313809131934246678596928011302476824250071011797501014545546193123841591742931125368990424793818070672497264757621190400807761646641480893046636645068018727499425966357371781622307001438204390502814655433927395139610407140295653984901893490508658784533918388865308979163169497027500698506368525188111293197524340198031173530803951929666356227488545334936090963011971123908663800543723821399154504931293698972809940776112854696289512359564155841588895318221637599570484083678606545146836874439550305775943049509669054007097725950762072023646908288939433216233679842694820953158686394294485377887229735908061550179865436757091209181489595317141466485251062758766583967230108159506241633549871233608637852104938731294904079840545098049367498673747450115543816636275874873732317256000189400946900340946368441245391150215336959298289435700144125158793850820550081155922076558216394954808470056713958780691707147873155665316754954780014607963652756530577607860660233764144563292480641259871724093268665343562127906030477732471335403394989837615085694947280853574737890165797009777389690071010718807264138404204451902099302679229969009842966782565238443424507618573393006835411802323128295475820613311109101348169939754213816243716234859942121082018413957281029756064643227776925991872308255404202501194421977726101405059359934127788659362214432055314636024741938622527996855442534220783791857925538769446014268107111063151602203948675186668282814481105905447888643277582562111481107682553420404628701288765327899148006291620806561482931719113828999581546927342556677703884154957593078061179552058466646846175261621380351025463583702142164988426106837795354494459791691942498394357622548879350561559523419360221433852012451352927967696768474772640424229353540268290012002924260443391984438014222776100055281116141853286994146505794107889094513270331684768785121269566585301074989926487473754697779788487375152164586977569654682461552754795036674639309383427043699402356853726824246233525640577655612113766737423173685987243023034119452991073073363567534101519846892340839192129665228795525623014545559101899170790955479129744399618626537906588615617913597434635992525223542900431526319071295752367859560346282778295465304307770303323434455929934753399658441154945678778816906941591377232214339227486902888226358411487847314610042355368806459710359660086328090971291324294470747431364401906211101013160687481501832596503390399854562184598151432637352538674842360544055891614072272650807680208075728207747473987771252884619887825453817897360407634051703740959816402669191387789293086161995409287962006901523616699840773060611931168304633261268014561791685586839664068517614994317608731250636241079586841650867999291364826534479175862106730375467351644325407237587098603781579668033690116221450165212441485338113355400973996144615885159286899919807314929444836099910050927748526577628750899874106904625818934367683713646341530760575292980125238691064758005207010388740619046769189671938864092087884377302290170140466863879864291608471731305556732718237475468655383539677610338570428082367301607915227904488873814395767948713637132912605441867068193028674032068401784761780287938204922062915950349383476960355030479070188534261669577677311388816000383202826628870129359283204157394757354385867813708909724159864457503860821940134331125382927597943269604829734948463457030352031783507553878372100441887066903601787455666731839496244523564020296521484286110771200947167201843788838780700783342718088602886752241341659251635504089569774964651932881374438244362123417005965653248186119020879022577277090707406333514590505303244887303148919670472522525239151616316598152188700765420867880406814810076624771278429818454522029314935776707935579227406515313604398628915658431109330311136338507784473404737727566740688989720703210639801382133992740338473529298768632371981779898404088400643994631733875713807523284370778151907049418984183841131763408376941531109834222756571437627671619286667504637931493194946145823854782353261317617770092880411186204356034910553360971953939108484406139813097197088754848590929956482065432518166512172152159157066104592324883271977481298406059463816616745303308131283686663328923382073059377680496157897767918382223094202210398011618692909728089572756638856828822938310705601117497557669025629768912938379908008865281285842068703860544650328452896907579650074401299890640695359119045936602754245285100999663207076244623565427215152494287305077318643480313275839209101479697681838432222567514225061264757839293572121281921397574197630828304197233269481386509404194995348839946174385312443821285422556459675782820742161063767921873993666318830847928542764738163937489556105964216081749557514456578814348389350942043008607142694454962899269659025254113354092418696921793608137299882902474767636062438605829829820900473622057504689137901900337748698935364052842307279275140177105956197777065253309618915168151880662183299885309490318799973504163821358946615060667967956193420896006867070675541225703190020037334736278468708901180400337040771123812406996203027534444331570607617684426939859207360692576674890995085902702463964669116745945002401328289744490274964534844134687111892900730865305751041325184475245081415093574134387266568715084638667392705766687370346685371542518681520601442298900801828439577764250052105755093614952330901916605870120252288107243769204514312154736797957123201023932373358839432098967588330683947475606369609372145232839742713440090271133955623724713299901981997693476258780945337628855798720336033595464820840760944396590069919552659746867689429729356892888787281069658045714117053328834142395829870718858191420678031629919120715125253813267630099490042596054840709368902043012431102988393623649589530203998318244155300219765588601398084909916809948285979989085695478560789300950996718966547412161139022685409760053462829523557225675029385579761246957052689506020788447231844560927354660463618378189716298589798504918926045851753277622160112608115518983775905264363573301436268000132631462285471867261620128312141711742183647011676604796712280733164650919026778767163083047486685787775038998766499824670483650668666390846872815154831570436265250706077738794959215522364438185280487269235435240589481109382299959733859311383513528451676044537517662864871855904586834978836621501900146029412168309687518290147214592638576816046052712924582991883702001465785715530459085431861462057625993460402780794741160209745589826631366342146018408775496358642903535969834096423108045303918372831907448004743115570141895470510501353313527881650309640092126597143979666205759450309155456153928452213470416528050763576929244138129313692313318770856554544526318340921667461770633923515270359442274462873657129923732159302964110421507932347906916446183842828541659907050138528626144157849470632830194180581738582911904161194441943128295637427560512952602392072917745653305299247611199796162470418984141013753868529118552037513483742291667223986042618971892491814236862603106557092787390475210161999362245430821883485224713203034429342511283119276280249565529968875864152022230989488972554118623580999082264068764723846649180855559163094182483525118129640946520837869405440643777723878026558847130932916884120351586437563174865267279913744319652193907328573383964083151429902538591325030977618841641251189231130167149277301096947572747214555858417591040750565300215121133666429004346521796108503651465545883455768981513471435201409821195984505193439671907911182037374906433755736107501468116965033591553780704679088421883809042476078868558325846664939355400086943375620706772860963355035111922324068404381020657129024065856843105499613853044403530416611101578902937997439300952832498947127124014671036354025876357626003328131401489674026214501973071701110109131227448490665464128783076477224843702328782925106141560430701293516264089188787842801519069334096910897967346922917350741789167014866814450769452768353058961603068415112622501819304883847951010845867751636076541998324548225429562008314816050799408173999834225443462567702044336921326154915615524736148158427389305531757992446627538449790694469209925435677825194705053782929744481063736358089882477321194699316719140235675943012109206240348521389772895608019444048908309978833391638930693420210073357545877636435896087156213678188601615007271785004560634768002158879850293500002047697373515678300166178985401080576674523220071485470092827258446082512842957423086772436078799883590842170062316351149333569792198729005759753790123128916263728236153367939121679343356415253318644295675917815682583551745254584403255609733338985211603843127646953613374362058548018622740177243606987217502212250115791471910253353287524984815226502407224169166614168694450848887570786703651184806840739670445999025682543907610244475756750307626678780147121674906969172627936108838383094493896519425066943472413418936147600793853183444304522837884341664671240838870776065450170855670597959394810529920187413658453142178039215068423970168693397289581543641655903192971638541876986998066422801319697426895323550056118173822986614285830716073627334060294926706407894502478857028738221546437416396505074256222836669372320790425613264357765167856134804478545260502999161463486334549186376695597033976810408880313133558094735930436532586995905686543340530861082196786103107051022786798948987600182209187600625792881446182582843244001398260220049994207548779094919632113083439619074201903506568829339329146117928766991954130616940411488740769348235220026336342091046288274615365248284897622611041606886691710312302921980384935007355346139603858005262987277646065635007793847574175070155554218912700368344133569347456989731456490700829511585284192746552512339337983630146819299486218381378581129553080867661470621641700883632531844608906637403435640108838000407427820765197281283966991316072538713075704634407398679065629874208649372984305555792642985181460605806408007750734454506706310770477951631369725082437050106885050599171736533516044388683293068553679896010068368257700482193750470520538349769789442280882484904806060592138534342633878103660255235149287221368381418469445902210486417311948021491726027466259499448844178610552837206380305754841867241595729250973468178230477344739973492934685813776610574298303534664077173194700553796115893614562828072345639545751254545945942881930037150089181689883096737409669218148017227057995564406499827381868730768375461200008848308162192280033851907000900083330229418437774960983099590448488412271619190065838360960929416167559261147640308354593033996099216529769487938765722199086795391012751220562293663195440225638511820930617566313221493482050575958120995227527629591325242776117436326216601855198174438543504325638248501144288665294866525746871701714996426186509643182396528267749261100798626096124620425125176813796336344983651907265660817048024441721361207844467674200621846400720802873743274155138210066047414311039828056565167087161311433091533571983798605621358986481096804923147002948134504760982877586175876974730224125975268775875610417056416838458363238674103208916879943850169432266952541280589673277590361495620960738095621191551775263116776916393053016684502013286374218882388284671680942940052643277729802988670775085858113198651947264147464867030604956848995918483075490601890537506784240225533087193979256735327898013065771386132641746068744830744262812452407529940690651562643866092592631608057619335426173060014084321543321317149564558493678503700128136494588750484762834902448166531860293633927131595022240725661426684026915735349282974050990511101970387923498820801068137838613235023669871102430651055702679237261266548605899836164963300324048609706660755741308655173636531007254747236418801315073317755474183291189883214122374859052785264482536798924449248773407455812371002167829223262719691258044593299870539780374789058159160421741561151449142680511121110206511164177094965108620414294576798645631212825553818675906313277253544464962528763811038541523344024317850394465259843171504831539989754758361797286941329746834583895279806794003578570031642778625628598135759777746817206239790215333878696655886991385709405229619311026496272948311087337861115993084139657675650489706438365080403445704903170934942455673364330371917595505926465961000244869012794873707680730509563413956486147351248206208333607112760534692054782976379543553760763522119331141626450845761631322500391842270513112091208576003592000403313557501002632055572728134267736288265885127235784046097518664124449612591660793770883906278432507560435825298704065410238716157676850360890590273579415446826822630612992707128703443247899707824612595233857859795970305341808832379969059028970051766829168821146256922573705947724583057175069666846771940964632477537798038003664003067980825527608023664742324961208723100240950080684362743368662760377309677694677040729244818624910724746161759385084471961732099484231109919311714198239712647112484889287136568927802990029281988532718129872324798786756528855209206886839387522102143115988439084488618886168049712368047103122216826347782778836660079341558290670250194573462138729415364798900484657896632759043923877742103231918055166916925486907678331753032959429040465695147800670222296026426116686718020391015430450947330171300559601267152426233867475969370187829517302580811892708441837016900018243679909206970177199527510889785762223816232504846821831930712593835250201349242602432192620943222856518628577072707116681480095529865400045045966817323291365722874477840663312714716828283780788916029917242463556241005784627986752129845565003681967292574949341945597726710857769549426544753947810076810489170511462201928542484586086193811421346493201226573010065584313120852791509724411284481277283627665100887098928003362121100121596900470806225308333999920069495337010564316082634454018174982910686974662602023929373771659545763900189413098055995311131617973571595128844159948504745538094715073828278421259149724329715230851714145278738480777397331800786316403491083022645161661915785548050448147021292709315822654097298470140659302018899817010224964995414989877112916990036025422361400686818108050848500233641747685721113440612132951827926155663803152503590439917067506426041462355031489830229278301086793508232545880644404868418502339035828307508434296626785962227275019536742925454506658572996977358622071129291807480568726719265407723055879343898160698156984617161483890088016849610381850019804256418278505790246389096420189399077190793022586848782445904590493263432579075729001976810463421463189052525309011719176548322419431591906969169300210082688019972519581705279596828127305320114322045646687063393515254138971931960581701315265559589175786454530260529530149199897362531649776115443062695128297592531649178610978535559065409447433046606021440048978384363865467717853883098536645715462866295432300959943357105253923002061399016894554851353063242803438260891530290612973569903998670722894274794814646525625109293331746473787947992951086736819601674808938894801724751842962923645293837512397829297103357600024077158862549556492485283198918100449603070117477533746831362971673137071830753431441082826962040970777227503378247740222420123687042839663738690855088283703327758261915679753240791627237688267778828742970723701849330755474726028683538989654218534110861261881161333084220889241363486813625579668139039233477373436372246590269789993143247539385305024197330257963044844577475197735447760018582262303634369275608662696700241254712190733603242797902464172828315140661451627277585627997654038054958299604178959693292059592730905411814815380180978805691483793251086053619102479128915564301684953203807584998819790652224065785020124502058274262124503067211915576996572976271469253320280064602490838120303053630955660313934143887809440453175847239083652222095702441471263848123099998108599481963833937271367202769288332403172800353398967044424811533814991473042930989075752965138876836432536276617502538622179608107519777418791331048799321105002297327897736877297526863659307210210683288617431737401697043322764378466558651578380030246082876180738846231193719319960109373565478589810494763312318941674962865306847518892685704590002582370885304706808887277583570569021002658238179755710473993295562624175138843817951520168535773178827493634928175013827323161592298719230629690557217488047211407990930113143082229609070104224881974501986746744830750070874449523207726152443857013438730463391472135446546429667735192553248776048549698762195783665520581281167912569311781301398696178537333570739949287930393999554129551491033692607037474196984066228357695442742528574141738166602642814480122396806045949175881000236272553728833399459258205234134908615030855648200047956237358771326746128349346982840930374564779122380840232950145659295773119619023634913299276463460565087590108797554212967184701768116673191905317850619143507544287347206616861302541586421230533273114760545969631658618122506560860500421603799905714652216650601618893182304203831196964549505039852584803848210246197267656553232861138737997991531926900036689071624037969760168995843756747277778980444937402176294627890327536021910457046855069349426771514548640635907483506285296972402137599147851341854674943143591286012860560476609924254451070449454100449647967600841049592900966822513659886165712057889893776759210148664003555084291737793408052596973429768525230563926119611731371681804836907586210887989989715988829002573808689905613383907095093557729035228726322497717440022808798960081164327553312904060020493951962405350720768007152509109777972982207197421287442522547280911429602527635730625565590659639968117964740278139310551105813455455996926120595716066344826006727163389679783575395953611534706749611329498553479600326589258999802475810659582894890237258236048170609496285206585048756267896225208440265340885274829869473793999643281211231608954049073050087231244968023756482649215239107318584205291861092747773178723477092193701476494164499991593332930027444554934935753695176937483814322175821942200090313763255598247169630243754246894451982257489293340445574079113001218864124971894848093325294221419758183346936671317289990993301785623779567777179446780426508265939379956507750450832343614752381216514692600823782229568724798131187527228410785198333461460220226164051606488090072221036618675997501711608106030083780991172474702451397940459993673557957863029215697663885491685517340892159013631513675025682334356978641336773355198362691039811527944430158348905836287547714782307984829414247518539623931387525803928786268968562989279388456029419862205534065314852953395082181248114007945986327328880157987969157617682939355942657836740296931180361046491513648363275315440784040281493830844925860373087633759821930507501477390604887549425983938150204684619148397498750079349131692267280070857744888447250899551333296908538136104334774645032279650539157159380763135468795036607218471251118705093578210295398216763002553482330634342503094645324842007018526288842234632240427323802956028262955131957633802752844223660009532197793423487680273254454400857115237384322412191395500925718978688966023538281106110069257742942193417395071388439078999185420662365301645900110042444524710186127222311134098361147559512210913916115964336148446285791211006193683188513367248694105310678756522604057432588086820722781209884931553599777647687308650346400305769944526095312995007265180692662941157968166145974762177719218281863755640924557799104127586399508891822840505731998112467894281388076376898466905266367335486234643927447027635399156561115985599021939781376725650972258380749939589077744298049549827138882180065594042900689306927913808077391138009941276931123774083799346023379523834122090971423530744760647470234513836617138307420105919909651531847732698227489965557632293985806310030058270746023736894608462524748723197060848597265429790043443468683448994041362135551975366952442650534804907672766231708134725628089224927464791166230532733045251761270929899387425700413737608010155033975289979194805116275698774229580526567400966978590234483687653620587403597131591390730724976875438168191193039362166158854801544072433821036672171324001110041811811737296266358710257544975294699225133626959340560913310762735103085452477363475568370208895579164907392491257630681274072032205928602115402022011616003822969998966150172646672596587298871751790658333279985070999956955926938516462396951036375131943163206780564911979037353624631706003679013742160460685463789461711633397785877760510398405368738563087754462615115824428505346771618643978672120741502524333295402803633219264523223313557566633718754071226362873497504166045393864617821522941207956199980388412793156366421362727567846521806892904973716678167521071487137400110930143850475589986948873939406056055480535079050600767427196385871572867887095081439980989838746422305901527953228154355836555374668266767433846094305417910175890654690778235931962643549844081965988744737954471429038523188293811277401836526194890294689506103150813236151883988380009655410497993349368335154396040030232956578067462660205291543661726130655846508258334824074109622676590004353250922193921744645343233252974117166085636660392032210953819540577346116579004628464356436483709963974361597998264028719084028989334306815233294232100296115031162959706530182508662926721082942298992860690213659915678245401320227975220410308284278753966166847763999495051103355946822089431002161944682880281544076365120125302103668745764872057465395459947736050449783833196954896666379308783399070628437477829289957033988961638601624190686999843819994024748494915074561368513702018515472695001487887903277628906963279741582769307964619787381716293020411985158382111645289514868473992213407125867396436186015294203050012944648899973645881354907813431462105788117623385059575080291613611624018186342219247621004148105563330837118341607942134706226213581762715310066891592128415571066434040092726137260589964024489990363355927176908479316124858690947984794160617709979180713928478680994159527983210872089502633773758843142606637741968697666352156205907846802982863518876609566378809814323754504657443890486115396793083073174743751606023074755748001860979432982377974053882654712062476372031703756059189369443220296227542578556086435421054548138831055529946304908682186135877367317240403727678905452853243261466434683884630742286510955827788564900439204284745422038131783223956062628081030774295013247730058230619366519470768921695363611182196954203199015930924755392354255746848670651584635972509603328841853575944460309918769973385112621864484576303208620583986528462988953994123029386136632857482316435413905117579914799715228206524725685627666099770946142752141289355376939335191960709490052521972954747157909346686798603180768087635035853045890341898033376738159194355376934401812925214454096499036387541638577268672603921411833383857002674027757786269668775169012681813428618498137456842019458079305594721861394399171476400693269752367889687940383869171153362454655670169550768124620876412122104721872151372720866941544569980751801376935823555639007825201261845371624673034071076622473563369250623123626158910728644499235100414182972245201284211847865803189793892800911746818009798455885586523918275998234020180879620505575946388711751475532719690656194361680633743375234601627718356566214530667688647946323447906764802647497194087452514326711556466547913678094474817940578057144016475112811726440613410030487435323530253206460656666096011440429794975652752102769690237748733917547152608735645213255911999054417083828109300500427844075979437598554497548229134046769398784428585082730714105935838557571900720683119954376303453777048959036242388279795365693947124524371098495717875141245813592884815734570693038125286298793084978253324682033841801484769983549861619044669115542674569612941496418337734999161865590789454927764422982917549307411385332772708293232286194927032274432996915819771488594878258427696921767387241854387751714458384678890515005075456919926145069662858958948509323319181832120253447987129209281656141814939249032502809572354565405193452968175442447250262647111689533161624990715063340079777127173703639231413648617076224561027998268820629818804000331254922366886088415896416149172025604569325510160115350521639308632137437480122544084802761632296127284662900107563634960710170729899727746063207361226240081010531577104031204432129357266211100710935647806731381620111869353480193900552633237872183653399714648388711376043240713544211765417221005794225801991146844110640139172879363098781948349709170756658435596281731502821566662259153750387568991533136661082445871244180278462720746845015228580077329935376105019665158280653955360966318819611179666815931345080835263234783535765857820430033190770353461452001541946085645064887300354972277243969620320433073616497882254061936990726870185441221933894525365756392917384780446174065269779680707518344781294427530734447107906160070126779631849268441361356608464842888963540722085684319457896716376029078320474193472507524398568887778555007631892957871550432660174497792634947952101430662261935116986596344727256753712306039515669539378821959307963183768306240153700960908514439152445380790039242808547526848447271070120049031890911279512795190155248360619940181715505035259134625276434220305368391405143677977386355489178923085304748234639530440707868453944064262728082448382988804799813572814675935986970352917854619038262892672224090215582437618912527671834565763725500832504235744570669894940911997532827771364201594387681224667898460812518666963019469018802608951390079229126689329496317008944202457783571322180635798465552980013773644337086005581097829127035558194645982741606011746351096064990211227987215235832379158891694005636934242564171676223461389910450701254405042559544635516389131082463451321575060593179526991887599281325765078934528388085003472875298998683664607861114246662605022672124864209017929220677441626580128902342218374699876300235782553528964349966776611509313070075481697217654773185157121613949268214502985127664795980645780697805895528049486974358238907449234078976278102637018819149667677648526188076456169076499921656690536333034802172430579751065320429949429332115636198667615737380963317851496265272740454960146156854344396928013585534789960650807825913106285530863331986877635645803502942334165305595600195228084999724279511851698284567661807834476175500024134345052390350318449499302472083375842859431420056991506226861075556468242609921174789131072838757429618472812920500033594863465294754706910742223002535396532239684967776265424633552868637023963138021571607066693437388244142576360558380286710512523661605884785793296453430412432754045628303080693312354576840981867965610506404421716735713691006230150697652968009853270584023961863223560021145744068345237299625605405615803315975773008864721485246833377290177071881433606684622067799023855616746063362892368223227220976369131361441577945030677004928738081471300704774951692582546561234971186384251384017258384347860566258963601187811563749879406249286029661345636393162075698243130791734738891616068779963736740762281910983485684662948734036821067081997975451563014398960605159255989317799731884409076744699064143754452065202865786601359195337664944179748162277903802768751852686030551746582773087686124791658650089420249281719870603652378459920818002497916372813364762051796009276277568603088219836043991114870004819268089098776097695497684131260435743918133751320162648749469623998251021546951896405037599857448280566211537252729735178973017305245441621471484010679553285449314402667276003438838715322717030868085929088088964310065310914702414763517825939054114940283907491638240431949322133418981753885614367822352580717051151996506523444716816947079464524208281389180953996526973606493777022588745588039138515114035472614519987149365718711910945826305960760551918093205705362824698940523425945329275459396002859665341790820548299392742232546407287812774779857362675638781544824979814403445940263202027141454618282743043468454694821296822771200555141821399798491465410908806069169215577214516038179165111433822133898740799641674219042780923159618066798960381955545241194167825160360653236204562532778549118150085165921631561056789063951326634316015487240606639114815043903040466502905498687938464970278219208091303934068007501890527350393539477397165605552584792805626470283143998542300097250784913774990747690914617626625461557836741916036645270871594158482410020153897918854733573374805935459226432605272158562015891688791405968256272403190252988095790678372957810635476512114573605411141554514914144103353225835744240110512193261910765045433106431239062017082104065358491186583783328641523602740206110794591436803710920726272365490465672663102047593310713022549857678124812059243010689703507436292577594013043633777233433784207581445042979345143675129553349846047083560926649066251750550652359988561889603575158567355794315457822426321677744868711917427615447918884222564684755324414190413863214012639966683187027794951867318676505309820046378611279371591548737151364921378258391419138962614590020039689403308571549954112640778222150371049934067199207001272730729764640800839386072720401381139295528947759788862250111544786645371403070288816374093382942779581071061811461192503508241946717222798460678996597460544424687338363353145496096486357769523900080201300182693822305379342398191613566346187288944626178655063285334554831177507446302922764994635876793133031183339163879444587410355132429706215052281656450570698853431865479307781077286983244491342709564140321814504050069107152337648610491365918911730535996296120153938670772993189079228654856015439972989408567695572281740536660529633371015738144468558893609482158846285575378980160566006664779571139270429851157388229423025902090764132835357464032816768913862284792747112967213261185217001895956891608004022637631704622453494230156485407887157952899727739648420351641552792810423362724948672497914511840569865282780608298139526879490335018872570247666097764012647866966412175525886476172000338116924497486872846388795964708794670722859818435373959366346765865602824629476754945285559286836660400515877859185133514279461726264101277706656518235018940983453321682495914598334170148937500670055058418794797153073254221589808653997217441113006817758454477313365733592046281331810461763605588162454099079624598997304646196296309968301058426393450108661260834534229355800213833613416781280963908604116360692840009706159711296715675122772174466671429165525150445991183010063427682463216778353702130103405592105292774253269120077361939926071595526705688078069359870588788678585206518985963465352921208422732956180892959256569925457106803565826852151747510775823456521095054496105061601260168779539376126979154224116739911731992382082537983678109359208471455669912419475789039827655114911480004855997885454888749842038904095078933162909997854482828321733603623527388379610836285461923540821195071104495482448368347171085763438611930520087585949803205425032809306192193031747490690774363692715881884908251387340895927290472087031211504797886119589713923041963697605738932068161476003931749126492496265974453577193770157236559322794184474713196944902699309002204938178936523868994948943440770507116289192600092344075050877127947379459783656644351818265914269558437324401572061878006236069774344062474205949266261807638181678201038442971476633267356468664269760476941166013658579827831334147814236826518647042654754874636473230050625827372182910342869296950260988717582812562285603555571383588048495216460312736379993018758993348865376587353399987235476198179365936230591502680374823951877935691689405621848032292311371377120182324400148092889662385020231805486556875111565750793547500935753439360825049664996054504331963581544471854457162624284428658890687448277635306696888661328162873838390538988260900566392462574063373517172988345667298366680859517183146556232435202791959612363289448940064065718322311966810374648110583699016652590177040970540120825450698275086469623736846833301393437199158840923418122601362622843980458971472631755706773563731614507639404723836942037190205850576148743451517944451124502100882612049688965315464263916608653394856220348473987805531993695477634862794973791053529891919487587051292267542614102118850838961401992960206432387546409988850172713174352120697917054486893504585330496003744407920234759681293356365269804237942457575726864847579019726118382364463708237270872120011111618658603621756364813192299815365228521660151242222244464495768483111818085345211478510560667740013948561049065816924255273135318021513439538853271950531324236476020153286271623165289153978552584495929202052412850662300352608982571337771790790657039563782481592718342182420425095157285284593661110181665085379240126455020950360272079699488101448900700745540088470716502071779743202062223036079317441395503438648522577413167942512012496482957030418742206241187653904769311085772426173678869799451909614796337182596226224757270079464211817517963903284156877055013999383431733279386289194295013972879130389854887702391562017308939728396174085617992742328780357842333408881326388053301780215541233052924891981156800880711225261498594614159130914789040906543037759558614844096283294677859672590469187742960479970605435456265955510183143448675195247404917531694458865206084408665622180588445327132123056167551174436578206787013095219722604845496549058502703169169665959685990077804786976611597272524048590516136606662272959973507549996836033944725786659216555610218801688782221614357949814705809466088088633684913451428330993798278830353275689849842668949553671114318680465676258254110675618788589092559337065287250387746201230418481077033960193715400365034098670261450162357547443252760634008863809258069686156823695421960047388047079291659871081244602446859975371860350516296258295543843786771361480262140020816474082492524260546734060216776480499621564626772653272889981639277871917569185060873257605228678576488018652632494343229060772196285252376749398326191198056502983603007159559568749153291476719448481205423246183175031639717294836788447866562458081714720189249540891095313727094864242565051241615812124084888579949041988880635381730920768438352990014285621872947966316621919190142021345332683636696681878456822405290095711354694217464293793913084256529084096716783656027752237002732688702586846081838284302244620532005741763930000690447646402280818587850430849575878428566564054396965557737898519246355435041731410482435833362644818595012871701932989357035544604276968944553724800474050473963396271972018907320510213123510421135431427848811749882380786485161483856852346634164855968517168437789164724450395358163967887193056969979833144075761740857310110038494625886605954110168602050779927250135126472638341545493546209085050181710861230446316296500350155563357154434888744298154111757276934558542744488722815193147831628559284297626032737696315798848444890053153639433005131769020027895495728314125488702990275051731218511336795041612365934056622047443032396696617458338250252342730359628341082923555888296772804682783920382172040961741437517518948558498074068449756619116514367294933251222575881043872481880746040559225234898511140672767648839132616223517146798912954104613388383862813489669260654384798696378451508681434713278997294832585918964462600167016481793049187834068412835512453418785942980888890749194950377212958498713611846263062319235239680254354504920849458455619089378432370976801665058284672634247008111512188672559804803240343412924931691962653461261335572922543258880007093386935352701084276765109361601227510027598350250053862228930356762792526857733307181952684263941807016978406675763846700092095578877264264749859309985995134739864838400507585666856221294562555771835858732344008552864249395905297318312158472447273867992428182465796691384685722979529549038085272842124260381857809089855284534414281480502294126531076584591760838386030079163745327416474909189776287451825348080381545880883861375358112404162722188827427667605559508439074706120268525180557134382224760565529196710491457752314383339942650606919273700393092271217222518834885619172032336319007817791567836117867655464831701347164841649466992839691939331155811523883523967430763734982770398904070374105677282535160451216623098443680550329447156561444536269298679980871746557578699287640128837582240674336757416421990434023539093448258744023601235539280122261654861149818278950302181458357776630436749992135096027506419671821773338653693423927717786388174811185606801355936482586521684529074962187075628379857609561244344998718101583730661388703407400107171989476650830588404782107055522499914193829239295166950659076267354867000766561483031501436017547684227362565623201514544188755777069765743067752823386368034593486123474508552847140796409716296234104214857516242788743196275039622967597786648161314255744851219964368717106440306127781018623582049888638967451041561959777448218011477316579670452638461055910007077145206610754229944915684093286270229951027681397360339969646810311967884995220479685044004868692471900912497194685785941057033955355177361153955942539379517346799037962954892664782112417457200629821455870732554478309492088337596956445686886349547917678940699075834439772330578550917827741376631729699716641147626384730267814348202669979543212694011010524920850806164052921518760504543775151470859935748332531752072566338324838685278901799392049613547254547542830290634247392938046464339869637051731427215034255417724692210874620760422261952190459253835150821582581884806238552705329601442101417527315951017998554323786762091668393195267416850241434430560007758515120581064223440522752104279765015442741585349383944247459745725930023008065381884321723406501652285277848327604808739988428729189589279256193708698087514268910747368859721599878832946006840077225440752744650675093258491634895151693726334509429036108120101750965486789474285213125299811348244352796649572604562395863867435656180148672242041232380665378421219259876366893090841946627402848492942626020646917146050755766518583645901631688411208136092866245918852183388432994097527894047421879907161093250995065215508373252296715840953594842553539989694722232112407975341594417657549356574846866763288652935501530088450152529845888996702906851475078646353875708425293408782405298928197415336796124707731331284892665122961008811638073407065291302677321754420287099261810437603112457591090141855003217703147602699257726124916704735818420703925895519946586574875419561395792973030104405869625279761486997263388783129091238384914173722024617065456833439841941552850611390760020936572595705929282357562772033052127918071394124868620245946824711103891772684885995691286126860329113591990289844072909010196718839273968303377763839992575759766719763051672973061004489254343187895791876086830534964814756886302180867492680016898522831626544082429089278813905310582200809875504293545958326037882924023029594078314577409027708787153546892436646659652630252665695866768795924962912556237392277621811030180658487759980278729623652265768895949620197047770840908483173495719148023563795225567853760352277371725017688001934762120652385670127850859482715946106743180459216661053864422815799429784096410604951780021016591967889368138543687056378837779946597031553859777729901750183080368538865084515627090229454836813127030992525079156497014181229159281236548006173775866876392483655792669224452426466788285759800597938677608680119356355446457823690433334416572903245179518311955742230008243386729567510317668840773934618616791411875492625027280356547946245457953065604437870808188443852100543140123991370548071727324411865603586430054305270858431936958643686589479273702034410998446364724239118635866463622896233063280476120042179437695709334054194647301555847160481910288659123098456287889916405253931610962736750926547101864765577791373573600133547447777816853915741516819722854563122037928879385753367494529075421634544300824330966064430086014785479763977281357606075079123707335023562192399804051083156929899018107226608589014592719399918291284623393081721451456697369757084979668898167883444146834162018742819188478106020958211770552547101219123677131580582770320798841269970587381313858390340072109360019134806030171636207770943664396330240459300920007210672477832270299421721054899361106382379751028875959045645301031821012498680600688664791335213974028756049951857851037456384057285444226100434800834729070171172909364532371214635514933080689383947638722438297181487447009395940271982651682150364847368080391339209444812171730320606800365730982297404698641173207145919885538058737452450421183430792834847392224943628162291069037322882650421486340614075724235654504193297407337779385248348560408204179199343595526908163358063719478083349152262416445142463135342340637283871940487405877169631895594876130283144669000191438685835519795416902197006178871549129599213398435635228478092021895222160796933678786315038924460776885255404911002263014888848154939221232651624704553688087519271250700998898650581892844714481982522016232250157334283716160533351978398354310246113333298587810866768684508246627745872545745938467959731452627922546765672264806180340488108329216148548530518890126452514681839825091448829837524204062871379398609027200085169178780070402209089028243166588045142891114426369890955814801462998988020064593089964872861120030658159989899805985945675271513309288641691053522020602416434534665437951216532345530354769522926804873557621680846536858563574228971087324058588844444707115024373917351009416649932120996549368423243391187147179032429109422902826899845515599119935082649764522979400966700556077567238734101977835520704429533130677768160816684685514572353052424392505809858450114641591392710233253434090942346336879938560237032781201135506757557788347844634109561553612604687371010721466273170824005970514244034684608412957820770410537814990316748055290012981560525739946685721847676710098543243056618548120872552229763604677151007177325645539603256527582858650127832085624445995832447495868914889449656984864305871940032594137323416405147824873642175984286782727382383803389708841900135613551270503510326549884018559358029016503510486693132318368675265961286353096551314704396723972214233996598911084361171621133359143895052710630871554318312426606612832831295705993818116511931133452553259701400540831720710012726964489174382735364305109328605892189838329788328594664688693876366836509887128852437299364515984470088308153626756265846727576067980893919229190961357079222178180535078857675424695292417885006026506619313106531492127602283245541461776627252188848915402636822694020848748239549906087670310533029325217190880426146835777734382470073682904454454113093677144929472256757164531085386788766874439451053126198313107079695734055284896948817213109533681303408782248183454018816092687459125086297030808649333685803588212713182776441383360335506903646734390643186515141451798420874423260082639707525451774406919183437119227411144026719566252302212841992976744100650607888716001374661149779626265140846018647812414197655742567370891145379212533399768985473171541645996978621535600713406841402867833144517382315284046807952595127710444273012833351387961159310199099588639696031752753499962897142382103654784940827290900147068588666957258438071709726745113464564709437227112296682510093310053640145571822649556847472634442686437508163647118507876392017443958981952178491756278617712489697051569718735581211454929519171401316759219879680555518573288381208210430829491373760965284513829540794961125375504013473741974345414927349791699010884318656526774992811487808506785771564431520818111014776933136145363593288204192249420207131565443248546531010934811134909666309693790008798154528646302614405932157942687826242550801944465735058694169429672105413412983224225524485861982388088379375601781151542757338347879014102535784959611072336389504903821643335352150609011404183772140175323865887257581489163074091768258225316837955651244437525301825437511306320667248977216749658603857828315714823943965354311297848077123121942394578351602304593066659900322013418360614510645230431551182481857648131358852058787272071156971299666961328243509960403123099176076986792186195400598223714054623770888509847493521598706250632140582642865736949669365096385273827658235092646508014674838895705763546251274907308474592908038559390381629893801870121927368119014052956876269722493350540235697081819245936677512438801453044584208833680148803120840871884752262853805221356162740356591622754185019676633040091625584783173391431943248130731087864989901412473627934140480395429797590977296276480717532997525260137575596723609503003449612337534297337880833210567253510875947068518316938325459241789426262477439122393321024489623221810551004396627137732524983491532580923714402616208084941919564416469220002606396326580519164551412807629924449683906930064128303790909215802781389889970740819869983450456772974884944749497543522578114075923500419420433275984825693055615368640586357125943169871452498269354638355359959727807370198826678999337411185022349596018532528591036179192644621331602773942020291030013253302949054639401012175363683455416687067153455199469587523619954733011386046443083793867596804246461429361697386619489593685129623218570471128191517216069714815826381086507902037329244807206169820338423070849862881559396524178675884317109963880605937317220441678373943703586288474185411994519466931088669271398237442518660313587367126070824768175320976206020789988344508837970584151542838391984572987756838126455590828165382985343482602883183262049561950235350635298276070778270617552350289378367171207219253981377174024071538691897063427354659802421988455648195957731770368309015673804134750410093075040471101427811425263906745127350003840825724156321900826830297665724000045150728660843066285503031132292057258968844537689864230445523189555375356529981277195197587305056491285815980183115401936536683662449518926437639846277513058814263538479203613150331783115734793874440951411182231595876773967995906910530644893220094269741959379032466275256136902262774587233579110045470357165200648898420940649856835877583375939030340692503794820990754556786484874521690740980414253357517079463755756703162257992723268265990679326824229623257810637774225085150738550993793293827326517844280580267894080897772510071513077261955085608809951638814539469295468077781090616108935093363101999760075728619286055540070075414770324153986949272767281430485652625857413487274616990457656551204738392963482998321652904874735826295367342751040895397107500240751605578304821420588517695683742225654407861972095569887015201093979895096941081042115404721602832752823403023506721018933616256114640067132187107715353468178117161927936252730297978457214727933813920004021777303914031517190764667850697659971402520131716229002433183703805921422978797119218689433233950085810263263005049007477888633415897754867324960518242821146800807151122103546290480168889494758240383592384126594482667967193645771744863205808835414087736711988431456075525457535065516136573078838013017566450857690135585602000149625780781084415532799232275004397076917662291223059410016031018041709506473597019872495721939260285170358817376077323035492703194268217696235788153875991221104673079418089335142154853882187302431135272301393867324245404072749873496452419683093957097341352944883626708112952947057990166704823710222363538533059525602942483083304888343140503860317214951187116131313332408709589270358815454010100443913731892246958040382408282304028092691475485761094711527816941878907992239018711779372842954071211685341429689128868695792605901869168282125958694306811588332662176495064201306278590994398797112169126857953029593657722589307484705091343312642898061319458805369929118351030195557789559645501147068836925844134547024015513122571014474511119856581373377293775982418692099168410445551492018823839948472838437133902636616931854620666713645834053220881589425275292215850833518187115794947720191764809076825018417347560880468100649614670814417553286596171965805498461968904099255746713809159895149776981523271084181582438677319528263436338314390052106037535754658634310483348430972021629840369898928590787335833755846716472790511895418285608595790689821995334873648937943261648396453620282571851531826054428011088525724600490743462350308266448036515541874372245821873317585500354173302864610882589394074234859695208440735926489731421964312688701157860872872387348863210480076684260107053658586263476633348916204599006859684432407607948949981049123993820512946519004494988432535497234474743374660091067483958313679883331824885905242632055732050297124230324971182292848454765518946967911859536679007395411101331798843549970585833596282690594682113030737932674451134866975427888309261997498200902194653726934353300194452659294608461089939948681407255791063878316477579094323061294676227296234527680232269599440025263920728428904521530950760722864834844413167819618530592066750352565211445879679380758950085615563683062782330742103424246837308065172495392869268342200326117655034539336017037673155385501031610682101055361844595658420454376407311983697841202023479024484004937173546682915041857624463645432024945288351094855574280148652573930655405585216296418229164715770093488008152303854845187175346857685098621391685289706569407621071705388248570123467763238679011698494589933267731501929647476389793927019801293531268939646363059394342121154979562241807328218975528354534067910970202579384595479104825551388539793318805401218990095244418894538088072020372584311185609083057077482968691082000780001094412265704093513012432275846662011629367322646177893094265122010331557564163289926678814305855600895002219951804273152521282337533769731131679517757845752307419914259861065364788328293189325726283688419806784099104241920309077522464988761109654298564259845500092603962197182378767000786512436542906417591141016545379974874683618991948078791232880829808684287557191242848978168923259814635894392646973089942984421289796011380173075237106922820664301124677239914574428729658352146374617776604832289269842453873108448434779971056686527613813521527685526627654050542030070927749615037550394017598324880372077718393170272678564896475269185097037650851246612415593485220620930269570910537663412518983495668924343855152868136044848665369636944323850456780259434137543555980224756895265477080375508773633305408562305429840546804914115881083700119698490107122378926163955627238486089735227004167128555644463774089779420521267238541245048617433431200410788982484958658579477559016915605610861604493404723036229871916088755488582408029422298962718635779120311564967625552862505439550900315817254196929597502427064314527992044233948716388249221421988165258878950129207235964015660573994523998612372041113982538295265697705772045400597623760233678172358141343200199303330096028393649898766996179733825903090111698679013955740511771797615673554113316593543406096341441352425331811582260145493895630018439693198404207681842870591242491481417095833983071720581701888151676616335799037698744984273716418086314684333298165251182327689431661405614227084758245854578003817538837967426386788856347138514418045618437360625338435243374195497806608035457584614405366878424018762771142453234530368438730381197620456924050753059832610807502585632658903512037827380523876949021575179175771039410487204366091290338392191112079526631331438650066089732571663750079701224131852574457274526527636145649752435710019066553862542770939972770255489918151232001433550603854879889290093801531840874843648817368174044102842020274905761061200773459393762844850090295593599779185663878252217560020449442588593442088963357997702442022722894194358600198837705856359576909635311299428301899145443715714454317569877895162807638888639304159158535351383080004944176600469088612988005902790663699713155332056666327778439261586422713570554326533018173022637528209167658124819092115124755189195300444108790988141801826469234698746695272860087100056120225612570236577450570580029510222452859397328467517525282895013508686332093628824480614230255189874286864874245452675388136105346860990211039204116969828687828277857953433137856512017231754134237446288632346965888347251936821029830101346117443898977840886141997809497252911177830484445173133846414386966798547542808903904546670600703695207364609306859176759375021562707631590986958703619518559353227548317190812948274553606476336873945522750848163048038605587142518321073381867605793405960730959011565849188252740680864767218520022018605899344805602205189965767387715246816091701117607431722593285949420957137494869125599992923920022168978432627319965937503120114151342206691668423816196104302314431689669322844585666651713589899482362319753291697823728947658073942884418425445205651038361098022177849202275391306803253954634842929470453309393328863651141826616972224135857095718484582760942906667944514523692238356057541938977592016780969842356877688469170118497073558071156565000870818473933453633733208072645288098028065732733467227380982297732340126641684465782921086320133042777986555093055649712401270734154628208906366475953041199399141288432471785793886421385263309403407205134735472417234911984159961620978621322982683046977365621729423328102763328192599775940877776717432741220574371677984691182059574043003313212285599668343728702965461277675519976833045900445960792491653983844132925951651152819812181429642800374672226190826336714790092948521995108594021344885729698184264057907074246934865708531948303836282461223190023576914305140819356075536716236102083996026201936657024958477305383957307288054778362412747849225114745164757963196667064273151741099219129109933788179901390971814339258061354137847602213521020713550996523928528120375860342440657983562994046195713758130942074910130938601125545371901537747955904549667109590685906449784974356693951289944042985196133292047043043420336086701835683156421153589448126803962069524000215886908761240812643542754780102765496742292862556146447990294215167722888093946196565339510788437432969213360912307735575630018434839121400024644463641348230582293828933316877429041367899013886710688760610270032916334918307077408842605478559985831783188486405406515414472960314800622207460086553432126010016536653064096993790146302523845344254443166425098295585779930787308524176532658733118143000932228371482201953797608771108114753439350177049676106166948148039291745382637881993176608280461783710657021065062606123928073342455748041090327113579863074144613201009606205104496825953011897931539236709040279329691176910577017733689730372257705385894557489102646202285386883204913051412715177845337289158145437766519446403216811156504373220885391289315631755694045666112096369678878250300846364092507723466852473207088329720316601426253367877394701490925445796252894246666727564464106631404406511118501598397850051132207430774176167350975115017174501573015222677801978014684836108467342390126379993692560790385237460153715041734712338463521217462169686854872783266485269038823315387950929080756520225549401536615348935925436659198617832231476859371667462099491077765236961719907878643672509149297023823992804562481570742962524853164236447134164510300141957660033959388625625528134204767439467569574927593922003691882834236740453119011458936213954213350799492547106917615681507337249835535884358930487190361022741766358083914196508552683172530459444239751900785080200953552313995411102234036978022320219870186468430230364933918982551056806473981641831678500149908061819207666118263377841581717469220018669650597347651380270325706568448407585130802706192233792583190498547966578758108752718942908750968693070006165180465244133549744301165341765739027160802254859639773752575830388727846324190167050984641009155248639547629045663612969764250006162258044073380059997798867627648078394034458964351360906363338159335047915671594824452374856364978815583808779828760624031201759234803451016006479315636257483917485561925557587335057220755480755971307118339157386181802711331623032473676717890433466483279637398460591501131734038302473795479489193789271489604928446272534153523846397988212945624485043079675313380336741446930138914590263934984332960340409878200387092207673028244721322999635585433245536444119490262838643065859642733423418266707015382480731191448410805488310385733678496194992956539348138564337457105317433673522198258755727590365369199045789722199650084661374137210918110218329415283774073066454812633517700089585431315914992214322123171731210293488565464090469790905576060475862359319386585470710912337004999684713693346167780602501250739166841435909626262143270354885792473794686952606193582772040691055289173648858984477368312394620961956685523375334304496439089364765486713961198285225844200365941907287100751233361498080137002430843266512270207072777164876672171619684082902625139761393732525443134714341028527555750258833165806117833268766970943994576374743874895644751733853675608395900038040220964456233809800888250630359033324851012248426508978954445970324782635089518467910630716583491213106412533288670153152872186099845602518607633065035085773349089201850072562094314116681619545652191505338310734257690206095939909527597610652830505250045891014268290509816872945669491297340671480977831827186557982572355586629424311320603988960689221936479699263499944315798996344320925770289894857133550882609076569829305505522756798537268069142588754919356935450294857378490519917715537110258238324975433295911756813557303948000846403461391946321312632104730413547501586650659515641936798880203331668331770441811240301590357778418898049715512402956050134863106302899115498551240759037165025917092789129266480177135372872243355219324421417620063682127072977695311316099650972929064268898175161971159152477238838649464150478239061723947952889283633677961765739734715311153491998119105115264280386720753487667332309437090200109415652291155319899913319896691515848335761378664215241644525567421762442721689554605612960640189628666135193455231113479907245674316098077110210046376203194688772620669325623015024498032983735917256438391191378755626121360024111742697600733751223674089861155908326127670527010193053714749530963956341275278708036263775958835964525081778669598481694908215259888139530993577584400873334275674852960022847813736792642106597347362303298499757059398068777710716278401736729781708823278038164475579679555337889727235276056131919438230197980540082074300262013241411983343158491630047004438998544853961986350467007225585198237290636968795489689218265300190413933743544680373965168102256065833526450796312177224552906810091189101380841627969784690800551460099328119049957792424492920711807488288385611315190151623371594593012995696029016354762946140826138687491372119213259800534246981496639090316685115593611155412311480166741266047255210419942260833443982123616620612007391922595969720060459995784866563442230178965314580318224242806847962055114374694581535625411935202102464052234445555467218601342622876731079358159178927774193909158117016548169662161493312280201842124126690331617358528029838708431647674231781413249544411536027474920302573299138060780095153995453019072584126718486832031446381696592666040120634270178829680683492494256857153746042825842590845195986675088222483935362942612119615138288809428154828178180813358031562927539880381995009765532156997145327738493698801783535137174093460375470327729209760200788212722533137129247797556097203561999572438745637311211354487829425211964763240533352555491591291517579126753807994616815219008403551901767161185400765745273157702876886644491277786085686777719324023609957430075254902026679151278524167207807842895013173028940483045235403150870890289348520184848331157563957491549235732538389199299571707339843443923505011009094485812131183651779808211331505155300176980321926882513212979134648781258074744877661343143268214426149558857425718538318707624816741331870871765627999470494271190780230129399754898394459650188779657675880052555198009510663176221150782055723193701287659987857820938757643835708453919541909898181836788112914590862556203964586761334363323167674351868205075344654605222240733992601931752422414022960870009531285183623495336681307026030330903189787370454124688448236774950009445136717965078418062407199359228311535309990258826043380805842263569184532247859222727494494390784122763657609033904398819079505715188622983644439676327226018895377147081576240235173275370620902933527542110472837794568379329464605471721849727494580350801505087451453661945617040991438815879394677099272478738947931884378007175979825769580083066100235488748727276084627296019685665149468634568905234494622331942653027674177592183608136407671920278925172065889870983781656616544887324404427230973557034580293760495544809431404591932617492949609084386295764982890831885912814637801529795435120127256132506260133624979644066941741985414514881837461626099073279705671797951731190860503103306083888839722783040191339858043233421370693767580456890945055860889053581372283953992900781205192151393013670126427746527570874959150286252014498489461346174171851244933321275371797297454744339059302650163587039158168082343879123194058155208395719929866962689128515383144181059124423030969926549560990339661294232382845663764254178013902940617416191302425000057340165717307759140207561592193901858863390858546574040019481969142172756569033049386506517503478818456091297688411274083214694647549233896174265872031196132967138698911024952392493156992731100142377643821330952257330580637952973613841138125162366013976355981616815777407224502941255387983111151475038635335499555169096567008834547943085931885967651213031134024111883825412688844743919613639468959081073802182697954708708375052454164511842400369967697096377852590903574946065199071087301502146131816491466713003535679311455024791364700666193367506500240272696310481418263574355048788352994157545877897558910418835640527139961070372846623002338771553727263174284289534819302668814364245498471500160525881131664864930334921825163296650132188253100912287603549279396916189312688157567384005005291499722369602733376115469600113718709595147871268468402693431804898629588569669213593441781281529311560589968319036928729165283234219302862825593229017393601935384609541706090029765688953890760533474839765528374166532187578415304845175791694818563881313365997660635464853852017758066414722819347684800487405604427243453170818044506996310343922688685857555296593576571879873119909648105012809350112697251703082942677294775568594125059195573029050835468359689587308244732325588752467793074685249082088833187084798973216330033557133284700664532890514180673850224369099421383136051148152107414476995455509224162613895176813981577777183970966413626691819563545060100705793161450042955471502190377887605552981826542620570814560213453680928250377117408978923648379037497915881285678881595695642715388881273882828237068011811693815012481245974852894226193171618087638068336814605344237155366752487288860538429860583710092364397877061105587605861757891532762525068341892910246495238022494884663787232140106899002912574952434800562428612951147861513988143004161562236540094993430895555184569537134352741577082664873134521402975915829049905980062162306584515005075174053487862013916240809200211754403593603778052220472332305585853245330377693329196090430612914657699217869885727458768376746658180571287352175932488071869301646105491065417174292266356404620762655947305516881001805558178537189252463786259542818998514629773215884905527636406727044356406773722236336579790960220751934073063589336442719338427112501453190162988449899698090254653987170147299602197379437374499116693667764949274132338609249714807349670652972645032640121843590416638823845115983360253382230952602642884841710211181030978114603842402964543389590195734557748690633496025490022752332011780227999647620051917126249434097666944176123493079694839729443990535884151750136449912395571856457620687869263376445765984914757133826209188265323512420860532088720298165621104878696993499173296413764919215326952412722484853843720354433321586931227062197815729866693223073232676283874927014503721282540839273765910722809741228616799336516999064936253899297576603414146404102231808104182854312118684608235762941066967572298548155801736972117556707140828455911376570666499412722740924640589652220909301207215474710707014023108122299441979849442928273035011540926591262505381329654466771129301623848192392565177290782349277761580580304249265083548655991273290856997834432691024955162410783940581542213786461677168458209375734618859716021803030069770326644269816598263023543621977380202653165783308582701456563137701897668807805807369595173588218771866580020861945374483673332997446984821631978647863354246491348757529013194849224970098628847063282933252720825209303440259689136566999539045068282023746362960286615549063861293762628299949446787077718372524525950843635539071778105315295432194180134706324700059374370606562496658691333305692911779812139721256536231359979429151181109130286822286822642909062136809096993515538015747272139022838245068814294449986994332380987622095088900449515949652749040951486309748068270408018544506876760868541538099831950810940847740193487375838716954805255794190149359304476188901070454010023439034720549253406739462282802560344943176179567760429263960527838512312837107856858484491782144951218720144801091268124075740795279728178609180381700386883785778694342244124794527459928836743166247185570130778793051862316584818743037379877186537066905287023397237971460941436586216695841131992743760268311251523129600480266591897963549681566257754984811334727884975942153662874243274275012024523601296238720251565718204973445306092298500986062826669024847834081648324887197343619624335444386745909515285544414110254118479109652045403593789355122103564245873222040248689776454438509930736354870549287547857148007471263192942861612291898260087056742430857910680265666365873702394280612226572006713109527221137587030593483761704801397053103784136667725721528435631977988246644867642916860064655944512433873366436755757798037560775138442602703384758565253544542723673044358704427350782567572611533785378684758480352478377112994306487555240692637030809907548836231442514639961085532022191536563953925486387777139382321585711842554897432679348352772365831576933636339107600033703139688174134288213894516481977385573617234742331086365461778343842531292407845124255437192252110099149680192340617457337654902502070353887643719172637076479291219483538624834645219986858486178657364559454469157128389353648603811651644512407285784238548211567268938316976037991690555333676081919749177522574744507731056495670459000486052419297020429553214696225298837851061787724352536017080166457820420549074657091362627307064683155035821513059901676051067484218826660704439286608783356401497762378336774075826318062969462757603828598775188833501344910790204984280635571859747865184614915147260795462618530389376894512666830378680420855796201911888894643888904730850641788842353708066126637364792795628553581869028023007931630450002361301747520126225703397730690663848780314569046990941190922137157475388324803003290684444554763385794690651564208932884297823078143356634868125518704251294674460391713007239311930300110594802019918644815879234052051094020827095531792969110213789529288559978822971807026229119508599874010697895847807833090336136891077376345199589661506269592603332889109160555184936579264411005868879793806074479281191745845130971220911882900949021240227114147936386752772767339269087937202359873609575521717241978490118368634459913959648666047175611118559178059602999977293574208776526364721150128092208552808887126091185990088657266823408396915751943573015320925482783566163944455812780570946667302669784185562671758408620393569806800045838581689824641157883163204227780648599054124334562380583303178014329161315255154963883098884907131532209697767567102420844813373442339876763251724904522856103421556693166180012792001202182116808330965603873040254279002568453198527532063077439389198134230071139931871071627835930134940341922068428341619732255537382629891854661688273261061876923426487753849063665523472344823779699577450888909643729892622467792484291196243386111841020055478401076052723991055170786428661752123079518106646819728908790610391924903507308681003635615204956868320878637117481321484632707348892951071263302730862247257451534063428766867881026639464327262828130772867741218650794380683464496606807074876747533461153416862095496340321368613647620862325124512193766647285655529647449319340250136766386397114950794711387929643088168159518794347684917537977070420651255810861443562070323873335908254205921433101666630636583775223405564907869988086522502895317012926650499234299454824545054909181355523346214846821009562784248866829554957147531069037136263366323073676771431748204181599663331151297595039465503570857751441196550635105594093683463636320309612912918689678830348870572424324090386148667803015987547176793863669846347555943945548127660095466458678618552227268616128739721748006057934821172202408060508633634172824042191097958234299912195263019990615260910324309208611315223663068923850511398580945095558107048053722307623924084173212789236693583451674181444077364511053834206759574116616955161697883750772683314666751086237347483550676246834013636013789260741731483130559213889472944884077741261453658938169009643581304510454753669731843179396891246838142195759936543381604946702633721218289640775040137154016365532023365099350740232136929702329213055734675914599110341268242622540671151634980669402372747269736666116607202627371860070315796818726017942773533877405383965553146469651988362705598632176355572071274400100843605627925013853997898352797657262683093763017179911263126449457763646573651348474631403704579597044742756619452630404204860921999666854091019529715235491015296094392356708796062939360805859142488751166809184305394323541704456469618178335407848926464447601071180627605697903539802375522439049090583407652177174602807936931962872902048709144569052488860073859248143922954811147150442946034444954666390755712362155297963018669859777796029167532325227442120126934645943894590015777713044230262893019182499579404828542456143251058476113017928828304444379960869373000937139860749233905086694775297438409288904995100629011638567397436517691102867748394981696918437632211049097969287700710501972270083227250069763988422572281809011497771248142284213539475749514576330872817868929907991250388554673687074332276821753411664666319916364021434674273069789444579813101520407803917576759971828896107628378844732307378987750708789478447821334614863036389410020963589383199372639015994691999902534938654268746178268753525580291032059469380174039076498118872218437432390853426134139551226751812047129751674564745123207857675804528319627395703262235817602615818756490127279479099777733701468042913364886361867494275417599727995524260895900930690404684987810913519477051403949934421393495141480608878891087347434983024584505845464878732992204266615648111517177823846186504706128686612447060360226526845803510638385353906185885683391358429743661213236276412395363263431458055697602499707562652541692534719357824365283155576503484167525117805396735017163717800311102338615791469196920171319305220889760789213106815152073574502528220794082968536573097472046581971767285655468558458790034651562595789614664612381942648872075977813822841418584271476625990773820523566742952069859047816269101946137810616770654083316063085874328869314942716999708578036844993428419483181739906324570689562649127972371375771010586766848801757192803190530054051230680772755806644256133706256574199152968648340443402239346242721535789013955426481659510795985664183904304084721442015621178775152376010567734893354285721488945231431341613985789216096172719580884404471419067911041420200904332203715859887256545722832066389367466529590109751227606807157179928261439109290830637415951985082671341058440956568932208077300652240571932376241069906014016748670510650286698772745939992562730915543112800648705843827664528409779619869336641904231838355482862875585689044794849285471688625880706614356656147121620455059565506440603412781893422197559990135041038328853995702656623603984539222449595631058314948163019844035206746643917902479098202008468136080599603057488748085277455848670191581430204979986895095148488173639353780871417047712882713823521510448551434666978627877586730822424372314527940049917543783931829829461087982199641421117678018903720958311292275262993759491673343615171949152218088862833716709730364460190097427070676923668695114472936213889303110458065916187628463934114400002509075996279351301135785715887246183551101752547329647550910573342738375954066165135252581910425902946899544270731442016136986274248568328663381523089272234508392811154663145096767381821325553267414193267083253132313831407087693604195488386594243680747144528985735032811404517414534583028370505016580765711949728478596365885264138902538270095302149387213394319120758345892365278909153103228034163292532213215379117246070616044630247569391956516050154704649725225368533100667846482487127581128534546586021710419387171418345910538109919134083572704977437745109189639577652522990655021797986850222945289312792089352949571934614381848342526468719127414099119629875924596470246904514563215758360391711987221478082464752679215989017062781061049968962004124997093334082590538334239785552126479798806274653940371146171017138455711139987195013625890450069645689660653539414910262609908679345363819805099052108655139435321864602827593275154291378658805369246936478655819122200296064767024357257520899476838947484967573595105189566738942402830474399228682530810611305010719590168372741487689297753767787311445564235021912684163175632699916789238436385993520349685549029627156458929859499513560560007236661735327455042968101887973757631186960722129158532728196032761719375986557686029165918371096268449119513446670664657799085447680366284261782391595685996215936529560355454308548622393115773836242780605750121455508207570478414964815716952969998676638957014396234020915054694558220057670141237291227698669143629944923063478177305882134140057460328008705392554792944533634811237245006887812303718255847124348445907575661300129260968145142119417571291252004229867140147068898302062344216935544223391169037278271545751422934261108215110590643596047813763066292901423399314339701866326257387707748638872608195872754088984533649875395036137842010472485732658424399518797783349144839190857614977891251405284948779335533983862006934500246422015721758642995048847789270427019958776254401337689012500763851852287202847234884021630149723717846433396295351690640647862138127920084763764962342055425052171899868705768392640217464761920145551079871192113990713925764900334280375117036317630404182770078131234122555126504939225924085665143900735478122054961566260693295356588563670086462543986407519536355940661396449711026398312345568493626938821541795049555581431784437502559084963111356943629152994628405041639356944481217407828430049869786957958305922311393654720020932315488912571485583393230108572888294653446193569609517778946674082316197875072733047037544035501221063937890548896581193798657069539514184539631426592414166110618227797523158169380883300926227204672581518514953885811051860920313169741789633370654436002583576514771709045451836112189797657803536985959593042530055158258263791706795953160514142856394961641700896246895898077022763586708128782110074880533962994754484941477861409437279571170311525978022098356477558960335326877786751856986144222576221557904010871887368520481801920257728004840936618230977283915015754086038573137400126927425363320373880804018259637079168957416805924496472491842129966629245769832418786718214575761692473912338973820088062906546321001609193263509238971603885487097223715381000318416438988499265366940429815808424826068689814934782023088097803662882097573756787913419815797243765167284226645736271443488329656603358381702941996375406848851739044539856994512182177759059089497656342392643764750576693345011655617778349633238565291140304904247345494420961444631197350285918642420952880584983211851852968956859546057543216096077858302208172786407495221640000370441028088963453164923825827572746141499793067494687255315453124956443297887025275266476388562354995637923314404332210052414036512058800918899398976547537826520507043728649813282416225552046815272089300563967119390520338474148958700020509253544310840708407754731850359576382427940747526021703150664230935559891274421090109902292975554960300166948753380486850923811741514702526962354863101162882601066578182436203373366497877484978409610847135261742087585220022339453446745283763910555082307372206786726863216516883313908434469613596838038834897386965975025886048141983584755662920100606911586461083353130787282743273927050639423690625432140296798161997267427391649753257766979961853726021242913141360130905907072096911150678198325234395524444174947294453819866318680978197921716041775940497285943922262940231786474990821483197005884011252201404368887315888187982239811138699370726424298511718499567519612006569396988843929767380568305691431247923798261695905550626091561924319175010378167575211192320628803042524255081990815827641646773874796966991040433139096105271330810335063564736636548582069595315576577338033072715719529092726587281164298555131787797686969213257254176040105550866194369928359829338669814448874002867020916841528650228059168972922306438371598822570280085626624555706405007232000799131660989821840690508465844698462584252587792823267488678855777413484737558893064682775317914090439076904275804387517952392529970978534741211721602283916412322470764506265244304590343627303124904072421431327011713719991673600596516823927090691299761272412930657649658946701291902452504096534481771298392783171677796134763142578595855243878226600080854103286760270659024526508244689917566345165036970124688319628660260763923988109404378254866950333207866352434945113761091085875889263076949997884409758003230587393203808687911767187578098417260962356672193278984746159484211860041963348361655674483666346908240419345736467234563438730230655782820820737301516030265618702627709471289479448449646527012258227626529107027752266869036536380268557365029169162351103694776510527745093144624539976657907516864376660709272063027157808529728428198002191868684376105198697713678242611665597380681318925205695366690458228749334018892811928589830556816941898302286080291987995979701224250904288165317919798632349563990838691105745521106008811386663048526288568491927646807140618033888976325084634265620329428548906143245115053154312774990169569913701753205327218678706707265447973517824236226179185081944386981898795264380494576706269978811772249363157191849824853689390520189250737181706449144796972080978132655206621352876494118716801386560876867810672575759245446990682452657641657602776564230463324601989518732206461060703174063898689382186379452679346827121190952387260551097684599900915108876967707872674584962466068155280503921277886628829909367611815126333750232982956376542009660125591164517559234158258060264149809748871857710621492031858798721612708695175854578769751681477795018666022388726606212733574958839772306970637902169228766954252844889554977881789784227090147318515855520439607157283744585331931813095172916290635895404024557628522096471594517811956983918478766838731559976785241483414321502593819621158770793069005234577476803408908045122337675607454622163409319975907130776767467720073357936282932704831496096654865832382557805641748885042488763303012025853349536324553884570507855356616742815606803586004263381011670649833734085842400992909926711577167047649354161471010534193212880630119803193747743280000581450225511538959983366860063579109124002206155350475927506950313310476618791468493305574487522558345298521508301158569191722590790901938234031789122988689530842333763024266039948106156254282994555331828639875936993798217822594353490063415248843304495295961954198552039178535158120185567702614130131948592146002084370198731760581734401638621112956991733586188256892804796547817511002044566741994614693445462487726211967880642073829765234127926323421713738297514976302243808427246232939578055086922040164783784579834631057597172890137427424351183054373560176772079881522797018246273150627833644110521451953157195929798451610821612392763291958102651781207676224059139160857690486614736356599422870931608096887279167662635486817517834368311891566486716257988169684232630051913090584353992160150192958933500574482848321762602666914303098498907968028290841817495287659773422649798539755453406770088759127718099701402364764096949136696859217023257976572020778506232395412424894465829459099980291490133934154601842399886337402203990253384752465874753181785428183611552275332738627741139689707292034321166659367878333337301908473913253948192961506373891444675584404279067070310998210402329369456297581088754571150042082755101738820585756672961656017560140887997605152187828205237223500486661166421874102168990426583827596116159904736255710003867914437474044920787714447874758794037915875946268023416706583102852231890656456756149580844556765587396862377401493355687612487071510413251955766911772022688398376821947219513688561144616889924074915101702700635657977928636454026174630689559545250189436492914043335773076631156346829909595576585426863673331984288071902536960919978756893844220821944300977724980233168522500460473781592931519582252767049474519335823594941427432918628879399303528433184901523985407298233122693499784692833521138287137877695383472268004020666867397110068538219781672429478958590407693767364353520611801833133557088978439909439579410047305752900024302836677538963937082382906055341161636416852269152717578265599947500118465533110104642859659307663101377432986451560903394955291053427091585638148223184535774385119398176368078220847866029153447794611619576835371335792552014846659608205083308155395277813553565592306575163938165785585492398538815823046835791846151168855601122024821181794742953293706266860572107500861622014307671859788355114882301649587800961148363853066857637823634454909665228103590108581053956760809754353242782194427509418383545482317694751069036752458808019459170477179328992058176469941581009780487208435688968910465000906765570684323789539539150709415580258508525632370586090677291525886942019780301031498521513973945737910551329959519260638302334544824838940436093747925436159707168242938208900754129791674732882248118545189715149531880568185151784813345987501524605528086971401493093151762321275762850425325509391274452951225181883023656516369962482093095447418768182124467469641038881830796754620131417136272145941879679845586981749633128956625568036423585996973874898311042729719516110332128651100357840779191254202365173569629367448613114514237439701022278676988024433279592814180487911832769608958977142665970766085323488051973813420194949337346345185697057018300028868746223082566651362404344573179201350910387486807623116708528137157032338736044359241955910320080219125735117176086571063849786160079527881345886280471293180907346285277695855905262671658110909904991869998295995704035710664123271640386350760223547634749033545831607371161579963911915847565730350015825825462710273839353871212050827606013506302874490000984983963511869763918374017906957812074133418645543414415382860996227827434026542891506405451309101719170996299841300078146249889282221967597266558262819496044643908315478932857247732206506318450143221014186326921299874530275921342459921129438968386702647841177495229711043530369742010855988363086184797654630667964818875418140753362267191968050716725408283515294111714040740345950760249804339691912936816094159038695167216757523557988118346122394429581206924519826918647487952285989093006750782813885239506001571573197255088591726361243221294975452871190759316255858723203002163163800857402598125911780932837742689536503191042621152651390724397089855206665819533182207647046051685655391408921907220217441901966981322723289511326172392542390743436917582302949514610128462559832464136293829921885074013411482213296975372122599190346101947504545320309155614597261606316362602526561944462835599149063725722103777600488117039354610586427857494766827087722785416113149193052401702092598052028317338379310992980136924513278291935254207144779513320583286549069030555483532237191286499671591630790607558376441665657219616787765913837525680850463474089129741414613893229786669525107006820190528211579085870043809249298141165837049934333998952141198474380415370784725347702035404108200269623565195210530271154639177399156694831542020878799700691363512898035589736574624345871918402664182536088251595504214976397501040740601742166583645918322427209347603691560244978335640021107837360589217471769781333079336868169358196979553835534827215245233999085548468040191932243793309661557880290954689046122133855861396784631411521539102050224610472970053503026790607064516690861476323309346972529616443117521311959399044609941569097913151284627467096570156107204046417885746224694241579188553683900809538133191644622178518878051628480077585763700170162495342713696737957294568787200020986392341428795545256084566809671731611286317134583443777907294403834556042499957175484745511984578148870688518994559493757233786598449223473947080649067992156235110467322150508890996795618419486603850288272547319607963475117361985675900050821072410442728406010229404325060420691885814117843785458603830826819734309208336465902536588673780436045453940128043122024025663219524790201768115428303167348872330650093707120595830966217857847799710833293071757026089283327337903208079828313741439173996366141503540182759105423876690438387280169992058440297513039578399338853911065270905124218781282494721881506317778056813133834519358726081076771910700439713298784725212724651334512990847685877192699904792482515885848571525540949279441752327129859807724938502234033167527188096416557025871597596684861655106373658753209150516676767903485924284860372004126105390390331860611357011529909425064042169556173904604406481047100892845136758836017220449394507208335344331845013531476900497822974208050335967460946029808824072462525653307525650197029445743035727963527719627940471250611398121200945767805615821767865459802458221370556587352947792495284898970256911779706640256578327546387252259658874446784997659558364194498267955571829678705139248895483381725335637558423904897995539574322118736522617056047789384960617044185146688110663137714140721781099488405500135827985489117110214435059550143558637372831221885107195629161507433212117208581203612493117997852214144364825867017081728175221239406558220496504318229818051718794221227071393636890193164003825832971518630085129239538061406602039019951600168442565219022377132145177556138941277399682165933429734661875716030942852446975398695005750179941977029175503950557456513283383894857018310625394845921385675659744455838495840772832736607865317745983980862002500786912130801460444316396843161639725964400348687499332779710789312400290544683821783110822557385540706101575627164479968067128529443952684743437258322561291265447080889939529319426383274422245678903261041213062154903820289402953062155130604810764322637136295146204769584482942407671354325982650524300257591167742214711800536314784016234027320132649644718085069664536163687576410482972586737445078907825197902059570798702756168822924372189189033932953216163824419372879707493762758895450984733783469393147970126746190724484168809458538328776955299544436470546021645634567310523633706425175499827200741961837349128931128487852231979062117385626418987103545800464634890791934559044970066331783357105783669967926910443204164945758582273617946939392963885706785632994552664062537852360146698434734036944652777232110495100392633466902719470530060904127522632877595543088885841185045617924458235037865292215901027294959375999772267596217475893275320778074257085539948010942160125747662732676118188471855060313297968583670596394721475496990112580633325608711389569130809023406612932478343316339754385594615576261208094210632333340611164196348287530645232065923677821088462211893594501587575944478153438949092090430716303579698055813047267041959751469125533228017943401025675581516499484118448431549849494160489777894186215632396682900765572192961530587214295043976236547788141681434019095600876576726599843075428762155645337153808502654763472728082645670368390130507513811290963649552725386490120170842544289353782977587261850717116812774749816938406150085751710965273351452115356917806774109688402541160938603386504746485074232427109373393783919158441200350757268324600153097084703113301449564795477178876246760867840980700842715637294922243347357242691096731961432868540714432580277969919916470209355056544587548097965728264368583143215055221761374755402215362848726549604588389105994774606167711076758016958437050725476769775311446839169259159946026680271626109815766090806001942592181203405175962297994736003266276064834676544206863388185802659767073323709565570432609561486362920050628625248558067141366692375554084642787158957430251408725440966237589339281657008214256607775993298095362008498580838970793493675177318613702262638394623228206901962215694093084601101547073853079891991462634837309009175038319061398711350800878939934052390999898785362996770367704322299665300022530048039033225589335183615636365029895223251487163546364869477174682021702053750908290615507140401992107016070190599250008916266458789258250819874252461363942536492513935107308865666248463593785827304318043622423909527388263112348236470187619677738542083325718150546585640045942176031591295716553981042209164906794617123757230305545011462547665709950024076838682813475412617765358149156629836847565251451827142738966804653944968895077964906539005512069586258034326047371423168714811765027928074687366589179145834284616695026264582477894116455090038662283876280583276761747839699736588976509326064488566362079072756838429928861278522531528934999443652188768506315492163691067183949818634421365912485774202478626663557878225053733330471485576030224590321741968065386826162697701275201343789293278350918823257541250038069959227124201926658145197749393961282988098439151729983872524494821991532818762541941770112602298102126511485786255008135953611829931125174886735149672794171894512852356550450074013678692944328706417726006769321273360039789714167555658600042052834434024078690025995465918290143689057313184906752024078676256789731911697245036975105451222352033265118370476248149469394180874165402112322272575607589487781888540584578436191804021133744779569656673756342561029294673660614642226397366706721786668882176270122894733620513190374392946403119405378710680151994939133844365747723101058286714084369986357483126595014917699436249900727715110984591870809207269930844347199995474329631437847021412803592429165655541891282083198528151855819475973597424347143390819766884687109278659274412629973661717468775848168955664125306382056934899768807400562619044865918729628580222689547606545337598694433151691343136988376011850105692282977761930563623046414298578067661520192184022675531206452729660198323965525073308265239776165930483698739523841502014879239516993215893220068056574776849540457385298656863294745539447959376599833524247311878232958964553027263977454677108933518099531470787552093658258182826808057141751236788626059171732600818273539217600239399231318030760417581659166999535712641817599815376009837738845935961016009485187730355278224885650511699131436133789576050360896952251012069242817952024991837781504416691912058136455526663083878158545171115573995988114333493093453624759046685220424908605591647282881572316059900893014281799567899933235887572570690136518727110953161268472421471580106011015840604961569604546555973276869237282659367072847978691076222594339749645980698250551810529637307770467482805893104943524135171281467917803474372861057108629935633167913155488789277918330161121746725827339916417082180734850512702423839133424930767145276506616632844165713987129781395203155638227131293793902732453232598869902889890583536955200171414055421951988836172521856328601300123156593052879593117498618849457381838904382667671732434286309963903542356216548306580280538834166197315189832643029924086552499284034453309651708377744248647535353250854980001111391364568677053910212068939393249923754415479296840129318339858490859159209521479719831587341925016645821197243023568572682256731484187690582015190293647657781320253185733979008349532609902717393732722152959218687141004301122969677837357549376341081494587057885439591363012144723499474342287521724317756643482522565191793431604400386456149429797638597759013432301879015339912643659451129469884410112477666644172813260419958347935112042680835505718647730689201482819188723203685424666193934227475033493568497475123053669584190387082922671014561140688919957701664611518615688961802179182353974587598778650818802253277779661909369207998619303983398170368070902754126315217553819707527303916055759198793685748361707318917542494441945742101753991288419178366892282807173622319819445204281641232284562433012638945157005254704241699549374803170872280785911588874333531570416060681084825122040237984556270353533404528912479714163308068945122144049552421114204913883947205874925482732371692395346794683194257528711814911858354410547249584885939911898302900264028936456724517568948580919022291247098948317248108972900431100395785416357279681343208536399249822822986036975056944250431605565199228987139398296710611196750124581929795292836138393234608593192550320804081095497593435524581887600396634130958725163723024281391394617904669161781845605598273093760351179855105518526135369818341396775176440052412302579133281694118782297813365559959005643785305123201844317708675385539828765129369589228290543558700738693235292304076136002404050977672214046010365844824350886410435044695486228146899738193703394188303444235781069625782518184515347377929591420940923035499651961745695753768514735378599219906283451698306984679546944700313642145138315305773127192561471104500577629371110932915032489842253544649671074186106568750793916984897200792952087029460446036776755082581059399622118484412524084866555923990355288541640405561992002518032233793016240937089628297301236044299721870827242344586793389673391544856748915966296962566007308716654862595476138438367845299049346881586692462168910770095370497703700249547280744374998287930268334593231554982841568927755425378781698363032917912582061211604060109387848755684150365919582047023448062255857338311973573683576730237465517081634126725547531319775738897474273948900166230823391186195208412013908111228174847036475533891326853965817023120219660206856106021231249717613555780672021689995209867871885300317980982612860290753232409080584850070488485755897944203365286331742693893315374784424569254580177049090519023210468692275568096859989514895035203821318498165293019819143958541979988015149743556657073402476603344831532913162886680647625715199113342893930236495094988620244970530893686542872930522930600503760615127502830472300726935288025962056116058280458396400914908730887072054753433253768182474020018197733938940749578292318653359937190795184077194349151717186852997174066257363735471279786422908475004696611635257712025648172848214382778704913773325848035715982048982134567631635133862760611636450590334301712197395529773929612718802333649282384990135051520453037016713614783919780835746927718367206085029415033506757618288437398937910685706504333681071448692798376899139333249394556146293601167070898660520395497856574225539201482236242121299778952808007624817791895662126948352284556848520357348470651576007174658523474741920881621557285078321266692599819014770881809066354804473830868485197048935598099493175716465236871958661316954709941011076854975645943867680675074476956606510925371766154981853965446946938136313506080923205655324678780764395480087867647530837142321095358667069368036061637251027411492044484793383771250216340041045772228533439221790111544013128495735199738320359989159482198557917036235090069179613391601985989918649505012147876802505293634490638902940328619624630349373442725769410672682504264011663472242569081491855908101965105265896976539291528161187786694058391252261632066641340298165474662371402021850960126490866213773179694389133792811277531351343921996247739738034951249803367428013308113732765508833500231786335884007594167959261814016055592169083358248006005078495072839762394058848840421412477959209569522673251778794548144319676729389656022559836873509581474358576335065099560146078322494717790231600650582270561608252642938613368419279314904122017820431175117250533421751013636101341109170879252144357608229840638377228846304065929255471250966498946153067611024017997134255083142452002234207684459258950011507536416042082627420978078278203022377175079680281174226255066262352154910781548320694668957532725312275732640600436397431907907146769450295940749035332056231958612457661695592856503898487671094371075628671386267756857030492828178641284286816716208532195352480850479494439315565610460659102681775905292416673707720277714824498791507121242606787443664813927541061756089070621992196962823416061052087991673641893157155247335165123088395759702774715226862571757714617845929088810558156079327392824906473751702158391181390871313694931415179282596326925725220486583322511293639002259223580780618344145325283761506572424326172765333114616373683468068905610338920870197651833145605479780907584423805163826906675179148742236470819734565971129132011459521016865291104378270008980438835787926682838093232083971172904129366644878904657966441786111771250060377401944568235034328352961569046958955881411638664786716089081715701110843571548676007854291061734639634053217364526690262273781642051017132562092714411886962247988946140144098792120669173893166588879376185160134440769740377912630856000562339562885318544010661663828997398066904291453490225555408277575727563528964917025011578391037620791565828846991606466957129052522593063084393521889365552842893098997972887358593555997822870328752983966097208889646838706621587337608642932069665666261846971924009976367712065126614381515628072770965293853654168532464191354837296278044898821682692113192368814289409918000278034460970082364358732888547750724403086683612016076966110106657587766330267575689694609578613771934128779193477879364421469833060892585078788842074829160950520667542239315600452314104933183784523216353649035690378311377905073693696796054955958244084580092420679659888922270557814803567217739473656629124751537745882564700139840058680594498217196642203437718363080072341536913411024069845025605406765808907038525258840030480722455560957120672617712146441290109364690089068359714084718614837776816272435265360942196581464034314939131552009126094525555891236335811502251809350160158785660586329185222910533259639459960710867214998056948969420147274028594584260276296397645459363503817952120577026884645111440475748354997145933460703197411662935073117657248411837436476097316415445237789823928800058151888826708808203732869045543030183320186038601814083888802135743025948510617375848074164576089995499255110552368979734753337385616112511476565419482547662682906493131078255588356482642369107682153786040104306442265584372197460274860452915991829289435534558255943834398755642828682431311718285631949348270748573017156944790637641141911403074483800605215875457663803955612296492012922525947106683448124431231063475988683018537671564705381919616126019065156919747207114670401314298528525705405378179669036317670535670198664527886340576420195387288235683513649116127682778001827520603444482250580908604722929956587694997899950277503462554119695456447631811634999673383361776201421610967067699346983227757491213523613339152226811661352654190659292788581996255712494299808644437619416560781962038822286228271328265208599917038734084654271326414089927754099572607911890462702734861831828459297865316076741049115053278246306701504223220381221239093750427168111066744585765876228949497009567483573331856569617854501311768392101899469333227878496992178218710246333050007000326744378800944771110813672504820801808140523827356193652582363101971519748042128883826972702137691990142956148303813190614612208466750625388767118886419982908131445268179853727785219133943025018973028490731745076488127464316311475085687476397425884136882298580694100064614683877722796609488544998038260047288890485082955558404879885012335273312468804516509869543892998438973130649302987805252865474854202892160815438432235354145595313795450715809242841954935429068745062067037733008922327548869247893845563548297397462954075203543705169568113446543482214190287955658445794140878648134551244262662876371382003402391485275459036309025177582037096083277699742032779802451823053389099661943363544366171995423356116955033640345476344265062120066496028812936484053028387138781461509193983090256578363938772999429472387156775270132644728160749224839638347735533687778474368267377184647730593614484957759361048882221262473901711217143944723450795652058920607402799542419116711136537050010440035499605748235792109728086944685030756634071513195031341992096729693867905166596055751760926561719549244537934969954464989922080123686283022648648743279192607190763589385368630568053079826880272539683584941789350535833802097179105856332802403203523944965381349411223920653874466660669086784428192255054679289967884616347403679435232071891303056601451879107531781074235346524615534653220632702312692335994860460664622420776738337963841766456212954630567160286820786871098984235550830663210933226232411171982093046684594920454564049735570699291051168459925814555341464311568393407222233542337202238581579209192831714744193203408222946671921511471840332559186808521292443658315581700556856205592090193483440543492084134235687327852899397399204507513022176925808702842088128573001294593027938579895345492011032047096199861071806710734099526599965657031394150545023646984514729755210446279212273683811035007118760389770058547329032973798407594405141634224588612734528056603515491299501078855978791872477448316688745949553096424666384493310050737461893720620517235096224578742533429751240297595204437980967660182468653430698108907051061185038141731077525454116298344491739841463290448249354389798623221672812184197094640055440621457281047220275934509766288613475995227355703419617962803456181234816867538322382879242439617061961268341666428822227591810589859515022877878983673684991800131574792205600502731139170447278866204991500608903427614299206861519428312764173576267789504905446377302005324780974241139292047849393309956964393697502401017254512410480926352803533534378762686261760969596521542103346122589077641327070176991693873208494068955527101834519144200785790199081373769144878690420814480283869858725088276353208118830361270147750443967469629295089968252191837052124578986905940711730303086799702894272039047962379009651836459120804219918017605107184867258014827702100434157240931927077191380161882286047492051475753825193288614866945174899288349884548570085096155804403761598861076788481301517076927343557134327629234135655898173540327861638760973262285401185631764694697167973923703685086114124035305712992617165668631033900722569068612269881932362404504714495447649406974714526838786438145341031908688533727323221059097454709907894128946469823719156785453987934554675729229253902317288581805925445003882971802658024200236853665632647977962858309475344414372838358217053636472112690545418698343112840295522841100534018158400020101195896892485991765085271729763688551941353438716409342203763174464133402413014552768190218629908701631836779523187488730564597535051780034993865214162255334333303677054078733530072819003399294424025593560899128666680827173744875546691674587892502894587274252121196201591929414950708482991300102662300016847114669189309019101445636480953689544831877112165593912473465720677463682377767877778154336477285728446114645672621762160012966400256599677472704494845118586975696551230938109644956613818877609392821865595644268416410857722348753986410916576370945956265786393132000210195982073522746864357347042482768414920313978228388577322554762267448152950205942152520655047701886615112701036739436510756457499720362445168386314157412238277917193086707481297920153694720445433857488573840378293911056158953964989353086187255888992799094448498152057525396411142441905591658108933552624352051793349952764266677410987078738211058939758817139523945336141957728354885700174988453600319269123721210519459151398442535178090830566255231227888038219981185623710809731114860901386254191385264062004395681894890302201157352219140373124325869264906533532306324729491205830124805085485042338327735228039036705164781213837061263462876441854545985557067330057993887347087132637939408562049404976365100983024249812181020814118307702454553252025091776235854933378671184967509928956366167137258688047922622279028379814006843245582509032890114897064091647777052612593346738667046321850587973639705624247592028529299830705778850244116853162205016299726085139104827169501059231636904401614601733370254430813412166597343145138849012411307777330841547998371530130946213845055826516719678205998393372148329295064293090363720765063783709899655073294357999617493380920269621585292831623812958171352486964626428454274663931648141374947057627212291532745386188707362334272223853371886849383074869938540052680399063299326012404607049167264339714397670967283032897102722877173301630167734321264964369567583560958300771802190730321321244208051625267122231333291295282908596734548539833765289597704776520195437732582668795487127589364487431864262111654687540484429341879395123197079553435601805151489335666351152521185196424709388323593598512807526766692447385509939832549118875367628269285944404767307590550751146585692157015933054488018069957549437835420594148075336475731879860294168810545395141849243459685457808864356019106906255553343105773634361545845019777569268425964136880615943517160917117091147174136869256570462452519137340643655715171730247498837790357357752994793618975579736547375168190472006289517941179444970515943209897007939443218389737657851749239371819220266229534425593565959290189272360086782778910558407274949780392306051704010723996423098702616333706336788616374389327885242005193404727966847787601167399392018920712797759235733005982622536891598287811604578105367485586895115193213669628400317004922245420612539113600193077101865050209923349782506801472585095937835273640198663709747362067188087739151657592463581939507052769744558635152748124088391526585860954815618575835826928060422126882527618329967442192532127989195525601672016228426202641702677448365860052041582638567945551087858633874189751147434366025468399548262032347414555353746725559757270224254164222520023212985306605425108257937168792024336754089942022578149037069765908778855449510297632363692255391623523555878825552829640858805838592576329092189927029928178777424041607633075103297778352123575755033324927210942406351882477354617325871991404651689259251784592949621862121623572893879834169645500777076642014373769537910805723369289815195040910094445829495905310310871102551907110158589160612023572472844721289477144890246252137161600448866934019779057982983508440639750024390952789042745286333119874164454894042980838687252050460503392440896010658921703274209456729930925641207889295446238911423445992601393865625817566030606287997474328283247863802199116816286341971229462059437844783109410195649686156490686323335937893239562271150556644146779855280459074754981739336477960892278348412346277421453445835259844386748723841093166805315433812169413194178835222731069483232656997306591242463924868229414780735026833151085934659657955422335780658874174232701485978532512472239215609183471809676500717375077380021581171970312903110330126949422620205804284808801616324365120334618396400558403899422288944841906977889286691110611164902299755386838218461260344058504557751334551691673077524670460346267803816673010901562491169511159588823571732769292218461481038310658694369530198367700346096754934525470813842637359231756821189914192195347808012608542471067061043479338478727903029398701697273669293555228218631803734350442908823759522232570847819939993852044544129858743476419749719382138940653484088800849787520503450261495320099475415189199088932145901814018439474287012462810373767937767459511551265331964448499290567829049460639230235526382663157035049251662156403887983771324013233436324552531389543396978658008925694669763305914623263653591276869765117665756478644816089175681547674243086589947146917869310315935428323163951150342636146284562278772315136703977300906507375128982421362630840845554280240892454831450404536720122677889934748015620977089137474455582589657590437200322472526395491296688301835727013829972366583749371503019008830200554525647872387520244698708373817658034966223087578105613477252787337790580509841966656724220217338535520783354119766924507275408203828454633315645666314969971398976747160701247737829064439613817283531820530837892871927406667466804447080486383879738000761704059441452951483628436747450877857881814544923259709140817025646303054490295467523542924671290200540275212404001000717650872478781012714813748925693639806666563754624892506197868816366240159797032306522754872787319930264416710340923161127274621602936954890052780591790737419869815224923179724557687522351015794443031284171169573648824441203375201727032063381048417511663501814335469787865613784161976102376160180874587727899694434103932728383384382540615801843728466525677475749089497706190946474381088833988675950142094858150667156076802192412231669528111739420115476293725865318340785477319575172701229616182152443891642339285183488789064378439629681972466917433430236705621876498010800861720757044205176461378277055710374345613323210319743261309995846999137222319630321730889685897186878400922319709647195178312481506943996717422967929252685362772601354845853872186932076491265170680434590049713365130542498870947776778681951867080625113784024746299020847634900814868572307506374468473808410991526732782901720753535529895879362770908374597940764382835085083539206387818584652991937632194485218576778421992081905280672682326790836351651401240743305944953370545515453827772183927379566447357070310789323058130009682109354102745000409825783256625710816009953970881459885087132777288754100659062073462109889645151476509468831985843319929787440233857276011820445435636494476271744712729759519720560363226039294282635427636449282151048062624353292813307447320819517321109078089650440355272463031576207870382611397279284686939968275544801997799975313887535630419178524687834840888265823368634048031003205788238658681804774505555617684780648379741428824492880335280328078171033826457126776545590578831171446739298698883595645623761865738093495010292837487967967180782558002138338661569076018826187844783410654212570640783077696194544569854525851575982936189228002230381740359059647426474341589646333608283114524322479312403609395125289291555694399556748405968174068074104435038871085360114781500225377956841538361732429337759223707154524414484604530275214925925965751302583760558285177660349196056046117046185955145435929676248076286964289393330791996502280158606598771244591751447142193519217264391705213509112463354452153661099455513172315242786281149822514356994429352194175171285861562607206120030110973404614760284294905768200662485232026386652579891700165321341806826767161934849342419827611226963128974984671852284155717592247343762356688464553080918553384789799747547916530233855741603758202532575601858451833761324841794334900128213906980305982048547486629015183957991856116161038850958811271653917018715305080371407304123217443666751255132885906744420698018939399338597658872764019077656381541769100200057407160130402972579584598137457574501542390910150668794961835251561228777202667026532900015320320651128716193874025994651955159549512586446389554343318104156227441628899036113686044692629697992710140117026943182389126397816262453698885434288788631619447427452375253126343448563579429407875534424991355056247680382027222290951576811132215066678932080631653929175809413840041263034154444306206648234198628673195654797498855682990461623924945156266714906497464426735515290598069291731435164859228946110579201397096348565505881985728190907636679601311195628048974236961123162317005173964857029901551266400674573735171390114582154546438932925052050528210257127700002989886645177590759492897618045540681417573353927455701505641838987525214914101434340432839691999201344122239032099668736059580542908262757940576486464115117126963372087778702700906861839872695366041695211200001764283389231711972322579869694328948547594063660882809232064973807769521054375102874911418613172761538930792183202858583752780589456032146359326776520217165974470208289724992526245440371341940143273928171536943365578338694394388648406808187733355575729387202125296164676396250276189467288034833010711311038399683842365178126517443827272310232993460983315440479588547679403970116884877334989634610243692226684703293956691897627873687301112152354063393586987113838369542262377075404972785006810156882222783593259807987990142226972879466715224969424514711745486685871416405178245370942019297375555737511233322812351417481707834670740628801369414232596693819028893283638001334010693668154894633392603742521145764404247860341719465664932073489526095266583337469683240263484424959069225197556153623594348041284333118499210032112623576347107581842431943902364419080067582025481345506600663924276269785923996858504321983719015967198035229279360167599192488539283477760258901720303015516733830515406281337725820917482122981008343952637526999493788297481599695205885520266527309832148523452596752924359681363234922373746951356406899988444730787502383433709264730595488065384840611188940273835545247484646188084684602968719386477660643581691931749304040988218033315683441766130180611992585423241891866550798182193552357280535657842669748383605036870350764552633547007305930210448996003783731099257848733150201907662527068541127263326740862013383522141963459728650918237825529925981463324589440780245209662562957229291530972493259991429511619305879708266041330141239240001198411166495346715725166157294471525819576569138096602870936609898136419274346828400351331004240859622907504884200615034107554167145947283554965673881533810912909155810448921953088699245361720425078857639897840061845227101754198012339070600871095689238972623015571749573217438433777573792960855558537785490167408831799433557612516493622678614240344985507542100621808962124159193408808310082643022858077874808621192777778723720706358733902507694985499426661985744874494427953495992314249102724644849675206698648768532104771432306113579637772804427743246830993528568879902224715645765002348731666284611709172584521720896278018625834697007539738848760407670288383588192151751217875346206995339294045854646461551626174083569811745071314081776134696004324718564886419674292544027917376777317616081453837867094421706613665925644101889428529025184968145885530817424664808496035106547393670390896507610113440497936005985978412973337953239317496191500590585758198496345299370559187232361241262336289468955380547863288365600885829647957320665970424971232309933452658298314636630714549119952506695904597789788391036921401514250648763394729083141013626262712725952310639485674639822689731780672573318029654601933031048315953462752913525082144049667567138505331683467249197289798381128732243904294597243699929449863995350291919431034102939159044479301075391309381875571746671667271241638089944397290828531569810309211136841555849793730136341580843434287101089503665089677104076985634041413520103689769585123848159006884277343464992279774050736955022486707618081128148414012305241966166322585871356420801405038618348709193769679419867849368346593271739954091458688682143171331349117611020825921755722178504369982154409813470042422711266906486632974551026833728902118123988532448862179550909559672222905983525877106258594338527710949779416582126221699800350953101874515125317076935458549382881080866585955944938197660354643891616089856108343568885233658809370104832365999362648462914227605054196608664753503322852271623696185223011347791821357829998096811488657545929302653642254385785820964692129191445908848433546011850821408473297243369023951057147319076303325067410357983176913125678667601909861696323293922243222950217412704175952266358953330387011108473310296716360077010953796301909235367108016548412612053946991309995665177504759825794071955213798705183568173223918677421872596719602444851287363539167295009487421040626606807049275797396962820014333056185293713691665177062776428152880173350841781827757151567828916378888399773737332477836359596933288953470037915261089519094393872081917278567618423960897100955250357678177326914167913468090660906687362644596805204326010052722144660778226211775225551926773313788338821688776654506496705510400280211631682059629767645780306747520634120395719747468439875007844972620553036968184013307098674800790808040605424629334035796294999298957500061574455441218660908437108380515402720646068842174141968629752367899150490848860086025120440844064684560929678183294756594272285939986268757285104793226278548753023707479581387113548063370830823754062306483013482431552697425912253740930495892198023160155249810617108503118733057342142959270786576691575408241597330998116057671371554638417503680023119401651038691387521869056244115006977065528035729703475090248011467148612438203551109837282167144911074354134185287423920663754369583918591951008992370823325411181086659591574342703745715535720253822537123794347512716688107211048720466999378141491695581472737958461944479046166735159965853770831879386639751205622167604631861522468428859721593679667735067720069354241063722047341557038292398533883011289704922595075021298115601089876730463755883497832218393769771409530929153626655679819632505463384808178607022957779673065661125570393084686058827107012556672619164357839454274754811941577865443905486873307819273347403537302246303470512386320158219901787480908691380774919378856769936283278064057169988626559882129772783789933862193023369690988039788377597096676568868464573836104613791305800583469344564911671360988920603128049792626554225946913988545023278779993878704407263184147428958239717879494402667216745267211536026574150446807936181012037594568430397107805550401634106786037987214432989184358018318593622212672177368212117862168395576919267308923733540699920994800183953854149750074888332859186599481392771881330300832252635584623194495826965612476922325879377039180327403695439971945224714281856224182192243920145116622990427094330468263572847461545361580311442225747800805695575295271782038243959029682999477519947590413862026087715279226197900305571303117714929486323134083258796410639111161331571527015449389556005772274301094886157340367319801362361191663249075654307215486629686850844020010891467684860623251563177138722277477635290973291651698771040768539136212705272757228579351503117486855497507544725490728417162684296074613781079039849946525624112775538584020298796656520424588624441050407898540915595976353601810028171506417676504136243671786729556226001272724293167354012329265900748169285859745922463330666464808065435517714497543358716704000577983956887366426224743456462351855769106617128162862794528205424827269353822323637134226561262967254715922113051148476710320580600072759885492846216869541598547242252899114504657934918361081477723437945871269247831717181140522587744399181713150610801582951396739405507888515976118565567313708586146598604458624412497815097408920445621158728923472508265430736889160073572804607702002521036437080567487450810573073440837669081387790299313605477770745950173244833083640943743900626176072432920707596741174834871325171680378241132612699720355804805971520983544645437496033109562614705053541945030180315565622883551471731463638215476241879280234257158196829658908933306481727767864810060322025275960727926315104015363554842465324314548561766159101993253856644788472496741982139439972860231230661203304378427025114783105999697216602621585092496562106002358762181972479965318474683310627561970240901559980506510187016192538354829247095552390762579007893201606365094407720232217208163131947190638310844144394841285059833650531291891981950587550394990471386261707409066373495649698223938607847026585859585957215427565819854303502152121308830171815064178642828715823269677879487237235974733256376200261999144667377986795882667680471065436266743970472313498017196282528475017336586462495245233886357362628122489016529308911710231455883643242468760233202538132893457523657285132959261844205551498926852240573302655857719423250715477366147612685290989518293542500895686412246427249998143128180272793849800091948292025996010357729764419589892256267865431916403904631766476212493860398542793421302989208831631922289217583002476650146580486241232327822718797258853672004864506961858818620263347731337577974172762570465667014609266183169716595220402689149086505236987156650746280504750540885309279154242559489858610832299777512702989708727831004700862408927596820947472753984176212496845262059663722688210695150113589430781084101358805438742874318949957239523356033065855086758898750603621597894399148500129441252808334597180257752883121235818443572515371226823462687610218770461323768656036084465821725904600303537812301513270580755320622141228587823307034267983220076115158583317770517102319501380979385615693844174323014087655542618798661020010728441397405682518970196078986877198560416007080319524059226567372769047696370991082318865647696437895805391102393915916085331742717867881303811744975649604246066876915542500045295445449896606616364094720931639173202267015493577078836616050860505773613515443914628120718263507685238950866335347640879183871603806520086160200674095893292924671047363214631916199554764094607092735801021818852809980728124644777126731796460556365989978512094116583945249217468705941097107272799434777132344424251970591488908950755043382935473618106085480874073551531132397031560046759361414697689273002832375607432418551286805547733681139930950856063625094080171240449882096018794912632561365745612235679950706789717449957265928239654754352545657197375803773609515469378848620313333044650560820555099941177255667479402313232793143905777618144060745270330092410239953183560728844876402452854653607872999822317883511413718720951050471001034148795167313357956063170275772909429576334724313776310453555571052924517495659983138654008375892863921248704089978690081311302044961288762903095273630640837386300762502018306539898030883247512428666897304918333726650438592699808001138599934080751240007121268271391865901429680161962322294466235907193299036371143812379070657231800427100661303950435930884070457079910483715002833336697398639951307852476957697069137888483291045795634833851286625728360620635666445955532249215460663873412388334176227979789605591311883120279359851952385157805576952740003624640826939644940851957021146221841159447906362819025368097361414580254930596954520399670192033984173551389317521358337865823392487323606664811367954328616766457503325325011037201525207616705265119842744368113761718081885132376630965625940943699904389727532824713945673817030960506040060673378336583125218855236308143082231472773482254196461895949933335827838829606844316202274120212132556004113017254915322496333181375719518904353133920002082264721322955608117661748914856330498282792789256545585044399622253513701127971564873631124515611636946831191877610608044552179391517467038419468627430246635580584330096633227045659123368872096266140996142820639158943671426789735664834808398975264924153518627485584717451915567487504908673957129131435050313108297618505253049967539413496837685585122364539069178833283688114708248968800447084382998316358499695886745768262098640258153167395096735363249406555510854912926314565007143191487941074054746090613071122540718723000439877802813286646509740090640212560578197491953315943119979751507373398735549699912528059233639373777393801872592397413325589196353162938037518895142719575696345955219708424915448958630923418149271058449210260347794082412971251909808925725837758625641088091324282037430564254226571294694995823192234014684746096440027621284618157716006733324681002963822560129796168682652652263014519887553451500665742248390672866201298263380747234118506019287238339016171558047066635208912171146084235718415347324599993507811001418237904238179838616622086205989757518759215686959991980980170873506114690813980148546139531437575055024644436497196400607096340084174229699087267773066556660709105066433170579944836190675618904248861597399653054711120919764117024472393594568630740214852985752434456213738011519000083579763469456324548591884555952788284413053987006428462275978766112280915637174482401016980673615746708662520006288669940732040810186564747836129358727110728216084295426058333023126494981489392541088001496178618479981678473341427340969670857892796142095560796111014062249055782029066628496694860292235002543329139551302960950461877218175912628763600598671480454545734777780870091334001955588607411101582753785221689150475294143432979253665079043470181234186560367309352476142173542501938987440110084012801399904961655101738972321557108711589431516599070269261383461496875731887861691461243128692135617260445230891011580925103666506399474527617395087222112030653825469273846683054202501537481281243100099478043605923008947903586782378771921548831013760255883891837937741726955672293974829368882606629145028224180772643857142679173112519284062564261372629791268480283036742321170199888943189675990274106831482034590236435297772300851622773949371652927266804826786995859768391875735748475033333768632002903540603445381738116749789532451258800312972573990903476033838258786380644592531594828045092271090666347892790475895877561167924563432678582268274674359126124257233618634049588294435629968745144428675877713302531904555165951145888818192235310116428493154045605210339316458735201629500987817695423702712202271219942938537443780844440810872201629113279756468151605908617058064334063319944161336010638561653518739637991882706805711689616173804095724467002499480429640102700652347183528252762415365768062983423342386335641668215384079743086497914037809809047642579993558615855829575992612754130607710648555630311936657150058265285904540310878553503216777032347619483618231915801702045050286941926900083790662265559429572677500499807587241819473601053884364052934949412347019971202520302389341378191180286888603873699135106591587754336173012477987476375631780299378934577850665725061212884174322706329925008808406609479543835787884754954304397561367448717067611624614599934430004263799873618547820751319465017736092116374203967308747504438290584270683656133831333749205720592109612469996074502247265260866453527727025601515474317606997710648844047324650018657737897526737828036882998965091803300980231084340718143841850409457433061936317991785688917370427297023151789226853499031624416058394898856636893175628874389697675413538513017645910109604304606155317472762297158455049902137648051078626039819918200494668538608528483546686723566193789871908102767282898385481640748098028568786777181820593836200996382382056902435841053562442386856274222221012044224183404161406283450241228063221239781506364802392242679941952723488979029876487430037636822777514253800223477296707287955247579534742454222748763605181544167014567392929336419623774971329942283446595661210567972391127481043899522447331085745640664695984520223204929483442872630956147403042724567882011882577686065274475305849995263548619252035309758242214406023973425005852800093652729410376322571761715328394339905583308641092388216141011988136237597554088373071682332429245289450655329760125127494535017773828508295557317104808394291962087739065183789347337143490609271287822446921038131269381129151381238215917070489539947082121168512144941656380915353889135157662907312581288005597570301499847490595018907014848697945011306946956767261985029467249356032730046122368854623825016594913719178778923173978721672222164419286229869413134974795265991507767600245868416909362105274436224657777881622780903414274366322879089641078306481012366322685548316094900161876272225100727483107295965682639748164603620751947602858739726288244985078812379112594665272896510966464019816874949107585069802885653625615569037122261760842679411188826649883267163677034089686708478436370542159673873373649777513692937191570510721879882401711823822497597573455078500542277150875618376892383461688261158515663324208134523192549663266494545469074156246084369259050005431795415077099836556812115313874174687370506449508766420205385961063211622296459085342272074876263330719378285684933123216159786398501980634371341678019240261659159338416054416288033808878858588180749358338800584182308269185761202816369489322423104265063191967948945252933628062835385405894501244096568496248023073989038836266922119667865280239701698494061852426751333748293061425764837138430686286934408197810184361086009243898171034314080390607869840363347586908903724712491649352984972157080677889707741757258298882300804426920683858919383037723297302901133782194572580602823161894462515861345581035478506962445638976030477966077239854339982242968964251569310753799888741998949051177661594350837285824012727354401937138339278558054140119865873067177522832276386936997500087310313346299753599395246328514101499388150305481415922193779371889706416472512457698191847698954597759163346663248965247685932583647037059833908923559735590943816818444001553986448493205166420449889091265289042053561811271504682062574733544031531395510275745364224544008109273525519555914685750489197112059465196331728709673774281420188368008064948567342980934857717808155232544141490757950611125067355398189585022213706830300789606359714005093041031726431309273082233233078626628560300128990240546874169361485221106015774957905255979837032429993571041477463265936613232314469931098377322569697068818688788262002119015329779510908589715212874963509600678403281009469256530172987979281740225183333253974332406337743379738420386250409086697372099047347082021085313000113944093912131621835193301346224228330052704726626532552204435905653734383842038576781757454542031931974374556447788513034561024759918151316106244684706643441845699735383190008351220438096878803884610064294959636198990946919715648171056115116959341824540626355681852578742697063751109683415349373438791685841781340088308010858902683745948652625432494402440337440569220799394733320157088138039736163662139255684273338276527360254271423668394109344557536644343493664668445582789367184071158323511373342636398396517017223257414839625201055262329023941052742604690993711659371184566137687502941254716066091593563737796566610551267281142867721999789263982601414156986887682286162347566805337197109161539061666450733275713215874274399562953244717462935282304332376523710795097872507497138575076540841763199764742570554006846760474904619255145381755213274784109826263063078238032571577410781017383700658080088684628425739009629014442270983968720065375052755694956152483849226065213296557459644719967995337751291756093667743425432270065985053738793475999495305986526393358350171331324079894552221226481943460354615830598216873974086272938481887227834228970468144568791402922867745026756641353826371308934704764851556079208225468693283590536146464595876791248437927988994856565453877659283947509602159481836872731415773027424493835066758171996062672821803493995863415878831802788522001033315447131942223281115951611467190288307930870871499027512207658213379052786647066988014895790406610533960425034483248214667565728539388340669958030682893437591177693817868049584039052051198402555496824887543906402449709579764176190072840775799076102598221809261430153722599585848972927876781265226451839965391553314010068343036182233934838730231870725546400565993638255972419803684192406740081904620482252150398348031204394872899058654864228833094746507472503026725378363491997945239933807864298679170575595909281653531353934967203166464642661759317380583690306658349116528153060639636984574738567134803050636075133658372000405157019863124078529353693568101083265325377174958668588044025605218475770023453640751911930721504072283766286006317351253396364697079497716520194514659999267824736939095213168136178566637630723463033579623452179279017243834686760495729574435329826863896013908673178507847330023313203030916019099754244946608766472975454978287742514209009104088388112137702434009009613543159432831853499891948374929868854061067330154342848175204911455195411485153190027088083402053766294008881649642067168538282255661848515626073979758398787346694141397197445325122609798843244576971276567525203568742075634228183453667725298482588709139628727900000573125155468977919492150844205084484130411581468871053384933771901181546755883315972536878110793333097018525889314119654730978247191385963377515039518744459674329684432533316793692759580461941965344626757236321765589050218474049717891556535725125282402639567816567281032384382579473035387807917084846773784733949586923853821894765454650986014465059535644915735769024745983935109473076586722064705359319162599236943109970004821077315475479962947891905289359861812116916370946605004231037898661446683282210075250730419229026415546500689287010980649677051826754543528308653485529721340517680172240497019662709238925302515969114602438732488551446082251876355930553166534000751089418062414440248195061089690961254076205719257751265861481872843225744319428805340264008144298595898588808610747008478579079501370970679967569149605338311622788430263936805088246903736726946319243289874232947997467804881983532000053902293088562912332339818794202240666595139006545810866599220903872331291040245767187353023852563445356222150238354560234246628079019867847387857781493868233097232486368093678826949418573593429612096072912830804584115822060653290259357701631165328386354593123047789624128409389733507065787517169036657639811539636148345932015888441264880772763058079013786651753314639515738833368645227215004863605658571205719193719642817266621031125983660310651403626752304356371225736074681522020670312617857869708182407916481776634693213561625681016611917277661448970644856713155616690419164223375850138101986805764859154275351844077265171097349341447327734194343501702684858770579602814612454066518468149130626338952333877323199350967841070621417598081506783148874306650422131387895531580610406744935960212676248744111665561040650641205098026154317248527866932259085013492751749599366388871743080458781204567564185502493893199049299822586990233837392201054318961498929445632372592758618567599829214022754408409722204718686432490167550464179589071513481266858925738088595236929500075250797138526474795344202998963851602866515559386218734310222670925856230665261227417984581586446833163717269256013789345574475415778683071671977641754335915187775434657608042767755785363371206277093838270789528615166339027081323363504534405858923936387448540819699445618887043016718824369347635686680431458245844027564621592196462376107641541038573498427872879633535682024359039979090702319470064172447441354679054299348895447876828058815841265272392577439293195619772619098599435164006830673773180959387165209309008195840342447888942778725948749056407225924641924542448435921194767688354566912955540355928680879218367128097751928507926021397130614869485111507659722198087971009361674111706457697670946557691175180770921288743552607454961127816662405044178985579050415161076482964771270059528653298710058810689457347233688860061009163042272341953737387635307335752467848019558061186849975052639557969227803129152948329419544783778969147010812632923155514993188511534235656960287244135869429963620018188922829155772253441320696368842512425228616316240965699528560413918422726268675741813280371383468229549562363183926662771044092055974791524471731089831665565644251882083329964895100686683892299684048091377161157074708937212896942561762787478491709981719396515478848393525878421558056683585830431834012957045334273149613825930130530984627705694369421089187065087353521666676784182884968369681135056345834044136049708862957089116492502589928348606871715670830498507529163967650896697970398503589290283375060607232294939520227426479968954746229284690143201770280320717354140697392873352193531925216671603312284922955509331907455725805653182367125355288674220898225239784260747397340339468891355970252668026032200730017994663007957854284103876339196332383958823654515313602952779771845454905056510075167109429706001338426747291809468162048590467505677269458776016092174547606543572100093177539174367533852082710144443891839192522224840749518327947509142110134150128600317847791423558887104732094797725112854960688130492379344692778576544153541520722821041304725638676637856649641927061178083551815031429396346869447745251805663065933625915793666685717253415684717649508554130812710535721582541379454592956034623794725745880714559761764094628884416653705734834607962858551861545734188181038097665385623600068233570582185979916073716516826925889417580361936876654772513646473535664012068252794499561660237205079007097710174355892436957829254263903515314534994799956755633926384763561431950119650530807747587081063577864519466963446425202029843699823936925069588683827970167544660429895864273281839254412506369574258160498781570987094191333486582819439804733251112549596966455631331907964157788266881742815605867659710689675729717199426018791223786585934978509626899545225827576098588468089396137434131376107043106903837566272467911938450823123089895668376018872348663326934349718792140899318311747965173445633697736357627890308366698123370810768908427025231797166525592567301598608426251810181535732442515719549522947146242788167359571414434374667495630139502690957863779535535054574661738792249059610194551974831466455697645444654074290374405628435037022317196199376957696761965294383886467470158556178110032186599579866901895520758654957825778388958124545157603970636141045260672739783830919243680113979913698558187704168114109601061185772271458511846849185271573889564220455075866178259491344552521101233550899571589308976445785225011975882809943630903510939015273786125080466622967854236065962307868217143541741902813044000492179854915496765844040032620425581293373192832394745766272457004036584329387455410616226231260653368854114923723898021065068599852360227213185995921122265555089924211862196740027348557956361317969337092249537681633456841755738625384719046799444975337571129354437040559069691057793654604294717491819155167413958969761382779992718021523910029944997385457084697867360926923514896205108659804239923172801544070534262623827998027372541794692831380762998358303687659247553701402865377691542965141096992329224578143084376552588057123788176356875315122071296741281659620570333427082244613809094131890828598366182165181817543596950052585111490018744895657187367763643435093419342673537744281151259596806921741265112753095292038066790668827038513951885787217606078677183441866159721563245234763700716649926696985185061778689410804099128138418448911536808083021012129252328495686815598781382751836582178935423464964605536440466608170731933442341437427224331181266057154287324576875312945963302390066966669427469724998869059063771903440513788811553647795008752758738820763645965578238709991110196490910489550645241321030267538085506061649715958516331352688205497005255697871795832344930089416667526547669991408707585470223665716605095767116452877152907255782414452283962033631839563784773468574278093885679938886566688590366945990726983066118821011806463971568056765155841575934964916468848233178552185294797512567599753174507537145724936167823493846674294235680933720224996881751716828645303374111129565833085268525675013415260579262335256056168631122318697187392747291712659184434234570781108404025402168122741352115002532359872886356044537118622814177467274978010355624249308658380308862094749256080663431774781068562155255626201146240045859769849196577974750720488060299580517840253928708703263201028633290444791688359628519491877462811749888701409602100213895533476905999332056610299772688587467145807314548456691524570963306940984455837641953265981272040014963348394051308219604621840021620109543976318445981529844005339495042365143855903261392580750158208316354170495587816965451065441122784396314514872321820580458443421119793992722999676485801835364982563603891782201923812274444295870724503088753681741037189205561567538821821477708800146683243598244952879068496012029598320704065382226481487991904837611687546579761167626428669099557112569083301170552866297706719601289209731862555602400397744065701920661142045774544412400782234553431726116098445977653749603088690270728859204330673356309406471737352691223353571864761928877254248320136485674192648731508966376700663006212943943453325245660574422650599487101519156096721791050999916967291635365818396361918573592600135511791557697654051305109302001832270137869942451279403026289581300216364883149378943583252187965128270149019415006550695630674351266031961421013382515575136071014957485461516510498783091634213168057590469915098856995016249543474912342244970955660494908419246964489396367113433721898940756065105094647665564055761417931720075839772397647194918742790291116829013629582891071294949492153834231727836680867068264448023966867245017525944026811653643575520810358850666043701726194142657168111414646402895179533156171265823326141314072092289112629444632731296454554917416112358608852723876661083217677204438901321452825630283316544540216880401934935998949491512032454869390833877732126418890850739325200964734441796808804547072331351901650251442123352640451339576011954933268514019471467052018707225990405831416463678459331177626908085676204440360343767591914220107988391606807263478791717067054941181561975750068961185890875613801220825532431821620805185355647200254294179553615045054568077530186199549238003148397266206519355909068371019252306436608697685933501304616859126936644191774052245000668053468668099126982708951458255328598627038008152333932748005096892217759687317424747970539931876141369684015052878938331784474864732971683726738621994979982701662337709579563255334131966871678688437580138999337573626020202580584214731724873234550743371387145751113698902057888732634136626188688889065519931863589802034527888374816410442851699231320503290113538940108221492816144315550931886785070564195096051809359656733176170067730884948547807290863698343653698426322604671247549765282181066819845224869399207848353344455239947534549577069731630963884878399288810198269477575926460912998776782420210223889002045078961083917687448361607320246763923768330560546429650106979568058821983329542146377392774484729807810204128369967985967390215737686771733415646454887620263485782850067929250354930040722655072127930401196891976516028917318734634701453895404385244434269316761095297902195155721008702431012011413941553600604818072722406687369119550698606432268044382184293014628901697153072248176064733162222420105800559810571784335461151748511804212658685770483823150708558993463383753472110847943709509341088979109972291181473850098563060208512372917968619499313318159117826977065054896571061759994309994182955068617494207282963770077095402603729797585024614401540123286554404232006431415931096731619599539391032839705551053550164499945256502176793466640792632683839125461786828301341548684350206051776741892097896551956550752382867517819759700711555633273127747969947446062018416511780540258739289169540871993061436597169169006344262701523146151066355171309274590513890544220997741465503223175257043958121010757328046459138068643894868027458785162167952696125906933083192784354159572918892843149677557410922644294419202788852586819800704909665778357119551947717146702864347801622835043655962492240719082226090962449488323893585847622993415239729009240122306867086971423720592694059349621098915373629940747365902794845663628145517103485032553237827085302544336201626552016032787620488441533574875877106221565228966904756661310732788009394626138822614155798844360841841840053760689731390106022639992946338730030241235493320478052864958385383725797943134694235390500830120728877972674826716870823497537160329145454974574991793045740887838089398491365718776541416232981645272054461636934924883978421775820291701549561675696590063514440061566645807002306297360753453015353507472610321162574319086179138638828429185286130608923128080549298515536285888096909664448702139419363430627996164774133392003951634219286800462637608961686455687700800002755962612152279164177097591365088117972336218603058672620362595940645817044426827100630362739393990565592634367947711577629356681447115427087143429681382983314709777955020648257399357208054652351050569900509532620703892827796873110020749980669495634647665921490540641679418674076307965130632546408732242775127664027361640965598268268042203113158982029652516654919566851894728433281788098743239825725200827138939468354450109202681232998934496359166532052043545175414048390878263783957275540023233372377409696031387344516713248730062063544477403115327591505069717061657452955698309929784199887155533037133970750045704572255763438318054323379343949209713200834533565264339742086541644643703523052716765684273167136476755706479778222514480443558787285908415239066020710688069570376408822416491748480519402245965037495258015802025980262410217841043720310489058901538936758909823835064559046987473549514188062899640173700111608249030920493469422854663931935375609541440842696510993289493978584114450454438129019947840934040576991229638180760861694175637448220645898748799557945424257976815985451812478016164856679361009300357674273630454684244854839446222747844519182836332791460756320663676567556109859363915206640419794132737179767233163949910553524554243525295379413221888191617160951650930575163009299057571673766403185066423745251377820438375566131726615949175155496520175958531370952933309663699725678947383286572601703095102596801965697148849667430415790471868350550630036933128597276605827418980187133735792636958298276208118511971320255137788679018267570608840784733100026210577969780611714062959932740559695512340749507999600801980638439802139085480227532020942935178117733838210889528100509602714439638867637787549569132655532206383280161582921166331113777883550098160344531678070234976165401524127354944581713440050434483246459239463355636686049765071768069325297327122020514290087115404443504743606267570565689172420356555550660544857859272887317112917485696929671167912966759603973264831748595851176235972019933403111150169986778003071725142720645407241375860164499937275740139854385428561289159680893733264260647181055936160137580818240530313196805948273399158727176415601080362870824448438639581826789489055418993801286403263411946980089973695816145591658240091752997958867666512875216059482071381704083699339109380715581285524666174745286001974536687849470421653544386364645808526048646871259247352015924657059532518226805181987385342022835477595191150150954593671773507933737407191443186897389805460067671605542585308908533498016293360224651406385349808854653778863553539218655914705710222700363365518009811167712136283039464045931268161429566620919524537560734991175529806580967989134096714780218026968847798394965819274926882207687218429799032638858504885879529358145929636270335251561877007617715207823831515199590096218999720698698710692928331513146883747271050453118018573995824320291015588966709251452753495319489719746904369221789959871533187112723991222718154201986107576088619688153681284801738691596789434835331126513894125526291182917161399630185353449821124982431237203874764641118971501095614405456057487971089157060685222097932280748791121587116465608417110029249063882347034495139557769049985816140701049718729570852936818086233700946756090324107135447867198207280390900568691613206446280492469168040894880229108578383956834885301914049156492588350792510678988169766903489522311354550928638781188913822325435561401466014516901664064487113999356042952584870642520086824330001466436931324109200864427786972320589840077260696982901087929042710721175366734518383628934568823508354414350998181163614803549954223995485485927930860731268975904138163601728256201104700104163650345455345963949452052496596024345405244904461616810869703547639151024470559551049058055293373623737667956921002679827535927678338763720466129958156498675601776358930493536069035473397490773770133732988776843064716887786484957724288829718943490765035890462959096081163284161717677144394247536017268844138807990389194062907297997365123363966722746753201473928702725000940994041828872031233253848796223517000015045998906493531977930390297104884873869408784568896800279415979142488798215329791010066433095727741216783250551361475050166180139667943702088934352655199000702334907701574391339845878548164639247593843699190930822953536881651445360304528800112663228043468146760183815833539228261284899865892876482122430573442632201725858235317383450638881839177279876947446458762288105045679974450734004536136931379485965058791874220386023018111512818099166740604147482327853447823998444886406518883155991164964838190654495563318052367666326430005969382790145021851877026648681623271863711642859960027565861234741430550415610900975796551412148995595296219688933551912437095603814370390779239455035825773561390664431065496098795668040338253930935696258553732210189337290705616310291555675224084904437481836434152592154444679532859825788824290354740279670724334132747075197400626920826746086886520425316891260525697942522888310472399979434486467854522243537190144368774738189455878426400606538116534405224192587178138107658524377351951473536046543773986451587584241909324610128869747078910334932349957862749965038872408727114494247096089947977179864485515676360009437511770671936112705296672803445865421313328152156202651251685083758062982352350573272981944070428349740350474239256390877739783330855924732851169803355184324572805787032760640705472158225163192508799453862087324687540188977173817193210269943333542591711788104136009036260220054243300868271221151727915306620092693019153543752603716382292569197540962542095095668237502193501801418898022934037733558562740191343115259932689098185190220179060202933690721204951112416120943747603081859991493171073596466438267057765350236199005543756988892714549793073542970553636089624352117462047679036583564918947374022777949372317996642825688389630324410533505009948137625178686319039137598917921354524583839161070212360657672425340909174601895311201817241389791373158380090038727065242846706494833458282514861143957666055580161290630822054245854276771528915777436232300833237692100811288467676971398698563191817923258940409864818650726222370622711404161939849952997677775329927351209343227764004979133158673543602200266319715983229550731723262734772393610715878095881098154236772994267091058268897764060231711960941839474500085541629599248670718999794375568869230364588545435735597067846063541076257859106481484687702011380401973134797130932188774762584786590004146847041985531786802269026412561335138028175033241951267747666722713703709245730882046867741051682580599459394123757353847228663384977340831662451853534712091888315161261512936306968430291274056675798037266096224752498805065216205629577101312356697211389456923441646146644966278751522327964311571275306427299693244230760447381975882390531470613084881678974628473274133788944562492544735463396599451827391647845453705340026819599511834167591248457173111613682988189003089184571858679909445932183337019526782628443265222238934581459002686747004465923159243135038766596671321110878054596573541661800178090827715087801100536977899267882507753248771204196932323654126523050289727511420396367526800202207489324515270348568211159789782597622100380056910263997815284940361012175719975867641197364331146919275854054757350952071424634240878831658722523140953316917530241342682665556396765229450115492079722666909841061533286656492811534418587921888762001778875947696535722096975114665674472937121064890341382623461806216516203039833217380652286587879318735987331721136690071031994569200300825179366094321870145594914469058736158665116042858379513722313537608753870222123064343555174872926097753531659938488497909996166543453467302653818590393398448705403004703802361672238988064717752488354867513818441740693352316396126446326814210699669975504676428762728054874452509166513218694709493173477880268423363514803087106720960954647584318429436275872023169028122369688704161078485730398228074382021059831389067953384246615087432145442825097174575524126000646359923496685151756074025831522090559053840758445988662980148728641726532578483291538680174570434049197507608030529660038394062162589676060728319865783668385635037280539250719001311579420730530525012959727197890067581906294619898824611697179023149254865956534529237732333402441596902663152699300654690373823302329162199591758175618415644756373634960961166308504770104936649260470003098060432599512379346872280556545396500766290425868878039836718192593297938243002208891207342715044533649079062446440759211122020515060303828064957643249367915678059018022032154873423387558486574087508786967127611686717829515621485776937333133576626996508781140573112980522607794055134696271978370164757510854000727992046478854977470878832592642649919606809350634553130098798148037596485342787834257255919146694365767243907922400080932412961079774015210011165364660348847696015826824603227492474801784771478480159644740794349275918891832195164242391487943380314470603752115502430184096940869840853220855859008219121470240753024483258542382642664334389315867707463815886559909490715526605219904251819009903895802172387935354298084644805353667873894208462421020801601162428590948272822817327905847743249545342136593975858906392072945224400835948361223992445698502095320868912144739897188029737172566041134558318573193472240533980078581913839807181674271777119716700135073470576641977965246172825328547671515517340224662967224355251749477805451995486959158719645427676773875415199007426742164171098034690361898241934378490248165918211057370103203187454089076074404682722533240924058788288005531720814739632498631735811136540843532927590280421892325846249628481890144881618398996396971434262379068736725346527940325452516913513671953455834450589356863619260311176388078624526928550834049336050000753067569764748880207575169492546079291524988650689641294898818943061342080390454823063231143300492128561345925965499362080676439135163676661979303767372620721118446398960945822072756094828959193014779124247934063369516098424173664392345072431103855701797203920631040309087361976831254547719373363938664871720899706911956730035904068699168185878557202058768214436154915760711858297937653548193756240944493339627294597543152708021166207320485708841486617078394834270552339262447285665705673034815887239369577059837761131514857489152190546535051034119922406099217624178869567270634021369502028483710062160369146512940770845799234380429921212438747737590392441474845395683972441884665257458770656604641270397320485213632311908967315274257639148202580291844493558910963425540385853741949582419572209606960748821577788198849277970906509028112405943984420831514202226919833115860451198172601277474793062519353922448978789506243674285243226751846092121715833747481337753320522793616926508554301171714244029094110551906414467791776523521295169494599892945857212569965073802576946281864349908944713814694276478862693066100215268209000916834494308624749806113901684710648470549016714640100097273448063374136059560193371564518012668968853264296275113365566711240170997197302848993000997915634318481079904947570688745859334358958147686873691540598966834998584681425563749392780915593770603426969070672361653159836182298259480507051677710509413997323350143611978279466617552120501090701656314794602576815691101377695388186086622156547770243061596086257688370603173700692687420918531976127211430056151185016879209959082987456561253864377071498498334613990704664959655397853584617294328165712085436955621525911603208389103281543594524404656162124037019643359123609227534939293935416827103482469703843438389889600876417393087485722117788198417979664710986735951014476602756123124633571356953181181699600116095298054099451324114353254504290596569077787731788507683934602773850922992552512868235870467869775277784839083291051798458975441961332728736018024038510416241295813540621679887781121778948365631951521569458998637603277293509923645565050536623439796960795949328802336011620550785446412013902081435980983452991878454460574753283014157469958269981442237555659561125383626987491224891114705193048501415750352228968569700158941001063176731037157385813328817451911526037867914171658353445908944356949060195843792483839549387266136944069605521905987199078300285271770549257756738229637790336415380350016196861791198013162139268587702609446665083609764252083217997803950386607080854634203925812123510448584417788221635404549492455650494504902251344911727409728915077071565341074177422475182412336158223703055007662866766120206282143372876489030393971287431456194567689622375213366478423409229869246611728311099720192534537737818401798722095270445266104451894724987745955610868666963833518106641608616866062760993464301539633063483592737154993136276458834057045745794212670293605615166314835970271091109302387566431587279037299180076640124220591595960667918908257863752883747604221960298708206769161464319934687640858257488428626130028892897377857651055171030929828448361288628836991443508563155828906062704655450571210524597129650313464072923226953438931583772211308367431631364146131433822793198689455487960403180230993605720345677984522385320959097366006057666340538722370974994984507194006754528237845482866557794764125583371955372069151332272854525329652086957999324912273314836801525070317677356434342795729669953930939350588926303204020605674803457498200272911733523393078607762307626211063346694246789856432299385772676881081116147774731544633334355215009470421178687938173871020728537531131379554876483046153424649815197157214758940302035175757854574843853938180998153640224991171936761613252145576256569660848136902686970334404290722397940597054465059998343425394611250196737817328858545203654759299973754776588499163049615393390895936269325833519109003482241724521229204388975057758377642119363014364464260081229928873554226597980556445373159623633867146684672425748567736564255643598954080515434465329448059335426695337743680756534417860644656000837767042426296074869590594224288639911538096595278317189431138260011928113258950756427507906556056994089086801821486700365510887745180641722959788675436473835773021898744510722221733420725784494834844748343186677007716051304128413675770720183618737675280369561355242057653905005678803325253143223768711505556103726506208660081277463204453431403209759464771805669790875311937137377531671027509779081447380342304233308018024670362205965908579977895364424298959398969551008509637522609867718028367550486551291922428611430439175457070425451303742084734743690422643466197141515156641553176077665311994883561080025449494764005470236584152425191636448957887707491491851994002545009984602536876807431833333428635031359695693950451804078050695845946250202514537379491196953191079721964030547406910418699096518073831210186494589288144074857554349691601793696895813631211615236763521763763583957663669752997799464645115533565902001684759666779731236974472317572231457844694446610268553534777028003271057340239037424956437509874507528112029936704749162451724627838732005807767488097183235992922894867082238229664524094801983480997995200875169969889392886490568248264951258773033462210729721115071115654355442472850753848723854031693789818736737317592187642370967431188987502312964345312102462927822681938552698062030703822785566390153170463418764736854918353961787900952629744333354109883546686577774214317679498055032598868161567194668448733206187171516288965236498035897848101962845584339026397486449551994698401837808721758843179291047897424643533838804195889969883850580697126353911218308570166088581036406217271315096323222815911663587674317025098611862823801651177592609300575537235093166615460135317931616630148673782460932319278790694339722444566398773506036533128809619924859083167718192287975673523693387460333071769725973544094958025006724086422551655801832513196870231748990912405128640435512324465241900850875692061552763543810817833794950191056931283061097110667506048154138720351285222200599892286016344071227680333840627958974025737035030302127883018314116072132835953596866521855920354305945155844406191102338933424802551017528598117754164751295378254934440545986043340040386678163571699594388020185051964090790691892928686080843095630292478371951943921207060134373473724312783225171065303540493192512620091355923041439997528735980170767204563019892941341151407284615327440239187696586241634524178567387991146250230575561710883505302432709590613715205100920269711243997803739396382325266647641959051778235047574076826908506607717759955187396420448101792598930084474172173130304618461519861377882337787971842410040767984132685521588683177966009616417340995135321033589518765061376476064771891425395611063416975760405781287408735529460435336627091637091344963524858393042736339117352262331045848514579851563380011948417975393346258310995872221925044255994040758283103826353819103253059509679153776067829437776352527561995756687218436765091483166373485735018327000739749706318450832246043279934749298330981335004290981376002699510580789638075161269645636646117646785152231245572278154206905861440645786904849896765937098750534213775756019005890442452819227728640230971600808551579411222976353350993016037798023861429674356100318165446211525807186147454632273339253752108111997068953581502562015214998774286364164388581407259094945386581593211740383218091050704287793161482064977707050619156485000705774776138123295420219827452045176862002337190027106443418676532767268294987304899085971970909770539858253085837844071449029954902817856855749957077099811482800725797420073176124501075535137995293150499895214312098590215795310203873914513451810736542558317261907115586147016987843226884841483387834736072759011049788041419800652035642824187767471554456604587117307385166741056209685308786199096026238518771862076856336957525715911930257881979784479323890238302415271202771816018342950908133009143619945684139048241786072484544649585958126153921499657340365142095259697508766885609661300663968316550412035514863670168414166347687536327818335373076349155892695495739778433785441122072467704956974377256900857224445009852216887111930571040341220918690859835208971738008896670608569614800240948088468105481658070672058596595433680807525755328608276970619245631081074599608119396057483269082712095289959861383955160666333520993791194369648288245618950578424788504504472777658241817356265886042629874322303558384147507983822573947318722871445081443103600306441096602375645403009894900719579172056171205615826023173925394585237485083399574320520296022951107662130917774704428507129936926487240794869638964861660387972571393444261510001666735586740196908878684701748719337490102745567528942632539610925704290830596024681895174019299996778947986688513392810360185123288972735381191022179590591820617442010932954452315844925458105503934983637873601021428067986339091783755854852608619428684991998991865648431450068281304284138552165937951339787228490481943393852495505069300207058858461379599547000189397100647481889000686831839036722532014898307114640569624920268526533231576361765767076353003752674886530258072123769527623441298127416392620397477211281762983541492627015418910870987618613891148802974097381636218885075708304633690605760285534597005609745103873935850642659157697127112744809451528472754370069649005755394122162294282112370264706745968523855512820553507594380547018803559555307653031780541779968940033698820502722929594370634640768615427364521484903354175278392421668109418505618339793405825682342952256017448932450236810995678455075461957543214529751458789121512080281933333712073700283375070891682774081623017089181799960039178636743844235487955458405759706918412236475526925420795371795503592767384173160882521361407683438247810986956101387519019288740048488813862484097339631431841157232304597989241732117615670146604020324996646860888620369725345033472181252914006148016954855271829417013272175441769698606886510355718402310294947203724070105977550894789327816851740784741752176759272895564721908397253090872236229083804071073453966620272920841436722857618306967616806134366473540048533338740308644905666306187853416907048302727224531589953249290898105616877818344833898911756034477779887187504311029141221143002757355179277180371119795343154547363919418139616237777509094840995400667036889676713803728450766519273123631376976172486353716406821503992055028071211176395021950046393926317737628651747066727158638983815426084776170715923379462796674697657722374302555255165611041036387973529130528849986231859031515599256002923025710178466463472287446940566464547138212337192025160466042862242264702479578091347921599282098318190077643628681042527325694135755198839399145347430189056666051116621048213975165442486485383675540771204066873801216544350499099316642231683314572521573081405887160434369502837184467612449363528945053876500976150013661573329915547073328361380690487397356152688530622015871267447204823049370196562519210829853821174763124085915162113449398775191934725705485811776866521859959280155970942498701157609032085824818637585933083151499574931612162599535272303744542377571809754235936243634375715636748689453350040427464348716427554734970761518922313655563438815179513529987995709710903637796304653260700982582993585647833935144127351335766802358931487426788643315542460506004082573885406637840950476908157141158127813194925548691887377973703350654764189168658088985267786917983968907869817775545065327300194222132507487848401682107886421189899471310624787890550928775691317982958023696979422288129802532352786031840480553883013385905930210428277058650493249452989043648122672585037379218902280915049213424040070534499317585612338113236058802429791569429752825682443127248861999713548781261942054965207443462801067566540291146279248133870442127559696991758045362659186971655353261655303075277178884514980503134865183636607749304367750424101947240505061689698763871884904907874570583454770889410611702712917394301277290003034491514237828806443950754268775797776584230256248360990147214754799209601526525930941051342283929168093819986058725463564399698597573972580650276805486296097122544373187429937689519275300458168718996248725622769212464702779766769607478959143295604375596428182425872658590256417075921906611224412118166679754407137046205784418581390699695385134587197322361963989395215992805732926103841426521485305520924556128669530499787241743651547081019196126501989469620170829955775007599577283445282545242968910941078049472617404625170080495302190183353199078437906359076950330835793870893230888928138823150651806275840814985553566774760135202354733800245762302426330184112534841747656851088423742431140297253548345391136021566655639868991480002617512207352713054376867091514555795822240185660027190377480907172230994706473849757915703425941392906861959530998474263756896090624553880447240136350935829883193513503238274238423157047197951738454806643646258312824378293302975898164434170523790309985908103164520098019193584554457668995563512488264606852765118692035940580419625711918243156691580579997925631799745284398009286660690503836896192856930171230991900523250459422897174277311909996842350550977036734520452050836891143819617321909736443363495730365671131103520660087308502649469654167435849517013210265507991239452425076811130615174465337162013949982441114496432649333494333038605494041837204352609994229077180895179014517294451170487688684262472669971565439389495142155563424898211255750820844836789108081491063930688282195648728606035159086538580960640274885333469252305554968635790931194724644880557337598246326171897619066482163900991590679131624809486105296632977467186740995163465996437978836279669086142394458782939228280739764706014198411341291582200044108304396116061241578481492571409213267799809357169237423060122587312158521327255642870575044546732829072802717570037831094278907809397200879695519466452120264012820332143860375641579908335132221565867331758984192222257297732503025977352846856573937095578570122701343986085291764200625831972246841965364002070813941769915594448288752945533591859785360689252836732334266069672814464576316121459299302882436681114409909131831418993223688462417760556249322809720659348750624402783444816380174046897491280783145738380200694039510679875474601509101625343044864975415016487102727338564526408760837260364618858032786087159198099823603698510659782356005080816235148254074913305242141647537492898872698750005164556590857194589791593552180060182312194857953173887198950721628425468362472314351174626016849224074754028567551542831987900529238372086555415372573477739712098403887207044392849102025190309899140057493439745647529092331380113115870107409001369853406965949944716829583866240087108574919003147664575012377858731826035261418436194795591913629649117745291421197804421084030927205882672718336398998560756471887112322370974906559492986643877638836194709261122484726761620438511127215714483732106357200292123216151595399930779625373589048580159134439016053377356419642898512314796097372765761608130627870499350013834728240386729024391666612203341491798597917616043425367538498284100432250678450982377343824355049024483269164848634869896253907829924716340695216420419198047499282910159633452584160471270311754168334631382319137759495651675248835843631759549530974760502767084346696150087053133903315288363523467527332654473260977701348076161904181817212503944010184369499558641756703025793398547769051652187805367321651818699847620624070037002089247614037320309220761925444178813624030393641149931682890644317093136562104010502426454027741985594693343481840856228717136538378942175814459265627470437017553554447571994849719385867615887630843509036303270688165032601033155755360887498082258420836067809819866144014173868054375939002060235332954125298658228342227306921748610047115677815525858722938505930990359413901929765132565400743510255570070515072618475451609807674293059186928025997987034328104193348035827410119022468909263854973579544455652281832978686592843660113819687671721730183337009615081707743703114694825618103358903530267461138117324685401806899339578916560324341718774343706750430143230884341253686243619251054785443534391920676936200575879542184820583598463528107792243417180901558562425863389624764767426716406875567429652914989043998752388970670115136118199027260144622668366849420931184849031529130332226051397683367072892635439428662536980463484440405466097590833601269519884028402588587457279444954347140712370008617342837129485175944383742400223221799100376337780214988493724509724073752737824196966500202247633481737240034663745751770514517831061885045738782519624156096643642419225359271389055577586788280082151023545632293057392337847224590913572096256198944649047613939371943536031047764515990528397793585618140759639731809103456757104832274983282907399132142809259573811654561904865793784481532108751091931832365374640500500236098226101111141507576176746182453562704746360185261383193143821426857356835952437479007012924416138521137448649833773032569623942712807429008601799311110810670260615061620456838632619130297838201767048795128177241129332443510524316691644847162791881840355340697520999610467049623648741974454835369013274117527847404856125286705135752398229205053889947414973094278920777509520509004772517921428097359347761111422328426493351894076248407909816758604660431801880903363412672190265882930292268199979126539902043743196346955145315312923730757297515652379714183704223263930851883439677473043300366329671471643380176943542144996318559128611973293937104511523912400220009458603364341092372887436714087664950049094277635686242974844140145983607090865868963254136851896732240542116927897408371169681978938418343227493273701358287066167314121273481862060946871963771326336964203074155649579761621538758332044008527154421740797075855717441141480181589443721593923184671059482717026291442048444645887879924536074749133231633554279954179434685308144555679467504622996384482940223640505061715716581366604041646831198247629206980857480880277922949205271966108522805435179227489720431007344672215683169149671595820714789505202667355149746377821587437192436785169379106296048483741044056649425900996008405044397263672366348140209590214146234531911742766041807398303419023357478213008998103621094514148901530028191404459486748601137397085051209270376994285217754709744597411332047222184325430577032121895997938014687525821431099165419023126108489891935370810169333991114791892851989241576270991527770157220310519861093259337989287076252277214255496206334051332962978604920726582203990291727134697887645189247611218639000122408057743201181017375765426406061902469823885104864494741864615720091926553350612452141451407437967881654399838244782558955448512276795088948157691706661344918991553685820369780648523226221461223783642486280021759140533206442339662200424885675937955013119250154142694669168293467396185980914844518484690411015420499847696792583916855885068636761171084887440700442357952257839964667788855995823574373225428377971469848077972235229006824659149640554017407621125486064549055377906591989664697343673585275370597426061196184206328952586859498850791996902087761539818714611394465124570968624331983821409711809992378101776766866585700814247246878603665632131731089986748200845152337772958075021676031507138103779941174155400767831744603203266183185459349707944917373446291024348079061310368806492626734745133332842782970770513019312434128497648952985632351273127809976002543276188314460102696036156884457780473576877693271627700123941963051733792467326554286704506272156343511047397349871354409556880971621707221017167860401270320105356678663169923587387779130484876221189263682243771842162670235131282387725163528911865442872068945197858220720251559039786930732368652389153340823500867497634568031864730376059848513082174169967447763112324980898584933856962192023919772611379593153696308419056588208246255764928531678893556825154809210815656733226143419339745333640918176336391167214207274799667627185556590641372211412386284291855875818027563156848506161794927493923335513722407052208464810880428937343837922230033931461746293690568811768962719708896347200692850340561018708919367047199310189353438543167347748807393691372347789219617331148355683031771094892893849496577413832355402503101722785526402338873905643877888439107179980295297423712559705816496273823274432640264041229597846573470370802602969088694862220666229221865917260943817850187684360674598879399499356438995838453625273966197720946227704719041477057503563253444321198787253149674538326061927935403306248751133273874060183634848643722333766971611659553717313245464901097423307390231184525070193443340620257519023560528059756646691517895457609283453712240312639649743380516185393124227929637393385354539519171457927900991247313205489377639752063367651512631789257080278587302453191230900701688588484362601252045170933253378386088143818081116530729655115904819570448594724165883694514322654834633783160066067097197075087651538609838516212868253868107359517893382272034006153839703046238123870267187751177844282569943963981676751052866456380619324967102510195768065975929700299794470846301679508283728970945478000960089063040720950303574457552681634773901372331976385584238865098725512195189413066217473720936313062403912194039806337619021643270432293241214950688331717698425081395496872292731065114576279498593542331419991541299080504767482258530851311656440950528821569738666847648494562291878786519927104832285654050743523308061120589366774401200940041127674129993097407916221204879543267773780711944149424403532458205149805052834294989606759947858387428791903486625250802227801445488031396762914147669304310959547099042271024873806733763806880139281392497465098522658095788007308438019409227319285726601322465887054203581540285498036149039589087428254889650874466707654425798519312865140347082859797136888407070040645746161332161811555673659230086355148283300572748468010460445451743363312658376094787886913237220382061016766744458435076445082417202507063218731144966123719841375386800895866726094584834621660610791553068565632043478572098460930236077993204718346901653472444679162370073539749867836558148347359832409132459979817346415717550331305286566887000680471971205639058007022549352354968882178838498860551073175932088513939864803400416985295188720252713409858250828855808581639014578242995443997461846693049900547220284666940252268590823404497690469422516122278708774822000225286448689715901557326795431358892594622654989317396207434808404995730876081281601065029829066691100935023570466360192351438478664009418969390008106412249737809790230926416558745258949702515893690821752490800831065617363778245235591493677893220599626996784849333272670604660348710424089502407330728434103688368929364487624386713274650834488051068022646385915033071729999502137173528137917323434952078011277667609378184234867587375537114301125719953567768560803774980929640921790176535307549554192302816982591418950796421585572477553719320006201522025938513153578550748725011727915139174144922680814982108564549498827011046790643189563210784853737093396060538585421825057460350999190208596400028034828906916951669128946497553672091118246193860090041938783757535450433154846964716257932095129672802053979759037216213405366507231092602739510934184724248347066908595662502532129937660275330434893539068222405685831296275849576124495567822004398430142266725842398155168650067101882412980542347920785558564235557720381824029303775904374849168982249169984765332956234567785312454672659529625022752685451895690726034182597691506009882019648156152005821887251422981966913835878588857568181499766017053936928379991448223399124398124306304850449444158254467046896737858543066364783191309360385900044317768194205090160275650958639407357294009272320111993037431758275930828629763214754817117205143336946391998463374796824207023050006711924335867266804688483939318398449460603441899764393273204527673753172198279642256243933232999926174799865463445855643464333863917747850303846049819053861058353818886094168391777639709661994109813006076448491766504460311923259442082685416573354109502511898499010836114905266069679018963894529281304847012765340834967497987353169021274778789212873136290287829457935295040036589502667841516820173777774593835375383959324330789596249558953194349668288146107802938723087171192676606988142462074142283743060208103721237261130295576011046540968248479911805572354651538085301759150032234472550318174800957013008719024812888795013749551877875840428528056603181391839789362523786720463706730652526417559598989636117061822241203554279709938110539429318461014533963482869516720918643896585609300363268851778399378766972795681375027076654420346083889343044149974639619021162561746231253086210129551808245636194191494839682252686285742386066569872387960257550510218104931401639892617040713725263599133909889833959243227874047460121327179505722357112718169874966480104184930489473803326672126214391479574153873729122260311300209757108278417043608705041281594388591397469458855220287545718394699781445354822637999795723750879604525398987672590791532197600036301105549480869309107659104458500952171394060280423498761480702708562871411473961019852471528507920377461977110744152594026182532549604573229391660489278091372630300130440080246794450819937238662128930364890799121829571629560551456276894413248741214211850388454258609013880822275820996874737562001944326317334203837497431319250657225647365378872748138437649316393376175851197042018679189873868545750371069624704072082398812851287795388383611718746677276528886138913360509925937601379915195136927643352196421054609767525630873615993050296032463709064700766733696764218749654992984579189297758302173287622604637477103868708109633111481962534204078911778013658028996627707153519807020007951688619448311535556967150848594768380152340854830691431029292661838317609349614836104237949821595274770163891414688116921823038317882118420676393734148303249693531159358872551453224319053153992959265732296057477730135268328554797013244097569130225094673264927630493581292857789382302133939907549129940618297190531703418905782526422180268467080206683519646680903640740543375383067883771386255927657291655101829445667257498759335655269241173427271220002484022125065198775594039596212090591943435480251586055469335618052942964987701288486946790820766154978050252613210452066271459189211621939162295681186238261528574912890435124654266342574242109774247275293713520049866616775066836816741809518765123576775984301999270768877913793355092983333938319370471528975038906188041583701634046617113272968095326822508701421800711692603093787374613977857408785339345157469002352432256627729694283467951946828826838212486215806211091677461955257542629398109682450127424675107271853264506127488894985511259040366810258204062177110725554282895400717989151546135571971690636279238639300780842521179548422459956748710817036889609095484817580712310493731245845068821944115260945814605205658227127749913147866094297173247796151233536459699931244463306718758293596814202541444347932079791262758940648008095684867051218728481022155510024798164963900880882723386179681621340657814289133539544198075382340698743936354701642105146771335879033235050598832631897348531718178879509167974133273226408357583247881335281788723156273433348575870143628675104478143474704670328057994647079522529224118550823118883358618081971857996077168053100968789629157981924433626138824520576135020812686271058007107244551990181058917643964657991897175720213033699516760886517094264267220125735194949623366914655192425738238141466396491878275273062760076876228533782527951437762773141648723372851061247904395135491841558213356954131934969309613893356189518223675059658329885689563793570973509094222691947488371480121044172648482207357697957788798872384407986789840578612365867644300905152456438701688707929906501190034843885314314705479150294657442877346587115683871363916382234716350613964464866866046874098555851084572056564706173141555411747580920936474106482050753217227630330789410777352575247083507601549774334782225400109955780788101451344160687710300335952320263840463403440770354907604291615578723119288281007222965411114894825117232070313246936614772681029084623668420242619576546124657973514560166202805305776687400141832215701185561924338365408806618447490555912590083949485626504308922122458561078207072363690090929248533408697888275832106083895095247470259688845800572539690750785198169555814142758959965995100518937853632090209209601593041531719930819615678810237977836521307437373286087255482306180283630805653245191203353089103379914624707372549843102670782815370119215664471998748556976931886214961022217357632382934469936556178419503816788569339979813879973299373432423059456061147358694226415042039333251746890236954811742920924934305152844621415395453553552096655173524511716048121892697169804817693282235756268213384468668376357396431299685918078581830285764594936013681478422007978587252906105263650113144160228271026659136819260291844569350860204888502092831012940795941088158551592885918062766538546509468788187015295392166179855882492036039309631026014437498233585984900164007178747643850256396859287502536692511554532259613217616766261240898634138908836778129311466762884170016982994430988703585605953180517995965606713930384734367477463310927891214988135268337198212081312894536792122815631731544228924062298892680464735422258546974028443560301052198466020190609178956896794419645644608840423576101065320110580241465320166323486365391936108086541636703475104060758250417421321500454408382689744666853642007774498275053920457501994000724088440395670458062661785503054135351366986914871800773515487962420109400123578160710336986549434476574832986436050146473208948105661720483248092054485843040047659917484008912806150921324714425159006130882895296872681545116879454809613162519914858903719062630879924822391308164561677632493942330358645774747600056590693440908617584532789523842464207316680592624946826269012001051952946109420111699980080777591738795251878614294715937840676673842305109616487472388685766256511143982231139795393608316555018158894029527892789799885692441430720526310735690393378610628399989821611522094719295816679907900735080049260511623683201393012760142271668017507481939112879704147864101356514930116134493516986487781201321610670084449970979690013851531728124337196485969932989597418989299778824585268613656171393020164396442346103990853940377062526149136271642456403465923565854449258248096473220890978633282176857942364229686495349527579715290348480646518328894412172181155419149332069559130304811811380678398238190342865236050057259481616459845851085930960642697511855725882967684287891386740161905211947353777335723024911156749660204913717401010798927755433425310024020391114708554062722724348280944501025377385112163022792287076797889968594885620714546423974168395211902144177096349931659426530073757154788929107283597979170265849504478387096947146909492386000223075802043337328487934616839461135606727512674670881255588546775387463436154186064716918825080304181789603319741277353239275732701253088726750206699915443569475821578607627466960871717974229433089351232276037461972620962379585650959733891861886529671417808074271176952595093987342463080155212516597826500913971622918804734227962593590139150205118689689498598287829188229087296266434392682920170320576235545136653199848295743457869078758395458454562879973844773580896901102793927229075588925568433153379287264312631073823118368463256638493669923498097837052022233894210764668990474482539034991670464770630572372349229158207265067811439975796738167284843360501444274536148827823991416611500025872533294920580899995738901251516032700501299723612035424475938126547351502890061056833860818604519070085041313927806220324100081015195331385673415202925166048962673083874942943956509194512418281484499173017278998889139135087256648301556345410580649758020085096447240795424414909105329012960781099054368332796354487070704849943568614847049111849595718041486877151490546056818321888776013988057172599575881174864007044447450633648484380849066910279454327542518349835683229937617712208192251258621927543696965936353987178491626942645506796821023519026380857891401821514493709674796780626946609449900630226968971428609978825991624964663038559813575399084238261425074540839800205584886173653194080546899684127954955091132901818408915425653534109819478750769989765932405885151866505915832918787935397158892088298938643116717963186609774640745332984366431258809308349176277021515917206206650063616305741166919136554332549865550093361273941098666994504911046002983434683051320900576477749358174207932032473227900264644763992758352529389308207999011016605302534884620182452907161762408230039575559138724198505324905886930937091720583042285969718327630210328660943816194714639660085068292484586860438976957589146234455331067091850898581257533748222491951246612303223119756429851901383260416316332109622999756448458105914790492479517133305727358041643364574748065740198727883127103182756172365957540683470079237288441101482735486890763733239305814230563527491487053164358933820200345472442867992840694587848878196355578002474263953527364113135164307246600592716200275410965729621273721143996366098910950648770887863553028159815439754062950599234942454405615124092011716710844916244404211325668104028816446227538504002114546087720587439888411141216074942499683922321577836626172977553484099994985202094181035059498814520801488437389295671380921875461052935441927949219933407102574533570819363038400691052733896500566657686635323650859311923090181280888591750191014003235335260735596860746125948976537135568567931552794334108812634296398478947957564021385550367217780918936113884072546311924088874782980034296759298764532030170549000393318711983560620603736228359308344266479755267945156333522630829914720048396645749745712986313227271391255158777636484222306875137589077826105962076576307537240753297252020159626106345105874601198798240705467621065348877928848413973744655356418833295551210423455469827851217822783168656300044454206483431934462095410392235969070098837115951708717292129898797529570382601423387866154705151344902487613384291275506029574251726398268730337626225763433492286393720715535718800483239084201657378495629753164205084730405087413046390662484250930652991817175928647044995939634492698305963490697333692788007499649452195270580807406742246731893080968416327959666201105854462676371197636199018163279605756103295752304822964548202608153499556466858503913827781105106642036492211145172411010664344892093909371958061972425240010948790080184931399222185792189101527711030371663568626849796407358716061354999074704372795070831810983960324249081977128684934727448457730157931698165944018003436170016604487926298459890723960971480544026965296099239700520999215822771483858549647210051455549625025121175352681019122087426446374635365927710250855406674571183886451530048188148115928999561700135471240617027340003061183210854182636024976252069005903379697296547339117750651744493168358941472725324322203240410654231015345254192469215717416383201261074204331237592067176800306413132906843964919799444009288259976741383516344274126971582580127117995008999173109229914880657378937180972036749928711221184795420319203320845786476531542217614141787605358010989494472387896279927272359431729513895200730401990607782436057036808721087404752883221795260249345112656652885522769659888749208409462872371015775871774385895500104032727689571475866483904240289799222844731434484117277804181088237892847982392700208533091766719804266586240555025748099518770199001436396361204396740636196637664454261310778038787624603506744665517953248088095347561347043606077616065046914671311122614070145787232826551794523447676274660694284410348992356393539600090777805218500923975624782687116235606997328577551925587739036082302235861079470559781648166723294457896522202656830917174481439669806584884799215529160740912366111316788418582238361883773317266155955763569484903029173339856557091973662998363880703645982455496098766982738614950268480293160914574413715767222559170677670595894659217509845328118710737490785889065728851993325105248544969876977679471901531869938635128439598063883663752130206349421511900204698627581975087365451937877596068146511680673348026525815187876001301044076871741659610597111634600133505825982587469083043798952581222761608335460983616452407684570668052122819126587948287597741864225419914410458180504802208984875220592814546932577975967298308785674173619734559448117646895580388672911355836774775376877399576058928980345780063458955926947078876268778944428148025484745113706398062371027654101699567632256771348953480861900508304765175184571804852380822275560943217037432196755958467368366747401224389567859861459337680840243142920213322298114492526170994877689734836836776722572470713860060749753777375746375218485814314174953727686053728325848658465131050927507091733205918188436253365004811620353350777873012176496183276103626824197710160166581639590944520122469771577514617956741161240724942306779613293108737880031660785570382792099852877959014509191471519157797172026178693964298340265709981069830316586231189991156066120642369487299440245636553690130440053484814257765139198475231427147057236444075924906592695349974824013831889823542631302116070891412159752826103761662590601706187640988747507492841511756857050537455326520371037871819827155620506921161675479234256320519002448734392500969154761149981459247637441345358199664615974468867712839637787594550695512823461605111761658427757022589895941281916327760584367202589110523264707334783996005384984810057745607093804387585048504673782810737742639344676071290382060674829034021980600503046861880431803187768925541103801031930279176700940618945969320753715953496349255107400903270023775741852181522449426854337997458139071222585154577539328786286122258643058447970233691068360673973916545638836889535079606108722685497562640816512621987519336793787821868879112756270367024569715603797561920808123530619464142674186657178410132363891846251909130422904136539301428039372184344446818661022119982115727889392379466565689155633450944047912172556002148098788979721842285852534715611595800217076749126125543829430953316601237301587763846734623965018577289363234034942679585182107869863057139307712270221150385690138283603020432869901049650272323752840366429201737676212501805049038815548080476059084079240153067714550669367006541174668851509840963918332527014250306803904403429398915698614834132057061083079721729084430215755840640950243301600221291696258755010207672472112417797527887216289110027058383069282548067581288152924332279118691099605863665401755824758589471991223797014002722694548193890941846030458848943010673374217966124074017443623839400165510610551717280700246649126329298094911648178668512727183223759111091485045002057496100006157413221024145813202257371379426171567068162568274830720978759304568745042029620681243770864420369351378251709279400399838788409607804694282490519934435936789274909668485805248019457121129559453899801134574357035347443467948765337918746106807476857550544556642664715695577814719825116989913644358960168797352281471032592023488966700404710606219795635049669921225042431110386624832163206452260593796135246151979935457317712324129570601956362005520462810288477578972029149363639198589204011359443302136891879464256090858498443180602969602206261171104096547535204881955034141771844476806071061229415422047665975722786767655542009844021995923088082391754181590993087858647329906578008319841441254237068244245202121815560916151356498583561798624849292606774785297665803767490831015423407115075922666514776087157863836619155933276176073212728613188282693352863331340147591820060363792740734778288004164047532325481653762276228027490722632340638597310429726655047857839234987060372790252615618572518328038051226634976236834208326265684711527272049147063114281337957333496423715092707638473513755791062099109370879763995534372288083505265556496536602659220042118242771921368726059155632619656789232222028949299160483224685039671268975417733239607512287221337988578529617409059248399291775644726455809922150937033806288157701428946927732535135971989844316323871601560102707298961322978727183074215442667334851640296788024963589052139852684673513714830415960764601671265990821270426754618330628894251036938063068734076842839962692324676552035793674861408515328435696432826206362507017120712490475606013947241534215822330263301010245083275882137229038835006784326821865679190585856574670421146314083983159684065331513288156934470944004793369496684562117061640227980642123634773239599190952813417328375015756950270679186713168455986396317864031107899139631165110677010310247783511446156060700104626710135189160343272590578777252804592468115722075032654911542715857942431679892751605434129773316922558775945318402187593435312363198171779429662330141377803396109086053871888344373570522424909755838711191217643967075687769638507409965391569921442240113936006732030898165850891206468600940490030416932326090396722910991695815539028103592874423313314269380542122852474424157925908226925770826655289886028522477099927072163146423141743026327132902202161558887853751077641373620614792242491592956378624603915047139425409440767791912747753375515952017747612226862260826236962111033695660090910101218903748710673735061153340928077467365142581109665272372462168128653725984587294734823712470594936584376112908187664520661325292605457289693062911463961549910292473597068157795914116780002486047515616613035588175802864614903827961661006924743963148497790437276820245107337993844560866527105248488945226461752045893575306016169282449558583742608207925278380813003050603909839811579404574669010071461869103479969230644354526145303353315701947286355783275099796361372455572826264054605447946018333761119766599955931386287303572080685822053258565445901149927582596060029345136950194440072211166675658053883798187635854756299171524449050888522727476005072501841955497694988090804595227722579774167530825754527713150669925698752991995729632389609199104289140900376487434202872158900556352262763497321234685605943429731024487354534455878364780345344002168626076375547274163953733335207627351907119070453637998040779777675409427097532488208405131058110097172873441177057782233929886787382158919991068772003756000156985461369988278894194711288126342468377189773910009325348099000419412940740116078925529995735650616323013630959427097521921590293353422381418253365779574209478862689788419456341308566422792703662395029626625340519387386486666671930729072823040766906331484561815849679056401491806478325277450934527033301294541655927485369696129732396464960807177874783034732306870273949659321902702749537287072200324178441038997008226781857208903167473638062966020225001475604171230261021166911984017436997080545057829267886045239476473003715445941701669421770090027685036961437370736970048180410701488735824718547972009292004372361453853715212144522251181857660783481344052805346224036501562571481283850018996112771935740537824893962493912187439244550969418405562886114250602548269362558390769393971451391630089969556013588250793201333720800949692067544350747423980400844140439827786306916822959906568282272527090554538070384810228776284975315400469236418896150450097762750113091446490272016144311072863824027847703242056837322561838551794113082403793245217351882961994304206520557937676256107161887933806153978402168910085046112363931508256133031063507684607750881854597780491447952116541708148628558527440741729267588139267475348071477496000020914709373769124040236485722511884048698420420917581216237758736667960993994580451899327195001607303524556629643730611971539980070073367408516535634950701994489230974135717142872460394787480107392634565636805037429408232984109163506663360324552367263412388054901522022344672809214333912407127711697901072383862641772372018017050256897410652328672402326723797182128245164641129938977459472825669795883162383392252729831423538951276648297655792793321791368359808463830930433300815791595341037281686441514557621801022895559221311830188283930778394099412327228009471682049982066795110369250210035502018830578942293889317021524150435980235717964161291486844388151663285371689115745967395146654672504207573495006401353394122178091413207950810134857313798503687791855277651688603812528656400905972826799214748866590179362848275390001057879281779319574884846014932619891726509857914648205687074867446214889939344895657998234680564363905875332724177748248545948378537389874775434413850045299704509045818888775922495730325991715819518662292962651640825764827585619494061640443920969462559130398416698346088202241315416399004888560372933616591096403495912804020868725784015252640511700437307647508794945612890700978179339912177391202457769448844818746552364842135682423855192760109746898670673415988322092157370998983811317735705507265757283475123501223826307793878492787428972173024959757530609161626603060057340893251326718814608084191857649803362873053914013372264588261889515106879793677350995611387579611088279936358470622789291930712148180257594946027478456072367388896721516442260850740536639121935318091878622819314315368545259902502515044126270548870875191622407427668438086621761805755384528803932404617667503486617260546222861830269426332106443146685715482793772571400506288156325869373314875171968008519710250465170011198501179316162840872468771125576979626511054162611864544924897814734265420139075178910198270997263958068537807597173659871408593950101530421543568299093966739330848726430479822552303206312058739990485001533644046973234480898788284143323521878314314428846432833258497577012603349251527891761340276677989149688563121651857047908450571232786781420499420173430079704236612646999100634524089648541987559935299157597158414540922544288007851629372902064755542204070674697637750747923891489268494679084864017711294580152198661072381655553934385743320262841413715405027780883704655332026365305513584483318200955990020047699679081466078752135851790399289272200426379163748843520096010823906807886219593343434793786936097654914010841830012597215864896082437237238244162103887160458426817697572819133396163663282980394053882846521458544311397311466408896843336206157557053375627905878537731506334126589378769618972672047128156260204330084959344140989600060496334849834806750103887307799326695216703001340886577019463339184758995101859222008794906662437649993931333530973258221925407410661289567293345052952327177753214670046618783977279753098723691230555536313123465562911641760616874864860018164848555165349630494317294356857497745147123081362400032469849905081916713591562810562080042049163595658319154727021611164939010215376811082840540263766568138466898670204961515727095175321379068479192508543183570646886041468391996294065955591480345655643979718919181861864817565996626787451573460014283635515955195217587860038458257788934637172691640747716660477286678291351888084179862818014309905939281328237738256567520381742536923313846873436839761146777891978052641811034741295922355234875357027224946160111946644164390497736909873641074488305912749864942161301062249442957963437165604396658983973638810299820138501393088659922061891008102798181610986912675729410371716491838559642084253092987649396259810798310332007743424784601340043029104874717010597961813351156904100286885237905987809827257695047940300793816215191628587130108557101797838219632450590945608941216971913740136639116740979716780053610905505070379235174590391527774447709588757720317210307112347938075257727935425109768907972336748531953569082917302667967725568717203765529657102742625856979046204824959176467306889299189255487099726223378011599548310950562648607123367751787796257519598789300283112084460304520693451791221976162615682352920886041762854927739593872103907609975243328231647204713546294468569210623448791820566400995492958101568613874488091824160778745471700855563500204865892042473192198263568024285872844721848627372717301635499476200204290899585841631834096996077360722553196109667602030343284127994565422030533999471453065419592486922272553612986579529875296193675760339682441413540959512728675319267859260805185592299954672262214821291535292930912415536359710862931060876248049699067186110660287850638203949552269832618130644617247033878159593854011471843288759672063503499266072131718337423270268869049879736116512620318559518588435424350137237529382505431098088373112506738424187809391456515260010482388634810717514102735804942481474716156189477139110948846583437097946338812963617319623921008106979924969773083744708128877281101100554395602368651709388955018080433146143694075375177326226154063411568893860587485084440052007372006921099309785470860322303241492307255102470089777328043296182862678613823830822263777467150081527381334263677528216444864573820533160303758379608242092228359992898747091173587363947184845980647925479604779377381809278148778613199038468740276449425987093051097325948655616024149959503445598617798559126706698948906679810769966430355594016819513703080425457356986309996297213340427265786595137740251976285885515939551489564924568911515563356160499140838229636709874794898759531584718002010708776991635017711128382322590119975912961768622627187189930991589312314815755727491512858099199597350209123693721525067612680056605565410896949547158249795794676486092727977156988824111187752752229574559724458256182312207038755550813291517767365822214544124649173852874565563205990580647052851674225429530877244998921617409743412833561468042746343731909291213946480724876897434806439144639268678619020881748471406365409371924804379949401513480261098720471572857833116999384913189582321619247588599315288421423297226046109218415845849741464724442200651868234084201281046955929989745145975616693414319825623357792089227705965652677656808973279841369540010087437378524541455902957013938606205669037537008836959363754216800028664040576314375910429424886799526205574689568595203972200254991649649470395298996709543090040393100852979528036315582865579661630984514140891157959756434260230585230462233067339461908473202378307829349747348784167671541498307280060727741725994367825842527308552647400847213120565329651231900290564462787992969833729513533899298744298903711740891620034840370605612922142309514212033121997524273634800474804897126276307906887694175810654927555379165708788750649225325876162140918466147212170508055400275459245384323635445834941225181860018523447834831050973321190499663495467548902536927915706109478470656259407723475204442921175743534491292544781917076550444125529226951851366589378878844521526887703412978005236720877708648447355477421684014645445031216177516229794711334886720553771049765762253271075094533691377553207977086997860226987960279624162562663289317709862255342926161792596279101100094574654958069095130813843251978120896942952576906701060493804839471440169969202943697628713705658131208023001110986535568704719723164814946015074662502212716229438748598552556384963206540895012228541726574260705593110142200231856481045285540121307314884952548990503831327820833116219314793558742261719685736012527175021618649941166383431832723276042376095659980164848387210077138597924789267128717138520180588053640730082760398254825115613632925281790120182972790011020455791985647016063701375114802888861607466919665339107053497939571205582448413456479816535336331196929317584243965538473566935642122380980105819447090955754188819645537519451603462859795970104077489333330971426002192432262600698600523778175025445601453266195342020958120368206289011704501272586408083829090790957092950747495462186401198020740414817605629967364557792875480295593851096079599479458693830769394263739854092483599757853526225859417630059152480425751034322116991956292292592439440042688265034140851794221972446941501017865678923171352727291855619239762154979989557606879459642100123716928525303928708865954859684950669003512138726345120557407753376010867997172756482962180829080522376722569789447179303888163340868215755251762794532357890446154172973092165456949533846290346412234137560100318162876611227797075909841338258283213732638988876729196094737667947586730965404275513508767045923368593024283263410696678195046487111757299121649202792603334144152063599081614634749401525566194984490701502835365958147466205649183581763533367555311818944268117686903437132854037151033900499271393002724154834028405065058299341576734867533243543101741675671191384475271172727580696267546615944431833356075163713715460042562451577712361734915825443530159467353556581524463823802634263717652468751543855691893363042775987038780134230037773022154988563487292636488024153869194467473022332472846353829065811899626187613256563394805198991208224771033289731474003538626939757640301188906020973920201206133968522037148442852190262145282962616486779946146061333065597227252839201893346388681981423262811679157574175779718462501592048771135380531204103844790705677872475520462566063306552723119412790605711650103380486980076589300445742755862856749618647329346735518493756816824301234091417444207305797830497093782005059043633939982395542451182262726060666115758953388485246338769252740152351753265269890825699722084952595615843368096078679776781668456609686495183905480945895582014219705277643237651187325939904640486486220523808110974778714854139387856626824188594216445406440192963580277682906582109635568458858581121900543765172560812769490158867483072589386653115382962517092906405686494100897768364817722354800702550897357549146241779670575787183439849465918301671906294181473328614787637341839336445889777943751610795050994395956794059335488672104387468670505584732047544923373981618621363653586196258719877224569788159413922549085617815262306094169473020749692766099899301617982341745632171110947586701624604117732171712052785489449766281838685211484945482600335468245647754957422324314064628320669844366997210159599204323123158924631397086475157747618184976697094331119343761325901178172081221616975566618805383965850284755602624336885695301973481920674543603585934268476874236156172153869700676755468371119503397760869798533736208691965691653034648489324194932326526741741801599442367766696224802211912765772893104305444468651574545648646827923078451832421327893155374351503540530494423523431184770702256559628718083837715299713460907975877864242462948737884012121100658911245214126323564227492157284229832087489558335682773886827920985646935702019631015807147779367639981206994775493684222916261091892494064375983517929514806942087340819098940323642400605400836729206774960387982667812561363122217072470961029098565397867267375282130334541897165792746309039812639784093809210197272022689491560191029463550056818318210395939375967698844802198239335131079797271408369308592422608143077250727889976375925935563561471282324847050144482811470204513425824681132117181883425834067076805528961732788118030694493157034379764935787912739962938805132645993017992498689688882100835674376673567651843179620873324776893056782992748467446407105980978687621763919675168249952479981863478249214784923479945887481404764796172031913873396300213897976103045785511916137348959308362058002637637739928352989266698397051228524023969655398761461760440162512559630669750287691266307633555768160800868275481676836914181815848943647435684543242913011587635938630455697744170157448068882939820690202842016620424561978575024974863837882322116465263896586543776634153549772972242566732969443533534981953781131409103922015159437968104272237761302636377956584899117155510829219936349027773860990112301633311720595829882406632969910356990780661846837269881576799403837764908861524370702164758532504427741925670810780836271124255205073396780457821012804979764879310278674122848946651810813976839619141944861931646290702172236388412770184315624897871556541030667892977725158212845212967776815190308204285155228235181149356807172126455177103171800556307076911297826929167405747888211133659613666416064001082024591363801016738706103624536222465420875824817923834550527625060296181549186725247707325574496654190110857708220827978856952456089057624307854143753718374192421238412272179755562063182425473111164837818821210683904047360537081759018325828694265725728355154167546615038918168825071554663165352902285915508085698655482617302000599076397317971491557667468271802393191208801505962489623173328891540511576761178414106510780840777554660800380143568828029973625340224156656055968510815504701448644389301838386033175120922794451597220242569115579994389597106010380070227134531859777391131710873518093027802957793077038074547891142750315011961402564905813320813400072811316005771688308358794453242757142953562442056946435592513119700012371722589407156977722055465352233248785444754057836966587710088653924282446623620587411857662202766218771029576925896882135419025496507343422236200770188897025871051507934572489787179805067245583947331350084881783410588611878536818319471432176176912655090202974440297768473535480584555852313481637467838882311358710994696374471667314934324587304711891724870943964894170232094162934952573508204705160713898380933639013977835892462925402860288842969671177485057493997634600692888530509686912996089268646663344729003631322112749271729654030757444086410546365260138027036716834826678000427552584168826602372539990129354124933743447672462097866068978569650032550342153572293008212855132673093126073405733199182279209331348137626293140121857341237835517091069514498331060907716315098647497567552474406513284135995788768939667651252577218774265984270698842568239178767661255266549200811036540827507855130148833480338253877183141218682198271063433669245302211235778688334807062669960948649167687763956280327209343956932077347425550436910438481459300352247604151428415839923447920643568864770242839308780086438887490768690128475097918464050151604660567403117902305941413256740527911588202763155951076639748252792896562902198516927951222760246034310218633770963952981323145640622498028818662981897720232167218549086356389550117558491051970570378865640011225736433319792981654488950291180277071518938448710214112147925733066429044874008136886295837217543623866373178035854299666985880020164060970805058655478553862222788375585258280774434714534628250799740384933080492032219634113388748916212251156555271061126254222050366835467160107863869816956389226952175941772191429831048448033593139723323722180674953631433877529195217028811303488723469254266473564459232482317277124847097155840564698680672848660539529288682810009892344254272196383694890764232531110491006105033630676132323875858481593677992705808371607465619667414388668350204254156844845755199278243702682386307396370320649701737858945190107946247260705466196684113637438179800702486020407025447599572319739853046885976456879819480413620174272942739852073340244501633214678044102150280093216408632540118792265253328041863230396555379367081021294373154611979902491059650025893569170170790220208975118460955533167202317421216540012461112464627962285080228008948901439452550702853333253876241701853196620781644514451347421654183032902640093633231508510317828219516935721486420583022924294444371081079230275926747964415881726188048427886697654161582596956561298028983397826238579678485596671848130529026590006619307508227748174574331789190008651322622272310556278786068447203886454675471875673764890682871009686716401701226498184093814159818422994558445506044086909148868680306783540850143295518123373118818394212498616299145864727507121209474286519123999681642193119159316808957268727854310388927711106495570651475588450377403929964628827515406974907708887190176947967700449403761363819411767046634481559324827181602935415784104181421691898555477344894065109310247369564582589759600198300740509125707554209828217649401245176205462836456508101519771761026160172062295279861797445436687814235794945270707842622907988580995799681470667867649588130957802719802911602163055797077892712674434770599862564899455390789368849548015002692791851627992265019312343998976465821875527184771062491821578612084526812856140310905555317392117589830403003277349986589079312973060196693103861285462513908514517431472116578618460102032089128839048553369907949776697640885509741891926230049935435401259718710861478684650580421411968934055623292311154839923856230833528864216312204426383966554845973019716607167670990685155297833465495275903787252649221952996653674382703389414332443784224168182231942221467186880192075168140351190195811997872834722711610778812470858938381050069053278941421252781570894430541381068502123179744686728463022968295433716918794405243180686474510534346572501181220321464382763330661863140049512037687433831283961334429980109049634673592946380596640444810326748819313458990754066682393627264324940430986674116038434402189400017382107274462375323204342463821262298295942662703355926556874308102361667456127535320851787048830460803535575724597997196982799695424292569447968773172693430683418853821242468223037986332675301112708733461873794160009262599979598080134697553446369821699556450452996536365312650281401839154474397695321092124833755105476171441391858924001923203311477659356786845370860179613482381752948638008892104758057142979310511617743702109522232097127113230332846010788564153166389663114182382550189377656319742391142830769637576691159165803040557358756729596768528975147678604587336546032712958923165236205978168615521208280101778562932178566757591009147070181522210119147584865971521657985303350638462692664942975560500143055332355366893563993371308162885707730585967969470203895819152047338151031327429756904156561213312117956589250338652221290004631782571583088899009162520006736217582276765513686661784929561553944822635481514243014984968896906540224496930726414050517278987942676588019324872899815443928372410990272479589398413010908823780843719004881336793710962154808000114479247476610663448743325889118769180588197604651447870295903155770746963002263349985860113777687254121751074833500568553572058776665751323163653085264225447124747585524945210563344370036990844586082479382235047318706471509247909879203005347461379554209121738873064853726956982897084288702935416692363890621454084639950878065639048265820918713456440547248062903194630716988742828928061447445243764503856632575450046146825834223345151609017376035179107178520451287650478565079697890559706452076501625263361169626755774441637981663872129451612023187492140805677613465048723728976331380771455224134918118965134008428759502096374166800484744565252741503176184039501539696643757526083543130873379637590931475274448909814991547190403903073332680770553812119516582360643401363748101262428697816799518096472909499232515527470614031288812241039883799138319207005452160423769257414408985294351405478160830330366318752151472305533503633348604283943227603422011208783401252573203762677992211660516087184133392872304538810276487304164393883647973562105812586334036059321392957731512421558768710374523650260704184218605366011325101586046755725828972735582709332765532872780570965615368915520465323347002170224409053531168640290619323294014071389256905406071871069173902869950818857119190270074354826239911655156300903658785433420911988997570835465061631348966843118974162522621228353952574349365203317989210267863702123866250415119107677544373618627448526471767767901314383403380782383729303978963239325088508566675355050032345201420823806737614216559024232826085347810353701454403144551765007534332002572230683641235887630682271233514556850044156224449123088853053381409092789999311492025799894554691545434214237891314289268025304817092464489112413657959713382787460479264785706361501471255016145046205633791039226408037084457996700805287477835204456833481719567693351675236062970113202246891538701534399858039719982359548623489939542205274868377918053656864507818215168096334898734519434688410630061272838400328794382525251451772075138237952205042807850851610332058725540646771872661448099736503893943868534110029657936842145057151047844617069834465305625538674946630894393397166311085773377403282862928448811345649558605432768848579903188680420020341893047838515294475198021374931818586926397464396167856910378101821178750265589527188349853764161202644221680611713724782527472309541782891189066929972626370183182493949629114365421012409144513302107683708030608837510150796854655122985351761425285044794590032059056960930842849561036318400658305937947339548782522954934119097728651262874083638011754970179622406685472777017055837463331880130764911129007764747501590692301635385210759619993314351960616833332884215231788133604305787521295703144237188113958094952809535233371004371075683619914865387369430275566614180104788196292189250155986943284885297582168642853406578437055492769747235533129690911764745563883268538997838472618199961921548513152103616157945290401078953250218401538407277602449629992655839752777379314604462313987893017862181717942791571103181319918333001172626000668129400912861919791171874773775113412749883623817858085207757078539933656233427322621975680172575977300488261044195328998287234910038913432919478574450506716793520894738060038565067247666488136498448114786066096043465210115862820171797766260828796722288104043138372608070967397872013786533706722246266862347793193404345758059926799938539984628089157252887533759533042023209304871773348396152482682712532596516232684309059273170914502691926441740274695052172132051445336745962474340822140974469569600355418965383012156347335339022036240505798765598991644101924921840470514395955956971732459281761633753564614087991046840026527832441338658300151693415551406432542425100613771186081442266410261846471738358734570716081759985526018924996439930339270934765100690462449319906430049812355291262670993433127927516970233032236489052324316789777553131627981655637888243596208270253597415963997668714772424672225945745462955975622977133554194252893078647347903049346277728716319270526887810868034791900603171894200203198804351187455378776115943821824953070260875211310281690920804924451429812372946317760551276986469988201020428743942141249366227538774859898789257495851616599615862355232491558754304853672754520020842355940963920415738580495045361732885792303446107179765466350896878071918986045147534397572276648654487010965669325987255177875171673650423485416217358462962641291356389001149286017488877421497282396497220673474172681267365558133179787659362123149597081392357816397117254770300275795532562681713486876825929811267184471499410324881230885669161407932609027168419428103546331232431576390716140121528183359314876374785808996728217313561407578507486016585438887563014628988954545299156424111074860598224059029875253710254050299518557636855852992337992206437219897865849335641109568582506927316060312199697903572587562926020813513590790656026104617088062237532758721728616338270770638479671800982291546373680675626764139017429010495510296113879514063714284763647157438200285569876293675710078049917959835819839359801036250807951404370104539026843672619763750010399579038650128230289025778626503422938715175131094836691861863507508235173534124194086171667992654383882611700236146497534663015100162990536732359678427147959636031584230127964022385315789476404234469845696439032395051164962251177352930358592261311901841408030151866544864070267255572100296336401853335524484527138890517926788947154263231830761075912464845190427336462929646132789258600060049497672745575537811923002059519694912751433320531468888277131191333889098681778096565338037619848703044904271529086563542474885247217697959317726524226245715558366474360384248956803707680772102920014525386460436580237990545723404102674854489514803002430484349316053687437053282284863621182332404079026205867378730708733868243832089300919150359684386792820817242232984137090063957481983654590618104924650203776550911114558678931436710057769198322536957870722283539591738600513499001892245061392220370810904919626049895143023712882939062779937843170388347956111403693550218989919193691393163970657637739157129629546402254700445963503893588999562674467303925903754375932691078325066925333864035068985942855494664110823358223909895408165164225225409547623302439478489363428930127062478158865300389845493950942090927435717143045601398030401828626672110620316869574984221131735784864059902449051119807303828926896057988501820566111394295998510222414232900072039960796556349553139872390555842600001818686174876023295962979752713180312941086727352638651897946020552972385375714102085484352873249395958933647922388111846713566216691266333390254571595632843625466006664470889148411962656045892713273745670976976627584288305743215695021333563572489946870004099812268077365054731237841262999075866970847811150095082284554485771032111043617635566446258600723099121702755470642439948753619507492357806634235881262885253834161967174333440439887452462783445307828974561646172432004581921028971730957997332211286898382774271502877897960547443606109471494135022792039346089958370128714633417118774671821487700998579893708586459746507834868007084366371791438220658229929506144001309011067759213640624810197030095628661244629859134997575741628277418630939770999833390264373780066088311985419193842698729296939761397521436568760983623662969757211573304439673011167122163604926168609406431601255233205339600065740444790613705410382231599612721586899022674503690993630580631965741035219311036282823563200424617747713448391377780482893202856326265821159481053417121065553212129866363399099494084722008665431742210908821632098600523457417535010785445959269460769395064532076716434146142962615864157984678680568008126903294379938413011172917104934217811157168872283820764970977379946478210732348721100437552455446739323028973303373744889246986672666126396857051124373500432135306175295076341590664708243831132677101772289365382097016912450338466114719605249555183947775252909172495088591603890769291136353339085767561063260288632343582585400118277469733160059282070806297231430646443367252953635869267065128460539791730228043160599839922390923258642487425709083588859755193081946036889764873457601356812692528250433754911930238070818979876841364568754851814126094056496602633624123884928939940051654675032845180810221627986530785882811255064586864158160062853410371669558561148618591104213941261727945577257747243393498538280564412239584755977559552389678174966300649138285872860342036895777154110676350597631831801744270777344820794325670054101054341359786498741728760297762991427213965928145836180872207253425856964892227363802963038619915386741836047286268756773895851170789920890024766570117325291438456208539482065557931029868456778504442308740103049840436900329241796388272159414009293513313367975961826205576851019814978514130265259326644968156495401268441922111556808352140302997194630988285276426935476441905357899149342183170661220765361622661935695683259587297879686067226565124453187718124530383310653462786568418704613847796308287006936551578651151487352092069579906245052255475532516698961379177224173865681919488227700389521757424517375479867273864597398891219300380595638757123320338792635640997305428819511629638667490830503162044700572750344148371903616186984643814023269689533755757606749516046402040721117560407770257367731030167241460562759845132386905240207371257300342692800055592347038352687391142411010477397407606098645727936370582917449402585632457118050967753743658164249779837409703046927238850546373448492238567260627318660847401194326423423545244097262216217993948756015892606752940914501163346915685122603047067558616762371388524578178133369879326016880743008754840066907997975429933794886981535491123106649211423225761404404527088887496021393845346637752834955258367932070422719925902943973851474874205991501597496136633118576306429354144574320387347867276099489243940378441107976569483487115609820672880690379356752230898699725332616942405532367459829439622143968821490882231252797626795989478389374999520651966177003119130073859200333099491218166385973753960860052150075189412370639838690994028855560713556328985326425141876452491905136422754676132641494993934347214144065658359640169159409528476279814571683014889507013731426154980709145650765074988084490074232381144177579851102132048419009006689094608818997804520116412563343167632192563198993526709454546447308060823769076780164388414123890962807481090098034424091389875310006320753903323712327409753461078857380854297689161922706971572829192305931938304583107024011372115479102948458261022109464353484031040758404602312444549607288084870940437373262608768475180783658219146332909106228364217494551434147281623365446603961104831866588995650838172850239193015988977151163060856457170055876531365248223077388714710773986269079295096495853594262314670198303675240040673039905273843648413784601249803103541150945107647907600867651974818655165712023385701400333804780119536436109592245565744619980302924241709973459544402420911587024273669261053536780361589100219243030480826583956977406164117735578554072502851416535726157609713517439721427038824504680798352410074317021972415445888726126805040336013470579989836028166579544136403178440890188277962407183881399339293565432629224674832962046261233416733436864657849488412632964406758143042047280754860756755257268222735319933052922914920734330506933566645576210822501643544106605392565670342239804837607731367580862704467841487113404180932271756201414975190790213071138398533697946539297792214315475097404347406891414787890476779573788396731834623242948350391475324071685036628929138912839334576629805262425868376707637984287468045437719781127554079652247313847922440588654831098064601402117297565314857206820623544294140683361553613491521297007674842554133127193404709627835710834643876548739716358942819131441525421321925338211601028871870357758951283005802744526723899511944739874201913808422165167845594137915226335502492839435924482695791743561098352337969880855867297879981513222341079997794055056559717051664382102167077111194840308955104804288804512981028834677586647579126654789522474099410194310575782377269721418150463754892582112521901870984688875806262267740004991439060286546334532151353565641363965640150326802525288686208803388481996297078448512036205367578823593291333809621196939385994024857524849427323380784861455215098414849049783543482907180647234856084653816486854871383696932355792002438139388110627535361722134321846451704084282772716434506163371577780616054620116098347344162965930175886405631546322887550937715867732491607659583885930301543068706983913372325406890482475720284344426389735296397913972484624893652509780867265274505534186683751816247764556753798445452040686324526218722091264480429440154647930429550974846476170650605526924902571885136962026849986860262109931216700077337893610815199407999121891690422633762476891714276569993846569899436515671687573612503870811964777273947544871781469027859338613887145201626345359598570950317026688311944964796785174253130383794074872171965096925077376592429485509885398350504271145046743591564824600171046521892644605839884731664518332965923994552851490201978200386324919301564524586837361062413366353076597895125744512699086306706153876276107094848749639369973185117709827437604121102267085702654321430380987862272029180636146820690881598530223826726979101810039801441367299689309005249963951349232677702402851573436952762706366799149574949497910071063242044015796474719015525236710905278770658889649849803922569566476860857572187750955510484818157531072812888497247257506911094954872567960802763288747228881110501807254693358510703454144991919698339504159805883412879449499933468800180632958730092321268358016467636202277643955501170312771200229880427080910945988759722188056347255638706940825232999396536991777064789882707391616163483847299386126251379555794888715937814942934798105626642638845187839309569040078959345660394935349944176519969416075475489108006757892607362259466849655367571061903702820571090336014411057820992687910386126398485926051564972268942864050611279713575706750517704963538923480854401502973213878536363046962996642109828409921035949899472477898550118259331440657024382769482247582957465483915285926212038566775421083081223199195477954884685905089506323931570560202859527189864488081125138145970117507290647395713440459891097941561100312390194307240916743301498549603242769299266716808529109768326178082623285501788773907804047707101026682755702129557728684889224074529813119557733133661174304700010256953566998635971496695073325994336490222224607496178950735828555915517202945786650132452557721253960865935122437727893365417932569650807548703960156362584148144633919826746987656348705597662108425109301413091661514862247769498811331360084364576504075651727036283693338988423877518904390417680869448743910451156810510322295019128979238778266337998550678173997099539564534397410471941156482578213600949293784541401692523044889716499143499873280999190486560188594576488383779972440474986913447024334856553719912688710411533601485815232579515378683053565919298438140638455149587628330164600441367341262939621429798204493622732241648861948094444490568850720425732019920747947477121224752187033647261248785853507780304785716061876199295156564727662008989002861005743649970516205731358948292699584032012848887106419364584061452157875771063214318942211695791319353358594215784143354764474030820909956141201837282558918456952903831192195710596599035319183858930333313683179835826374496357951524497218837026620788650370904603743837855188776190268964503952114809406904936147820791541245601292627510098043206689405668721577240154637344422441361803376420172089823295383447501282418521288399458478166071613333469017765319401125672004246102259033168544901547412122484477310400311374090394767464379348200532149424125376872099917700912759127053071119123510595677471399335088846397457474107747663879645736047735176105008458561793900708967128882917095772928312890201118725612104598197047340179270382093648696301139251635426965543084060270847990234918927597306110738065766736286205870174456606355332271835091668126604683468734307562298039381716791452134631596530486128600113476185848005969988971662429535565284507818399342757140833906738165713435620100519093796629407270121677840584914660755908114901171017081123584554600504941599747626036821000892430402806865193578495786365953408201339787951162989092531274804473257690000841369953510618287082192142807374417675010088503550219955889262530249099663654565608885267950991837519489480112987886577446856305333380347228502611408309226275385795877896948034983353701807223861631032351699597079428844886340978117646394820991257353897066547593998833942070028840249300151798969106043264882439672850926459010163893284076059324606987033749414623465519102769125206172480652329040483880336776230304541715664135447484742484386514267079334706811660032843071971942291597712988011519521406611371660113538791839372466034361781456501447149926553028527049294408358346104147481466191041914380562179898476144509132090025367417225448404441386213040047227022781599963785353948479373902370858845383199377673931712076874197954213477956864874889564864632645894104178414014501395990632189111227870776517251601772185752150483415721442409390604495092926802411487794159638039931530380506592623597317128468327364418408966626312126262002507148153573320337715574809340411662379966180075993469677937167745033338490502398907798499478825119527022203404811056333344200426884335171317457632854989178758829737109847130912798682418491429900533605956031160606440640427322376955395394943326612343582343347579615239183250356855693496097338291193057101938716867328613542001942711825591842920593317849199277037538739143987388980996042074881908847717880158936418725066064542229316864462282711452744076371081436384491714806553719060100495181673555687556341318527067002322148678753321167832090307405424540167115119944383773622153661138938140613287836107894983409494391833329016270096815704026626048055305331746020341667681464070987071617114611849827326502257213658387473927556390570292918092341372810569273916874956960426572875131908497840955730007902988919331827828610418486172986076370678067972821171487516679657360110259141524282829062135060212235545972678099425769130947787651558741292962552801210567635588456869568556891456783757308269887227889756187507188160847393860749275505783371479318835272538961348626942977875752162456959301920153060187390636948332725536971092950873476743490661758144296924294101909478817336608682403080912243361600822898583442913848774710224377457568158791109418017656105242254030270731602106734861997689632416419089085753657573766530094516436810008326077885184167335304813087649039240054314072848313013798468403781331892876655302109993652291895419007661811747173941857373203828893143139246456017410028243844265127121247701369836905892726311320601105751003473189500708998318738115260542824109132607330107082925589427779154165430916803199713617500157472684505703359709820332008159888639035282938057927802767773365825501853091443696870423221781501274641479216377462803570788059625365212265201449405926552295915554370699205988736113038605837086864394230589699115108838377312193005946143439650738839754506203306822540069553428758858487085297324942198327223623911702084501297807782908002546217904555281782285260062026072635978592307269891806452956280169908110082480993242668341475415041182202586366673349669216471833066654720328986630821866491903579253857629902335834243721044948936642666072431147538019767523932602528799298617296930955795741928519258936936927793283868553522523524004256256946651258753331098487307291615552197151062494186843162219377597865353449454848666232845227468640577314047557245767754307308888693354277461709602748692349224731599009852453055006604143184483015210149212752463329925845262932845864134628212205189106167278385066271115499134385784252414083816540504885333524422908891276484948935155438198953574346792332334774297976095067333668943934199842547587907389406418068820923558172879950436288304674651263166619316717216099833650323909417205428792526246532388158852974133216303932781268060612023792468884030754735179086054717383514207626204639505801965109817603835604588890548530001942021827160378776097824057207127975900997464228565767527559412407371058021607879989324423361887844222669261391438459160429481176136721723759907841769700760196702432544220703996045164533637120174589829536448167739123128259054617524065211592308251756771353213519698832424361838892624483052202304638947977153969286925745581703898308227144911972056168657197636828422249471251518463352424997837697634682597396007764645404968789138098173879802188630335866221610298889987961665805473293144015390886879940688027042474389592398311699445430396599566667507509731091045439247629931374562345916648826962861195042133242490252938074992509217139920108039825764452280022909736103016627851841583953478237766235592463639615103148815805378186748955907952186720720944771021929992072132957308464924204704774059000429757801018465448391287277140485292124395267705051309665952076775510866298857595902967998967148383462041931554776897346177400896541310178757357429964167499760344532392232933002907004103781751026651911261603931062418148828387537640743594481628717548887351032112509525148644881109614593937839276450501054493796639781197612255871379293873331985430176517862014923872752480361801368182831874697072130399362822352231082905349133392998834494173232763122960421260159738733150632147127648193309541436489917913066405953213138166996076994938145856790216505680780892228557336855890471192432239208843419560694215363804198843892629374588712598068320435199964106545242903565109015990986357416155836029095761431350628480892778269025900055276573871115884347629462967870945200975329753213496454534584223914601309270180509899271756076135764115618576889296967830193427302145721368670358737261940373018387222411338593428907779200945631757066188931224915765468366545361040356382660662034225147712306734146548396002282836813265032339862204759137379427898696828502510169380246131976509586661926223729240265346119067040992743140423885744281451732625079067544438514281226565540316079461785801183026711576708687018559091296254158283637464119160887038213641181679184194374904380974434929704704663009999071006154898823899724363446270667262433971288843316624759785479229141495063670385982993164052456028268750216599686272677353528043688891620798684058014934319328857773066751086443945388973297085426163838420504508997200038602826517014517601265677975989351855158932098708759727124774454015096803675186390436171171364531148505380841565637601371649461000185064141395333193264349084705997896629569476558841911050492088642073722713386226701648712246518774923543989318583195032117571486965099197870219665388331204887282003801152966069398552943330980703909097949128517766821401171509016738175361272807805645150883285057135356903633595676047977053046163370772603287316519142734133657875894965541249641392611313464320142591224947406819011080718421795860925601233692531700657907240949241537537347517796227790993034759215594004962586572380897827786877383639786094145032070443159548710218480459255759792064101601474090398140716167990065673973020203953240032605599708772615821918428431451112939185853559406837274080100441029508332596383056731382273973828610922387299258684711559320345760461651407570766717215074018013354805488709984691960801855861457077368954139695843194373713856364970275783639555241299588479325426114913731024293855622073106187527606910036794908312908389761499451758947133216535640625980486360478185890335600263877841076127214018316717732734060189583872049236097970481225668993165740177140736491801730652208719380487645632372059385706199474540459979619111284854865745738395633784914529575880314583089914465068666109264634576625590705962855971794229968949751395777545863061761119949538692052942007377440974716897384724019460505453130247877820715514408390223416672246879320272550873834928459272236909310413378762458217240650617740087394073068242765410135341716812914084003522780927700785277854422354682459406776290606451705651144364853446899956106224129296190384563383003114001578137604287455764370920974835393903063354206161178209586244312975864764553398892161406426451195550850252681857019520581420017873683258012783028335045045510762053376478059591307128437178458230715646436867274865218364521141089612508882850509847819300213540796175638041104589946610396350847997048596010949477914882537425297450050826661067391267557955985535697536116674953278732296823023552060321424526230795006713285615630704322927128338180071581103754168946248390453303021879035345240878785483638896365923233517853307930599465087233192262813358960821801682999493089705872581947821527132104091287392579034662677617695750843747778753024883448196592627052134700572942141859557249292158209120886828056011200072040544632465855499572869530953152442334509439893601238479370490614822961343934485938054318866803886287234937660930742639549814333461663468425601268769378540513024632327548973634471452735182683720979110028443857224558061025637092888598841642596528633747455868999440730740051840989590654766012966996555198740333625926341074312215951187774371933861587066799580945477999587853013283698552679727976439567852691003913917242945259222052317888564608483210982561853340686459537039917919657211886821910269574241673285540246627377942611113898763909869748417297474608564924005426692788355831583031047472275071111073103388388751856538415199296023812393199609061139828872122967737906087984920241111791978267955346936163778386731648301416064143651267404895488307250633697973376295260732575784046903424773217585417668358074705154472167175017973520859196755038553798447671678118939333619090630753261981292992197362205345784195233440176065799613090789679110925599372559694270070884467128059624427782336688370083129178500340101625229984967582291153233393269036231686022194910866073038406298678065712592161277133612036490643739544003398686082732341627804432437886431662612403640043765338926813841287503115007191389244487880086085218620452766773387117594358541531349898008897753250008351917341436053782991852339062918897670758770496570622824346992662972441243152027690384306897015942198073485679134186525486456666187131276316320179277824930195091045593448643200332985555896652532537287812625075303613732319773629210362089347485825910417887903855275591108338647008822951090424602419588359371838819279172478239110039944570686801313765455685032411534578741146333773149025989077824857330817316292648752786776835234780619922569969724850954638747719389627501375187910540135553730668509927221223637729618372719216676021187672504534542918703706345834279188084489513905422598931716453383212478815868854065902989049628153787452927455538723269924665242750521290412435165089296670322669229562611574318841065117978827238860434930753247656309730026018157031168139300764931291741429706549210158771377988782364070076044732651140948238284946182988277669081642128871225128923836044129220817559527649947871367807316816201950255592508780701756491611434878283651232716376176690027588248201769087127999720352496657826419321850041354119717098845594089369546834677877050967801375358547039963765318328813808852709381175307520149303814920379667777505733252341204455637892597604752186881258879623092653487778482454452375261605653517677011864329085342006944786689029286283893069225205414380780164311956514886806705575370641979974883944235180159754534378026902617716568176541086502712201579111759111072713139605204722875391660268767976405376972064238881018746574392118325817597087643857895557338093234591022276620476965238208007237727519900837794860077780493385941997199673412157660636627520524899800110036834854605562561814276599461293189365692925602301437400756443176540215259753535278662352236551443388590155183782719443871476627578007337712700012326791315085479398995824139121405328456832768404092755187174840314151748107712987303230008058352357696410617215783179798414421000611710318510496204998758641287740237484596270198227806212396283477999412565121484597736004993613786820061705223284035611520746436721464828313373239971882469176394399346952316458260887526897607451578867693465073790292768100475251928498012448912781974213369174723633029275904395577929992507249737696378223205458760657845559919434799916630500361889700407628389720614598130678339044709792937432453771812440544592747626622309591769278622850250992455937401862331509779249166087656313648592713867284588709798149912186972142176248990439851320813928975865266245323204599673926784157224836845697092427255469684893478354215359517570594294100207763368025954194397480826327966593448637430866806761330538579147335931861205535117869300787648848065309225254191109596378218628531096790227743599194819527199678964498981440249472181444994460905265356199285148531588783362409485917074409566187189025487840851285001305872848051375359407718727278975000871152430500312152658887075325981002812445028858479252654592082249345915080739958009828557530869791444361513267837867471535380757343610425071866696479197922969184069701242198389588219518766107375247877958507143566835483226349496829621879692757188946175920628468046171645139205275197299816056323926507319448720363571775214887470166022990666108835408533173852645987820021217751665257447162055944970760589997340267229334029333278659984013679227160664998202073605755624677417962032614744911430288788100098986911876709353500400653391594157039861357601503071732317305590115398912568286504976124337154873224929379064927876378358182772680060546058307287925554904224324028139327020108926992029371408123530342519371650028163075117637533143305742509872474036294129596322110340214197439926425411769585389187662119672636980828828251481649125916907383343478670102743725298804007652328082951815584968890315274909770088014860130321181269917215282620677090657867909195624194172903838064117509835578923172324571651462518332851085572446086403713786206370574963967940362105540571360301437064777700974164824148331319853848292700841374956957361862818537279074653157888243565855306742501683014601623964345840207171771100050332877066267425852524949891217860912723441592745486878454091823729350241128564290078183279001929189515081503901983941855783712046956216017242806267749759458665180975218382281842097024511107142365887015572819450815554750439498477355761891272902711247370524957198705655643133788690709142357733968548191032054812879614367968872852753010392528689046032017680656867206990462688554948678549483354561134173555671186853686549668098594500097037955423331747475622880222565635243913765172062834375218156806962424463163369761264488934122322513409832362346749058619349373933463395868056076878843780095878380449174780830684834404785981063904561087778018052138352443404319235185655681805433505607922926452521079549577647299434663457630321538945757987173687792801431470691184575287137256103953498333935704056132528617089028657342917413258712393255301963968872696140141512805112633229848488154812516145899568136962376883597427318737690662711712756485911163420077631789785697155441080323049810947090874392566351808670659399958892937055285577903947457792315402851743976727724168446431367717045953342104298320048744854351136247730824355852476761866901353852432271100944731493173783006235362983638011906246504265578971148046156246512641506639831955070545939045922061793652322540662326840942391952264953067108926862202637946440858023104072396194964811394905226226210287709414704619316247001132281015060877210542210430093187387073795238195995582366398507419694434119917898185907581049752674693732256625293309044957074969531875356555050721288280028423265217700295757855050814083898180379183941868840663349550071436961584072684551085213245610116292816510396039468494304871138909907585387176107869940071130469138820062573646125889819853700152483203919064899258015529736424839893395838710264573814883338240287899304422464229884765505186899921428552593258719901263306417280537322764062036540311626894539856747510513016841787342069191788108323012537947940842536815457381705929961033428678025393505030191607793816692880847231786580621381632943171530854544306862623687451664770104700902411801929625530880328875899493069830803410477229214214557320780233356202555391225345395087403032915645422367348018141533932056037428733318036675106295050280029152202336334256230424356880989817478844109751380586548465772893156646302362978907487107567660079390508537324508084968007945553159818075404673631204607734956314827514959940272832845292532031098071004031757107183304844378514384552381935438188843781923032317273437782192623368578541778776977764511286825731365591773525621834765794334950907190206350785840933679244753966802003073517158004361699967831854940585796246135492122261465249806361404557739019443457121611083827568808190948823418301159964228336928114285397802000210989260936086499730934103819484905753041080266294761749082746483635642926890010696073245170826721450130659953264520337968892427813145947942163274443649642073474326296349258741861034848022060326777295273927434991280708537363437846366410162401548612152589204125075988178166012061828495236538346004500699007060311819938866635575583375715010600318263574404783849830519504441817134735214228737851395518214891356886655336593909414141662219498581690262686357891165933946698499657720593539452266666569675455228106282567361944050282391125168957461226767276929825363512749282027411809220055330030565028056676412450735100091780358143611612937807436164713588275804127871491746117832358199868038373571697499056405718992091581707356073639215946910105405569547658120040500573127977943636239435812172168631516810374065766865936783249970690084964448402761727591002627089456668841972135617805763212080465698781468057008718213897800574250964811110823230154231896127773510400247476013238254443909714614231750067247968645640566556143142722470980909280041101748378984310243989238770800602799066250715241835001725744321877340556827083102884544714217774877398212723690607788696532244828884490576830244169361803708114077707636159723364647708474808755793137969457514757028008153327578404270616421758718850483973603661619814088215479563113870750618173864599692175998612999382638935598751052099042155427230953691313850386139910036806566774728830127277357305237607590417720147610002568939969036182031613618551583565867563807480035842842284590818975508802449763236827974865751654767480806475274875394209015214487702549696998577268556268817174409794753285577572934626609111321842591901345760867006667550299288052584746542944605223746268465008143818696714195430275991125405090882277836333517841080149662002701700046053870950002691289667887644277971892981342535877454109544896405961818733710568230992967571359679989139243150589124025670585848171105240987342121953328652337984520047195655378808230507519740376537037287131872103822311293287866164586740832222441224551052721397623438775229067378346587234112857436362722408808304114627371157384357235034817139372284137379522668428686034227304962068689749775674782526506376944314105061489314625236326710834678965751454243300656564919655465030402638508087463718789838487926172175284908397401862806311725877861280576818869151684916091848150053121431959982424957488128666978463207441596855484684320941882772284840451112506960105856592333987234632988117503446382876783385429855148016142015301397958677938496709515405506609232952754574392947279170250521922386967861049828638921971535407379519757591373005300671001473499862635830864354298682304252172380728860937329271761488821607691145700462815860497792488149581361977632108914790119150995249947381813226991647726340028994520462737673998102701761941418794598050484783846810753738299474224724201050247801360506710162043499549253397783669212478553271302424753020108763572159393389358638261547523569573840599333518321478839932659819834202780969570509413869694448020678563209794605363357927805480469885990477899953653956640451056105069977621316866414071937387612587794216695325101417560926690495843586457036027876161037381824254019650174856440073825084515552923730893545456577657206219755746795605931279261369205279328212476281211650175685458692064296116425209373710080068497763055359523647643454654014905428322837219742676073089402932337950452540100509620491492552113341543159214873502955029253503106274118226593772753787946148194896132238721637894620658776133698373603377496355992558244200682367004828215554496967740110528818785354879069430343468633694159788395385082531381148724714331364508826590969832497858840811317925469766482179666729319315405025156171397627346606883835066538167770157813767922420401053365281153810262273001546213610410703458874579283846513587693661529359506745224658503333423106090071455301389835088713890985134865878896602263563362832130875423230834449338625510661958077800510417372428661288751111173246665785315925363107564666338108646295055366534477411945466096569646358013160038674587188943142961698786447047553420506398570412500105384766873565441744465290255666253912826436351716559627213538189631893923784049291528404647859946230123281426032181096504568544626826375499764365803373049808735636752292908415822896115695359443912778958480549210800747967719653685067857195314111304465541094416453753299847614496147720205505799799243441135190666068438251695009691670650422570503857872857324156529897296638978837734072888195835011025238966775418803816611479720752694577536018743893407434139325399764966383350956654396698513270258494795234844137213384295355827800581470705204703185237025552776508629643815337358217147591896823614163604825855685223029180342053943676906385233551771465344629343332449828312738183598013272642600101053799476802690841476292612356763008959364091792183859546682199313223176389211324377160192898171925095244207305327561638650485431158449930545441593954701833021727401314095134507525134571187962515593187240173868496853675879534706501663797479787212956579618798931859428443480263540022760395708271967609731216296534124794421615478811366320037513041041153443318305765702527206245083515166256736386515854318047909398096793036744580985329337500420009717810583715811300016149528403155124330226065357479421727082253525377206413814198831631785166998100108806143773294831756036731107990475659789099761822289527614041457569909820471609247376337537435885426352225621270723927501165705279323103765957814051271444467251952880389006194750832128347696388314578899100910932007941638591648837669795275779951952072857862635957060637933076940615955161470491783679486743848508298369142575325699411977798022929870338673972602182907773863669804475080142496720766022284490425087983144073186344106680393884877854358934669173281520663193127997766776672749463900428791626032463366272702774123426899457206770947848175746394025725446070723341681572367868462485635104397567623746996678582519537451105793272197747398363298101388139442633405424512607858056954074357247423300537326428809265429538841607139936749699389388344449433894676418410263061678438236715522550757031107596393328101052056683356768137302507253581445637893131234486470041797302171797696047706099035140233198894160795081335122505211816336101285046682571167182157072123992072283353101156999738958155578710696901790116306778374601754627684785060130045900994688496507785621325425058210095994475569720712223051511594018859888038534348130286337792405212990553316400539675360862509492505947227459078362855320245777160630899138408896978957082258599168941117457691268191752934806229118353489615332349045738743587265171718560016653393845845676266121345773359540649685076485562589653110376736537550488277715885592050851944499744095670642412067374418761531127384669398648884342322975575891735830114832986653163420377940358642007940465278350843063122896776324960194682425326356804955948554398893141546487228397054899889201375229943643420200072398195193845377770803047595804831012228921734796640281901698298161228709532028418497597003691560063433672264612150129053505308125379969760778249761037725380303317898634457774726490396221645417929267615089592372171991512258509870868562555872680238018495229072173334459849992496152796641889569953943258191734997141676886390720500638441543872971097227038318148135325177114466696016562213852524737221026260812697189968800377375241772971282777072739116153900595489791069122432960906555563715859374376435525863744600606500451056703354386489946255799629419863461812532626918303481961546831327979251520887749289296557503215050478484495355027750459754953048863980967055837775437352164284908552024506395833143451026629481429575319257796221309296477385654954657243090538119486459189888484647425750815543427295955222923918236503755374501623861477879576963996261263692891340490256969473128842214690042015584607523930347166212644881159491025390002773512071212838933541935249629750138901407840789731868473089997006306231524777326720266997358898429103853383774393400205244439545581730434018818806534929643105364744782894442943989733389107183718990602572153989075652816645071913499742088320153629285103019318290178116337650388960290317058897740215083578442668441851435671457022295861518974940136321504550873231037470049509847186877758234736973560656848661750515939676810339255594396252786121240885691939602356415409035336294143064004500333872253240338749339848017690425370248332250036609559329997867414479921502111876997813490954976255851727774953994376964548871849176281031162568285228901824890077178124589962684543781125502605341570400971591259107972758411480339924705900269859617836638510531549334192391664370714575040362786037194734463886804607251874440165116619124738587785641617979781045923073492562099014878010515039993054980460136659857078370977884868833289602824742929180575794429098881542474126349490022748087331856520255212527472879609059630071237080013918567820272406301899267409821812656283086023620924943581463970858234067754453095062629409228460525573095532406317541361146719006294747299155810252933170678889966561082932212558950327735458373251949209066540106305163741785480217565617039578238716262655895334271338448128991326025346308932296991769076767029133225428139846261087971128865624328905727040576131677004488290295289605931039482562659580407753228296630292412439671329221272135863104819044742477653088359493189641208222426272599555165333816109762560009081287694863608513578887362130944064456473578039153560062095726904722630353769417560560178238832868457998042874878438736706025943757900826041277169130111633851829348340630818307406074163930711172135064758220729061369781797509655677332361921430361590124658220300539446079456573264071015116884300828827373835279988787667554570599969167117328610304800375644506228776832408812155754745174325688232388783229027002379287973100435515490142909127757750018110118014605116716106979465945249885070596207170411777838918929493201980388315371478986353284567328942119393656337116289555301960522116068112391729782875871015654606805973864877127578738863285751866158798308983291804552089563759857411995522228850306546112588870961008677871137032926485514138059135040219027444813207604084438937094392130265783211898564481539221337301305539098297535348442387465070056751073969813270246619470022737358847923664270044626047816054086737587869475369364767372748610280388696974885317312421491777252079994965375862289154274081378744141773387446668321360710870759185789759436121358171182789910914594227367857386013577502682871933011504996487194035564360349481977906232255007350732833524562154779918639662016352862013331593326063331003867839807861716066023590587341405916598060594408220853221843392712921719412953649064271587666186842293116747168745206461456086108849180066014393283897971615553248552680388009536476575438400297953618535853026415096039008409662805050581476205766863472037376767395693455803039076055156450926415235299404261687025557457715407833044522024054877984471546303575093186549487463090071753916774174073557635546381571878060658974851822612706857340670719554279610496182760963201043915337580336451184269221429365175305951485433815414821161686615331998718517321958969564190109303237847929978762866317230559010303227088680328975951164108922878304905855433151903595128189693267012354281854072402589230993778465988071130026266057836020193174033036561236785361105794292942971149155533310015051475787147418826010037463771002361015443438596082229609622440802933877272248050467367100935850001797544783083255307486659480644348764667082932196664187155702859758950987527879648545190638039777345063167199849632041083972482396051664807861456951449132936871145593923054858293744526103863748363466809427713211745273335522444766465901916068123207516988040385387424582680632560333895500990494187716178596567628507942015084537328258482576602011430104540246649807317391356996050209416255690786011807739735521286140978879693605157856575648382931665932511810116750071245816498347059472076835898307630683034284167774457504523296572563597346658261414175837541944421206156670839004367741310121975800472894420367928848196837877774067802301974197916682121553325714793991063067786442480317880995268684256360163716032321486566858829242228128125074606082645850116948497480333641846680231846816333943277813602855156573488870187119580989512789094198683444070945398842173577083257483087673865121788713451133071788618982937266646117078530946306225879567688849907746800256079615246836993717694301999180332155914045579430049952287882284898690330974464025922032684544630479590063698251258838985829441118295384648356503066887204008296267970853914328152228468663989121936529537272028151572132982294431816361154164202299005818279362128899183954115678269267675653588973199925057997349421977367269847434270103575622615980804724949827167076265478153955709857093230903378918718751169121864171078268075362285095558193710029289115891841966777055530700118580821729137273094561073407608074252862656668594826154400772544113318024535374595180513335011630575866902541652394901743865472639195948682502987752924532587441583620279014119353392440640029343986200500344788465181337427054781555435065041764880007127972536690444573893387272770932169346492228202924802757926089601073308576813625218744699014444436106450963711526475975683904221000807469788505974970505838881941894221653544994109409796728358787289264925728823708953958038136017831306613964129190957104507120999716525035209298053255003933841860265741208591441605031422487760926340502080429634814621677707214594925621342959558314726311061806973270479467024629303687166514310083493395822498498998509486840871775818585510489035505187247949728450719070426595900660294982981451434565601537804451869202336998667774059165427264450623997241708586313121543711171904200222882035217318844722602442732895171539649628236402603319887482703442755984060654515522048925110827065183244488305496903492341697554959157819083373863989354434080262548067325527749640526970884649939246827836044604276807789245648209127417862444567130686906999823782908377069928094752863730257244488327044969448752422944527882128242667404198824768147344047545785562416816477659896874522640677617714312915037362368270248299103236748997097388779503718188796243719589992056475423639776369669805892465317299516925213805255784530305366279503656062494604394796707760721542734744924925312405984066315579539076005484406637205923881527837293485281685368140576222609159793170495307607052008262607336857635206096785427172565378883570054489477689279716515844697343374742398750754620810822873509745463607113287440768322240361043011585709709940534135990416767434507432720134919917223240605029793421850481643965784590459661491027051340092085609333824067893827667292739759426174917274102635660122589055973561202735456087402572665504800680956294945342334364498838012926737698892299881245524947959083625672339555666030903710441239951224638383956103055153973285742622392989537468217552772154469555198924620356368337403707344670054697936330038004367466230758900350574757940824573498711175521233528099024258855786042115701933411224169623688969882037444654305724738503203663283971324123751453187780705351507730055639970121886767937798570142427791867436513482066195751314022024655321106124053172078447104956501073972260040822970013616356916187656125112294259645203976667981275518942020852156044728834229478780631926871672617384110673477408925889999647713124164149439179388721118864365975572570065404628209353598350238220638539994908215302048401581681270374565751129154666607419712723421441197581581646613864714104597113731994011747619267335038064126197798026301379664559687066397340678990450035605485219840017059108525638802974594976892337505015048509184366132025590822080433921525748381020291317494939069619983550904408963293459607689885822884166294894786795174157531490400493942733311649344526421653538879726772091771336824157722207229670462088608113979547900905475977533808875207801915796768678162951326690649582965776264714315625149830067413840106652956678152895305477315564770702582271768714599452173889813683720579802107392386155791772973660436748882065925298170609706063095218722618399583141885151174619035728739892545979993302035488435212512787965680667966308772869994867931050922761925639324754376379515930102103653936511594507834468284302515296617650286919914044991770878033026266858777349000406713634672614883849707658781201683061137260356009833025390845189521271332770681194389696293591154782968019104223144083678819490404357656172051563906054303446118261950488220280996608771765683758282058269538889025975780072954419550108960258659360386715178413682932686808923348398555338699350027971056119743637612744801303477262109563737591614422228228813367297217569127363992840876575374151176598893174862735139244080481093455771984427647523436572311576024307639003786622818665408480358280602219762838489558021446634716629799857082610754463082734124451965969255371977598127526053013730965753509050895846088355527254112772813208287280031979346627622555762457263675725192858042997496877966184778494422487828677593313073798155463823026234179518865968610605751140386430354570345717572194124077284188663270735971930949278206837286454775521985334202624236284409424042657187031767140629014402911943483200676553321564077896406199271990223844950798517313940092736294470146003033038059374302215293670313212805477289527095737697723874515283916044483747765959174920732518567859521638856468164208645976107798639387574068280191141720779720932158739483667465655365358154774536734221755809137394311931416771458295870333495832833479208244129843500841625140308677771839939533029782444592540002752468067439385274299721886534898708181755690447099989483740587976995547017045726114072118321050733974400413871496213366140012166369348087379306376372203314068880382023432278453565203247163887554016555113830250696708691499657649715818026956525046540679161216672383002575446942706771234968205462816950746611002035586189845985048007648191357805065817151440748629525582815527145037691727270003818177373613960257014350167727829157282014513937766023692675616191306000769737955986584486465286444426613189638716099219057196106187401186799042165471398174301157029594056716625590301948613489197341726960750755841620892338920625664695374220985996214139770151498525571011144881302163818037611390923837397406939980064138741602248911275432076353740372585716304450654261844925603042524264331704481795549511269946195370139338775820785774105842969993042616416833389273648677256292440585033646158690717113025431296184393107933915009707087597925312132252902483301429624215398530417393086958042525199466365467191169124379880388418714096306912534626361759645615560370360430915612162958647472953929561319317184937806288878662931101562395897331114914142439626487975622237865176725378014090336065784985598423605860296729107500191718867871852476834648256772470358130821596871970093979543385452025201752902826749616059400720881861584027750970882883273668759039348776439531316072412700831746577127025110562948547095637410569780102195963531051179968256670280287075325316607919446176104662117503029632636676542822726431146487700566607643456947103088722875204320680902625605418675330379810289125039590683321372148723761535866541053365451846222798575710670921308026830559667984197432014035382856109086631947071940421385418221055539786708023521036614207779842452809819554486988673060800515840103096320348394713185720092489874074899635025509357246830846280570588865901239420815767672433785030113265792478403698923727353407792407842792540279786417622954999392495198371765322176575346374922447973715308600750096351793830911329952882702404549210988075824061170306698389151673680378350539130942372329470860639137089056650328609508272374126310254412152275231183876712406533123265654594423802413261039658420367400629577091438487389261329217055531932814370804548612297429797675582078720074186410740018883425684423912416284464327271236238444527185747840324702873395121187940104912612436208694387298397431151417319492019567118433852105841363673117372214429864779559419126294617013466914665525913709586485952039578618703042758486662376603909534573658579624699619732264930985301591124402406699376149593118326193803670880691310487018163564884944795645999049309486803584311223565427169780507416685525126434438471896847051349985189885734348265271604737405277475193947273730918232982028700273288015671961599347726799666186346423081151698592616877679565722124249062782745303909018253866849049527095623297475320343617591684176045526749096995208029066190302733978427773356570421108585430048191567190391220307192845671380567749034769095398947369805047297391463151873391919514719314442885991236296740077907976398038584343306422704564099711993898007023273591509508460981492565305175050376415396200406049230925219242230945605872564147049357895242760733479568577287818442155182874560699483798941559648751311458575335670321372686218450276933820627921386300312860000221482835166800867236646155544177479146424625452587666193086122456464999656588925499332791532158849431047651157614117886747654106202296628157620952606439435187189706725108758678265050584651015723007326961028184329620769884807706278624490795357847827934148798200662464523427031880658971679244100871836517442639335445939750329205076295253519574718554900252218714323751851929438988416667587274441820497993619111697246674747376494305031038213073313067109523094398980145957333168838637833148007624849697878370582816562284882759093091711152861395662458904709690811325895067818864760151496112512672504140307495957114816319163080927019372710587528047202307410637553233890418108643105697497436985249043840515282934793337958001576339729682180724863688501716378241822596474759490904092092995680871175734228158524453109302905235908153842652132514866438808998878910360643555883480838705307375755047810829260069842901980083419350870951261686705940494505039620068876470467447288427800781037704972423066042119594015307645468187897506029524991299648905435738798466761294215094063951477232902462915009997473850207682508989159794907534209737598400251712755616348856901087592931602746668012658673866587475652354834455333113428391422790341079823678018406059673948642841232459394011154768739096200910076538378022092633818660125544893091133335688372124667303211609720256056174468725774467859911976173334440505283119883379489852157567677686608560807283699353152620281306461105405378984131912109790100929594836054630625887907464419086513100824998668133637164230762998180850543080859320070123820512856323165839903486740707771271431642101058193002345862964378650316135952789093634960048386777715773441866060534385091539297582011479094454742003236334536264043471162696587852545528704961334031299362230324603487533299810306646124207776512808383024097292775593813149919237771992218836496107977496318588610454667035181375948725115767359232681260184035040478704239819918988182226818766354065376496859871101437163881240083403287269242877086742055384153616562891434124245106966959913062297424551095725782974000882640383000124049257021882034563152827898723880503237827914759024135859701860692870976432457322096809461227026534514476580609092503198109290960159770611057073358121219421344325030551423287416835393547499273839732012866326256508854795700878477985246755332436438516551447635410404556126008789284018279665716878463685583629268735180453312822895970061662586014531954975425343296601295984136026020155976897461305828620618522645526664795484427363010675351663275695707657104748086280469170612425305533610110496924291799535819783545003148529518322986987112818396958875676693825760513116489385501073328053895235472950806310083266134987709599625325868505575932055901671924958390292105032232449012732597655024819457644245662989124332042756954895171361363202634875547539590449881048449521438427214567786808628197644373348575475524797385382486801558211145264051905166378845413547749358113338176974803018441227358320981233662672568112442049410872357341628834650228320278805762470749075417602503320836164498692379028783010535253769246904879359137748506011984420777681000428396739121817905834639201748757681377032287800001320536023208956096327056871358453403566217295032887189719684770647052630923145441002204185768907472222289672252531217117163056091559908694123241318802605646058509731517073746069290308003424980039979495892274826788345923427844920191411514070597584933814466702430275179158004591746077874901520213785164966577182025278797414570062036674519304668336828475770715324208790329606554397209257075116804211222119076626154489315869099915157589262808895998122285629736585685281430400899745148844253866396192137486766484280323101800281930930695067841949520706517271474340806196319050574763940463306638592598110574428478166944632534720896379893509094927379013055985213220123779032866549815100592045512403902466453379391583542954576238741112927076838688710129724120247321786672244522404753526896897151217330872858129703509645096833400568833033849165634383512091934709061824760269385863471218786211722780703454275459633462046538380823900119480107333385673496828198462144929536243829025294280763054312940630129983333348620191535676160442400764244819506505759578774795894606415366112956373089223166432869862972634423500979778394935321377711928058408203248811503381938258572819925156990747218671331401428780855890458590495628304134551222766286048255280314174697669153710804850297003722989230534593189626304437000935685892155196224490248496826306753811612011368009883433749412609172986283074709866919874901795074561139654670780591060807646086669348568421318166893893405374171239466413546109477545687204600052147666286567457447300346212713283694101891758351741768694987454878454375023136911015894727230937080366396861411121497030864397804491839516288738777087537841362043921866030882006966776306081767704474390666589539096844230050757534956193663656203794116954470416641259980678538464382356940763063865645435623549280978936214028054032386448285747806391841035511976643546549135830739233991219535245039646587416844667791668387388150567428028545566413888920458246386299103386866872276241195117472929962693107328037351469522468054717967431584599404551386697610788359110533259409282170111968116167496526039116177437841127613298522787826845193146928408712571886857883143783271963807633265693768057205866121523013943038247899148067880483850103458058727292810166375092863382030712614862307268693046056945347607700872155900331318097465918446761661169650311744667199713889607521220778564059213539724005206982925937411624776714647926958772633589965119218067335394056147938124418530211152106862307823331972023375369068742477727221676281937488055884752436372228644041158217452897817739502124899320480487719183594869622362945867896124073203093739093752912242627698615951624189506185178936517256718550683105531986422962289057277473760964615418815303756888766086615567931940837893685683555123311575425288336429083788984070701348650202211957309986659264706827521921109720750567009745843224699647625726529616411257464766940832304339152317785066435007263578979013156894894208836029936425946479760623352506382718846444969723268606036556122898384597423811762821192025275679372726478952782244743178831182434490062711513693244800006230242697424233274912931432440668895453526600470318425066408915155375678377942693763274431194049024647566775643635789834188694410289507910032467584700079627658373690621935481270498012670252423798249890573353212879735532006009968179216325948040164657969523778966247912947827258884691996509681029756636859907211348816613410750271404224807148170768766575600973097589583139939893693944100115234592557189814474509831933018526420379750242663627618694090644284145360280274284344972916012145974923768145075470081467197256275695108602409812559381865045360683564308476139422948260867998858773169048965068768238439049457200887279816433260183903826305729069381770130635299931379527021615401773055630996714518463276507094991603282657086317063070000095359686992218353961252218608812098544685321426631007631071389402139149669245384114146769277834667548887581424607765845980923370737005561738735604917807217127891286743665049938053965196279266247026411505944699231940896455140026972369067610754914175575958292962753618641073893612939632029600204161848630123264396257279594276389996860922236582705827111414865743764125941764388602510900038568758124355610733892233555972078342771263369430736687101520135210331935812881497321563963914664218782512751340912501742405189682517782514229506618642942702705025512054043235088544549010751727512080747598553199163414895891465662207084989564973700932496635042991571081932938903601699500172995255767067292299602901728930341485682353790909227405107169060085954231717027021021120783919660552000871928353569116781402367762596658803895786830053196161031502363900307270262786109849732223881649893618042596705625882410537298168391009307779730580856285510393196941960571351859444301105712460409464491910992625224626051121047753028513964495814018672998583894287301146658230238008988125510536700666981232681105155935053030038394344672605409773367599272289571707499287188414193901580113034285678986903113431163504000252297094483799202894543957395477461757110360248290633034733409494663779678712824373076312614014318326186390857668964816833402950901031781632636307419286240303713312599665039232200889933275181616431543043808809500059031196114458679968043202635189026704002297271900019782519020257454406701632166089954158113990150928374295794202179306667934761617571822132153313220447473091700843184175656908934486356833290952863268178077248195031322672692231519914741647983869158192884582069642310796964162282754478127341301243046202241820019556515454347375720664408178583944890673952044190681914989012312380608302392813522854407841791998128251966289898742442926523344291561996583732346770765762709802550123596780223088004660052011696743427854400107249532237954547536689088843915230725172269898693493078242919745071887064296887214166862346686067116591128369023997096306948696581414228253817548263133844436090923274289940613202922754723597209698963664696941546900473323365820408238371083110602959558791051394268122111162751228816811171707729052475773913474860627427590977317896285682121125389864833724153716949799765581628106082121986795183061763801665733760390582700217921976978143951116401679748127439716070058259584237317135132119795671486955001846481648164985035799467917398533469465911220827012896195112370278774055181273314181280340715804273493530476597904027612919533741087333355421693221673082624560293336237476778843402292335662577233520776382853199588708561149423661542471235702054737571914514599476894254570329690023734549418754584855405236275679620368439653365311560437936059151892885576968742598499830527989908483603219335175735764384872546671247338107074427367214553153637106947732118709072249974499104370034745446828760984204108990523661070932625294704824519592320724244370727305498396077699672646577865667447079368062321217067644013992155898904152217103737546679847425568763096884700809995526450219120041949400661812165798811080568680203292850916108343563639551553079414464024624952686699485979243299919423397035296991162800780707248046396385797571055884311268529896200998297529350387794455820757220068131689753843393000178831771871324309534699134480749229616662749891625371945161433241684426252906771224787961804118462349774165049733592021706149665029171862955563113365044413453716505499650264582095067012026406053112850591798958740539868683294229289733626832978171486366217411923166496295478347097044946910580153085350762906900245772792130675532015935367997513645306187423465143669484261590791045438848994288065051504535120461460562618331390627363373617397641219347705962230964944754955116474159217115865004470672851364451333237328692135113777384481254676134244668285920501112972884910722826792388746639512328934213132826468556569479647248054635782309695195182345253202815536234917060978870153744963508068731204571701662687416216108461903560521056562274627316878419800077207413617495191709188593159256928729954295065247054717892335265592699456075547151084606760559439971518647768304984913773349160241754325244436902722069395715861875595014304754688830034467170976085244730538421864982925188792890132761508360348510753262068122602377358248403565407583910773216677624952107382110310783907455121713060055215707026773233856212239385289093021071153617627538920136991601601515033973000941355817672712248941999169142035343079587175285496201262610736078715126242150085600857450083276233407572256696472193065172090504615667244037242377602742152208737312178977062947622765034206468772362883956281149203676092899384742166441638309028362175681217340156201017968038864206375597078195712397842860809457209701020662932373347688115611853559620072466643558316221047783651966368480848911631126420384926799309127333170134901865832611351735801338819698791441364325667677890684582111117023394858652064579767246356828232810174281381064798868700585434095584763812169160502542365142403013174372008237459983653163259509731398196853879476323009796959438262051619780101068949990123222338781436585358037489677322877984244309251840840561137116359303671775262737306232511687074875496097437271824666111013108736103538031592419392262343664923004228985207974544770800453794037684223279188418633710918235438969528996034857982534357845664322462960142024151923412353457465757320668292540939925869108469947737839250096502977235027931989673103844703093414691810115691613639214977527705669619539573352236659695494309622010738645084912487474188349631289593374896867003564295060287135863390392379539058364032366767526942559349051694747461638005771241409330293268989904700776695923369874043663975791898184499928294198197390633791631924638402987335713221356325363505694867668532825954968086877267701638293958365519737266798116988164574310236980826077598946388451389595467670518358511802079623192966273293844656003534214354343079031875349225067040750889748775173188804873732441554057446882924025807024042922934171034342949988280303794421260653640884306393415259170037478554068416587719136266521625764053528739357642909550274324402800598170702336939156095760592685244908134851461717797444944203020022611870025565068834202657417502461832622402853361597550327834387855045023827150494221215666320575118721460199222008432451184682317304111970994482694955049907857064637435623133789925332440081728217354929989253693036716967711995767956134942133476948625061683382137379384524999415830379929759833159315614323147547162208239171056450474796353513878976769166134023359121868908751469817259530909316738261289344165721931203436776668310478878437704992107335771314436514810352391135677852615521689099373566730924838672595952408566395774651144435046466480564168252023339563862298349686058913179306326271798218380552022242067469045629545858376046067270854147758600264037053755435159873033501237135365128642923584482514356116795227729887377782903096497613360392944843459663691325894527025472889694756348939655248664293657269999552769135652480269114439901180319899446071259289686300571345789708604084512215133298237474849017291405806740354682983158775657495496948554453592870514041771417018783811188405249971611536331272568932612275231101635122788075727505285509485407065808201579265181407395302503192083880150255536104956776683033625011475800756917159009123848763843290237195717573604380354511379791972415515420494113848274315117235797255348543425564491543547458226730070826680578875031141472381455627112314826149281758240196949860169911520634176192230818775084989441026083254711245768564357862473460375983564281151908545114571927696132536618484050304794118013921344032025304732608934785832266560811269674702961092605372360887929662100370875434949573074688192773816958714716797673240908959284524710234291083915066670630646727528083165820326098424578603663582108126040115589388303227079510251079829075776961302689764574822911444617647704904757377969677576113441567123197834412064695518057346846060676517190003361810101214467056225128707740526080216002119930231911106587576793735359707586770162828819378637230908641448959184110094972071337010088211745036649594805264594573122780094849357800428639039251237480734449947211776052703001327873247441277137904159829205080925689800745062954940487677743429135495479081661592774386593961051231072860466661253559972315959640112184387973991786390635400579820222556540603576625311620178768444370781521759025915696032565999835085292575546475214828348277166930417682161869893886451394855951291522031495117558839954435102879746974475482253720056590196522669443446645016619918887214239649911949860299468444687986296217389987366215791995512041302080386782549192807386612891670167483560004985108559876522426777140727240523405547398329442219268208185388200825441736230156056361908378873513418641553118206004818099669642374370460710335126874930268047890268176434291098686769465683953909063592070423247913769348694918983466846551261962906766940803686509065947921468919571698087669273272846755741240328884802689857097653926681106125966593544147326217771553085232626756819435132803021919203807816012025723945693069234822569192766144186209138597295979180673996748834798224648807341890534295004803645404571293615502964044101659391698102164395027310983726964204623019233539065187420046633221233944460692311873932212530364597544731905037242391695645264784111797197049314638748162855014359532061186925215981954195300449182146660983490835761701783600744142925095240860642348682571344909597763888978646774855968134865260900491878231140397592576392275757942360705365559844208738410313931276495300712277329433339453091855271103185622556925263877421417996529319124452306347818823866355781001290925315416115524404666084422726783322131386598598114734925895369046717829080371992520812002435597881678175996673419264337886151270966466857262103717274240122318510073629456372179078983537253144871632621685927486748714000746681993687108902826710229522030443531233738817345442993639931135042520427311267058951797260211277055519654548078444758415926824768945248263861249620056839603176800039148559904636243212046776468620161448136405676237614835182852321760978588580388411021331600637219708807925250475617671587231152434646443072176935638276453983070355910505923767298692419391373252202477634683616796721691897693088885441988635066281853530307487288092523800020319415790349133052392287856080647341164911250547311940411508688008805230867026949868057583103290168446019247620617216385980841732991601281068584628294809075284585983573249588528523632407074977695708832724817134921988060560036127332583479926687190249632464959223214437268216944410689814021544461743980510401838893648617026911781372732390296625427309251034139730111234875052364883802330547002989057151676660108234231429006957426738975713172147637288570516448368777309471864934400523441052748165515914917776554462285947949469994549341075589697840548003764505304293815971840216020687518197390015653586586569186653343733197644070033752617298165373948121523147457123249501786639055733419166309808309924994468033566970058568100392860576205266965375433058059634901644410417741521569283134449248820654359089097514235392258900885370172698332130821362386463552887471417521922613378958703292777964023865357056189147681288545422340004423903882376664065749166621876199827688064918371359682962074471298871882358652481056807018101647663160218500553501328793786243715288044387821834545332862166790828897233534485286311514907164327318423267968136607600809203246680603244404890971644754427351414365075786748627947000259083596390997918074972066993385364670076801381832087979974997861857101957311610830294820262926822972776809470013360873296428838886424478567418424011561437869128171551046716894116927149774856461487810223198605391620710926527344891808115056037843160436950526591339902484532582135967485699022685923581922011129237611026166253242060050532224378247562952308899420085690058380009058928659319900526454820893529368329636402459818348835512813012355081799603713251812814548331587217471616120155681901989955357040028543118484998597561785547450127475275409454318610615469508394790335651073191323395199278399423677237617972154209278950683604847604001011585822292806846575372003186527676375762169593258186100746838106311641508553436368163523935436955478711729988677366051121421528554775337478266306381114632047803499261569923029788276642172352574513208425391269657087967000713445256230475205241376211816719974952195153101883117123375777821652428949870797499191770722063248055451652807830324274491340094332875742321115368844179652296446563104299536118755967698195057152872651254750582274710044469781113769382012977486420696682813786596130159500216340135899176436131227180746553946022224046155506854618002791318038317665998647739466847305401250828140327320328056279700626066121318675565495150587268125125343715871674217076744079305258689842943188514444988464724026841110038091746734105412757866321811081716251738136128637519616571653815023560451810887674644733065710935871899658482730090373031328675814419520680256043901216127236999237778179256759900954041671934950908612408175475092702795198972501262931328528107508470426887392574805513976318057488988096693280768323387873560097705423695362541751190385171929782573064804763569667611225236001513704850749726281231196775123548518861509364109892499953782368897029054732848286393583226849042564677702774736472337077266798360717231606079831396954818067439848984840599627577230754376413101223881940500252556415998173392631508248558808139218487223844372452310780979852400828060407336741779031094968276399617219210158763721542274984496408132598194766531613263464386078467667122814255967899231212534300075007549524431057664061650050163242021474459478420283881692154626325519539282858759773647257860972971823507975735848106461092449192596991921473307500016672866914664301519619283523456900954738245817862168582359429826925885884547582079973840170580101214976203410528801299380221148362350368346730828423721973871351861483875724836585727016588245666808132720791334856539763467746884124829678919392178288103242965355633600371702781019302488694417002757834819659833021905653104094648050311016571761596482223701025251580398992614160154090083003913218607979795679037065513185838204800846607466264199833523127273501181182179746295636652638593024467165718281052325837897391215830174949694529373662322335059927691560140227054129045972194225281022220231094494803033941810775942744789104114425710997268777819221871637532489191897798499533463790950889994696171901589054745156300211953245831427719764440285342393335103194559353273939727067871014553845920562365682721541672055517549051259823413517758165080337568505024793010909648643165210406826088066685896094943303543901806098609349514979500109258702531913335543021600731445756664028235032080751390470930573536029531669757904800196272036521149110175047620408923291042862261551208703781131785405878994299430048745705713204021841376659029025775032871803722434413623402159138279216418133888784897358458131555093611306345400005399662294282078530171809349814586303211528925997963602239597805293080606155338282700613431060712651921807319986930889300512188630269774165278886972503656134433575790296830413349855135226787604022444799261448777191384161041578032623024513266510362234858112030620798357916106144722981346723087353723525277165049148701530580051876094278510618882849811178190223998426015008029221130987903307912079540050062166461883156619525828054827212323088379734730046081926416096714716289741777381148634603088791549646622235399765031094652093678967647795285157803576247800545603823023514706601752781922886030803755695214539268040632530635057118410586186634340686164880579153965276122371881842547257993886237396028464782530733495922899181327175225308529716729807424138725195020414894245577036814368081434974112108675084904895011597809547577360857509140856567348067791446655452704281811561397916987573527760139691035068301923572031312312201028578752286845939088477686646663055720796105623137607598263002803779840870698834362554141810403472800603371626681298015558046516952156787040984514805530244287364232823886981320807215806336546986931698246741713669245055940907979893122402143034199493988502536200884065607571466353916641285297410828141157235230986509718405896541942836236841053506106728831772791958205071759648821311973638326332382346471493096725988901664103063668950969913401929196993917206195399910433196834148323135601503431576266037454232530324444781411721000639742938371474092135327693098177708791402411037278049012933820868073175342671383015338200027812508765409907615939011027015227125490754976010466327736050266095894503732168881743637782826757204249164265926346733888151474947499623925342951174762479370589625333596307966140666292841319353623386531155823876547642079505722898340273666150013014013742540375791368467646489352534535376714565779054691932218386243912063440476552060569360389156237680126502111249809478895790168388186865971873380637433715418126448059293864480504411841478210399152124185848247152741968136879385156203195820063667445790618237536182776936382392732084531096172134503397407225669435320779545156045798911312323014460198035587932447278658135712363245668542192773758433628992166065730737784664182859591913167504272527719406869850150853039277218828768134083442895422092135207859632386496646832343987585118841296552335094048177908928871882332992519129377024175615592251134611583873230423282050582153556798277597706002127912897240958358765418852290855084550782378511839085057676084631895097319448482275937593369475606576723451024848811440759941741361034379482509345886009913045405789062840168212603919109744977805400291456079074342782362156210965565827523312820690130146454205986373344619291869236296809294252781245726439868106740366012844390051592309829320267557758235623852938615587363781565910280929957863243034788449751712529161896046783176307180826383512231960602151828352473671416123042221307514978312926751764933612254989374551698375625102081025696705075577153317519009843874213711469369750603647061315464778898602663290648708812609670766217367556738109871861103402066188606791891381425026250488392523975732460536138166434079308852553098580458617804495190184974706809014025360319237362087665912053920047831752256417897561895833818280191489303320813418771835105592023677972838368964239317925228058600105907293419872151698899065723343994588694764688988896504566123167069828110239958471463045970778027012747658468960370457129898766138089123394279886814507638939731795677682244866601260467256887307042026935961139509281525692201632280406532818141749111840123853779250866791984586779288189416879609588196880018803771634106712050406367053950620184760627270208001538572803242363251933400506807392549686458976945848820844055714932144085823456424766217141322220367657309645233813956505470231593874657761724236844944729041797928525030653337850163915005585362668173293206063776595901746630565103940191341981043631033809901031358110438398354777720720098454141844625972888503365518591453011983466013226529561065522762393171582888687710623820841473399448169873901379990185631276040108247188878622996744887704026937621012318709280603621365812576281552283601279516926562378500302552018639065804978009809519395530071915976416788155050038910742494495567815042511930808921115579091423974180816839017163365454886237276390044905070151826553729997407365683647386948145915531151974836686096479088923477077059638035120681684846086027389151778510865989335248573488177458629643484545698893828175246232956176846886421909804626719381361791179404587380484106594173543896472395604990599952409943666279672646026033537218534709881060853383460382596327813345277996196803595895939737826586253790497043387302514770027011991040006870441753076036795364753272556140068743457747885460240001788144706530373974091616300278696165457288454783705675124864638560518412724611649322232084000379490182789858302691718678851082114675516896549089539397722261416496573591375042133094704308849806698209646596628731547828034358167003689348602244028487279451708535576484937286919148143937615140830678589569224216324510587671490649382443197732317453619589631325107065010607557570100030762123368042364401827677216435939884689311137357086454384460500572594942082566703844128916036999303762314990580412620589861378036918752520883796196607918960603131656931003825703895450961195888352475687908213957698591876264745112883441775897946169781992252364727204556047807077344577001417151509284120847025009286952556668652331637473816611500501792665041054559620262415639115553841712181106986455280736604004528610442888810204264550192441093674769396180734083098537856439181281408517727131506128601135451697294355483679392311703181618087526787125748628660263562591161023798103856912292688656454257714116524685531050239926928213468791691437900041507980038997931901150007975514217169520152176421731145376238673976797967482609562025622030495636525069308312004855716835763381714069627377928109008705108447151053767746664309750823929164363746403466006407735222618520668968335588578056684594914222092940474083160879259341659124480248898082634708701772080976442785501411232628166468397446250591844078953351258015404851222266071358762887318110014830441657534860150155231696593060226631082925832518920286698070955774273738441900452642311462532382806825454055961325002566856612120741525221793973706228623210467490907425577909253212214783962965041463753751998890962146489704255478112712507861601460822708394828487853915244265840940084932372575972452555694031572674830035041560919625227901824627137119869108956770135953083534315299856174138696508962160859076006274343782227932634906400916337522894736687026505514892417910140544009282470549674045059644547086000108498654145367529545685609004716636874229928417883380027436648562473281743872157965083720996903975894558173011489860700288909856590615956462531809549557286690767657937894837797185019623668000897451825534683651084649384644571558400206151244389186435143460951468954998301996989218635761907649170242815033854655082424172042165505559417887500776910225194460521824513839522019650553972796402192858699359057162865693949073584966782251618313376600073545446673653891550018867616372004715606909187355778652107249520316828054446530586878987975543905682189780481600524932043971946597393712035869463728336715393754550719338431402001014391472396420557091815790016282334163423803016392074346348249701808839503142103666735863440150567767336716560788959301962510738208796953822901708239350924230701809128403944649081677728011068151331545243245402232750099421761935493642909352674093591630549727163346741804086090383256886512592096720838886033046358278262079261672700487118104511407689996676536889041871457773176374719248036960276869269790657402846169225674388189289719948323494641866830406146657350220581411214501406242504200494900295890849104235527245575633069222017057092808418138648887657971389273346062836349726591049382830020384071849353964931570115458798875405613078660533344841611143410415750601097773399332218605268537274508671952559788993201577048961124564804317220200024839173410496220998330465871964036121130860890661606038921257825734304377716012672908489351781035903867973051653712616250339746467117135790266419457745601462750505262964301214159495654856879218738851238391663449890290402266548944533376353554850509967060855748712421637855317947430681390755816782003652804858474355469616027224110592419603160471726487367962770416797145908735741209520569072601606835754028110277789357600135234250802458272994064175190418005101123500706870592292196932540712435343883338423734818272084819942342233231819589989373508922002761270145903845036439846491071502811899254905244909998400546747661027409214694323566467199883734255317036463872435720331575207829821124066961583060113202023846838621669432395150780684063728781620069603213945077658817362182470157586252041826961732857514304318478668458015274610061080852002185531504991170508530046213128623069026666451076015823599202835549660660078773227911986037714378906917136139906208948958054527446862228550777533799338070107940370085225339077556542681903988651343056145375664333238039102721294350047399992015596833546697152123896841929986008431073058958176195878597840190780624859470495920618492927185630576007093970537931720422721907173325974118313231323552121410060382924744025029037194642684799753515431770784419228349020024570329712548416158484507985665595568620619920718486360184955489686930088680087007436285774453402680662604884930403558474001688059185535499021917079993743192457346238156503993600475824374490451913204124022054010086102588225163914078467128886896669197481409248459059018917133505949454797469976559818979856380951133973331891431065091019065866816869151113998240728761605023804676582394325210884668997209692729503584473473488793596923986663759354426117157644466824859005898401227765321307154395869371985395378574658912916373123443286645212314056807046608659628466793188128284366951626065750890874430064093786997124943314801108209294404792482637331509456892622262467946713658314073398580263047751569335141043423533097712981220477226812798590732251346481465131036220728051705804609780937161115539733337990943270327757391310118709773317639578598314240172619412603967012036460117889904001384291603252046724786989615704008676634632558810182292696154169374693002618309207572609146870432576429939415997418009494291924473000734377103424780937870325175321827829719813466583463143279369479066250983499622023722130408489298436798179049750690568352521543018537172619063770662048896332605371230210364928558385008885721138681553394876334060307677103288850428904082775036814444733499550192551421360948461506426995610162008653479048772031960595126016984331354562478452847847420344832180503452930674304602922475631865056635950118078995766115537009523199239546617496241943406540106043535882329641260720722931100633157007071116871974286442849478200219542374540081885838753996907454153495810497209808617673616625763697385586795384828049617835330794648261420395607931525083315357371280550160285703757756951288824874184961452299918728268991019455688008167576436553015874566911669163169262197395792337614536864358541625698821491218253260330045479888582349954718317981141945846415146800864662202522413416549442524752435066006015672034399339217460083590664094474188947761552829321104755488094248499058487555990032844260028931047904076102738432348356028294298646530253638370690693389552573676700730654793224283385779946333084918229125330840597536932662393459277941075387180614570313759891729050048549352970749376670880694496099783870782446246279321154894720471491269495260264744972937411344019452067386860807552335540944769639210357946831642380301985113656808392350563365421080642991531652613818046869917261342005214767906315476783162282473855569622437592993230542132549791801010348407920446521145765575796919773988559891335614187761025530769137058963834639725245770211352031994115586628524175533990621463219350666785562020489386545776362257509510745837886998771227528671089465054114786715299421820476735214397882938443582774270083632233586429332500594370036682075002938136619870843432718036773977553133321473249523278922277005042015230713173646328346728849978154378610448239270784928443188258579590294095704712790336740828914314670565057541696797302789146764728664235388507117730995928835772890830596000345212089699751876117953023483200956957083921985535469342686786877701200772848337558858995919689730337401631616473070355485771709614571322329807778993520875323257457581706938327175824429317544609516046645398849246949320692300287179874283149280989070477641618950196639487632642890800930918567125986190337985020354264847167644825209245945307881123396033619463733575282802143169164546107037058112604158552190979378647090640627601735413870468648125565770334793910566078885780768240972463029245832410916726449684823694810231929356963359758171809805545014300070617775863084102481112580959880326226337173507678876662916320087124880970074591950534618997084719286126345326889301939112344839142330332545336197880892273307061625890989509118628461673877161059230674008697739308408082543729800216876882220906574776088354364842645482544439549679369887059254868978764647933082619411727564659311371551669264045965725294034429033517833924287890688611412385643437332363568409252306434124848878021892723707036054316766087296236252395398922062318094070061116181958364729274800541142955452578536543552970042377865121913194284001609663451417044228144073648133154074309428256066728832292990533059093625354349861751381728267956736374491104463038207801832289943146212269507516271809752234146930738006847361164289643422119200066523323148238254424056565196415402503732224242031179268423100185117021299196664005268930422205106454516780794814344618953853894146498102515439685832976532263536052338335440771926790467320976565116356369946651654118409325881032775306028684258965432185549256135323293702647566418101359269321258614188987017331202065526243690043363397261986893160954003859042397705758304148669375220967832381332819225574770865267962152034157317140220931136174080828143326480197489149266875439487455858485463385709064684798846846915638446958160569191837967220304388898254903632170596276682397050062107549851114825041430974358454548347052456942946926267898731711824456726605046754399636128250716257933809648564973392483813096496802186209061605431779573276022382337108863382943407780695313296139703423634097000860490892907091990048945785521493877052289221554595601532857573891414351527142529257706238782977438213354389398588017873547804132142068266734240663496218855485477440016737366624902234229692779197354126192959433388733676486443203925266424940986053122669382412655395736139566629038579021888919121280175069076192818529687467272443377358360801748645098350457547663149863119467963222416507525871372075253303786777939491163583106098352334628645561184770000453843276718809378354428518144060758993180867995902964971926757042826072917200377929130264522986469718210525622309741830232858411047592267265202069589863873811213550539622829597337445349509478860013969968716466042868351078972288471854452737931870367281540999392978453622299298386320533471843864707289209590681522331985652462962572537166422044001381205965933484394069432485002446567983788579079514541716680034601006395888321132943498029087647195226324066748055458889423613866368241274414859727275315018221093623154136560772279709095797235815089631034280820530402499980155833802321348599807160486817103071973956472999663905316748877330933438136181809049523001568779278204008697175240253180273189091767104107706411377750746052103376085661661864133658722927683507277056578716453089373959500589356558201719689233572433900266798111254847131869778185471978481881459465536858707123160081941357849767284542410786010006556512858916602478760983687225869947763370577345736633643163360569584732187825190631353564947557728823863007584705276316071312632879553060847196309036150140632030584654137512992714205041338074774161904470051707571605429218078990381588574445306890019368491982959513836186549474819423615871527687308821977707792465363714222004735643197059381175013322265991540829228536417793526001910848234420112768341589409374098811008209729936966906787465748279691464773674029921161367172792885169071032198576046783523041142044509724595490633715493807433464376134352320365793093824231145672730192016131000402061310144447617807602184923276657932535714132139889773610060112699589317321358589411024674803290343479816725156869748683024630053819126718375611648735798500645109497942820714388865183391187187600382862016224105732276751364667345610854842040544777975460982806201788994299300568307181109136003992579801141461237680245585758695709799811567638534420870485753502151851577391562206855245084939760788189299002269515683141093892850075359015496559089028820669697758364011177102823875717290973206302353050645195138777778041322418471350707662902108486404592342294229091974418706240243628016892544382111638117380184070668407776908384637709412528165524181573299522998286456266210254079529276454390007147664497986690914619678457868914291681243811025794793099631251650055199738750660250538978908002134005637246836936193297934674972174099390932997536069625163729717101466966158847125021808148486215925708868720789164766872113598208004859509528621674513360366498701036102546781925077268249907190672336771224261231858500395177776668159826295318676307964904605397840915806046827742223994658811055639880930700560843437790511278319879681031529515547928264507865779091278697640193033128529281800254163322906345324194896348725048211983547559760184941443018248067726431227300927270165563809160513757305237392149164332579218364516008926746570748018879712394322178093902873073967014823730012081993130180557368186431917560843917823238429040891571081341346334907933872256215748020194772054722061543615281028682689899827090381804642967909624870651934115221226953252662336366148121760491664401735560624155651991230169594495695089852674365902300361075109146798122461281762160814659471002535436333206219954715580409647624408226096223738894804558351503900720347855471185002591346394632671149040767115436078721337257188890352697503497081180022126760510679827447919446245242461650743359909572918163253650760760493771940536774256053661620604116422176370600548239753931784592805114745093739621298253505972069262552384299895627832776844026787314208227606898824012195812062585743249661962269903002085040711790224515155569769667740544199394237412857547520689357010195110088453611411400354666070101607321403312928007880401585469720561533938722079942384130537382698145144485745526938418471928542458778489923946141337207201948736843571931475759321633421076398449337503812968718035559404562453562888137370695359539850389920411091402319338792969328841832363523579170156847513048378239815845912542865399676281911722400812959126690259818074545433446650766736977676217753221272931319812151515103312201475890987262881550091050901159718034343438282579902522930231869642908994083031753584685461011465791102298733540491058088413578459812434962112095931349905861804224836840720451791362785830024528601174014988123961506383718156952759839736115861966810234134703408132903413944369457817985653502282534196471261409281559248308859808663794851877052031255526053782684701791941133524215245863746167516893359263435866603082532239778924219409071036563809186970397103054016692555877878158121183822071581169313672954114990713025346830836773527019404309617045944011643680232513813041703363754975165610260091895841642353105499303153512917148130727828241680030575827860376613733853602126966933528375054546001734474024636782496328661742857424025227106336236149183081130098730409534271444391538491835053599438761680711366435753259112139798591384439556783571887528085173386783001764353775082925829281369958004126677078674906393296559977458892153972574427424482914393163485830786248163950468352087294494189148439624712470526650354613424461828225557487640659117815223037044785125001802040707580055017757125465561055658652781870138037380388993434903117966758563188756898097493164926279569949235287491837328516414732754713939505204860581026000062104938134119739271173384189530378198660044417995161991873036049757676739254654992347543309433228297447933092136291988692733895902838682366087324330488965160563781816152808090318517850203240476399657333248910114089802098655553896294285875546922102933207256096511619714738113368658601405472819156164299924915754594830768167957982701668073179570474677198399305213638339562331599797121426799748442384550851515151455587169051483373696498796301753957849193731295445322637301327964479141916367161121062859673068069925711618018290540651461368436234080495339070158553153560309948223385566762229535585983064620167084192766183395299660410808608841013772841199801029140955019615371429313395712916818390363139689241387650143669709112753656717737123637997716728509423030936883723995873823368383951973073231459536457134458975127056368062553358992472876694016398167365879065016699422568731364115792139584156901537237150752295322898526811555490497769958217281963397092728006098425608583808326623513749910839003397426478560544544460501886505691512024245095157038212807803984925491475765415480220789028828726725287635633011376343261783340343320837380480643384326626916162852592353790351704871385361397275026868441382702053974080346683958439228984916752492580782283897722610124577251289593056374898789846382724946273625893970258999429351648373309228007771714932046816985117029730809719051566884244127307999876742903919074974567359887582304247268106760794518087122402597049479411708310154093172139289750054374839243134573811027005526957821095801228643442016474984258977270596178307343310123752256735714589953351564000159138356555966657390786090278359648923532175867105041477213602313646943549230851817398462299044981996501509248831550406270836276292624021916999259322452077830544600623043102562716974777551835061716809791136627557492484609222489550525005964200745024774498108501110516605708281350227658267395983478526268775960484229788829533396381511741350783754816223778698118837675364006262355052414573442409135477779795736845931844416752257599206612055589447841947095647780110896013495916488810279505698006700204033919490339100453487284474818948314108823774384322260319478943338710142770698024719182479055735691090854234603664566793443015658761590464826400346511217089733234520551325307857643578526406151708608948737198383556374314976297557578583771890628802053175943702242017942145611109650902039458327940980894717890165393389850397138414013180248834284004135744049483524000628962204173208013926204130590429321002231898850565077555981216279569602090443283369910023040692856390047765429937946048327347172481631037640236500209904879084494321776701220449259837149735509769814884548565782848604571059590976003012484800972685731238012603856801059390374866882808330594608229115917859586068432477803553846291319372279857814679842936968914097442224595681587150510608295731447284660289871550354659752270383650866020482484173984872919196157808972683103950507811691284298999334963424491197915872440701293870127215520140202070279921282625816246177783081707996611290069530323150261039236675856034019507337655537230764423907009456817106498205977562200749803426968242284743228984815836662758740237292941785458299965686541156591124124092950831206018431895374471441433145462899178005090584266426997068982309600456353546302185835817478700162553882864566633785803114082747157282555723137424909872843442706266426147547830915475745042205387046264276300821274025146781801507206737038353945814574876236644693469200260988933128607878720388910989824887905419441368757344024396348067274951838321769613446241795083895247688669968018647442675300287448088072879420954032785278886240699854508571633380826859124425428827327912140920045004450807388346789865475124281396476797733508072124442987587828760292787215322080459075517126922836278824374005515974037705980287281834725066299906094700035879738130624705389945486280891309820128124526667118384071609771194069541083927178180999918720816691200399827425136453067837122334725841500026606595327438473756031819209070258232031547192366679928813947783028172953287572718696470659380245531341554557503248849660466775282797692327901596889713566533089265086871288746804971336010446496337944918073790177301406130112050762403301217814288548296678002197306472714446261371624083659222849861348367910256937896409443392866186254847098065463001371147336094334702087070314429478629445248399563868967107414447951893359648210031377776644905617266323518450578118768930331313787457587491793567106007087725140180039163099537047563013467677299088811308540645544960451216553926085488392481272271397970526761227410320564141733955334563443892611415715585307596476105988850877720977951888987604536225281244887695668562412512453594606141241279232163569153262906609336619873643578356030240542296218705722071301091520672014797855133284517607242446358624006580123787868391234115195161691374119665743678890790187601186885930761673529942908199924956423905948462734276875654395459458752272861429618315004105293820989439706308893128512003928266945338096469544136645385714270988320285416576052404022876318769362954809396857503941261678605386100629516939647273164931204321903769940137182389377931727752445614124479910417790104714506712707186037436448785538696511834464393792726870616031265272946758722939948687244800885180368571648845873984001166922991159164506280746616425058323187790376169695377627786618240537003302383102056230575887780939765922194662687201790757803861114051732470661036463173840273073975543683423392621789856439826886244398151978116026904333291311433986850088631077819229320694799218847348885467396057033695435468537317411045483754521512229435185698802247784223041343994176725375002389744433729986585594144874154144002488197519530489136853514175145615155236760641995382204998192143194655930030629277931095949328849622033815276482315704001736282993181903109759268589545983279593554007005272100080915090492553183415646548657598899322137256024446371691274148835831452127450309531509667824248128779977766584788998125198048841837986525353780293316290816297354339041737886955574955598066415350284643737001146593341922678841073039439140369258189475558180315743304752154482371140198825083611593417715711193308358749846664426851181712314750389056446530560543558716224316345057129058973026466327897236202787416018789912577366332915725773172333286066201375707879682037504601057048138699411727629821956408982282363210141899300664619727261172469749536388723290035112064554943284465044216159593916344752440407355033196892368625205665297509661932761414592623601407866188482418563152908945213760378842886945912983279894717923195074921204257155493272560972894163337121590073843205903935810661423172211320988590305918120597735213403407440396834004119085670144451652801028470875585205054430857730969151968502791729837286505869074343533780901920756542342653438545183691618246032536724214442192238430352789213092439749939926882265154426354146169633990770623877060632420699300408416926093322336084225323736020511906757471065076328709671919171185401036103910889554606640067323156649356467421377257138340856513029035389182545400832535816052578201122351362317248148021978052789904116041700972167933578517816719636559912892857634878860550160313585042626226671487197936940996279482693265655658831855955607613270606762035268350960897624774205316709879291751611568180201891653796061138471722544144699332134518757580412300633586534192949381680579043898457170145044021827677600333531265531499324143375555372386565683085523177985271878090580360124285753334602902817204740772652979810637869969708546070471846795160307004376348941395621139052829677279162741787191444660536891178685555894295049620149804046551129443723139179621456667509081729084137610628517068272791214902897687212849545764687975884386774388714697655765031020311023559037980114351468474017090222710521842949648458709523148477037761879124151539529733634813283899766140163735612621063672558108312314721459998164799384514341733699547650050299697568870993600233939058559671750464061029738316146691182880108694221239675656423406295189032833441839474968268650829745545123866708854119122287576624240295533253363479128943829133661943123686579993786478944236455748633388126696994043054487862544993357705553458562902370637543696915974768378365463489377750824137345813483899898569176817960931230414154780968387787108465208495567414425700442135956298064140318500510262735874429069671863314426679922869471751859864928855050552939031730682059605295729727812367478153570429137262413890131444330876110288908325366124417822315128756674831331577803597540695041348480707482783568789610610219041704767836174843864484950659248422490322172583720992172179646207609452587608727654973187850770290136361310968147570661799706457100255559690464727081334239058370343341849050914855693010034917491425712026137759937959120323084550799005578916459724190764410817935433552106636801672409844322270872621492340462357774271197323291908328351108767211153434557217564556635684927716994730816822467583322962144877909886945625038165110728414473891914449231675431221421474323384032963785129769975728796379183535751028458969092720675659727445538345373674235688601406542445812313385648446173363114763378715363805923015756110167538172140197132859033129774550888865967878722843965830036752349515519721074623125613998495046887711821397688466353176096067659457673366637665291546980416242775273457897360038544107287551545847510474646474936396713102523116378851751447605585190370142483434189771060451591650565656340935533743098607688074713154125030639618688380039556316793501612854447075578402798595677414090330442124123621330553948756871758267309892964693212476896196325863994830636474936141636168361670083899086934224607408880566872958608488810051428165147736491592330615222487119179073675994852240637925629722751428001909612690322109604814650465827835303224842641413570767401272026213169046451544220826621856900483957318474112134655916829478543724651641777696834154604438721153994124462022121464706115509697513877120164682271848857453903916581274899586544093652269554619612838173104699202398022967340421047281836647533212148251858875960717078931194165804891845357135012455292731429558940085388622858279024433433732805079810548035235759443558318782842581502879591398127692395485270765253022165188008181842136158227453124136469461364784316203764189277263825712603028740686498697426369355671024464471683424478668527472061582530771230970066703307209226408606381507196017607082219384215416604258162662658569162609063090321706681360538132214865008862310570707433332835944430457197146797148364585580651248695662995549054733273208372482650270446616140185556193540477552883543610841513768302945448191491754159767660953919583861956991917957084096812339084826009252692793374382720886649513319601626848578665085368491019051266726879783980373329504060766845800289179504819129265309862331186797574173992756381898811631249146926955868965786581016146645515820720988723829958494792582196798963612529601094024929530522656748576456516033805158875179957624443463567685072751079583667618336354204272414834459543016725568629617551300227919075466449529913432433238414302421747303967924308593570221839516186001668029545446301657265735180051275371795644402023780496129047489265644817377925955209482626277955754199580351466629323909156032703762155853479061086790005322442094544643618648812669680690789930765365968327783555435614267464047034417821244737231288705188812935103265973253043055399849419352145455636909200056756336809709478856274241438712241594166178000777485217734762776671216315584655305938617837007643147502426859067048578145831187986199442605853439443479823313449104606070493381203221297930338915491848685876016008240344300356843079469279431484302996898488144176831475792730405534598257001283958859194183878739486432053574600094952427017251322027004453150078159395241965316516490408113401924467305908266359655380459468126174414075011407058538930709938272564352527334740895306710879987728648162684190661805026695960021415296877434875809217308679151304097470454507049238466905453264250517855504656447636435156508603493371462896732940740036549974179057365637163906623392659729232134386242326236673494823638291344065415956205784603074085937736131507565447295076446135333603867944223584675881241267285173621854717639512607403132391673705938715415039590023043741868277300754148436973092704234737622367528708365833236020186149959562074646076331544530103627216301927611955419448472894522961694534240243649447994167969698309475622614999501761393073955938857858634483274241589475821948146133131081345530099143922680511284260984885145652710918377529872554949696613007543309256895441782319701570460299235912543176455395780790513289032210324013955476201527236908052461236949279255924930221212319668249167740763457627193323098140852831910784046948190874206615687435121907479983885932597561590816784196333020334540261298653157204925602393939515829310692423708428276076587354860887629302411507229399124981376588591118514090853769486805343175116824403201822143340767252327720865286692300332496330429077392355936392199723753381217237357496677537544440260894937268186612029187912472783885501199108500820941022231039202813381304580392618190889949720823839078228486735372624348053516103305873681440183716619070693689911928333938605727047653434268868771458907935540617180837244908631435515555220570611074020764883892486668397479926324259892930482711915464252351459025070668918373983234179435962069133494064466051293607647319505477306522515347072379757624468159301675890305881276957192536079226219004529347040006879739474614494089634770039236353107316914729918725127717495502760265580602608945236708559961500407727498527980223059220572403564362094845833464710766312324490710879890262228011662294649182497020582234760532227577615319007059211328188799058243696831223572898151078927421628584443655819131293804952741860544161334321678538385180800780232903978113052695947111654766597169518094483843877022935443605145891444238797010407449264287599292648258533522940115428211724138674085763327160252630284572547238453590910171775083209095384211607712624608740683036194883043759683396744139551478463253370867645889978116860312971375138203506508701120192510579307253013847856014164009430001662229632079579718610574469183320835124487927560675773417840043425679101094559414070049725238252541235077133771949234179696202660174662800208649625183204942515958104620248617180431219235756474170486179043431144184720538744485508551628343220235090189583669335005033095823516609178234074422751037118399472294259010147489034419950413992469088744015522994128591858865450791421227705290608720051511527774139350724077573668126207807635277958843936992051667489314680327244598052934718620187671594615821156231901984779017615809857224147635811749426180212108678643335190311020240595126685637284346158843455663549036879306963478435313471077491717084108159874001808189317072868132171804904001410821208763293205043676606418732970951640392827102347452227066407850023014016774526619442852507793169962670413600050301475675241001238558052554876345942612947760591533566058521963170227150622038650105258551468911843660382460326108561285628761312884186355161398139332270332911624819749369647625117920571380006691739796652338277680039542445356049419465838878653419574410910715484327962155982592666545428870784852636344823437495471532915266849074545463005121552210373143756853143059642922490425936687253889056328600202292508277659058794470962227429053730088887801432146812636074146456942846588196225544304910923061922442731790222788106473200264486739264008557869714333056210930832662063076450713935032987690617043295596065485536448940850010178590183882508360143934007231578037190129577961911512051992314924061756666910926082612844158878460786058742041863528662421053056232434956957481678198249729696797769089947774715503168350563082496372786516976109955365910453071892361984516172119987014607768950634216429617667925076274542826926712404934420568409808006795875828914058610765394840481041712540384685018234986236908277057264826477281986361938621555104729658312896366894111878015996271478041550849770620913267657720145849073106987167693425765233235582902008646335416737133008570517715546185095734935301359889463699284432059587341100597332709654381252120375738848138549160004191640853047342264500730420603252544475498354758653892032925873732379265982639172071354412123321985670459586901569523604235219413893615903878690121722559622741038090425141399948045649109596982556565905818303952250411809830115411605902840578453330761202126113802323219274910111282423913688117482740005472193158956403894387133305136837653415738493954737502270612375849042220232475054504649658505220916086150133972543079970324790625141073412321733382376020392099513302945270539592587571100556097430605625974850013177536744168889584241142298664015436783117459532077164634696505614216284197297026416032295335870888845186709845522668694766119800923961263856802985711127997145355488177681364373014948278536900783710483238693262426599980083312824399665973574304106769671859829955106351541927031161259538575785169561248341781131311793704448082082184083310567129669688758059224669017498201587999022554643397479291805325276538073153914263543756499251085886323982348994274189889293494849661154298149627493579305060083174665797835283825967553671489144401454056362111710183898831936753092825012981057647068123373902033369700065621981041444746781340085352144790957312016253281342612820310919860249549920356900344552280751262735629554144880270327847595854439306297513274980165073161908323615914900762993093633710428841295645877974061979952475368700570268851475503915720405383717817564626560140785166420304846314275245771593887623786426647735396037433142354250320967404009349946406088076365152795908952150745087981212293511628209537455595682833604285703363367715637315146065930518991841797945560343950610888615159757536024391853567684422709483806661810127569518463199882407847524568117663402279932060328204748648883682215098402925005389977397885611919029421160573937128390096843306011526667513196420024361270708227354221873342818034568191497674384991153339460584576624960867835349344045965412176650345035347580518454453121671783618452098434238833412653493088621173435485408777102976372316181508002983151898954986547407327492520679133359471590653580743876757455170638656293731161073821526314927774224319646311082438285870233287926005396586734391297396230861223039118317736240368484925830713973958932985793673167793325633350408210380969488286798755661836282435175326351955163986181796675203046651765316791363643047359737044824860382459070642171424461842443330620738126410377755995570694776644601720797686547530834303920111984914862432673304192119933133133934682327836302135553387511651672853274055911535759931311377897301218997787251998856280543178800364030088546804315177976686153409219055395868148841369014723143427921221248663396845444078230049371533826686710873453955537915446965057922207989362134277893302986343109599345202540102517732885403685272600282811291541956449280405407677830386662074930950791880402982809448977835703871862815839501949244360397938092789432383202289518073867624942516494336600339690062093792962967864168294369320488763097687244467243571539011587607322470014249880624829379644263639031839170511127206882589204429490882631711562546632595406146445289620453347299538422066137475764843376398346581788911883349550859593379421663441851356715939570963036334252538517926859795488821961504546943399075030992318345902245918802598358247687537019908792220124235259758050623323581378733731610040951305740765718118305481903302632176554322488991222138508730314429720072237772350356470968500148617040729635190073963138862243777000013772165375483636508299447769262204383190020681872780614579569236118461050528106348546846203324188147025955844606318870535520069839823984289769009341921339740193695779815164586012624520882852847513339149012924280465711276759938648145212725098388675082439710991612130017654430386155756896238015338406657225422661395406610964861149054521679287518364367163506216358159236034740832160157078692022706954902712125955946120911497935512547136117699439844048196421964134118313706831476567592501051998572334812876351092292420973598556988428596623584780914828337895848511802784093794851593330807897766749910212339148638028392813824024447267293668808221422696381867659400376250275192165096609802883135194231092258767472746500216560543660313653765272805600266648719940070002990971565979524648339288621964917814447675257297329631270960672856569477493382569112783751663061830010852141909926922160398143143743256167494524953839988651108394823328646185370542737546250438511720903588485080207683436585077192806252054799203889211402893486821533288607388998742438738028127719814130208352166175017397433208806362585918696857666760532827232133240052462031791743402467105570032130399879291982513547748386499607109373072616363705618704135293025126812798377470707610909259698118569947868147865473922400635236512411533550333855246671044935116883326399310326098394233580830466835417575614828513370122195380550911351245993344029874000045558576050478289992192596083948188956581038550214364647275185806793331557299691442083003132293144195292801435982125249133390493325557489232291903006950425312162319426324353801153068747518442605429748998120314855245201574690888565454538889424925722789093422026263110868016536170698526363543399437450587756278293432739609764134319155091223570489578287920791616998938686264866458594812938450200102207776079963443045370907287377804456004714905201191366012153300358832416066282832510711256232237800173876568754758762257765906316151430863612335499212399146290600250542134282349103433585542651584145315842274354651126927300321396220076858161935820257237893692265214520220584588387777144954682468070867872366627375220360063822238024396601841315585165414719893284090094396832231066667655792692651205161176399279235913249294202429392893931270049589879354340541836892161562412816322267819746943489927196599388353467940535071763559203727036962323473076081892308422580081254683129973299661676198666727256934811600170294236790403597003882529238499278974769426307480811783110807155263401329014547988945676176290951782443829206993356932604793461265382379324910032444934972617606062381772354977206433330806594257890331926667049167900297756241245512277608772253726506691709821751876422746394676019711001675017723123212928525010268968306154096938261848723127356173271007141570660543328692423482133434931523552359600223079409611120959457158068197118361032914523678625408976774830890358467730106888794356903343273451486605820193391582676824383206850028458033697566001157226377730202108638625760035611856676800968745645769375365835853649723228670558192948109693960038949755370537800803012260566260619249481566747993500383612720533947631826643254088168145368323088667400206879344349602330468550420329875307335596580190623372114232994087987657482938077454992924395614149504515988668179002724622160994208275675495261199919027830370124930309458228233432328044436634183606456004353935165769506712287139302657174102079605508057189146384592537569885554729294302142818995433351260984224512198318387183424252866185136056738287842109734850516196058865067312144054359607700097300366559631874883750104788313757926412082552462049077460515352909521893286722477245611007716736948894710603223548242652979572977167224385519196018254168352673319548216672015314423607116527487710723482564026129587677395531577186276011733015000844229281635051601215328440751182593617378408105565761600277429977842965954324692373143971220312899953770996051237282412051916647745306043663196444235668640330337984008205937095260206502660832310332161947057634310648206801147615912723515239252808313707168626992514486411519090567279076122626001555392263586595447836580721891290777117299170318067407472267629247883078043303244409995485895787865823411694908753620477187080271986284618346307415715980444456522505794272497252411512610128082976910655829286444686374350663657860564082254920793245374304802179043882827890592158085637904469730723504159108041982875501241463867405040899829111275317084323092881951298823214468728299960038546627196695049605874752397993615814220589943427344551386595603446493899799183902036972624645444156775625802419157396237115026873099482080917586873637199942565173075839981207823938842681810966104918097901636339607436381321470045087212811365942409126510877597650997527295152884683936121948253425098963871704938404851187154520938655723567407585119499174792551262343085885577298739691898035390768812492994234745210907747564294556419256461150585697724110899081756703564235183801922528623624533998526009015920965086412669696622516857950823157686657521264699132613799982834563831670348424377761282194913536806186956340512109859879741065775149537178676261534165764457806159526559021015714738316950415382833204659896010067229075053664873031203026332554684667106360957329869212059031009270323346503218647947782316267980453141988406848923964537645334479865619980974262373521989140482726311815557191196295139076809497697800928267426549198028965110428472537277698595952225566640957354799514759930807959594055815841163687936536355910381114143544308904526447369524427130812354104288391670633352141730726619628264213575236388081070246998580891979909636009543562607867790219850266699331831754198909214867539648580090565747191030366491185646069748677707955048327173929704129121227057335942394625619717412571553097076587166178118131592788625503684036304512946694325688038360408455308350525660703399174907819995208490944876454597033632281116301859685210467350798696133544491062204489784738795398850744330063591350869337325188921980166612610490923311467556716168006321445759075861789720815187536981776176151002184689339569823990703867018912370556848669295056690347133187202808221138638986049745723947931061306521618940670446063533862592926184403044303014587651075429875338171947500505232036357997750127906198818654242031214445734106300622061497611956874387318548366399092096899785397556414582489516744358198051604555024343966610438537344053475311049320743804519356794379475963462232598112234494809886826550655805453970083205902078227476543408597638727092644541549924483374201963971498518687093076071070906106084133129401290049725852573893842221291416127114165240357817672920285272933545302690242779201452101256139799411370934123159706003521229288447790391315838023052118968220055158181721106281949898869134509439633875118621849027856470579729924071537712038204633523424171154467456122156302594286388266666274606094399339978488622219885830228037816409315994724270925793183452328389037903775613987064570576972191412690375369708630632904962530933033628403115360079224683395498874428793479312890733460560594362099469858442063715900557058273529117297420561621183093125769719653060083107631908128757956788343639294277959912984393948106531436708779378557780943836263551822483673339980298284556268899547920637753466474864325286841313789516091780975166057119761844089815196303268065345870361357438919374666989990780432062932134294340411563878488943751536826583708374895789147923725428764409504649179024897331679131626079014153718724009700206455571669278373629188049671564227809205218774826556464444618822528931180332786211143505646907685726287058897844930398178201219220824387914594559979135706398397481667196468381610494783022706960169584337681186265927601430351248819643035036125002887796943139029365033282813764558395785814205672692972927215250026936820097423314028843230184214948395838994577295809002601115811736257730842725713513119213196165358518092916350723629983278203563434325585297327274345727809127787681763439182070275071436233952071820512181487642974837895337069121850816311724443987115944091762293427993949064071995097704163739595902405892085781345951529347296543660814857217928827734170548852522883972610644461771550543599386897066121523158772924128798495871415437032521667593250301176221790257477003212915328085757133295535844749601023973509182812231187244534858583375319141979370004186824741477886795462558637431100637256998208338073276897142719243797666760732690479732908488744877435430703719499210964210379259694317760434606603622971328956744161248637640733143988453805802177888885497004070021988240285571099862199699881687451785857888384252492381505539043701405244235270298519410899563176320663336341417545753315707354992146175603291229946040868490843902243860405550231615059712170508739347406680850545786893274562711910338622154558692330047823843851315766322905732488729988037482808559012816215859842412808948798197522161439175719714115740929233176788481353296400404348203192050596401097089408981477704719707441294396842366012635458894699852834746377048849268026264513842480754328813056753123484389173790223835013032747004956675575067417522362469813504383115119633205988440283086634842583743224376768115011641974034699658587559515274020627725319848810743518261234659840040319476559435101005883246879165681320142599494761700197252404493360729450713567580732150351617986853536165017576126022867770600092801749452133371221299851764619643501053274531389087204422936827084035450692547249917923464364868108392452616886332992864536699646991712620204715615405075970848215442247332897213868834469321243803755609106406717512286611585028957728824203049078688614157491928148277404059769864299518482712707885841452625868301014711196618715771987550371418311641407146780976799441172604133841187769688974660873440100039103007385077395900647819093364049311252105524052570408594093710832222900424199871450900264728232263467520086175104687210944473169178758880918673870153324035218801617257791108508684202973091737831648486720106980955131914897159593946634644232101899822100459281585142812382973839447771416196069368324890425044034405839759634543401329298109551884773380072857744318717639619734503825816661279349264736650944245842537670814005589626892514423774885868418319939684679330701411186645492788111510941399817672144301740548021103111823140032650361801824311890170100770819605538801482571040439505140888023705674254763464499110887995959844206894935488767916681813465271127505396320387144353934683582204033207079968081538210524174228176676488151487845885052344847793548947850357490285928774000206507506935621238007079993308738962395009943491046500338894855136872926599722030533579068536096156171732790323707908144440409878705879605099238735581767626082992722504151328582827673038128429328687844564369872344529537686448519866149853595513958158631159608438453427422351830093401346143731821518917404963035224927804100187179243411998220904908817856764701484241990479005725137504550425678573306484596272811099399733699302039775856497152535164741176687378533318388009358094312407887090554691909657801216977121529021394027848234748539382180873333872351347953656172979872163142510139498756882129984237155852023087084636539470804507084082035373792239047890562158694582680616342762717209595708559519529975920661689200393626062899042002196042988436876708669835149733866547899109674554594085056424988546770501932336816062087780521684663808507509882834821898265514114137251428751982746076809089678563316290852159528379494584160377627281765701289559988879869890684928029595233178502955265264355161766421651708301498519185996718592431553982058586918826430809923157408531520015892351502069051133787722083103575848960101919244870998973908590744501098175170480531986243635981975791856347340947523972594749781005543690268789502704572574259031520735555812684264743145208648006333058994348151850278389135462819158780749391251930814673672105333173037736756094408243637528835040463096412256886916804308644556333745099165961020981533175603672977107582663542310631396967368704077907529795464749175303544647894501743852774966725101972612154430185368465020012071973707528533872365141388303738343102537851256225839975574325336196245700001487370682628673731308937297227852923880506382247739219142820121278554454179777749185147507583484610215966002312587185442988349863554072841695293487583845227407773792339027952145311950614064441913959419035560286876707123138758809388418248195542294104631281093357997656289851404198469117885641541576004394551574277613367157238401243302285402019569788572578997129155395843396379261276660330434763451593945285458337642096924556763660901613126933771186251239022457144319989335069617327001270551176950111747716505401787410199655261584615132271499965703029545134240904702839951915428304716074757120972783537636608704861814879730164956726206975577210989880704953482487818206337010791318790718723994521427118959172720450018171170955149137591070871251947641965737129780081914893428725368626146520377679859852092085963935564861088073060223047820652803662629887617475851489815440997904906582781444845694858662426901846324252049559052960988452028249160116832432309207813910341148053056130921364244048855888026638741182447585917606224866226316205798250243986774390445069360492454017969277116468516316015047781748302684426283015721293278076338143890054963329294872998239569608800788177565556823499742421225464031826559063563035104350508353720786699516061048199481068001541627707660819040200584800750648283457761943319233478026486558215853949434338318178477969975241244864172216886830221390568099503128735306045736158465204283807380544030367853989400733054437409404072227711589287429746729405582152847798217949901228436794985751220086433359020194569487692076429606939509507971119654153029573571913388536635872500200269929994984425866133121658737642393962362758651973130163213033161205459230782591044042170814866285609640111663890639294932334802429731767923949375327580252870715791748127452646280164289818380210773585119738354217346518260288075375784871961191548250409198621770874211596221442975274713527349547655553971543341096906142790010479609101623436794536726351476946083921557833343524604746122723055347428358091155760884877390390852500330281503226184671284380144324193122890920931060573205252145144620428779274915455699425671736950134196665962127251108739580024148156072054320543427160292673100981809658673804967174107146352954430302445163963705153045677186541396056534143742272749729803825161754582213023277632335857049592798295354255974487117081703886654040050524251015527681415615100617072799513892157313996797994494438133400243213821563457209582692657883412442646788215581269245335763879139110080044925159756195819534177055410897639570222039749207397044061412447149603743695354004062374839602048335833851219908592600584311249373687867853069012715288452767469277627003465372079133351479804242408707295041257769102147065243552335485723304781859477652103475931033928772393337326753366475348568172624357742623529206279804116083582557359117991131167439583170601369958974444145889402697937972682715885531554296314541413497325178580858323023477577958769594242939863201058227302244089296393167043115590263767667793185426597078121338246574311325586045432117520527298788668494553830230725376076842395140156908439326577366481423051810525694102202207284651907882521129961250830033195628689429095708569763181135716242422511202846482982274522629710639816517220589097099018179374084450449863399904342402816369304400051514241010646357190247059013246353003514432439399605450643032395124174877550404095750619341088847756636173200378006181469968628636542144791006163144140779339635939782765039683292799620550302251380399813096558823429906042656855649686528493887883414294940422082315048272239476454794051949685571841483396306837811243611373188471870147180066297420377754512436164382784555434509825492451149641762493358524678628758258076332969431320883813300098010680003841339187463927268666808368921360737565313206412600484246944538071783864773768946272321562606706863076716881992877332501952095891123261591434992685640207480621101834118957148920269363901106696905298163394131298815605678226163598654647592921228312597675316401206597925109213743861328090825920769090251776744019142255095288548492016055831478218850466913382080513846822538935313143688336516283927240445450639915738726586023652087598956429770920049057503428976015933209082974675871472862660319470215057843797571238287121259650814578097802017329584377812434629454638794376169639881217216411932826889006900947764828408726673602493218186979529492877200545584093870358745525521633444073110899938008749231313036445303489477199699843643880178972926270854295316014841496892014399277975886524809403399000156283585322157933293152285984458169473781254664820554346044670793746372108418933905423505109493814058076570960762042882641978968787365576344109334259988422591108008761654121108411534443055618807840561058253528310775597239932407667500640438411010972678730073075797740702082900593704436577561316139237614805034711052846663516365187484108719355006806195448719863698983202443942292789210603110348269268534809397063307524564364708435917749496793183087043069297157831895292320342066679851599091880477078642659013455463207151917481878187847042004292872543547991827859676432938753042958718409295991257525824993938650503900320024816910659924543012421558149524785830865369685816667802902193555207949646567936480620579330237859640212602284768591043043968498906815443792706658751925193247960819475560307673066938291235457243470953862669174429832119394354948916945055798580213901634806229293359027307608986056576231376567328311664147351262686081835832761528443865361135004421068515832498611762159884617449664630804553058051923023827524394916636302896935653463120897654705516224528801528914022687349520165640109137376082418190946460881314654044300512388005781497409630734256053580094690988291458822712557157722393054531175130698384700387622337037002239838154121670342715051442662071602330097806062552723083573260979672169830962531031233037999674608902383143444120528642935809612061058784783398272314139262845645139933735884465980977829902137883962205017633036020716237876551987674369287593252296073378545578273911992101523919479385999311151159862977697646005589005550324616488592152424413637276518699053131115846902922456865874429750449574705656751723835443832981898519176583028894440553842507913661672672587875412494972640986198562095399604676105902788370862013427248597941429026827441748408627165215544327353841190148783240055723732512922588145945893711748231658805855328462272025207347317015870321517174902851440658955984354963093344337097868648765442828840336440145917839508755860228736332254549675928946061844775541655145252609785161796630542009797675306698099672323259136475150564232829069262468035537069539400573069509773562765354986795275129364464487325834116118146672271595173960465154408899061708836201711632168486294648304528650393199099536749909136728389006255672498025419354183488009014061297678387132571909704879514847288943767525118001416482459300879999613237211238263093822031574780828825380230512554973805916542283327053035973159280083017622316004233408739552893375062328784399012471901709316306152575058071658112293873371602808934258227552757185136206740163530806300093588836103229751567191594782654994705978013466473550510360222154105450697954476941926426567568379303256284885835517565505985375145719126953135737977765701266356872323764992038186437322014780674666372984029657465662767639359891704030356115403957786651370617293936118116114689445214233869525497375029786074293837016689575844524577392794894177737595832187905671427817299234460230342653650327691471572848898076730808502694366290220466167089269544018728211793635276183016746670518006743702480783068446080499643902161619610800400114889133786561081780640291782964325427881604332685666804396402844080598588280616340075143271678139042497065518567585504042540639705994160133943370657336718219057278781574797442012222807985120388191066317420236077579920601059631725775975331291556555134506919372605617814732321118648715314382111820164609382929233204667645357212250128528465467110096560497065676527832916162284551606508916111614488867008040561994237259974766139204238980970607477802593314848503027966255071430466143348552352960709418185001262890508768329344313309862103266303748824063256074798641001824895206107888186252447613975803226689439033172704928677491281361825984120895108387188316088052053753115324165149951231709927297706392706035357394956666557159208907796669221538068317904174445939805563864172394862526471292423536187173445501430127100420650853007163168631633093251210081951311690595472463524141122737583878221928872356432820843711870067741378601831977456597496151715584468793262899428947683913526475172594789427694989693018287993059550729101312649912565839126133823382297338186679214668099780409048445170671449648036169875292598110257043249851123674620855654209504327878509360398897715865581596755709948106360442471135232593865515644520332468966800879825299165561638010157063548366448278215456040609206384052164179019795708361440654674635524798436337135485511842330656315596454826224475752591310688296206465809978101456766395225318563124005873170843133202532068995807156422433368423895867685635157036148108713902369812727544736824573953182219615897460684384053634976292304048855363836825213573083404478555582274834011334662883935438028871815161526302701823822733145104536888346173501231047059461102632475979059350511671976368088837790337273041976227728517733547637982665025132136788573670675553861223423628390832738104342466066539588509353247310739419247813677939410040687243422218061730658887408201634260199750487054315106264823667981370656199668532063649010573372701373286645025201149656946832897592741624254555698922109727847535325450115912235674067782169280578584065325570490182486605356647717396800951327869022113393258953493856414384580738885750698828428851744284331627772562886518285432003055902831051967815745876730766207905070623718640606150862344110834136393743338967035347025739148826272503562076915216556841353986263610602544875196768653856028347509530684452795502540143451286751997415873959869644123543294100134108901318333700033500715070515696196977817048394641312223854737442065632222180031463640248984472808365723852150339127074919681508882143462805452477918398741783377782661535716721494162854055941799077841673815305785490024558742583126831760030996468222371400632890599723905428454361405473769491984702289233929036587256608136265418263713504909689710291751338423191473792252020654827680115347789974900852785009430082870682247100634539937557425673618202930237280512911194969252236186340067143255270898695274878644840500159950681092747083957250720017479540393080424054535883409706644616439999341343387351829625119472031367884004832097884251886705208263961591818202469222575337936151011138791845930817885902342467030303382032592160668779052762378608951087442042494281506945906049290244905865318632871159084109321302426746171405802588789440489028964908697508055177132575733854929346827482207134586186612724514067222124209281546096604961193100611748167506757215624220455285801353262371570010511635095184416529330941163866135948227220883607693842912816266879003217849841396878906902980571765048590621821650823632018165239011423392906060578090028010488713814531931702298189456197601653346792762652891971462710706366865713318479124301164938916069465385757844700483941773725832705340440733332383613120324385999432768527543215127416599640940858625877917324390711794639184139663368552181055729915516814644855266600562339669525162479785445100137461103414157433544269305443466203509344181891203241976259484093474510590300400726897336189560752646356619324806146404070902688917534435808129510971715804004647361007849334144955937483885346168952114137143742083791012636675987522241457007756205646664943850867025508544681833566553964384421646099227861403885732848819427793801154122907759190968722609622183385435658541770996689206301734416263235653426189013659162062755537433354301302310952572426488455806353454932864598833400727813050959879595371925265109379058088443110349422782236063978080939015323017622870823892042722614295992235641668027056222006728458140577206128226030959674075787272256393484288597610361336864412896794091585015790332710232631089437164932062172542574282816911696375496010066188097538595499922617046152789688719542716455145889540242500817666086696374757444169294285418328173833156479478214193330204750784974646770176587309599645035127932613612927755052249208259170770937590327202158498068619684057664057666627073106077831464685120654669041638390729267683821184510263594228658639752685573971926669792166233534003999320134604864518866114603006068473076180724705033119928388270110427588426983303989636160819025774560533649478896579760957236968596168226971157828323451870664506774060907235844055977493491733597868296331146281194232000754584198473844821803285196197671299003339478676991511116367985222911668404810234339840139638303091768245623382907057546090077447147166768582330899746939836228867262554557687096665639444351729645117182242240270136757864166938792024243514284213727562696430078881831789657200283743945820236185855636218452532294317825866309963627037101675711073874767910694171956166977918851631030303783940698749457566729809872294626213294125038871607901712443946287837396373049930517145252189309749558249419309664887492633737384420892611925525312133163296818006149730452102885833319943673176260775606767411561024706565013631921570060205128997838527252204846958975753055056605652738770999733547080922023607808221769886731236506799786725327274204252996079392308246854264821154663313289853061226963608240242867616934111079535529305511573831299816768360776905813789990503304645133131419978929384280409882425215601537110092075265592843152670650198813210996924934514783498760649160102395561002738746794048251278300298309001107176363983628216298551578252923126276391157064094934395165889187132083552780574606251194125405187652604463429416693318276938716575752158487480973427666624968760568539410682894682265947357836943630918391138505163278346682688556328843595952278398104462906204947827917076683825322513639572501683219431781494110219378392730757748580220217652927795586105579180948264801742519595569871395815902940866694550163664552357685181826495854538607318578228207751897175847281177525898328008561918178201315792090460736495248970881420936351461062131844874628245048041722976142991893749937558774685371280951219209381871375713342776169648095096452427150470124284648118986024211471645712408361096854121230375593616226103050640492864529836222591188185169816536511558925823928587830670109279539318002162824741307696062742291057453036650503509082441613171036305285084853802675796807722315744574802236733399380933725142719269647566808321212922177147076977349811642393348406833809664945133132276705110028921366318493398993775786621518450224722373770157135518437118945236750891109963489021082759644861841546906915768006171751690019592221778421307572357412300060188915214750620673492892445872105120837012425098733996155449230987732091748753481994027576837335162735835319160150102463746516983703081045996841093577387985341585384644436431688766979769609570265073887071582017425062642799228160586492900929744395705121224424159085175551905906775412006836295251995303298719825178100407105124377570508587387434367738362033822838325689666660253969230774845619304463609918025032320570950911028539957463411896665145234108975631882060408857669016660574428079308568316342063539711811552273829997197618228903515658672191475461751913382924666041408001553855772597444708289008764447802987909803242471946132302464186345917878587900083980134484191889216268105736492141000385896198743641210391305988010400747306232616120552435977395175929080432991721095826130373063315606342213898573715141801650423981702473320122651013735902014299199837952400163353157309004204143105853323164416592150377209294501851466780072045315625006782879498846299063765926440515934417475091903694421155594897118727307835169550424684987177248961653130607952513381072010227153458236229298066444240883401880418272186579648853765132276896983406591705939025332938402560533181915089296475297293417842448550670257881892755634747497945411804926691081559736674224354763993584043437963328846126118385954596071151730826992019907972855321995549779433349074263120275398947841102740574488291885339400805770626811529343857218421050775667343715140366721389792909195218104958856643813265207814659302377185563038981220170717055872798959784319255983397760515057755620252269190141709519494273971004159725571974222795119405415161553597536638264940485986874949128260543860968270683061058636152751673568986263308850188611648051475441643946316829639774804553827593606529099309630379500284405891658653233775265029278737735345720578389500077932086538216979709757370923449336232276725492529616134943004281460880158618866986655037859133865313647517505632387318714224772552143280066774255874165504688849855747738566823469391529253795352859839872390854903014393868724324917391429467752863687015357981729781808166864042446458926002172889074834790709621087018149940749416772384266864362150593376214432243117794241381650805075310303953153244892450920568436043696246375026927448097996403595662943647113177270293512623126030262785405387558120123072878278955366895531773884876482288913278413440613048961121025021038280345454823227637793675061700281694601072966683718180497281866882523894026581934668568551637669899360588804281960483701749200979181851043975304866086929265144940691748263535392108659690541377017839186087309137633271082386849123567607550179246918558921927536557854267451375192307220738261755505765995895714665026982192913870106968429525694423444688289962794360648735425502872645353674558144164985780718017123490250054645020163992766954473943347567344270455058149333659724761927181995466474579259994462789717276955592573459357299280728410936550637041022188268453485195583472922940365418658026244360388271130189878593234040143735712746928422945002999171079170497172060227920965219467262267858109173565315819475354389545611206021587046884866373886500783455792047612582744970227757094576618702017548745537024955205696545679853189581512076315741288352844202011186668933337765145689124779076981597049035654970509579046472256761304657817313771319690680549309699117803165522993515248646411305349588877781315570717929363714435687213860258193371820015283678168548388484622204112855336949161740466318372000366076918346479262022817792524004154262708455300539672447844987974343899881038459208064680279548633072174172475678467963481850751644312158357865166509614253455550447561013308116499361294657592530635530429903444518160097358046078426151223919674953065711498060031485376270477311939731372817506875509460775997198508842255027929554948525502763695893009699213013192484759944170044574991683141449915204363232228382378753433926628159842560319236031613730562782394889024471475289414484985019177210366747386348539297966934836380084325693074867789947551810699383920309392209402092141788429233671165178435920687752762820132926368837339152746283146033682210544555333490775955628727598942035172534778753514747509201524681821330189599546686208044316570486442426117210119128636763306888716708478631706141819040689929557599259157729558202461359665491229046688432552210828962595707637625939743608093353060793554942767462477616445099083901122168794937984544591988140333298115083396524307759157875089176965689187088417334304609034769887861192873070925397124717101485141158784232697613842789903634511236002104455288485211411260839041707792356028789741718875163935398118730178480308939298003677876623695763598160927794680414305455088918297489185370768048904270630873705834115599518458103412469954114972463806323073363833689824031712066833007648741982667768362862502564849224836002437990884389830114942416286675044498542620142627890095252397558276842719396428580346378629155627810265982486438556123503574221877290548127238902456959770585657930359016426602542004957940832954075806471272308141540141938016092342086208048659488611674794801045618955987837895054484510815650930618627930893076726667782431001370002203036368216509122060273811864131450774679222409114382839293848770095578800904817858813227264010235039969101690854601030537809719147575791921175798262484068868032947994790077747463513766121551134542744361844157750891721910452991089817515283600508654667325875781826901554739136073862047678775587472679958963703653927973164535067491909924966070669339932094979718864289186594887184187113327752999099305637789524082894403166856847449442923300077893367545063604101941460459804273876764080111762712586600165965967756005671609479000897793031686864126683485183793150616035206870453928590445956018084948229710837253791920034139494620912584770239820467539499329419404944804809289297775964499208647860668277849132708981040599102015532992684979791364088138811350536455341177559976285212029886238972121590151893319651648595660204257629863150037220340743407843938780931451921058889895108415665470348080363878991011958101348178942928701918693498641685539968017413183644800779554489516845844329510192224633335484888088345732446715905443213707352097443656730481264654377375665624103830835201122194625028812656356720767108768759427690264282884727112244630715757540491536605822079926545755584630385754801562541240422267972570131743566317967416375027923478704485734989660472382679286084578821698685202077504120892312154578804908890279822602747368417954739767550116289126733015060938126011528471540110112414150300987683605353597643869787249268692038797742569441904760780468937123487407217862271176545718821785152546547733513234427783306615656389667431118722235132791850828597190488662203495188207326059791030377575895584147924921406542162358485117865807574355799486946745039815655155495066237496031831321522323136470209225368035620763417795213323314888237479924096237998168130514718756305451176362393703510548255714519626355956889992257762051182223989575273201009980862900716331314918057775725952035700283697897478555993552548742477620320875784347775452765600389774535414905782568429457593986957993380227166898972417577392712103714100778913348809181924416455849112625904278908078318243327972717140949934550428870258312685401564820181234892811770694235993885943539038516159668401822307825555363741625881869331623982636592337809684349535194743313558971522513800285267567902556799280996709861528615114988894077520902683954999329450725566941729751633475415933695294415011364686302185471403071044612469911953252644395371039781212792687584876372348273471083279706391453847365690127743704722987339667341925331620231747865462761012861828052221197620976485266732183335559332948279217576217478677403478811133769900569392305371219363274195183828210131396086321220015430848487753281193060809668854434133010109285341150753998127846826373772889917299822440240798804473635801704647691612543080444566878956879235876729900204559149877720979897082478529446894149718314145162972558281935864206391754527954481816885666911305681420983479610133572698228341159025742416713605441383499743547514485432607137325370424199774720985271310685774799715824671266639595757298981010064474635084441863375143463135068858606393949590441456502433167571508945986998440009917433865568321414940263307051024105891873968627248178803234346512374548799358275591383977002637099008279719209017126047420658053808194088159608570109261427218978665248852419048459401532295237067096033856202002801361142048607623133843863920202673167225563367307243375783415436151612320118683058077068743813779425343189288365216508120136119534178675924075412527997627601386425257397826082232930279088260000991256183100524200537493078890908871936844128807586540256644711776340401683961809270331646963281951387857429706366043170354918101413449064405999732498695832955812676197752976168121951601523168299148288080556958203646899592315771073983925049406822765823684575849461918280119268671790279955815543806170126609227571180333033728941833144681031958854704308978075435631359529171175161465712771007324852752861473523172712722481231223214867188235266340725581543555085373783074283133260495849976802048180906461704079312359805308459386138249235333323737562950362005272846873632288766067053493307610816562966948478283227440440932299750898317415593545540585746673965487640249599550616662798232421531450094711398730060841860929850958371312188642188083010963348730262402361081571861234371276214229947148795210210964396982450531860290954175993228811254922131815921309718035385921748014185861416514148915443420802043915890598855301986190923423977505665577288042105450593179174767472939245758279262847368670587490763540922863532676851624223753517460394362906857294779700959708124633971489614930866311099611101222017847617880765209002365391260289480706422990890573562663376941880822404955195792482920739531146182902056957225534116251399974678571755359959373365416889788087958826290710622832215986945316919423289784320885908032275560952273461496079956562114018415401751888475015353182847528089099171551993018306228032699855260643275698518205313858528729290129127497303331860359597200390269292443529101006035093820378217133023337456520296030507747575068182428450907817351074780053977350437688461178717034826982076164832455780582151363347359587871080945233782749798096206428071634455476751307799628194997833345653437597890868430359697327872063580636963686017315451009465804102984599709451901441528964816446864855378949136692564962413255681706931359918204093344715344385481248870803362394493715682351140631013686738053457457718951470240655603583361226774624968783033439276196966069352819202620766131971975288542060624109121565101552625663260609951639196845134643505023280573288592799994387850056111796292017837475086491925518958391844944711745519120383884688104934835032699116083854855717980133585767101841516723211890866466014998936305263186241399975877115517766947145145973771288741823914337816080208541346111221939541929433224259036797494915051396609828496487939164027405653666197534486445381674492864306454380046471271981144770700028017252847141890665041593088915292188359305888116676151011351033358010967669802146985176921631953683871135329213756715845337111952773671510185394515849847623764938536648534932747476791088320322612829437984727732540775910008761081240294017770033257784614520942144095567220329665617810569774626295801934814902779266447321989110451729038607277167024661430710783981413495199108150205876547261361414533717951660880449650297911948293927328324336362206937628831677206258479299842344873890106162807252800344578327985570422031595390296244881066197356813976843251943936142710620696312564456755009594675896410318083155483818468740355353162832106968077643231335176362601467396927636084869185607092289457316472576617339423842748259975424605923590010405549887314797517600440006097346141485152340482735798743353866099292760681840796642680348440783777463709388045998649158103608888591912455523492171489953320147091533872865989847733933394977658930755880582494468889566007124818700541013945884630870942034565321838292850539582681039722340492513649456881117405217580474984814436941433623911404576835579334938676950243560131859704660141219136545373851016678268692381528490896791792100452844886515257120208343350165550014283466370785262125891060286607927392978071824273106567857666570554901690042202495111396807487532009332640709490592171963480381977263036395887060911379234607941496749340608944018224206574860021412752892477101057494098564890199112006422097449504051820198493948420259755336607169531697738381716596983774683537175590771176156082135468781503341832664575726353341416479297254447746909310852510174964061134451758675684689528014362292752618931329718454530125959656939443078263152007421224998973828602085786224204752563274344086217754931240908455630708365314918249930750610947606344194746906840907753522584354430256474193791982106247428410834912338697666915036555652694506606836317272764979389721742719363912767518437544655035417873756840334385241518593768787654345502528835095463594801165076977247918875483094898885670683695173486402509978953269834731250534280104663635495437406732054454893765639141706664214898658988142060913511045782723555659639709258175776365497516459461173241599372255222360267580339387041918318308754714343805699255786198326413607894469051575932293551522973021872377183834377360962766532971531738329533311521673973287021262909666983608727738294587045570280450279836926767161673314202486507013462827706722818596202445464923168979524166302690671331501318006074184503158679673967214547901529969867233068263183265126383403444555255134348134333619647312484094646885321508633542845353354581321533288711543326735115071423330526394340824408177724408671719362365166140426435874817785479045513013787527365279260501347131934114206454221950761530771835601626038117685918316778187041051622431850548756558395458578297999473639580301867220604814125099452811417549740704423718941778754918297358252697530941424523759574645873695988802660587204837463575436455520050240372287678003020667843270822814290327458930693578287749319997493763358092575409607839469992138526535948475091752706465719851248127872744322910193796187561698866912760747054377986752121645723211944673866614793604644062643531914755657119425136419641333903381227688175654708647805658013645172692899859473386009216841643237052237078288644315427527792053561487935864054788102578879218691455520399444854928874833719989958762910442767397888976189200031311257702227239514145920700625659996702605252719819942776694653672183248785402338907180073229393061186679956923646648630592081210633392588237471072242767469504428262208046696353568381043437170650886225854878353907324307089658137417972090930610830620277236376047115242004851934278872460318176855523017812201198198199260659197673722824164422057038738096814831011107523868951892164654256303009779203160951069937756356626336463456451095920716374275983388372876442151066046216798648766574168816176928516336919979812225281054497726371854061337683516603298120122933640033616342866635342081584760924238769767561235567188109331217318179113657561060701078703362106654197608323542028315510148359780416992230909574305931534940220276406557940530194215811243535387947832199323805219962675437561145793353067920481418247298913516998521589704776157590437389394630520802528324750148462362562162689498464814748857818087912802372803803968200734961220995284678394162181192762876287004166256482954386604183059973691307215715513888775715130858616065720358723896513156791632682057399508107886054061230668397852347719108280812129704052455614200635086725718578003754094035149750033787261638730579415179044729574586593897424362046380561096271842323720991616759058933411107781673690099924569370112584536740879371103289958128582684983610356360967456143633535678435579646788629797134020797121160450721747860989494757900589314529147970243548637972195009173733776344161529457611613843547807489967827006048000976073170767051433513990238030113271379471154016052075933415767629290444076386184865611925701048717256921429448810482798487312750629577824496086796210899451156266195367389895968109186681432650466693743795571153444431846893423680718400873124356481692296655353941987666426709899015555036473579987648342513017714639331611860981534454481768325914844155757659618354660928328744673235628637679506808227262762471530145632213191206774649898566408149412794653371135258531179607784409387067564748160447305706936146857596415284789203198138414722434311424825993320226380642847912859070030107380967381769501983937375258054258524138521525509525191992303414040345685601305660560154490016653321063580890652217275387047922859435118306382913494527313815056033294982024149338841455146653824825655442641444636857842706562290685439798507438383359042795704400053305860324116366172993924486107973960729455724321081542526114837618535605362782317145725552586649757104118509575682652059141183540437094501885194246461167728993055435725594704829652358781817748907254159538814674535636159526647035108641171472334790998863996856228388854507513107380667592114936247240033556891471734586052146628409494965702196156219802856072611073528484861467331537562168819286750752384690454009949685952849590405152393443811402146383921596655070030337348427593378248078008260864136534968621647888865916492926462200767019424940353807632004953534380842372250727269557528711909576888170486235762985813534400365359344838766467840520842358851019158767374995703274583657432335297169271211117678196789419271029688114065312583300559896368640759691623210613430860230329307093248548933619834564051676129622795211063844966873295383148573522558683997458587600393773162994139412685126561164164172237869530626634805277000667264074724941431447930732353048084694083026393389330469703933784617295700912572014921879641649521853036775256174698755025525972507868505022020408783122645006435676752321230482531569348240930600607016909452474275668898783895922706231419828400791602684987503270093682178074297452867284910699807182412206108238894373919031900911250886774545503099140206572642219604272886747068451487928740613261475761667815753377382269881181929085126372992641948478640763061286690963937042356743326203312243696354133415784259002628414983962512638051180240581391105679651848986137249332428088236055240432419347947525669168780958893030644545392784274893158207271935893095275559603233242306167939960972534304611875298371549476512990913644383260541696748166309421469744576281043976833497855347553448541064822074757253511022047772121748738899861009795155395340627722851782866111242684906732354597251279657153245284067832866294942670902804435571232590806545236452446576012884064733304171626047298250095443924795514301230503120023947942381934212279361746267725863736201512620817568242225801210852027903169446453338370724391743878242798260511842498901912624172775990672310005365591002899342369439443790528069884705598572275448995533253813583719740794469653651350746540166648550893701104968000770614798412400527157485347681859879388827436410251478295986366818881916869670451093288033044160684688977265343432150533139582458790115805647985808647412601498000637985165596065749730814754525272458870104424325913189535461721186097423255982727493884827491771232748230486487963610712075856976941441830531608316710917824212307124789889506657178672157603144882294554542290908312222355461569132619919378284810513331910905160901629204974000091139362717366256391384860926468552722863873387010707406403941814064554494625217066658160975071566582016428388629105357221100549394755684542193662559576684161105869421934145746835343015614582690380186880249058428316974106440366476142506095195427533962162368174991244524323290030668795707431862013491594544289444017329715160415007085436780535199105412522419660478125238609569134242605770629137469085950390051087459194917999143459493459355561760087361959276057265179501050253185864703764876690418486416404496173252318078124481902783803677718066738772746031978295525563170224590342190830724800640480716560052202820873240425297296870482772971545252090391572040424101061312145225541246655496843740892489186835380067644614206311704818777226323595855446682458585495659224964549206704472033420562090811651274077855070759873868810211246700201346122403829842867016736835481139754796775024957122405483714671769508738528424315985110464446246492290762663563490958892330621150787265057871439698690101569751956745532406611499537859196793188663645604053594765182315455271893787835939197502799465453730901706132494503633957613166734667618875228045482105973416405217224120162950888932055118083502630368016873982567618572798982627726280439822598543576635080579008306293135280295319637245105091253808105475543485192567425245325765465740365759089502443187422706465217634995982356347204079222943239939332915761635132633354025797476585373778242131632014599413771887565363222998487153161648240004310200852780585846946455182270803921540329958615968834586938584030272604707512216979449696782711424251740406327418436365784597736056620564306451915130952674317293053999209248093840371852314582780864135259955353553803483649382155367215128673501020078936977852314971830804889255127279923181811978511707682979691011473617332268868033098707713287408373078204970570219132483268295473797175449956759352214712445614426719592198295507281733015358840432412188610818224375578699830242449649204585914656300759283889793486844994852052531054766604127818715858268931626652002485504191988393094704513794102856501341205991697563405259320173577976755496697044360518301811878399587752639582179307566620710744938933921276052231231232594320131332006470976700066983388070152409151228997430000877901023076193513947332296460206983776658871859376754788824893026853503997445271593340012965169912293571449238295069745153058347517971452408853863872067385832765159558260149349974707730043975603680738997732060566337613771117811862668750579428208978409880791955842665550158677988477831408294978219896564701023699357657671252948916948662538446161830637645434245001793054422364092718139292355612401451479207439030347763020433509346380604415786351866364710880459887037459861687663808554100271209060704307450273073672030186534431453153756707291060541074629422221145532961340446615830988222744928979018055345854767225377219135583048985576410228137335590665830979537160671566617065990765089910122680566524968459040225700247439127546899634447888857574707475692053040304315675533430642010580526761622812366803255399156308906756548148624918962399228541144077636026473129760263355395932965641533797679497762982851974368431488703274492656045726685962069575033442445547847864499826520786838709987687029081722687486173833020171570898645443584721753394609222097766097732288049429364361040084715383763203058271601308111593723747120849448673557357231692413458524545114981362088170119426982939579007177368140669924224445212903113435798851284531440323411427914254302844117392962152817605515751963777977423597514352098539388604457174446565204040254454482022597613801111382312772545407599813873497167901835066591808524438324062242497716262505547891991409885170553683692740025071883803770074791464547984408215757581536656445383987263059239639292936518142494687225049936665827567445065312799971494259844995628433689386641604860268726098979668516028645359958145476726143216732484807681527293689778471769361961749695340067942207521368347635283359649864593792711952320112764697848959216825713890701748468373328299657788461269256724031728244284116369204178184018728376438025999965083272581604551548806367232850758622159333844067086961660931181790623779302969160730339432061889914871126773754527917115771794842262490180271809571933459427035681811694955241705612147926362233617459011122045948944545772856287493678629028569050607358196675484119114029583589979810301856299736686063434392576473966192422379069873922933741452327499434946420135733998304947399010579957760127490813012032595432400999431794324890466478374986928987146482821032653874694866333825856294769351563599319314915747949282387512067093823039694875623932252558043793057021628669830234132672586005543746001197267555162358554316345816503593908853124467251833646296460953598806199885897880066656170266093942220600057723085955371430600085193561519014117203044475739461612627443933066973281236861529848262407114251981685169953985413885580835986700425780851559312931688436285310555157984902678327773181783669962972362468839464747070862599118057977839038834629585477350553611544743616402415434272866584001739364009475601342208433212068003865961579174913030193975902705842533041581706875347429024695223188060984309330006117113153284039665980263906107819473406155172588741848127943027308328518145890400107190375317821443441602023567106442579210980897486964634034546770646539784631226266266557760133901750271697571681918066968396718149431386921314252202332172391281619729360883260468311902492072767302175728706014027957239889199148516708228249014406141437154093620685882166133600982383327816389929026101905518695876583284985714862080679110048451528711464620740105723980818678427135911505475510401201101651033306870448989596915031593156468356499420225639710103603093243485011852930690500839290934575923138796786024273466552103416869852641035351300255514178480817820930224333028574779440205300836059316846833191371467052895637545522943018964836094672238549123957041518181791218038215287983810224997218830364716243650613146848361137772068862115344827292152487647212500771616304628408752470059035651347460802855480341918994073052847190276763982080879179386051278927740963453802284370876127207009235679064703397888041918383900255607855836064039498565326462586303981602240448723396469178504746527536085929424390112735741762438133283427747741512422183578684160134239676685710742320768618376720072986358986152918125880678613538200488724987623953459414345438097016599329213656531239599595583829982991144748321399849537544829696940372329827294610630745455572743823986293587969280910094427177432182970884230917339489588208745778954436823695529590823470447979735836039952495267087435153889456446085979653106668641295279608914432721264359367964169703758706543657308049095615318537833368105178905085574001564290119468722617646608798281058326593165284401566060320728311251644042507901364923447108112130906304543946679947116222998197407998240456871847699659314707437434291075064563904322246822222762946318640597485145039349015428665455960631412585952183824801288489385964339299416398029170633524629105718741130902053270081752450665147962870998979805305482647154456764476911609838279361893219161345503910497813900397710775486038855449826541271837982986192094636780558628804715332945695907272702431141061927278794792722182030277037769484348745296362243411303413915151134611047502017563586526560618540923522229243485405198895894074669207031250004600940995103475928428401454140485356567885376058794589678116214984040518559532251257280694480543600669669162921719431417316197595567442867337186458476715155462625757882374997712122560730928707965743663186266965450183134366999702711745299779339798786062075049194143993748217527888871305536372837746850569600252849812901262816761452409806115189961294645739872089094978370977071176720324833069974320121590946118155480058522674540910870852212513305973886695760583139222976768662297175968178477206104723376305787376863270453909394362106483848471863396401742691426121698416391729254701695135463669407409119525835468709538625276085921367965411686272185261362826097626359834161485471962852500891790086286035186366662897752341360211725099631384504394678044092970285225953521809524959003830451972422429455223661530923988568433735580583279312508544757711017544039071367457188954931393012947784880860012891895143507601522554770858549693875011095382768156797423107455904904719357398142788637962839376995816956012501879143817139513435216070308383225659621873583470114260588444055097365472786762720033215507301384350406326176938910822105139372605599530293131157106201534896817754070968388725002004331295673947821843001910226215184041214251550553747084811945553541689955776237652178021469753122952334714742799752196163869908044880541367070434086973425788413820068098907331046115947999825386835140952622567371136057293416659278830303347507439018775833331544688137586742226049126169662179031622057692861131296111406672726270183665865958776353677745202648207353479754656473522584695832985122844610716673135760696699695314649362578674795908750163406120411395162424108586439753583970533931203617333354562838797815626349763545485928870035764591657932725408237635516348690509718778169013497343602591798350677139671843806589066745107239625683615249570224894555642584982665337162830042420549181075478795200032208223128926554418103756811274225222109626470419528369902127808543161204844371369494129480718081169726388659346956704185226795146523565418776508578023462299108647022423079391433538421647148266625692049523786002807645522609412693230854043417052306521577405583038731091215841605716440538093065691389631625599849863298150851843679909631326419198484570292551839065227462050905494722012928485088001613544075664078385226817643549760065939277992885473709616754061390661324882589991920236254480225247718028256461206813650623016358527434354466259422596532662496736242707421616910304901206847273058832518915952328819608912335392559756476982841466341761281959942151174048795560217337170066218722882294727692796813018619414128271913559305975652776609718290741756907460113872148204241925755927548652506659955723438630082897084337920958855001220198794725027684588778322660984904339279823023272480350497795182452901638396764551401432554141834295334850936448137753723658507441690496307948644141015915046139982705584640191020708019619969813044138576362773945785942042663340887137722196499310953390570079576408018519262643082814728542052694852640384765549007557510595720323637173813564489483868208365115207342370541682870254740199430862342343425682983140280703719113118099879427599744681594229889274801173302134849563151533269372241885987716945001779706318383336126628909636307150325961611368625689202972755931778937302981041431012600324912672932293200222891654516354525012624235154367631981322930553990741910312090115017019265067495812861061628896027944694844852951634980817694701474002041790437288698422997009708544874208593683053005232549443439550991182813308987337991265015054609137467278678599447374479557878507124646259505301107585643069181550189089785947166036488340661040415807148346760124467387484534091497676471185756394983131959211932307434690574823129574127088468706497645845288050839433195590950912199859671502075101016791525224809432732521551173426849999948159637378535949130973258504598914041597822596818838546925685312675851709293100679587373492014534539597503611615248207003354752588456262097072791311553769386488685180914261989400296870662926549909548301537305751202822091464371851304429105240138661390374849067078119252262292522509531841281671213442678541939965852807994499891076997967243022240822286753345463636023645278598643094233146135580739390802949313545424719426700268023372903552551697412816467667821432044292404785184946107043002587600746817342748622240759337378906066914833635702556374636210788501449446798255920448804284825058576842258817047176793685218256536585106305801393236929555318048730620158409589680242910089952862252933879534547237731929711620559325959180855149097115557025660098576871357206310500533972203379948551504675362187928900779258685355282828343342594092751609660705878936632814356271170860178066601360600980448947196673904461580376993244247574618148650277663692919320461147059499782010697235383625409147061838088141899970339293025463566182107590262468775696775419109930433650093374903197434759613793292002675931759988309357025585214999717158017061383984268170971905544538475180034505014422456539338496224785126636841503328171513393796703835410226835855951645381892414472796480311937664765596502793304765115555302439226419409473340908252460096782009980523276903660714657881208193785009528870444666294121030913565981388072682576406648643695732626305802656060723374385386783516911095169540819509929597503169751283135110263466021557106000405525787770800717765409957384335677899026427942642254084450722854412019972293585551905760953888381051058528234682191228384002126689911929028227449522963414381012817681267884301050737975050953973893872253941764227667035008582838542619486076674870963992789995245068297400223475154474398621077077389876551563657318283801679578967444874975643158966750765949522449632557093168517216529304443760245355454417450973869958701079453481264984146987485704693888332079507007741788171890315903619522372330185819727323765938913232165372772836591936343088868489923571500911329304139105521741935460741438031954510005444543551802004119037291317975888506419881499429994586366972137508518887097211565967473599481771775353808469012168725833623407667595421756504583717033565350073062787140824831150152244079955777852872288834634561595936439359299526949224235983681073816738593425382059655640573044314400092105851660199842665880060314536413871204811578556833929472407435471496618522563279858283780519169872451111925846611291387228500993163906326774127600585920008191072114096911808711266021793552826349678063547004362645093723624190142729112829398344751149152504438934762558044355670164433925589571808865845363087837284239931583165680873237852636987604431022340681335221700656517023009824550475805031362057283885343153642485885283258598853526798702475776917243973617214053054361104141863827942480699741848614506436967376692996147404805024871734041200967377609429193372305813862395811402273448442713702183774700191656497852737130143273931222267256053801259814296947169943859890668811284701370259775959539004100465586656001239856075899047555993287407636933835511935878505494476922866846357138076898240813486180608736548554075868086950209204600999237392751233898124570944526727703299968294054581444843662161127486368896969753158295487468077651046803934303180602440106300864123711463518653343994521986140940210385171256943915836440934251982996059029998914363513915863181132210763485965026312650048006045410776872723523299608361928505293689328276891685348205625760230538386887659240283445128450971112428730488893300259749263270856906813161610474061966189774475495087310675126723747340656567735127210036363640347635494273522150479267296303058489763476678117224641892220289971725000890305502320126684431334365224864755937346984245672037314152699689839068587011834365835397725150172205391332004871300512246663863431733440054654850902297712528177903709893834430338310592353100094472581271941258306070025399590708960254171388047433757582824976929587320892117548954533470030203125703321369409937291417737783086624296011292546669919618120993736268217461767426553539444886411629076798455659504958278130154803099989544908960618430560291351682260320743704718461001556783150203527919229251902598094898369589861546430292833700594356482483084047902564222560022013097257122483414553026704755008288558506300404593500205925435774536356161122209336384534182873021161607813559683731201483570833981969659051171989800248605510473394364307519650019525305877667996809741851643038540247108674736701975909045550906110180027670580718130701721025450200102028879207551436007023958629787435261321071673118220872850181328442042658860824130561928924754107755851469984959465974640204120275005628704106489160540522321625790992707951992997065968090021765666861447757237827144889584388371859164038780984497838705007625349439596698539620910610254236271336762942126768448864056414552300532244658807468129676073634322278105448877683109669384595095294075580996677374154572401144192877484675298542929815961804429376733216820537511636399766394313124106425085632619574274135377963530387022157041919237763375760115981180035795312624220632268024335394509858417830229375321600901951470209968457777464954788921002845038198495284307318398677670526345392739016995607440709074005989144826155764766365430734799607521710016421365578455196666661482944938171347443528313810632377967800600768652938370815502806434880849920454826411563387192448572430687361361749833531777856138237934651116410150736615811118423439818217294984470047592294158062120693680700991347634479921812030840589818558514184801047521230249119916364021947353549643340907694278527091000117869826676640635887430356327723581210487500840926513390794031917286417208202800269163760073840359937040688068610919655712413479409099883161733147504056152877376203203686367951365568855257534737178078021376710380372624446276442596758599984061939941587570892010714562260053053008652044122666866290855081616119945452702602776678013695739878090186806304245679104327874314059730512404253971164890092432403088653326810093154619360100243432995469094213011229812638304925162097512799794088533225559287755498056832335851791549783837026956858488712932481817124565854661932332526863494677476162766220059301787240991262751823340548218833145964260406241329673356599921682738039097022400940289741604977658575471462488735361915756704424246996187963345823839692780603706413015188553557376556676900471979155460835172983040525810542768354390537193665791356260094985780509219873377093666626075427995827525248273377714930096736514262270891769095561839152272535281816085044490839475587714007359544880791886795431798058115132823505951981137165841993219545476797316660129701381664553983198450183110949085736039126595709602668449573068767266526052111353280619590637308699170704401168135659948133892704421373957873086233318033089860487576176758131848751538017495551696316894160785609388115016650981616728349273583519061771077892784504881926275382705546331141199182297226528034884354938189717653377560312681368556430135704187682261574159231019737203833601729862707145433286386507656255100807940913844650162746613673844552124312458053853496203494670933604282593959887646253219258534768160214133213196710637851434514723368031465707396179710086289451678378319344325282235862722381523388815160924615307478796279293480118245334196650339604123897887379932912756501854822456996475569939776168154959238776647756248248052867450567373111358668746548309136562104124642531369392061105701655702114721324982896875025134086481825094861358430072107437197071842285080369433656615318010518320248063544683251951138080865823885810467083089168005586920407300982141587183262299107245811515702656563270661733456330859628607664048646215955711785247441570859463232503423458600168459276228223774778061357323254132869514448805562741146748282673402738959658839761751140229890779957240012433255643776622476140111419493009283426313324033248521501463671525539787139792751945119471305611287007576515161065467524996268667415454073615959594964735167506273682325837373522175901500509520401791898040953234395979481608892589776973431156386022730813210733452131132739389400523021962248647549762364269371237538602560380183991963269564319343382712239730007350227122656273768332716496448524542567916722748318089482832093394521887985985421856766188221059840903082482886666215837082120992202019340782779116112637837843314181321345934751814032286021288002071104463124983253808559132649690667135478413983991531743461882067826258391866444067071288950051240093695244677583330874138412254244374798985866557436343269926019100570200389184377622302022661334635790427405045253271977448910275753264157523748683242236544587176706526607117434501984893993524102815522223370474203340937465090115979644213675717745313153187430025374517146733678543227146143172262074749652859204940699617206772093250965171959962637239896737682119700293575139866841312061112054835592288038222911298909083717786264642061259197946813595410073709748176811988572297088083917125782941091528604141667409857449819519280958902567855501743982701105681840718949481827002379277307933072743143111224900822551091639736045304277382700241682138326196319326153753642081842269223840455812520029637767311886339261128682645046891833972919528313458430997511239996810285256181594889848007757394649583925599624145295539630168420940683969326305847620636532159708883796910713622725376184415216869178122034214135119064307803230431859631179803094984396250276713035711523680237236586643571320738806041896592625400250423150738678630553819412277179791960609705457857634654500800922887230456218141475823965833134995356777748652466545908606741433401734810923802588454739109976830354049639727053604242633147450516953095375189284308093274284151821565637146886898395620953904077134566281083106544826404447897733976233858310582612410952078198016992073310993390238961049983576918721754554570820483111947018607985655180082715353768705529532233141884373991988178038238438548779609013939131602319613112131074011959691958225801237096712275356318173185532827482065474223770375159215476975991450101860575294548285735648002412256849947156256231150643717633749594090187137353098465153420927249917064271066114108431541738667976500964099845307509668910491712229092287869102784857892961683150367968449652258915555843736336832172425242411984001292714482822548395330310308324233788970535854332565091046744081466302246958288604929929994793688776093966517077935488257465204359072119119401940178259807878943053282627665724379809321194633612811912019893819700896122639393889250951052613912187114968757673342534523511351766906791362442053049011660101999279154289788022779179170267556473192000631508639490503478461599769779254447563098990694031529579104565676998838461809886806909236157613831565799213351677476995043771928671486406474608668106755751528358352548794917641590366499874684144715508848222588975623925770830114415796981669693666743505168665794396412082098720848569709041260341815584841774089204147069740554692948797031183153361412693945954744231895165141426098022576291622828703412731525748208993040231975286685288216387581466182429515500053983170145984687057939886589262360753189478753749437382328251979827848957721632144964227738798490745180450782235319317261043974114124276849467168198407920150172846034839149359392954007101114353124707835787509699821354258811672622235777536096364917743039605796715223271639591325846713374083628185786281690107160032060336443593029798043104694767194120750625368224453271306246915640866271713829410389345404261904333531495828838169014747921605382099110501893790392333916882390524889181640410910694050722709009905234557247857407495836455136201763147751789723817320809005422399754390138140458152567418173109242401868575120135940039633479583046626998692343804983929223191306112016579049194967056078441054615818477843960568096739099725265708551142509168473597791651555345294846365710851345666823478428206797618555328678347074359751598006265752610709319530130334772085732905106652826406843084536545092449403917235778834827784152178562027488839778748387353193431913058482055890801454686588935267083411025690818482836269321317436476264403723114483032089006446958837159882306793607264826770514430437905939119567895949025943344217145049368851365015606804370012935856249003427882730098229336186854988186247628847486397705461121820183064715222852408842616791034388445618408103517778227525577975187708725565020280293931456009563353900648709125344793662880679734705425876387342156545479186690364453146494113446293560066423367918467759786353761116493762453485273447871437941068386731829561827302836976713251119906548026133754693865599532971387703831583251355474537231079989848680357777726920854754970504189935594475802761943808795421556508130769621234007567466419649111717560868429265906026471330061674634202303088802501506845743986853749178111438398460136447806578017396742892002509891917630395732723152610409305760557408138115560011988752704311777777958495673071556216110862384840763270894748202567316453218225162035539978541661102975607754670228901003988724442602385031563357291005148971033045331103838137261119428537924246597021896445239203295769566336173223481225297108977397645524030337920180481580247186722270240003092504204097761950454014164315297319779872827910400738408993014572803053329459813153122752794703539029624734297571590243971451173726035569591674625075343971692486012085630689800655889543573072882472704318015280064722842322393914972868617529331428043572738845881026024528012026857091320712351342450712633359607383392152891911733035879361886913599075849098923394090043416684623025939360843299935891939431859180127139409763066421359460680055234377623119034536981053623071393273979978265955813512157085538482317381550957456416755373260955052163236458550676178731108523013900238263552702078990111846725517032697300133511401732754480422971340897654568952434095351766383000806013879099858835791100606287334080060152295136821106889147239584919609255969814728371998584800776408865381817179978655347542996107682515823627049962989176977699421875782424328700325771786680799914904197487336287003158461895579882133508535806378418312932198110490862178369704727587504884264562435719578254784275060027308706790149922216648250206563332773687102975710766836157371847700859503542097817741096211488562951764099294532882440051869980889359928815152094996764017180233566752041510885496638156347573103031495808878586527089511560791602654720454626086472787850404671079768639915887336706603042907065130026649410126879133565075495953472450438145660105660071037207578958497361428414252778108262340674497425269348265182399938105073240599623921227574772851581015724132874130898512560440203093508959742732908759585402918080197852092589358133443565471283702963246654429738105867179946836786279205519670730511498523193956033095880974925555276047292948834127849065772343310321919200916926934788868289127541697595217136468423702909978406965174481838782767981483383202280922597388973504194667915261482713640908816002549695504502557990924124400011180569591801543874691866031965578470181212349118245192420255981429911674339713306348918627269274878957405201413134863847312963890442767080527813562010330758700944671860474174783379817935017585801765017731382195034889738984070893951146924797210954825325678811877964908651625507849376375658714219202840907541361072155863335039420826353185645211764060081264031359475466336285158174040689118426761271518935799044500088959871379253979191901952192036712893817029695397386922994641795626414607944137700811330428943715534115979817733916268598094869085862275535247079116173302089998182159687850250978420383673630066017768310294466606205602129061875833717932891462166572609881280301370995121473049593001793780606000618056586193011209501331947996798899642545946278130529706764946442621711933558941560641148330881366844741790907687717957849544752486590099134809584800514067301518335402865967402307898781184725824001792011564145103459752038937590346048605203671974854824945808710797205744742757670604762397062270568347821210011308339053954881833197735651054030889216233469832428938458805469818747264472430353313256400543772403282211330995430784085648383077265897607980400313885323291506936751517074308671972759072922917524126997102538116771412015536978399935257633991827397647260881142915861147627260412151682639194638803053665676447756952725550309298159535025021536529029645030333268967736953881817373709015140286219764390104259856849367719736637922880548135571713824531498224222295703616161935665388248386545237330211305565937468907334327496061251825630333532038516130989488362989342532747612952891293180316589358311989864837043626533999232069432980808797998492038041101877639261656708012810517366167790389346779003860817786276542927409504350438104385882503902824089153126697097639842245930662166988012744964526050933346538852934247355776960825581107665927651750132922910029759682961708421165347286194791503339150725895104794532153638350567608735033026115837340231591410656487850240985423301521227785709330307422420759613448731656709894782965649840934264343983845295541059389634350085039211400047471243040167362411719915461276359758126863261523810158382529667093535580320584425325718010539925757777607877648211677518481632854421916092098216198185791723914422748791894051095835485974925856783899440106182927865681213388601911418664952065192341307268222500048414552467459328394949588002746433563406317638507652921701769563140669800996597305991653049271415232119398752240391354451838165976725930136451653029411656762777822107656071892829872275194817605379952800765508896958331572369758066947713849127930166437957202701669294368426637282577709037753991253871269057871713071067481802950844792517274655871111436192637641471833049177455199958292056884536979953078706917237164025134686053257037393356077032674954875191709179201175070131343275355792591363621497636351656913627845828545052740548214230558919599470867663868477943850925321277532547428325222869449313701817005559003910099300993953483249635175671740581116233548631942969780058928159176234574846734187686909978310029036762029692935220988199068559577939164205470632143437630746521162141708209720224277221742957127282500407888280784154416824120617071986989613387592074797442509934011091197910680282851722969582068960337730737735869754495833112931059887973106693487323098337053488995635700639274636428521597349612192686887089289338560470377598848535862579950493732749908070145562116666611338346230880664365835671270727436727769990919582895961483252743790119103435785289443097379212638315132611525210708137677135661611691894675875553832692738327896765636964181968154550556004821387403244184494006228702571386437098821395939949300718501954300768861429974758441434568037106820272173909705098740347130522318864652567183340118773303423990334961431979811818516322058399031458106838380996150030253494534585753713203524469398417867532815605982130989762452021107438078643006761226806670198793758303629289485981572779168364654174130725419234451858718068851146196804295685471072259296634323650704056662411983360414401307166690036115281563339165131749962088695530978520798164125534168555916255878642817309687042801720346696736689991357396355168957019291646597782882763957704879641082701738879853924497084559112690675858074645689109146646520256935866553233267873715244931615211346905966321924054419607198081949484491250694651386754054670620027066317814368025840371360909813386901715833033734631446042713104316899227907489092362147897684617975266609176685480236719451705975241937491496776842423441158916467238065324045532622969969010954088483160855712802576067268376847270324680672834674582052050735700821396579546547327169120617754304519918263662263501506870125719343161654252756908417765266015171761930908496636164400404756676757663568630087712368154912267328927760987556777150758935524420477630537209632509557421784959519772741720282963303866651328888032924499422550317517042853966619699510404721577705296827634810803880283112719803829359163554790816582308101651415731836266401836170714237687453676119699459334912679828241573563217496244231294610905286628946708176285371408601714880023534021797063167130642306846993598498601325309622298661849198079469987807279963712078964296481405661986772528425589519618394348924719595651230912508202023082908582499462307944888707552111104524142959666373761157870149400545965978564606378578442097838848811183243428052435394589921936679154695735195803574856486679974919408734283969156094069685268243219100751164440699412671460603076040106551993976754185243242587447827470754225027251447094865445358512959538102257251966101949780486893318137105902942670567528064540272809268181295193807220061358327757193662390880005501398106506456146414817444928273620598175919366550651551845918846697932169936457929603157672069556360070416307950276489828869407660208158716065800134752089881787478170028152241992807790324640437662320319064996930273925225262546383456865323626863208433276331807731144291620459750942154016491435667098460234678993964998771559992380785217485814862136064018296049775525614535682351097190400211864696318117166471311999641205969603865730294828495569715399322606507304228877908839095135432276420084580448663698196186362896560847539648634761565815478690503030476059665790880956291505684572061908833333409767033313353886432558715972327927754905288365928234793589852474630939597910867907595555915350184212461019913092702050672587845639590677953926113850733122846629452488008275123206604643005420094224173790931794849978652243176079009121231604444014020008120098074576170849482586841416166434597547336807654276812873607528457047075690395927384781242100225746951895725861650574164053842152234548181854847785075610783115515765901891453478928589388950199263905910036965679308024485828926505764092989631198805351657406112881482503540523695024817185414012269348046705533461473654493368710815608068246183309809574340580813668380537957480363911847101621803157422650323772460705118325451406338690667232870761108269173148019141260786668429180814142180402121863893759770805080876019339756139090595525311502725175846100986561338970939908709123061411350705883952952127724677155031343436525647423305581292358895427712751377674394430771953607938183976641824950948025946376546360153286699789253856904591809273230590697330974150320710326780575573658843074363018980437456560925563207454535477244178269950275755623322407356108156523637975354782761937768900215956966401648529115080099142702899868897337566654057972476216083062572093459394242975324988390475067620970872815385158276535098620914177898797222967541625100547222576078012198912286647909684921301848745160859724460882109703817471124325457275552071834762315613233772200135918236046707553589479389523424555504370178393344270560193095874401222909376842018969288112154093641155808369958932154409001287617833447520401069697343605980039068790056124806702363210099267620068056669257349110728616425196536504618135525422901412117744182535860866743910185831914897216003884331565423185181031932473852557495128750715467096154178160395445345587742305446396260114841278865354237854399138284070004290439712945912613088935355975653603229454375622447682181019177402410017061295763027365943735137945469100809518892794502099998565208843752913515030759863557729621609689860532662848798971710678423985029942236616869311147107487256039079182217252892525565807385058964661955437158340940328443385638153235413484180322875695393309363311878597825772625432650978059805912100184115844541973710134346234985340527934484707431036819974741244184892852828923191012064464945308143515462742735847645357645906756818583309510181661502184668034631634047100140378347047423713199887243560418576708931932255500502228979092372224778781973622150491497695898471547898692798823601587120336082996570250651426244943536540249919899240550164392299297899279523875146393552096349406118670579872177578093716082659771668853601438099469421135832007663575561477972888954367810370892018986245236719670007897799489629997392900979075060072738794291210233464489275787266923978590039063153336743330400964752321971233704676140418083800221126438296950954808184666906155343059901499539752903846195996269190025884625129708467489748783341792767619723510845351364605927859660782439000583891529271995788997691173647913806132489818643317329137248351713497326299394639706375014335258645502239466901487031338652682439838720216400649212371150962490808270603420061329910289100611633740986689966629156518509208434565016910697443208888277027572964443258961974562363790481791484724586255159292635985262347000877895892521155260648108941422954556540867387242849352584570599112017989766130122409607995849016836255739943338720732906461222545305310535106136404945327306781137929859674861836142741579271993448385057829418426351032659965925472362413438659213701114923558992999303039995398152299271140024625697089038181755019561956166389824730285269524327720335693643239597105058986297460355344821150034149235731858198794322798530824106494454804601201285381865233784884149882720152142637687915855940856745602094579911628292338054738827029504773406831738808934721933290842936739524127090180455935929469670861284111133171232589218856140622631970591826398014399654128632237038147300348966521162158188457674170025603806399337903535296033499075592445293519916514930581055406791099855737743260818854557036886194441335828801578317996428525433730157062536148951184359401328501940346604937285129284016952897744562279933716301636325564941310713074523948410539495879134702168528520890784274656767343942911879907116563429790342687463471133671989777307204650149431732619977443604475273785121081549116334441556602277875984707357920278977167753888844301562232323594031179305123871226283173790481412677313404607198941109668607168913227882682985799290319724764934212780198370550073884025049021687094947363257789304860518430969456068066021208207983103641447598507406414689700318170443144575622905318958600108285699083900730433627001085021474289306527929852694677332222980277099278629553003076120906934767710940899968251128749378272471116698960624167867285035190151271929783555893602212072829241231163913830422139444794199607225698277933560282896496194615297148071498017050987307619180083747808851563684635052748356274755261678249397019646728824516241510242209271226030825822310552365920300514139547786324763838022451211050721475624529076016539842439893329782918458838014484446431879277101726234959118464839412313216604179604293079557737947947086617057731409451103213912648926828507794038458342823194729719313605718740121635998607888182298735623049026976584610712925049215558818329154814340880670608474805741387025120862139793988951709996211185747663454230001978630822558740025426623330515330233563381032772640715015460944195430496386228171784127088216618594327970697926504322611758797406439765948155096512221279381637773185445189206115178947146154151403836088563206766247888182054524273208793624877538015853699329759301846040128327030741483888737866900868894861183875838431011196730542598565574775826908439934268122949605366017370551140559182205642095390353935638974978982006148384136001284627277912945279089761480388058515142958980520056047757118526327597160837337324083158150116291876139545349363238975662138776420495295562632677225552996579034673623371945824143196127100036145466748338424465312457160720969687958424509677625308318616588516944245772982434712425241755989749760748001812976949155488517070187715565467048042624197542406111289529174360876067467196123653738279952619970488653302186827199022810698170915812719547778852175803000921864025634637891776422718708887558983991207919024877049681188510277131978989883583464426460856221595304814908653983673417462789707747853812395110691216832179204164857246480080575301508671780099830461555966927628094228826360648257962673210831827417115801735869124751248460221475496972171151535651267046797598578663869670574904900806140238580809860006437661961438935450694882770340721156576527928125345398768701622591506899177163281729139708002491627392039680214268254089687301462632026960630802562731203523642841625378679429987606793631640805099407702171414894994197717432115715286226051821413580642531113461141117814338685071542039158190890682899123395762224117053547428352750564843412498382979166604389152833198990873246067134469223894788791484224838365340742019529983902382404532060428679472425831767510217870934251046699830043587906087867005694122120548990533550922503440382850418724021495516364436114578867272847731344307771666830948908412507924947158276465825373547095729064326647345022042275400728642334328371371449977119881303706183603300200365414291752497509299401959166658833082950873168893376258544812729587984447826789084893981803996722039683956671624342287659856312439559981999601432229419193746943797750980739367561896644999381276814399592496144407493589425986946929200177784232564902353601137706807556719597903483019474376088815925295938511202271633431995997258132437727486129211433457981321735268840804575070392053504864501925597485585971604783306568991527808799699414505484628306351515820163626336494799933555650170414229578691601124017165286400361761447539055824556068941998646536872090316889945879384647260646936142599668418967814764616786658690014759132823889712207559620848534049435176782068575747270319056031092171905856275724559996528392382677030376564651835530237524140445664963969806222851934064398150273252435059152625528580482178199156896352791617815784823209060321064353510575655360633445923067912109365873596172634767040736755496136536487375274874363757541355103775790124526390686480546393770714470845611006350067830054145965156414613780594998628687900221280442816759889299028380472283775011628961052573134237240995758239158816758475702557911273657180988851267042814735408473661302273720459038137810863464150880440068101662456123761669170106833130832141686482339019776253730970287289124331519413878928940292889032343994412919515742673286233640000936869873380555957620154104987846070502228578888528089903180648913082455901847366614227665917374439295880458948562032745595691869628408940442662957033242119644296668734767081507418503268402535843178983446347625243485806021674696064625880680517189789967624777951994777184434368222152546959623675257583456258146420809305887262387788434887795620635835922836394874922901648801946777037483170762043474240251822316612229415111020217668727828854816956629967734896793721652899026177319618943622402496007131039245784638588541441948810888929297707813767584702173103573320530525946202776031839900060849233682836597308055751846010906629428164044932956765216112294415160022813322954973369866519408209234720470646560700299536982766765128841160477184129645815053080919138866194381179725072047761569587407199847283703666276969686071103558032730930659020296184625672457551430771863547041320288725067876299345037632981688781254683492732612007703984948959463230335727225340434561837001631675500356433119661179360619905594849574664326966719184226025420580352632779809604313333309290943352624759293152664686352597792178204082320694248514337265221593865890339856961335620120093839414623907076782243881173016976606667619348707426372941900330751133521797180003381308420029919997555555152776188699328566460730879086865357128955922553590180536945280153167235980842818294449476284151536929938380951565717564710334757459166304440978433104222012410951594880969123780079822729215134790913539922516190355713149372570503378331494771638943990633112760390740157218968819208222196065180653487248737296490619171171703938624508065388349758716037876425778917161273889167022973931674550613187975617591130938808321339393004591614574647697322149148095054113819523141983549281143100919072457319744641136337025911814705451101662567237842275873901154517158126964504121022409228043051589180934030138487802968952726723260371984022435131596936629096256185714886488962818625933577480299998075117693932267767082586400430949329542004143148900995128783533499941779373306834612367022333108489611859217051489621060714485778625832719500997484351021816963465570723167496363709136598453419587848357644935213251579448669010227187831499809014366062003086757879268051729046950400794169701619497097544890839367373734657847630294166428438610656558101664339067876434196372599626943382330157467183127419081345177802733951312411884443326965788300535439123692584762380481421590225888840443714859160632200906137712726143341103143381445896032726341137895415755304303451246145199028307452941282053784188534706697007394059475899370420040283602875827196963976081548551512743942770012632569061646021642312830554826833127202009168525889688269999281311136585862573592342107818524953263557732523619966614408209783608132729789412713647297478281007634050740869848834557553494875263453655539067037532341765906713273974569895612318248207065319792369856995253901098226713599788833305663859847090923343608775189757797636952837043275199137717960563238011364563194757899193319113984509833280865009601221995106903929816781314292001743127372661619801017767489393195951214130102774703327178962425378887950638339441561615834454942652534267193457239596157493721989138337778082191257243151877058395324726363104027180442234605610151672340432365994322063896915208247126565943180212294283591051233698432745221509329609288835048139269674470294824680430203345445890795814748722230370311251871138836740987702700508484834480678573427685374806305848748659929571169025368654935339349289854808660972362123831300006096029112482139553095835245592341333046007171243333199115948044849658959915036047695164994586646870088347733909517039213964663975308647813652840423355034178828300350347906617455370359234039047689149855373740065033977613013197565226329668795981280471759071100840720401882040359704470738175938124286432831384052922637009513096101036773561849842015076908863376443628088918345667471473116635782622942211898954840632498960132549289650366876336793734529961790537163120664325771312771891043076656885587448099163992275578363597627427239279774084645458104762036539424845738923024977422588063211327678314368073431125218523509971624111708743387641881472301816885696255837326256620497245459888950595705631700135387148031979481790375931539079821560835656424732932340145886370748253161425896696745014629889081232046835638063480455040881805909938390969100726951693160971604372185771601368559022571747777454018437548222480319961875759195279786468947795018641894285240362329802263573566771618044638272354197250578093598692597552999853222895717008996112847369797399663183266572286002527345734628154566413964818639480812535963070683813075821905281940325024491061895324520399503295006431116506173386134914880325838222843573568878533795368818875351117642165457430146368810216291968915860526467543241834946524125952920342564012964563252128622441581120996751674442841649948991002504301866993911387992000966980070928033400731289576123275334524629097869224870969457497777250504109290038946748946455220057745824506015747743857222298093986541424704868208943557540716658290701092645138529652401392040926375460848691515841130059824626076073304680048449913947421286941743197681536157401617876857841435954094793773383763584726024251697978371017160852325296872809363171659995570968200479700015690516599274427643793033585574794395702406800700548184847547651548111650030679616871091149414034526507021712186284296816291652748294027765011800719538830377207683149464640285764773051325423558680157538828510676107331767570081529766749379775399523996216088556880940168607469848391024994481641891853902896002008175008913808084105244228299980445769470736086318185040449568164630441854402787141543118109343671669494538404969393888201545902150171480274303570369407789927223420877645898425959196845284882544637879029597900121249827234035773313489186760239247471866646729478409732606620635200587048547095248218930133065226208598167254201631126103378506178566629842630978777970149034123769784629839904913461137101714531877068960311829650359020330144021035484383328718115297472151473833581195869949492848843517777209142972412818022091825823788653177169235831261845271643105818337061107512712198295335537094765150156019653615991779423636395766099026751840860261069052707740443535837739202664089231308796686591430482608923974789650320254174813626513422432455666078958650198845944613148536672591805258396619375731799152153993809586760338272675854617467651001632743880338552933884592084964466955351883682671764468872124339687786887073543202223381722747446754563844920154965454778204470122914465916989005172124206418468243840957532565811152061493220966300663138763564834966213829297520118542481161620294088703964585425976237602838065986186116122559426230949911237986135748385251584917575827495685126427578156494782519109700477830957561454905885779246202492852306888518212223161584464824254503901719541449274351519776169524576881397390323958812615743019956098962306075004112224066886700655542714780285568647040765701933976019938768801408882079359387034422969639446027527992343825430076631524721043335042143993855148688588117480941657205290354141811118113600147391479983526388496629937239931994502794208646549030029446904047578745816756528539825589290360525052677961938539994594669934844978274642691025552043912986880860260251880062508201540932398211030746664288585584418175452451652666235637066844995796289297149134446286024657247155125350781623151593866224769490090389608836494568765330670157034701139817083494467388047329335222842264868389227584258634304080536792272977553546303726062136648045625330535499665761957353085236434980805026078952605037311524625168222426092582743188945381433017613530442121261372685282546900111588865268109437554879824158273863805318075079090194193554083167548202628374285218741706433438120489038773234488059315040152188150961048715564204424405801844170362186255903268574731178440113448471811247749431274140756765581607965527090700216922849525061467007996455797360067006853641160686207668802256362581452846586651552281533028117242402049275895584602358086346705090432345656423297843435108661963896633043548284647296628326647130336849810370084195120506915865661499501254774786402769776182331320986341884248891644547747820073603461143332021202638707748340320356556890255562188802338814791345551709759435328268827099598062074089909065304890374770401536178812963251864588991191625291235330098816773535298625242150860661270841807066067578587885874660076815097563005056221951152813229492457697298854270156269024841551731557847416455220891606239123031481314555646977434679025716872085358940947210785106930033077816304826851892216979660180951098601718861615126860835484595847712292258769052436071784182221695132357957093749689568715339174868096348302534658949435963672402031657551183727384536544647165997834770959630906786981980157141563639267657928089152387808704986214944135385136665795855440398294585309236232814881182415102557358349471436387824736209260323205439717851628007498941546318530072778459972674317116154973258977598735628735863556498939419660460222146086895974103047391547340370910230916947786172598034625299264707156560679142879602403720678189705678741950283862224691379942766325103351097363851934495759828839820382232234351288844503146289366055461354792114919292218784696396452848207553349883400484928743166372604389747079541483774140614518421815477597962109945031215003371793500958185654429560237652599276295335319124144871494961146378749685230263299970815542311594622026408822645125177377212207847717487271882220537212026857995716091939579022860626431463322099022713022932619787386011779491659052525320598052505627977462336416857096737165869455394574858436003215764741298951024784284563891213407419561008661501025330097036258697690832845044447934811402427055427539325380582761656273132507107418950508724328952368756506534947163401887653454833655253553543822468954496952542471264605483188382130350072664471783488874882745620721376822671933480283205651755624296343406259521466379962394179135654510079308335244088201557288154245019908088123443924076745013487316202472688859126714286158409859109962358162917054842197955092210291042043151932143925929800374062246047692126772665430875400393826530591025878669658640136047199861022886858289067884422271169428252148667585585043794528831656514536047934784714103209231136136199655757357233765438332484304064997713512117438343546648254139359845012131228645992428164808259642311676890196000711333704610462224450161517672122689929307591107435631483752773679850847234491750649686209115709684514518268347922125668119053901748199003295614870364534395445927078786685910503981239884231898465687235485823030386691593411420046961378518055283569223769479626431516430248337399890666635093615080705843660354964723873141357988377271703454867341929775823917393911274094482070764378646572308448865930701349192740094180409376954611628795753059509029522322258470209392617319119953225793315118106423227776255454310621240924704305597599938711154064941840201492193364682422720517867406364642869129655673183672247464732635836872814315991553156032327055019176350568703712583852668923552240538032975240662921660737560107975452462443559899636958903713617787457969549763416483164485557029348868628035058549171577621409801159425823133573525633591452974344609297111359175581552336246087019078569987324403496380807005664034000462067957038432770575211776827272399787921300371105511972343242413558457671175324909455087862278748975708252149522179166957634034461805354159568068280702058594928824550175926332685658576928577870444592459463584268783135801631512466419586612232287445611499675812863220950192077570230026767401150272319918990251414483417383896248582971093688114924254345372695988837158073125394740408118791822327094487893677736215464704904513422501040669475102222490125065617585043528070544833483844239042727433836871825374938229799200630415073521574128815763961203170809351929676091147087602536283978328156334475702848893969772195974258899728144251737593812267741217198477578910646829732802992957374997267200349746401594684820677135442014668352036612641713793061628219643672031518688557690609984487746713084154844267160705861295769873393663340329489388262983608187418551859076176394085796065253923163791246387662187576959512866223636741650537222248656762451421482831627045898758703962931386714760892412170142810230059467157276162632548069157258271225582648693820484328073974628329688860139217286388695059522630066921151090185743940452529190129743298353840495957144530017867552803009580435943096583326941232124162794043808139330699024470701071907224622987027836844344628562693751111810503282500445145025490476850498728201336684956929695079484310108744320615332275520705881556633850122249262366271977158437525330772992498392311021076180297709561403001948385214756669744978197335381228645168815575287261024565377471973593458729701283664583923294531121289290072927204317715964810020743293487811138174593467121587995162123242831161112025334145115025424261805326507726196368154542562399868484996206008160795224345710969476422299124125817994863680808090823469159332140754959185047186979098082768150402834419868924874757520724745085981733469979590885739421226249488250981568129506462749774919022370607300286841607908154336489110915919171764602774146068611805775430684444293123794085733906696253973831731897423414924449536542784311061960766690373345646090850570275604751286606760836402492123683423747621042944908892257243562797328317173828114985359586605696361950005489666917550828785490007553246147836102909350015726525153490319991391350522408796398638010894588783889065306628678661354646720428928682948386445943275105126687638816590671887707390894686423180999486089456843139705236615936805919884542132598366101593507912238976792484820379260761781110211895271009460778290413242595718534582827963400015443764331330850346262850776218854989174776451993957075322808637157905460420774544674978295682687130198550477075567932323857871868100162845450314998080590486006114646061188868858806553739011558092604693848899953442540839670279108167398186518719566883931037066525712828160664631052636706801108889747984121421645121763458765309753957325871949997832583938393328345524541352095257969961999200111196189988042211298067371073599084263123474097337561058469002374968161361028024823952340626868987548825563997923171177495788847967908016944946482906485322033942800445766807863821836576488648348630169530843389261660590485061893923995559786045102208703818941757055235534791492989356008397300577126385282676331349064109745256458309917791572991904231953361130725284161883943749130130767518557745627632374725323794691257967862108542140717684153995204698782309756626674779372718114564290880926647077180859176234352992774332783089396846248866365645330896787937394318012942491555114866173363785002144960757523728130742871546618076352398041956687047149594775617804692013874970995427862976892167315799823333083967756740783604622482031544258452936428408972021246077051514389716338430618452059841949538785274870648600660731892650826960294976928082077865484984518616181369475371930512866016520174940843624013657829066474936474029751016600660984953301019336993717025007623137123552531662924550393040136886692016819275975882746255952145273420502766201332799885197469510543734954229514136878235082449391250684452126744398199601632440232391718199176079650770875526612391941282022102449868872716615910327070536026427973310406994661042536202238771146753866982218750394739960895033957352068717352554177977290640718651782223886417359968266294365085677162538031091416235256683538096646849694683583772326114170968426411657294016054004368846639210325992318455341147966254299776275062775528939720828144299225296112118301613463632087020987541083471674882379393595895022551272978518728701766111813195865108367817064875371371743661108198699475371980625058058542875046881714237804235088786806575102669296655401598415490030701466559716673199349053212053560436634730364529473650487752359565174256481598912684448183730495645758037718204915244809046506122383931967915988264491623868130689312573929658667295015033427863375014707404559320818568188087620310561780689245891712957687798323093999175087400254252868776849933211555386776519284617987958875612385380385245445441544834623964657619610899914016831735292731170994997647015839513029791733926608335638504039414092539879490775417294935814274293505095623332965944190460329666186970253560250425995696604309417361652518503118164237261958626701528813325952395080418479425840992047623034804090310705998001140470361626242511987068857542926432550375578963381750322792398668226192581079223120215684292131981902078548710717155103935933691988075216497362013749620179029600804036584213764316225691303143676912795094444457808603490822328338736860310680430175707879523001934246305499673305437000932775787612144112432647837200150124761707518255307683009823850418353500247697541964546480280645757850788692305493238408103599168431425889118479510027133552160409330639245942962048337400127620136606114538462838055182873052180872716997857056082248651281682772178360693111619975040173042698328727047276997433205540005350727915432856387179662150501417600196289084256919692125349663788295488763300652914445912159791485745402720681012119335795431401981744635778025288405358951769962222684101594433355070228370332503182631639355361821501113374920570570729873901982155712495379539024159095665474378533776974460191770507007154786627490920012965008612393857423001205246945139325905937440915461999083282306549588056095849449991551341201309579538321650932071440537237281918199000170868578064720453079916689022995851769539337405066199969998867791419143677263264651580182790451758405522264707410409275650353306871971981425322976351531426605227695276106020725894735800188154698170344616386020607000788143212916476092031025345248215797085944571025784415585042899481151854828003883199801020915920519536436218514901564034759380020493549343988971695841395783919403022081995985528572975775642283687869675880601324107949256520060203938832683768858612354244965880191082126798355063312791613997463255235206137114330802144943166925229220773143190266964058351005115881034802323741152790721642297267757799166203405288307166560543191608778843339864890362690768053159226780563375968424519136071508129201574670656652211890485799543941920865942073578989820713204670720547337129425803808290648713345280458867848902224074710637012664496582641758424233399069388434920750623499683906762138797211199731019064034405457403517493419248125719740441840895439291311676357909191372535143789677707547468912261331519545215334925336682499492089785588956948353404537606048584629610765628956971767325766615512139042363338267348575656033956847837724397345408141089721748412627407336710053651360515748471622445866966679103512083265920286242354706224887320004529120757411057081029743701264053933004567185068265957290359735852561369214798518331773936990783608815774944425801746619598474459711416500228344038425549959732318311735818325121189502366289403584830002157862217683039604359128556020214753534296419786607700800067582443076511759897870202119894693689435275543856613604721381650923440559023265211555445547823756642347426771956401973926731707013103616746911395550814385912102200094755636298170106840563576522404080214821941553904368253969108766515183850174010909877866645509745394631166755251055370389151421047659131829996269848547406882561182446250229790812318371804346761884271155539632197552014377511469737054038394241979442092878781132125871318139761942026945148485985049700521999783295544657514277326813715009654843421587674071222008588848235796931957816792549218059021049394188284657505483089977223182207098634656448811326823613359695631751471810263538688150998846012078654457031863947877367165813956819954523842494009931482098742834800208242739926033575067153038676880319889439954826528106208824013242865481868450013904288732178286652944854903749934321768668539604091137236097037752846196566980205738911892978563937857384606963502701053425322115589207896918209883554141188042658087659936872252452206501583402652588752537124316403235418282395650467562551803546036788893612424547062680510899719620781032357126659186751735167823381764602953106636139646400476584576569820699114154448565674253217356529228827121739533293904598826724384314274502946026430186182242278739865448319310508653677540750544568961705686148843272928402657646316376320434189805926487394145755605650110514062215628931961469456124770003445634882786795198200388929603673159627358779133082384363342677733176866105510130711024044123492265430824276758049150646646955393526672079771700467112435780324762270703693380476619148543774084585985083513599956255267706330449045152544871584596385691093579091149107407814529782532123060350387391966306510455316526890556821441105525244192695064027677858954245078208094177218854043412943946038152439610442364229368120569680038300353691422517327143671761832541715974087602033610765168307731142759652187440649227555581009203124826361544829743632670462143867759738918846122683944879731635236358934418266088436296059918454628219410443381902796616993295828996922804485023569792166809110194625539633564227779946026035434030582932555664103461797903776828568095526832109242013311971813837745831406198727729610121104624303928596031164070360407883799428459520694411527749031818984904687126978536252587718125296040628069883108603970693148181058168160404820632142403989623579757451538038339946305926134790086063875754724575160100922148148932962679806115334224178033846469073307090937288212995418701823512826453154744377431583999419728418499543666087163882828730961372966282363537521862952764002634085221345391036232736434203868836217884857871536454854509363592064580470353269722158397016241075029980351074879420672467186948872553393714994840479227157037754630315963446501352682047685884424825606379020336134942567645588453799370786176243386071888622956226121922437455396543459570690273707590719650156340041381321688693549814960581790439892430749008539215427343533528593163541018128232299537994041796703146669519481345425239320556577766983905765163030700295148960726750037397246969757494025799316443904406353105322248196475563115756071105808112612231151139700683591344618403526760144546018839714137523451065228464414363105610776226874711451663992856949415032099164948357740224012991195842865460799581003079546323967840775761271110436854392142413858562589313107722844107653031065588427814183466295161965656767323483339673182468229309561555573743384840928008086458277589815195806806829564085496700767722302395423540354271116685745363824115689964722214449017836594290324605311945132453270385577001800103071449177871925944146772047360495396858981580426945238219701555678294608256105028207272599265684251844526196676099048624695877023350399374175514676399533651772029434581879324054319913209893882047497132512599912235563039975477977518689051133433672700431062051556666711645959467468583725036257778618651963504127702479427963996744398541652677212833815877717831435006293286749029218702787594496387963487276187438116308497625143958680234191961123753140887797767745535553143877837591950677445213437454555264678446047431273610831269700486239842576390400785755781618300905152525906368523820732955506526925168036494116227203749066101538457672203796718938795988338814841899131105417081852432493882393380169159639400655652854914230329209043091909248721064097224837017780324348011412428188945795305431562309261160552745552510097597739722741412494887123619392636319082736997238401177262285208501264426395757063203967202356844392055441831272009584984805656437466800127691116282158983693784201962033927510613904359706834402336208318411630113215755240235132267363484469679551564571519964793855728718436865029502634822864046467294715371643187074120717521075370311178716564045511667503476633715328923199497676786118033578229793245281416615168885601771939835960917823875607296556021077595173448853369411243576917565587676906828294226187712494282767498739600618073294251566665057538134196843373779750893599148754153686172573958523387121855852820952834998737988100998157211730027914957280091721211625364832115311565680296665712222134863136638975175000160384287752941724599801080268463772219808805262061540506272075377158214831497958473419677099817878932178120059180662609740881558501807945990685235019975224706063629790427358651780081410489399720645524582775158750531290560579812369518540373191868316968311490483647512288717520760511868914943051628574821340768559905810256866423323427000255490877070827104296621250077008205623781430960526786152717655164903402714232124486276726412613580906044953636433118314331569185516195601116891868456619428281333927516755581670059591987202223875411334941542897866777184159009705562950516286731127423405983127813183957940301945139359133615092926661313205634397104929617478263338319842120280812916659102988190440648989067152936659769161487901947211316935321591622307224784387783002591996867349077983107819061170423087239856376115065832481319662445438658738731291183145416300650385638225473392585053915996992979517501731664033869055716521472860493025728929549700783103303327502913565264790625944802038734225327620971254634392599517710232454892975381735371393562272039469086095200756295658518503421664027493993519803428012181003024172878185666825811885264833601196943497781657725678663370195614827029817185679179634117378622766020950187373468148596756740854369213951986470397944161970566939358078089177953761506677606324202446241230029643169999623910803275284449203613081095604731478282112464691197342259504806361312101529462364044817590473284249063725964527482889142968134554780049214590450721745345986150721946278324835555312224861581789971787379140929902869588338169781294354112490392636667637811254095962614107068399734750336436523448969100988072342226261473625813312003462646422262114624208328083431683895528833150836790189548026384121074052602787887321853702235877896105883207503688942828556308232813885059771898632674917716552571988554987850307665560938800337778693415472994321210913064967885094347441914955211525423880516987196528029227376201382569997141573528008294817333456617816540424907098709393744989298980785387298536934628930584196908930839157578111916705953541412953494094229544888495602120695085159837543130268755047803269042969834071308424763541625012239037150196702881959561454503707188309855660437574116437097543920936287606356334245449939283085310774149344705836777258817603463778755672104581242543521970948071154880734544173702710263530307576751730876486258411024548072884310104762574971490881210817530053704772016904919934152031397850676401956449979926606628023172921786550863017375966153985510482187808164285352959598442748718643673743784217624289541363237458901595018890589192119819174252329001359016634891551853668180597184231968928850189244956724668872997703312517054068337293853637713848773789598882894030237960955207288311877683880611094508242148462879934331957239163062765805364433188108721895224365230810147127485765130458862842027753061210423413445227892824075965338516814809772273180385086368787834572362631130120422224933496501706572625511249321615209581972547436641865429155530159311909943483451700429960147727527397668080399944547904391945233454938042322171452973813521443885264495956316114571294271359333129085108625689321546923207853402435633017991106235918511064968621672403592355729109797531178344913692700716158091289512025943107746713546372571689784976270025770253083169755732028403092476372645236707612074275322501729963977898474905223036887743596390767111916505549551797334060677309831247796763767277424440400601275288533110388350823760464636730263406642434096812505328470668668116986766841393140186010748711557132177398632261100516485682587280568445605974262760507613285426018485481656073552752054835019756648162836653850511170465824705386601519678184322861090850720564770193370647049401474094781726469059862851639111031007102085272187850290298322911713390661267240929101247632540873866869533819656304492418523595334931037017511316605672684285764232859372520679435062353198367061912583148098137995460694438078214895788622031259279137929121077749932846576674506885223469306406080601045785327454180273005765195635308877745736819988176802697864392699697545719476296874718356909537126927491541633680160329877021093034711563537178212031971855440738127639509911025556904252482362872569028481636280128863663266314135087415042251487694653442070337104406482186063257470554483848741187239655058678731512250671431396893755735182553904742592278994887746382369136161714920100182203412329052658317936560967653297130285171702576926841320792688832419295289540456758872125740299635710224733733093872361979498006347452675295430417341831049259331967242497030826056303673167143192083089104902627720209821637495919547983164890208047665696316937958726012234403165637329302504668761802805107568044921857105283547906994102513492643048716280557962207016833601015938448779143286354278171451930976110354633369023786711566236003362304444981910784803006234941983505012977000829240962913463703675170773934224742979784086234884546520640875339651373373863280364250861037740466630642981864281955417527599405648074787753009345070459161974947517289731757248416083168489452603817997594831266092011631399752943410416076406047052096502226390859829269529468688744295383555313385123926974670928163347431264357720144632949183850840004007265257744824134599706611081124254878558602232386754952174227326142830847958451503144277404796944372027919999858906140401745436751659154325293208115457950132169368542752615059634096020487565830679187135754892112741229060566629211813159113158721963279949531853062580957794709268145586576438147446444238685797905944675005486009654123550823257601770855517493619088982622121389969946998018541484665558812275890723720631988705862448813023100989942687122649715046949263317723187402308938788440992588865718055734217756816320996639527883096372529390360081879673106656218977768725507566544748217617419459262951228809441776019602227723945121562442869783020954415051303073720070781886426939675185619312778091206020887218885620308011001501315276680979500098034636445205778161380917517407573414188074180170572763849897445083441615432944051759325060642443071941692312285028814838564059116535153319006937135439190682091729252173001905739967188596479702484662394327982181392947229143371982756459373114754308684195552917218426005761701066312222467976514167991102519679461836926343565405322204075262977503087110918793993506619514406704773835140572205258140200054248514134058017704110036793312409847195507109982950975918037627105841681670897785009637029040778981032848341847380292030021911524895022173423679317281931745680795632861066996619032616444176457913538985825348186171445516994479827456991842674324268615911732368491966218197636897641481349856786281804606806101834525968095156364157138385368075861695126176245549323963429282959498741569494530268986993709054323369808957728653441176881131934188100849230544479061282325631052393781167051494085771273649489648635709724350827689037070010472491130920977783761669648246347364045926962533219967567152836759747565404619614157690763762370830761884240379303669830775417863604772207757955256728402917988055804013018473780383236376108309913713940385084223398546547123013427064849443770483020274658424623208715796769044118658939076491859398374220110447813594575245280187885299861699150601681892341328923012257316986959543212640229965394722583940076466507697669995560470367674639933606658564255730807720722212295383394344660245082978137690657891037904521904976090731684564050759013156189291720005983100881362725190653826585476392746944506018031092467099980129872713154925372128466913701035553865603992254009592305694513152531421470364343006754525073128169528898072288546132335065913986044449756976510906922827579774479443984458541906525193670726427427485704887727456171405537480448056224773403173865222515356495336446290359535070060425437796797274328262731666274404699676219844084217111663583654830372034334953538125268161322973871711928388060484467583933088577047913282646738277858436816864693031882711888073858946150058760905335512599061642676531879419414697706431052757373849635475750812294455940882133811895705978277031091411142633864871238935134938097683943777365479485140465192044636003657898923983923422812040597109723283517918371967906804760416474213782817183531035074826340344956611209569595285297183861919568910944908611175437096850073520102438565895460800499968112452744562338731781317423396189833738643810187522224674853944790319165258635722064007100353265287000255442018360725035243620125094731977220539994810860512285278201928731616093613730122704440564170939511467787718704517697801989153003343921219998660614328604528006811646569560169703520768496229963618548940311856616968343552673602708983709422280986623956545151922282966770600246323755614211014166082697085253951607472636828109946877183457340135407543839169940569440861649024521007820003980980456927552439012765607975325548424210464476997312541984179708821462608777134051067168103389880769547112989844749857693839673846954458307109573587724961976978657329000740936249082362213912856717130681731011217385140879102672940950763822596547628872062136790715378548580560440549103322438832625820226726481422392309005659940900768967795635604811111651494191235352631177569879216448323713217621259040646071259938777389053528173865898172151083547939847208085791168521675153830167833699770580294425987980890364947132328272549934535902814653397180714788991651545085252553593844573206092867957259534372012383397840323384599101056223929311637315331683625332650466616665561053739023807258613828614539634793402011269005141918984966182588696761310357267813860415047613469433849201207294472355700390452835497938169784836889666856749446369721247969996912996380038541432882552751704474004468198569098738841909291268797320340606821581721053092188522844847301970849179917592860077010657820708629702284362984021073405019272974830215359775506198708333912097229423718806580677208618876996165728852365596414680521997128866076989144102431913257154279814421771732729177087786369938393367252007312478867706195793290114450614372229931882236701613484151518716492528594971131157947328991779044297972839056374953633918405541519946661479313114469723245726505912710796358350211062301164703630101684360988408712948304560082259556740347632946371654598513230782976060145480799797294880910347644587189295045992186020255130126507519069456412838277770048674839140787271600724145101188674860038509854266902355015983475236586343696924744825102329633858568070791881758731833245972883256359400189741220738109806447993941751208767852727933620677793059347492605527422127044964982695040318041559084248803019286345549975996215004881267884894379569828648111609586532367008108697218804480765389132752939582247202765168954813751042816855812295786344025915087224794141905292315530115347610219796296309543220396282581554860703292213581139000573232295960895521154054878084793262985115368684082981419453029758724428089412033422671064687130693874838264101045766706717990888498090731856606671670542686364399541459533299541459923588599617574935275206970970775615495538364090669371805012324128168590157143119456896648887017791953181062173903883725951638460676827998173819630597201666438950766867293231784418868635302484018806063181342209028644717506422175381420652424417835705478688656428798467149518102800166681306487744287370266287948865326311893332321680030343672866254642857325467736103610571749419731906609762222580475502402734906453067971696706822018221245626516190513130554828982026090345619915955810570697779762582729878382808699453074604218025973870380881686900258316549446605121254528843838272002810989877288416811052692604929913793554258977052376602556049453039797458528867863169992448251027912941868499082699878240610173675534034457888721572585994448025207794700833056953364779183362599064912383380630335081277015705721027683059063549903167333740688185840768955663908330256572074651590443819829924848364232301013573808201172410854646665860469933395542097707964646182811674767672148826119605364595601949243508357334713226438633887683239977010772227711369470060777217612639072946618009896595834189692955133746182698271098771449526468286340928050720167247663805525626899738343639928155403545218683253437245509595921965855683466103892441381353812302296124461167385762601490146962255415773411049612896319546623786881258325267202853653532473770105793801906391071899485627557654663158286632180356862320157028414654086190037481679068752199168436383559518325956613453535007889545673710611978523746597318786367395777186936497610185574854685666960851482701278855717697617864995069543585605106588361333733315098077098475505059741452165165749873452814792988184382415607618108437008123282058009849128489390570837222398379444475003799406791010965749885240586048365044602179283362482109389694484658522888208081782012253002444426544977997587613679059017795692947432100499878567022886637656759474618448575886986972383448889418379334558981353364985122356093182939535435853079166817827931771385923806518136830212334849226576212920214850492106373888924131496018325284336071942683440539815208025150222965459898300156500153459430124097290417410053760565690490178060604809134033109478625622106892638877819155613739334906248068992580949342516878859188624383706867353844216281370487628814232486361460184859620424199765177225367261160803873714984200274082422357612379610597819938994569569226217318349176643742923435144616382224756825634930250485270204471525177080617755880755779028667285988850531095275429545269866960963845889909275657941443215955748938241165780693351254547872808799032781015587112703432856738569637421738031839712800114124272075902316199755151264119702066358498476878563947526634679643850230983103423173841936288752148845878833359046837913398990473776885567326271004331557393501781591615772346366520609694630269698120726953359333865747115797629446208657380776557356185361594935649355327090921614253850251929401718368807173585616456911689283941564179464330080667946954828597135011681870342208249147217689331826377656661359473520505414362773153812527624617627376651244131870443178166934456815377025467009349739265079616937695165081829360573039506246204676265843661649007831528267588499208924778419646410101381131943615032040067019035682834977335463785812953728902207460869359142253970421661374242141599661415765541136715747313910452730279864115320498898903996158513557238873109691912167208844470625502431398557504307820356149486503790854125113191269172339130697919883151798439925533197767123014826077968912666435169242888672821964861476736566260229955079482576610006381487450075436937025939760040296419493902522744237805784992652510384829456213869554396182662242980885827403844328321158667284288131202183317032839290334583386452588792308685665000150169892162182650795404020129610863986967171381058272947237239758508240905987462005440265100558367139650503210137789242649057195766508730177488033703468575966874497196424946813664123239568825669187094576295443752583129464859787084846318455821239114380051089377002665615518499613342899423185882962279939230243452431190555510624664705309412933331985105167777957476673383138379358233956457731767578452775610459789478893812621783264286882836071481164167511722345907471681267698976159180587624200752829085768888630100857681628055279259821252939706039359132972677244409406448180009850636578790053563259812829022713004450325578772187911312635117353798155933367728528664701684338472139790503124415387354081174080503853120195280712705704944236268699513256067304145751735425866776277670269645593141329305384646538453510772234191898909554176338259903625259664110789838640958079780423839140463477542039684453004328839029597951311024846708983381339577086237778464388992402009236473850247014998863140093272079437868469244239699720290600013154899508141368500736228003450925366930025004061762686650224049237643977901029425133821730241811986108014881319328882122794552099120518378751167847133643494533689680389826467952250396211724514773300699002159973368111530412289529288673980576498680149629150854292615618266544005746006075596404854318762107797949018447953448403305219580175298062814872479398372865345380458124067451461697982749367755134373376854073160423773788968608135612175869454687122707508546347055382342637904875794937971934764147496558889230253683951644622969759109012295367249228891036986685548517518711507094319784586904805572247623562812367393507349816382387481062363144569519244830609832941161220066053603926039244916303647102778307926279347766451458396207140204281915735979721893163068854185660410809134176087965052189249962903066701253617804614418546099407785474849081584219502276154493304028458755737662469352503814930835093798483182667158738789573180429824758171457144453202099957954699144026531259850669794165982109758847729386963401504676506949359710432867550781124268992841601860320266023395592712211528026722360327213355246974755676928918305212499450016526432403053200479466722906652749712182372295579494212432701609626283786011167972311928466223561187804763868144596090010792715606095362479223166935007888485418257423344327448355831611864088114149349270196096161772176873986054393839349824012795932728146887197033217337455320060169368347204883330844793732209392608114734448686020265981729299706829917450755626476951442589528117548924243173667679643546977292346837750752231607083751989798151983486787179456663348251570602312179589103882984122674687573604165814229608964883068459698249813096206553015366702476205961057997764864321651278684997820192134581657033907142719285019450777720312138038087332051567290459426305033700922035281613319419309342805607938874463210936514253715186903998675911469401625642178701363764334128221419391173236655308105562103411366711045324116582813669230053424539716422859235739620630358062801097500634767549168261328680259513976549211860920834982337989959213885623189015560076368464003513277146279072331156549946001598632257306865596448172865505202241267499147906863732848095723292725331092168784468235823452472690104113957096953849885141799653651849317102637666421644507195917913762974126266499414410454870313141743715691679333828492987676350361090102624265386613674241860965843300529488155069245387618261222470464437078933380429798406550222102095029168757337800358609705717597010146704630890507802758086031283360129175379075484558386969032951689119165037082031251938223887250529110584152260843227327114807061714019781098862835003877851409011084386803115310351295183391981950694327280206424997560874067601512149167390873242372658167589693516901842685692508437232943005827260522394939378394352598723282158837582892920369311819907375991383226413158914503847839355018828252297264095135262967839952506849261481993052032998591994326004295129235607701207246939841363954351412041375272151735422626156827104537041598726649885615514486158913254891381966484143943965482747024578277106619205000994951997089601771531858815902990813261001727550244526256382045262912043354219725322189324858812250768069953700735488028471205346944942103401495150638966361456128451734176858407827245924770629962537869763331613366144368805800718424649918813582285877200592764356668597152164991275556003564786933681643923703478743459937119534950117314773786079592967367890955098304902638678083685713454220042516424772934019685242037825455489179429307804913195734530548121671180679425268496126379120228403439101821943072039068467217291748887520702921069432761350036400211107069514161815694798383960466097635245394045915203823698376602343207965248288220742942967881817879716205294230942724950038195351085893066546430706661781754954084564928779650564701348930419958518094075418121185138653622645405447514247749368345392901056175569110844420430980585856921128841633581737100700781835623751240916893401170753498555982724417723481710215075519023297388421828309881968843190828102666486254765548163932504029447298734846237784657407937254883652648474433238989320376477415374628188152956932351125229989442727092979903147341985897973515849752744498459422101190085887067667057836197225772084424129073946069370435928438454392132641723027209208502598350142903683107843944618258467800351540398833554745168386109141234239518257484264370801950353073797144543874440674757600037421090840259119763903128617008621393195583507409925689901943363590719824078814651391015200581802569622984042640769265564987925617020003703043730535876531649772874371886980866861547860615969375789185485761972819968054864169000957211636890051000392918665041211172335322601985279613468398784817893200049571496160479284634136586094546549072475241689966717773287822235915236028804410650052955480172887907739640194186954941241270793729270274340855331030256288326299894784691550729927973205271762726084712777232253059573022826506526532187793092762736012527612023283369983705223090633046358639317255902071173525355082967397177848193780955878393181677986834140729888651786884543917256748578833304090644239623733294844461212217323601334997840330003104057194813853339336065364146555462776439366690051150476234517177050111462893208468060492305298059931045743886341687480951906563095938902912236825437352225324784670176627809341351537361127583462818855037834529127907597727414310333540181427951253879096986988746890850113905270231645955504200462318631201513417578526389563503624828028616033479699486958736403860325833738667430872102384391922954130739059848047962280862172000591140351348294238153306046560054870682182797461285811695694310636676532491334743717698004762982406994322087596298485875549285225970140066050593985226197598843155944337269491117742337687875810992468650455685734091965005344746934429413191932017009119110325707250714511844707341733892964335811372056735310403813092337330098415919768282685707198858238302211914507396902897778876399241972490449954732864575076737224658461025433154611733176383213151742875955960647331984270405776981037070257719590246994734975100263833460328236618149292696624223743628464347184635515750159212104486604102599724002476684430946092948570301562201968653092701757707197252368184138561813274474053481733686417273299762047104516774908507671058085017428078021740039331601426881203679764545027505415285106989834493742109850502190428846516428790239639221039883601557044541561219189841598757303876632552731210997853331993062191870938756308839305839182095770464051381644332380638340996913432340071696699444117290245717288277488863562792520502977877863751457856132384833736994294196899230432526743394222734053919108573522264677697072134129386818923988877872107708785806193925261475277245047879461651446075593809197009291794492219693892176962874563703178908152062937322337085146980322944796262586797884511663317053220380152191201679795473057990960692374215369638922158091919399526108356334293278632682382395257950547958242652410997601049780767213280745158590522678892352437417180337829877998194689862305410770184266742988985215247463698593589882423704782710734163522852865155000181917029715076606216365283208467684812843315539491351896910342613846873938964267356208157173299776184699507647537812754627068531425771485749912656371093473632625162596879250492879644963074994928020088828307795749361511512373386415457658043597463218683329603374176138847651331782914321928967647453681121229490685954500655166002613684536074426939523915968479340167424492500352483056464610925136188090962666391170453786044541685973642337121897245054742342143446181231393870486427287537188737164015024062020310151438238680780647117086476615787347975517555355263343094188855871303232097328728775911150925201428082639014213658211019282897887618797174366544095334906288433903818938857746530447183030558302837667047041002871156429515543515418068423588691453865183541525000075316436430947512075705764504295732909205726795378143203224880812011446171050474102347362703401851760276171007000208601049350948824255837429480854585621132146527239053278571017556289619883051475400184781018670072045464539756024161957773689082587211342741155083190189024502971412358911968947262598618340770672114041621817322388915173138647453432069439319155109948013557476722239483107560923543510564513605239357810259302541950367119572517960818269063335871206007775774888460767041287009578633874345614848267469875218061109344717483450326615479273850483114530376273492675238078832795347079618465083277794992703773262928187009129025437267183806844421559981631904156788201122760086850167668808658209497249693840927762250155315800172439030879642005366062398785780813923124256474154293507917717375457739904598495651474233844615981808754734070842195939864975348863189577459882160615337263781455929602435006678544029333372968495961034738598912080420873459373604170818331826580694292881710752676007816781918551185709445977867268522504118819294202633595162271570072386450124123747179539994985277522216601561704918213737588727419705431872042531788257032377959348861910140640973265640581216148582782789159616015744703041214431625783044345294369915079653045130727382971932785967768978926245788714045522222415416512759418532777859463965865699325929420176988993949568562402372624161907917325078471305697364130365719401254418721590332840792038830441868901247277440365463790775034691677773889555236098656623258759118611966371234274467485104079987773374770149474724684754197705668528612259376736691678398314730575689089855444918360424484083989618710416042115465390577158876252975276766533719639060837480677253870096806255662514543410595976971852306375665266532181756773940183166164388771261962029614104856242357754185265582299568315401684712754510205465185531471116310803841672758716334295976276882859115770307637383970496759616640998970060765411763516978634590606046168064683574036384717722222047892142309526362973286748725063304562203308817764827842557838186796877812552832878989285865145596047264242863255083862722275923977531952117760702171927660328731452632021048319994698025783848984911156573274373501888614324742626963004797241415646167887970952148547092235868863021364008179971938328960916551277091183077644322469302338559568116301448182686843570090176199841372996326659707699657677329253981342974096291479949203822418260828178350408636423421551065479423789435051290666531580674100916565633619412837160176030290967932437598871319979653496982889955923900115921179315721825604786786880487325934848905726771076373782716370565950739115243908768924959357754007688431892743497721553902646859827286901257563693447574503646986933082389015742032225721802643808299320724915056230048386709412244486146144133507045853279354966828167226941240226379837449648719991853139831094812394905799791905254862293368043502790176233917273194533081163320668131029999030546984078976572434587050860650623176510164902436165746876977715938171007840550088150700036294121551927471984198683341201386430993935764547890006976595579818067952367949855791613446043098035891277224073068549059771367635050194104702424709524259265082219789853642472844858820980831541031196817697676331920037063869963934877823765676921914400224849122144719903001041605492076486666025878707290660132633105385628657453036144911642483214205445005821859467957133084824830563328992385059961349449094647029768928089729545794658475159216420039010962432505351137399029113811492013340031722740775317987396243238638253083269825547494239875622234323915810089281205445107772683822691168904791397033440895345916645383289946333272263584165878550873704743780426880181289513933684284784742084106713613086008713494924678862857636616219684158645926845638716234935186441572503559519022439301188924701508032039452258387617981581545257858125748115032300979357025585754572509213857527582470392879424077243808692562035595277993182552681566765360351543595871680276702686253647626164804802752838877181995435435001072841959516665710469073226031335571705600844868750669265151762388234689094742637973144498710521732703435715338349472117420929995161621902870870022688751091154934682363026556198860446673525099656456495239009895966133397983109197375369345428768962147627481820042633593161457759933833692457179714529862834973519313047022124030516935905356511064355595600404684713952108536650227420108323192714131601375134031182943896101599037961458495712186484170549215897435539024879687066384353636391214831310456608660823110552501257331501195572756539383519413696903544188516779634470313631853530926512576588281757317083080562470852075397698212695011329345774121897714229137829087503488561711414826557193538028001826722433499166635029013702673060656734890167893423497653628214968007707116330715844716329468931959817699172086344840632958362516566123904278409945740608570329355659131958759657069900176830894468090028854415424414937032153676139742523926134735577479371025809782032641617572189738987163193288587001671664625074205887539760732957925575578084292486355372550604673711064689656335482685918584402909434584703544444460045514280906631113317857786909912004197168731216559313750789639017586665016031223844822615253022997872374366217675907782558016983348940605537274703646699418989888152727001638607496512415018588243727828283094451302467052391811435255676440738102527739615752999673879634580411769812046989980779350618154464440052790039811176847976257372871129266301749212519062766873248287724629820775301855675728210787684309093279590122892677589371935595272524593488128823092115156420494545893796672699363533064945416129679780592987846474219725219837007398096155744053614650561737895376198749405115738321468096326510322681077001844872791490911381706783815803285944702668530591114241155039033558534492854109795184700989840028264508547003266142298606360349627071221241516620254815031590232212765356392357819861584852377834624808140728109058090959435931620805342847446888744617717723193319751293064449981808686558329365762279606539960350456771254507105121424604424597511039996429650989394405251028769419287347086880702832179855521415307145953172151897075214049173249476871761775403437537354573935970129969220393955922932301407834223303471734003187989265722093250599583639084260128755978834554344492002354659891378628255723903212841111747171184349930915064897034538987084601296073210335514931510933549229726407362774377577834969778414200576563899044332763023276042501323735326564381954643520857692443194109789837162583706473479105111850370853438402335742857208429397155988724746484720541525358127719305201616220095898314890238061175146202968068443074659761616922002444634992599375472097623215665539387903624798050342671153032280349451393248189342213991157680878875137688555688333681637497306437914064582372433683012702049996589346219882993247684735206889830757316278218177562016515538397340621641552831763328645198954082943872851987889734037974601383875345321847784364961935384957865833913301548905540567465748720048062613729140613603340643276254459412608903426137696335393494832276300465852338811834110226835243678630500389332182668930297400500544913285923709928476472058889365519736707991078354688900588645131788932499731544803214858921969455307861638276964341519976683956886404303591439348703606759278831408402293881823397379299941790164281237598991037148515644531047445286152931406235019908739930638105991310295371495376964691338133995011381832233907285721720052276602653997663102706110222775575952851218154186473005260636239478548775659359955968468593521079626464779217500847059478928930333703656974043268143641913214445451803715265316342369436171775421156903503223735799344441633176489120540424926186240810781131312499751480780362789249010499261919948068748699269317150329663958445015511688059470147542143426982515572569348644353908558672891888412918704780988537812682287429264382068370092307487800749037227534447207425161124068642474590647664969448907006771658485372014000700545839178808396444832329197105240287069229737084184359873184423505290920450998925185125080360568225822041622644877374345352785669951978646901481333981879034220326908996568006766109765959849040499349960019792314330355046533827412447936262653108326278976830999017212642448758028772371401811300583821263967125009853758087872460989614921254332835358876617763285685144993754618004878689332907345575938156507785605548245331824530669188443207268027279965447141844495765675682843202020553170115407572978382136703250534149713520161551193337612107630825712203798938925675636632153234030014649063950776713551068968981500612127362334536204481661878991498371600620644227341210435475937569692684014615111324676641370689564272853645471878946348827268000146965307500154342159650058610126583357450958487935927811654199544686846253305943711271055736648709196921523640347746596238286535986463540305918071138562974807961212269287150595920512967727414716046767824408235604300749782607449248241350241690976258826098706915880466632995178885420867820999680097835601861701964520591171016893582563267044283589926223861366085204161460841172316082833532905510976577581776801914155720419283640087225363419017195421760762106634784631734769338514149251158459376361490145701818169109880674245424788041096536507019358785062623271955228010132437197849201170973994958521104005570498465565517857817694433113781003353760800678604768400470279416755668872006570122321417338683302989185644532758152407487445484838025074477541370102565920108230307073378465594020883884336827855698551274356643467523120050955660013959446577894382278301131779660064124646357423648281212250422546902269769159417098701234458154058910912307705925271777787222176735335507183484218076445827562615815167235537298724072617764591364638645057447277523866973154418479764034816999179877687840053039036845580331854512538689292646289065785558589735884834701184035395071526411816786829413122958679867085700118406460550418508551046892170304694933449883876941668616446412965975728712648297243375467919589193751287047623689345235906134345482987427690252781752610842761714537610931481249332826515056202438412368576451923790250669891149254593607712952816094394258424677785349630419080368761330875038327131359036268826706743801320536382123160615597038750839308207558461633703534150055709342094210202216226541125751610776568609985823207550837826834560658660369118409084939486629004360262408382282837463642752188983089059901366131159396730631174085994022695130047503989164132793820071677886124104598291198913493670848098966406303473086503337318580441196154334126863223488424470756515141556901298654005943815695929249043546331374234993438837564015849912444352844292921854444757702698910960532350929129385054299598841497885833154887924267834090198358441006471345702512897648811691514392808286777983944474836331701319041438232379467316438169188881436893431329769898538024231246080959818537259307705234548840798774854082213663400830119049777894477853235337745712778705673984441201254952607768207697701265072253808546668289020389553480979226168018946461371545840086738044261900766903363523467297517915992866807200937497437495490831946849298442117677121851760875269510225231313414831053570550913070979314200179604029655236842260988202901692779553754606177409123948484828124715617997665628992513447702413887786544899226877978391153064057758407009094492513545370365529884956323596626209588852680994991710454945804778654164922035227492613834838775521937552092164797867504026792920997140614030760045441326539335316788196227015234039430680248129982114629064315798341048249803079727959115419824997814473952530112715092105831023681631939321622108024809822154730506654911574559288414322598338830721363108477691390820403209325395917279245209137772271580679275427631608537411859423852898122229885445905657846851595889396052099309133208578284088139170189160809514033930025856125960070094111029995233037733099167481476046390871756767962866099738953782904087055722186995444851137171606679589465199351709853105238185723001814252200484309569223606638580139570024579050300308217263193367547268907967919247404175330278301964426523965292373103791151274130073886301476869326417836519002884920252189240685924977900922778007027217944835339200574330002115029910433928449510762942162084601874541380785785204724851113190121958326615151902564376509302291716473980159982112506029821598691125287789259664579900968253865613612939086421569712785226499859818804658530886400564809306561046913628271759041086474091059770124631574268930678726953319839075758258955967252018853959395373165403667664789681652866463435039770980084655669318800895643677042426925959146695016140405157459054111958055429896050052997115423418780028337621747681364389158979973202808757147645004568048484162332766574854312031021534456988360108357630235303583148258836542218287265143862515531764588258811006481248339773558172078665892964279636510158916169867449307630660527174337633040849929933007127822122608141531297092158169895927117535018464681247886292234597850103718417326850372553384937063941742907239579997179019320886646271769073827555521148968508572724638851677001678674669499735201125553098500247410611497324134362637036821889002351207290861958748739700406974650971922627430773214091022149580553010734999214028921873793594332538224045848380403791535826148457679396794728929734148870602025828451820941492076107025712392793466738395499194151076807484457957968874253914071171319992380718217966688162912219468505736651864462030159026764612985584526390652236444710843323501330203919692560447612351602127249292342398622115529234305662615049535765650881290108041201956815992130664581526151523210829780024932843816495338870947598950052596875991189771180734858492267675443773176765109338275696912645683071288785601342720393028288979900128779458721524890468183797262538971017084317230315148353589646879140379381372581549249634807772448764791217926335312058209461492615168941574925020694293491413171961893514915009618760404673054729671758746147170223334547952770496710873624369991185261979660952211002712620993307544983267004409701956078546715794394498379219984219723795082137386591048535792664966415373397535034301027062284741742314088644456714102488915491985396817026268787980554687200999173961486456157208794495429848611528666090640224467662961475671684396684457389623167396582826183223580992955593615970452310267482597667814402020909592545372036326569588677141900233432492847600728197132300732519601324663070798591869814187051350676041525454804086803839940568727692337040127037946870544124512875049648370822010656954185342748571056781510258523111091843372089619651317499261368482385023628488625897379109108759300750179106282011088004356769838144817455079413715376507001622381667952378944282965156826568180190845717797668195698973732886175269986878747932376219435817565275931402657977280378429174653126467968689527796473193081327438491969685166037391739060740419007740292508669898430357572770257100037540785589343336455096400727399708356978856728339576222759473675477775096006653988537001069517178787691917526641365668690056700486338985703849750420904663279001579771880622810671726210639880201970206267080173155332832475664347261335388419206844127599007344665839848789595429941203274320093785528861928701375956443115463650139934803763604529393091177898736902296942644605589260202998436480171850578371528242522554143153860582433599125039949989878474558945065288747999189815764602225040094504710648965564205142441448465126206303549119532558075902769711756488637755184915095586265140281293284514478889722719269166094888220702106370733649389596415350628197473073601016582917983512440941719850308694479733226315793448592743116775644620219861750923669598803864767878657691215400993269716728173822725589482210662479016308514391813845215807474507433551504318296992168723829213894816893121513411298152060286350257558896741173454077812981665448658910762074802420466893146532918037975074758414695616130756847239344241317678220239929963143468386094391939883535941467121617818980595997634139871682063136089575382483757076416713035243082350863332580517845348133577806971471213310260191811830346856096498806943287832328982403879058501845109179765263272149780028770644857714583643307792262109470774315191396217515239541387330763246700490779449836582034703933833274615285937154359460626136131807132921119682889929414717216963136113103381247728567376130008023675319613937953951526180273491656657359749170834589292614798438566874399629637496483362880426159616981504056087908492326029825941215782119957730878154597866345000182574748095626061791837675418353303152013354722714192241218579178108595039831183628124569816985862148227435882304906554703152053241557224560676392968721586399200505185984213122360516699237247605206751114978488295199697505100507522361100342642035165754746226021433092580352266100737660206024514489116146040749992530834978451323599776316259341563950596979589789881243642479980914036470340866154675984952839686074540354378091135821464949001315950084569635546783803486337282701238938632946088374803809459895294103289599889645055539349737009148361325921593883161271504506023106175223252846249857203750191787389611879822881182438568333501340680988204323379579100488413990349256668915625410695632679556341074887197728748095582596176387398227842332901108641461120840925623250386758908472906820241346633781784824747585230387193977903411334907460736896539620709201338273947038663339971431627201707017928099113995971856473120979117299344818280206542262287319100468522063402605818505630154509405221205358085164742668147793597000955897488011201076659123773362677081957822765494939499998813100452259033505097179955953423790651780206554315158154514223044637783922934659701667371039439902989193810366704527216516866346095031303880702771608914485900881497576361648000529076836196154733683686159502236483524721960915700514463481475554038763154365026297342941642854618073770657251681004541392314200696815274963504554734716189394304788345943832709221824393359873974612783985807501152455843552989632233615184861616139525178583918773682827411526714859414219125770249257550407478094415874119990817162068226964812642200239552728516562170912275119236657008155903078785069595504640638649869976053065917585052568833970635982318247357242042302837965221388802516554109471919620666048517755014321936665439960332940224267502674174510048130033198117642776906632966111153279905500132677349651792148811761288546213822918865681672823023739346468026110675909675290280937807166293056482055187327317899490022442259637401374900752509844528900299899915246390840681101283809654534541873852407178740725459391481073341197756509673848750893528463181847874138668380628088969833221811751830374094907859700857001006065420294529440328986817628396653173818871283566983746250439464327777971171960419410452323044084045316663137480254529441050568963286494085892607418039131135535736694152669889978718285389600560680811523050824461456015358621120924946464116155080168852028426824901739234041335124857026049237573931828012152543846143187500246196115783142180937653943476951001282932698189630871536366684461154187014510340347680985228372189940797915036919611191586453674401727087360846132439979608895966585536819586213915057820065538361684036887316544203790810435619111855704071901792229045490390892912247736820677110543857668684274411760769320435393468857948084693994907421427879895142338778158394882415866018489236791581148030210554830524898545485861480440264991957316043235997448558378773097045489875586773936937709785830680828042022906281062022108245114083466017670661869757438055419973290604737496775431429752019203680452978405811638371395485481057537961203656509360163420959262216399670651001588986867741824000046301420929347409790266693990806808668712701114656154177093797698656823336244801258848385407521509071546369407676321301297362571420336490572925604976639065586376025112749916839112600641847235394712197246529869943029217409136587890571188203095533550850114101959627290632795003133737018097200048177102949403381238324864586844226792220316807309496473575907945318231161557207744305099539028010975725509241489931473157325138156195621796889726591519180683554448913582973707424292184320386968270417858743530022754370712076874344718113204479376892440194770590682770465731533009997961993794445028250192230674856252786259602994344883605807356374785947594025359221647041924858527011967802672084877388074679105923196423334644685147071397786264296663985626890156152078227568421799697919551171767062309480864007480214237159392135095106632585032394594542589871373281109904514488151002901850034900299879240377474575001705477878124789841511668063722337734233020984036347223554016858877214191769761205280697015481980992676829598556109609663269982302837783962868997128989441063075752522691766494129452024460038018915612001156610605134202628331858333631204037265807525636631206305076641681342946122963341363057397918460924031389714599521668301600855802467278863933426900364857633140218160857202198557331598567642383435533202383683587759256740914112729191165950735476470217461167967390246325264932169252152432976129382677450590963513766388875399165515413169427446262078718215127891811526213399353005597426354894924610491937626312237264502133470605395429465952596095100370424413042409480835285287711586359670692049509853116343684153431296157286604256342679340522100260738914018358963454260877746470269468880554014413037367521454224128896659060367792348242651550779720019041054553839816046721079567064666282134309331928811359334467384535751712603236280182481590376188611906093148469493986508738937594151231159920046407545311547908356997865602107220929195462317972224873694818830326986303928437068510926575014915290981856965135632753360482832184365858305482336167558127510537481419251248547963985749898998162781610109354119188630885125202799271592491224724762733636176327204274848311586646846817153354003566599533627631571606421575643253650116717928292750085869750413616508874504218604723786443080638017278121252973728349726756288430946123776