091596559417721901505460351493238411077414937428167213426649811962176301977625476947935651292611510624857442261919619957903589880332585905943159473748115840699533202877331946051903872747816408786590902470648415216300022872764094238825995774150881639747025248201156070764488380787337048990086477511322599713434074854075532307685653357680958352602193823239508007206803557610482357339423191498298361899770690364041808621794110191753274314997823397610551224779530324875371878665828082360570225594194818097535097113157126158042427236364398500173828759779765306837009298087388749561089365977194096872684444166804621624339864838916280448281506273022742073884311722182721904722558705319086857354234985394983099191159673884645086151524996242370437451777372351775440708538464401321748392999947572446199754961975870640074748707014909376788730458699798606448749746438720623851371239273630499850353922392878797906336440323547845358519277777872709060830319943013323167124761587097924554791190921262018548039639342434956537596739494354730014385180705051250748861328564129344959502298722983162894816461622573989476231819542006607188142759497559958983637303767533853381354503127681724011814072153468831683568168639327293677586673925839540618033387830687064901433486017298106992179956530958187157911553956036689036990493966753843775810493189955385516262196253316804016273752130120940604538795076053827123197467900882369178615573389124417223833938148120775994298491724397668575632718068808279982979378849432724934657607490543874819526813074437046294635892810276531705076547974494839948959477092788591195848724127866084088554597823812492260505610094584486698958576871611171786662336847409949385541321093755281815525881591502228244454441718609946588151766496078223678970519269711312571375454370124329673057246845015819313016087766215650957554679666786617082347682558133518681937745650014565261704096074688953930234791980600084245562175108423471736387879369577878440933792219894575340961647424554622478788002922914803690711527079554550541478268849818524600581446651786814231541148785540996651673853972761469701690439151149008933307918457465762099677548123138201543601098852721629770108761574781735641636985703553406726493519631695547672115077723159004483382605161163834308651397972251617413853812932480119463625188008403981945539055182104246062921852175602465486019297672397405110395264569242978642124240375189267872960271773378738379978326676208611952067912151263821192523294040692059943864274693215338856671173308271424083326592032607531659280423102309973584003959403426322276880701186819617678090563158159784537637578356373590277164883131028876937950535073208018075810223823080317625043294247222683912297129553513551043147618866554743676921841201887716179922856205635220547032006918086880661211742040609924123487605154068202262559504812485894118735834682290423083615554769477770831940874812491674892900659369616416623436837075439638389451440119556487381342921229820013021079961922424924493051999235858158082603524979985059186697220123164897104830701793528112228966355128317437352393011402792389808744569648309013207877658785362301354280001629055877295006795876178247374871378060042208445346045064702443258085164777173903196028655538328281415915248735263307150513147882844999238663243198106336515243311321463900933362159160744482923457177454817169580181688900175285645046489139090420356029836045652425265797270138586757653899302958449258692189788644388819358114526770563160609737684654083694230203816826392458579107404870879877852426140868715178575801006023681703491797733622196629537718913853116739965565885912164628015582629873541376336076073020045591202946657347571852745311633847776486838248504116301605227086944442703644251242363971814999234960838959168258036164749881042639483890042940550431502193126864230059992926361540649262664186583594904249371523622068403940370108680740098440001512465343535067233845469463576021186762114341424761178341043127306116782248833969915539091310973231066781117485537679027231845076545775699887411395686146631581361573674061881125914620397423401125882131569075175754979658229689846231329257273175338302313533232870056595688534175204573932758183513982347678009261426521074710456668763134325667275929891952548849037809046546488268575204454695053813498309021460489718319387780863409014168285484524248093104343217724788778248739486061800233415225914146138782700545170971410457656614928953108672486080484204376637936230213645817798022720882738071736711299822289069125763027779162651035762577038104288680376054636303337940367377696744757171918712803954370966413877226626889837311111602004518593973174764621542838460162144526553720292552051504941828003032550267579038252786139633572720650890367820176258573636602459644914533528141037251683822090097101943680278336708963314672497329503919259298514966414498521873384370124517467421871213110205726174340134056876555104187866544518902765005382178609412105353899784905982180023067890821606141367018393687028304544346780536499566495053180837980207950365835227622006506786177171095672005629703023553593373869771832835337557262344415664916005762666604199085276789703504193295554568745338842121304879862000928706178007678592735175386523677348535053066125396025536280809350562562821347432394399222442739711562755985244339104126180433506987134104280978456869518977668882650503756167591535473173668135683353168588440266726203196600785194905261819016135540883210564405409027216204498851041761292787884227851835200704439460961571665543448392802592501156306227650740050312351417656526449943042570531502230552233576634208943102385867060630430297719853224212043298619528633162199479803021651170071853216768095061934167286284674753307211005511854225758629292681406381602461376952043278677852351940897487799588262651018857167526448964259516245608164680586662605844328281537669209501700131691093864391470033345906701868799246483109181855848104631118954767258303668922657116990565431759988680286731145873457549777440562265841337924742718870078268554656782290336462515389898481303382848801578806646984480217166949381713998561787717378778712739969834267499971632268327257972572115422822471585175485105077970961560718370771383998265316365376758124751878398350457588311790755545686617395928729558719386219223573876438607017401059359744278581411271395680504961269960048434583896436697014771140329178065084925873008209906179587580402996618292021820696155745628810980223576195163967867626609736795492343789154100185728989816837858427303612448456532426353483148925506480782198270518366562137380923695907752151698346526103237738415089830658136487130918231383360055922540017526278742124582625282370841549068233176525686246245609564332012497970680412465220417099693819728527361263918229564824346904280303582683293573927934144962552827643618433542620664134683156370222632876839087900597166332580664331095881812753248627892980094868158902452714692410818394313034916873369765811519402277339800954019992521514349607341474539039230411990899640390760329165111929551028666741487888146370780055212485563601811272094261309853801454061531585422664625843416142595014823689366366735542832720063760749018108182214340861973911548328544384315811917349722801704172459572971660809528522210471512385830056016372167813179800095725635672059859413601259647770490028817068063068944393809042066274116418284908815132355567686236301149153615835301929518669408266688060717443297219890870195003345427130936321480897947531976335087806006735145801884222411475843568459595642012392746288926431857096931750781433192768351309119874941923765705532160176241226139675957034480490314072757977766284315056551277393854632895972421929264699107855832088971233051922897717260248197053719683239188010267755856584529891014031105506836583574883237481454355676661805833306498942393994388379965296325401019799634146428782283377256296616846911720121828661474404077735591989241075123126002042456108959229931398206017121311234380896737575014319013773810588142008068583268348860835919739558648453632085482935260075146055373154056807915110104867854204502431784812177640696641654466861923921035823089944277756117355726622412507724360772601174557283433060318105899040780191874490094925401279748286924188618885357723618971933738259474905697075534520115315402733311828377976124717015057625706465529679989718223087381422674357748520494951554930115312237349799758257618202831754452121431136790914270888108434238961583657657348848869901897285510569345637556197136235680510433375824604783740671629050969122053094969342273645888616180749732254029065265157374208441696502868219289687780182022916709817519263029166075560544631057607509820784122037469094403481232669125215712433087010353789034900090664329264372577975024182433028437809210844805131449637450450720821172885237993949048626138199252205239306727369305935217637216618890419427844146908993764901848571379429452377041302501047569886854093043365370302936769520956382771770453471932906996474983798241227697609433107940858403105491213134469627575233133732110803099242578856580410400798316619455697015999176218878664471943175469916497415202518064488778879851669666905018069611778953196777655119951365783552962285756790257213860335416088979846955972160571371734597829251501311460097902373072412036354335883448781036365025215337515426356641550685916208348770008127064546983842306741350697392385488411364274333848991803820765123559375590563012417219171980889432932113650166895367035795783718714129279518231967750770527301435566890987728156213938442321621621619714293261707601370746636004397668423210772544037792407419121770198942861545330158425131835182081137819138154235421559608389967085629516895262671993966405734193091489098184941482188411810178142374557350988488825815942045631984223214360317409340713561767809014347986994190579589435555830750700972883787924906533440124683055020087050873645653095557917071622999437962377763190566337687723700887467453957110781672472188004312957875214467796449960511800034246725245859539203204670880889789317541179493224981308995641838295378715037761463626258511238016069358074126973884404030409739084583137914246290915648409556851262693103058511292005846401659476028476552408610605191022645863054054032634791028174912277615366809620188627833142120644805591428083298734118414360771660608731081949848484492815147685896339154809451338055599975013469167678833652319853053583863333532935249293050310083172054433905050376413930794611946777014640762590492778084651343952309552492153717435229293942988546906689089111158690716054868384732500504471076651958754718458234785732434368548833783871995617076483652381581775882106687691199738438887994684127831197614230187333481444190086170200582604207251386376554624596299270296087829284515227536076813961039567082881468033399263849883851517369906170600666320063069982547852342755408169692580300982931288816845379325227504659787688963309573341060164659585398436920742751496110274307126469676151836937086582026277051209542930439143547965918260728897001187517345029606509198500136933628468394612030247503897543589083078612913460889836406485044857015659677762794641541803525734051363485532129950844092689612310940754182744027351269370218532477846540339600306219998878318039319704292122495067614229002210715292351093485086757190433390511894693203488114952940303089160914952098133026717570241776747702048465647977984387889350893780320701044377856974402417553704657109846759091830221597568486217210138708825254328906985144629218157238053861792363563698358706440809632911658563595614359386346282238196122201356546966739288220771888508306195019156452016298554213864386433761993145383651868918258176647027062375367382370897020672107900679360185682046291587722285956060402209937565687974455240910912732822595108597224444778399281565562088534838269442581400691380247361462202060899736983794449529070119917881219370470809089734189712410315397023063331178349119734076268473989110612392614402045318979278204807618498097421856104194597221642281896519731426902105335385078269228032681905896448698926177536581470865895031857067258439249126646921556595921463358417125127078556409733127792330834411800917211931482603316472440285309531133416801362768340380656843956224901064370494908671162370101323936333540331303482946612442291832250784904113459290936037071391403701640573451435989843391250388711698186658623254071786832421840463850524922402294215252122219746627890892242630352467165376788333616161489703724438114898481157046067438588570956522791783226579688826613323267290015053503821071620540860875544294715041219333078364405375830493287051435015130482451945497585034935205259578117234780294001846247692094598694846960880926178711735163206818028819896261746322160291576336869342567715495799463074610405499304632691317449812255036823267710191234996107792483648674459526675230581370250480362465582246628910898031100355785864480880974065849602998145682158416712262174948833437240976047910724363838702614759709497782154721992961544399335529828152307598090888043036003879566321290037402080486911085378912885547831326375799173473825279867518797825294506726570553248628326265671959763322223727101073434792672964156546247735482954780949636804529498374256495295751180048643190939852632732319051479912514631474488773002204989667095501472083994719960636635875356737862996568695026670954696168431842247284545920244602392896107022827103035172738727688234842665225206644088771292841615804886744133343251154037199885483639749144086796114104752654810592239140281719729298030588717934532522003225017422123424499627259789994079535389206504191411359720721803071810804828658481244097035637611762987368821708516809351849207641693156131384051153249286540942623014541601333466224647952172780652175063512270382989521794534652994453209532643110873190584673587833562428457902818905325423670980697735617904021722332265296608533456708737489454764732592286378040464543812334110833044112313886605097457586451390038632625853675631677303165726066164971471045067086318102875035208373241249420925145863198760299645845391231563618501170074844874842829825222624397182151173215342804107184187974937499985389146312927062586396363808604706577343407074173237281399459278759773292381069105426202092090017623743082240629560919253171645226238046142833198930030378864216946422876391023458494195850399013687152825184022701277950490077032067972245576726494718932952075176404206425327778659538762171514621960214546086626810163732584419529776054271644916927322804715192822149159563750219496725891245630251662137729008831063889719577318471276609670576831516940848707527663026427136687964704635676134598479176542522578221100923099544722575192307068631241750671481895947389345079039763438500491986214881356697466172437262103708610949660153920575627883088430812631657873324279779021954921514023668810641852019737002261344485354433767019881198593723742825257717612088862905972995714528259794444345278631918691855992347139345792525814782111551008070114520288591962778668286799253672323017857780570051276153966878614481988996436475683377592289986040495779206342202484831261285713483876164490122176195841856656511155230709621720979670720461570744116891683989474248051336261022394412037740459546819934919544947711982173852904788572628732840127540859220601520427534808856690645381336067422487925263856375601154215213408721833481761715874307589068235823510134327030137170155496887866539602187975257704492678601117789876720200097787383699742197019518713705027503199230369743860774349865960858925384896499959607029009055428471410589551467154779273315212485648911571787227374590414712195315294446632232035605558737756625213846765330501807117669929053137742070952382617334181862731566041322258032397827978329610482529169611577432037579163796404635709757917196640060946909140077500849607829187532921089007544229799088223799242189625906431396534002886687284888385516959706454562877126972675373896158863230407543339416313845440066845416518082188833668970336142290974282435560555786773274815374657174078164039163184394768495919702442094996275646063217029545706132900852860132498369952292361831145643469409708451089623547805748399929858678225400628876632880486754223541844390405303995076434928497123348376359779279588287274702380527623618350690981823114305192278639501075089361713244560009688379588693464215682490648449128932106915392161188059016802124055837807361892792848509090087139995492422330086779797029557548254582650748704538807681700027235815227777187744610078008005681922549531632232364957656829884723952152282383196940749144923498368863633899700135858848890321792792843510119244981606396622859428093716216179397073596629990042675669829500947635254185491168761918744907552602130070096115629703210306879997810294365679101393266363354311282840552810079586584119761904239883736720726175484082860097207573606012948844803614028655777522958925805418772793007043124612956663699521186635958949075208277649299939934608517739459803010449436146201743761453083076488017286650424462858361949422217496367337622242243039777886035169280577628070400702868841349031007143252120126499090811527397048552564096859704238829317489522921958806636864183121885065409789898960713932002140968117844343650682552354545065582311056067566983675278925161362206482131534555739670668802224958214283585091057114840045089214440326647438492613796148614536758167945969362737631199565326351704510043392228494826734911792082137745490554124530176884798501689778977291710660787098328146947831255829960153956423007879788184894784024162808468788066884733048214486524877732314756996803153236229106526097050805326987653820445373610053261235810666365477154897647273051668198131384366944245848103944662129762769786601855298401659189970079032133205093509387991696140762083145819638669222005784388969377148100504887807669944908949649200731617820644920289386802777417536594959968985756722695396958441323760095046871993349718054847569403682982495680355776974552510816871207299349477905840558610094384426055494596443757203937970166469088896672171082428054204561695792660263046961334241195099158741342167641916823618151721800916386647813101933390325266788467247343409076050429332326678398250009202030723798075632689068928995766258120083267416391488349942663027880629820074902491743541108840159537935577452808322782431320181569682668326045229932540798274082280236106493448252601672114215207412198466894550411580581095385927328847716454901989405373777732214742459958976451867583786929110720544376968440047274519609830320319454155418822265657311995190181963200654131096219592562474012208706325238283748814560092340146290980231000153641270193250746927006953642201883072782925096198147285469500291118232704169472852305398522879898358611903680853294108726555095000098382545160028798679517882244213037763436248564903045544606482217990443398021967090050535331685807810455964180403631646716682533587738514099100799841463636623832623798438981634534721854293792436913886717623157534221268686589410661390605319281629353438820667788840968644044115465375548916209753984638321421332400529112532394644604722928313156815174202369877498095240805015411008360994993123537799943236862611142070758226320852115215283086959391959286957520048656447899901041677195403288427606747303662292777152724739500283802658378868989088766918529174998275752938322794578876201210132756393638103726981793697231393707526312345648135283580643768061100979875102128475021949092737452460415580986971650998918284105544674939395496160016830695695274784901890735370358622923063354871841988100724816393260344114116868694257576055754530889843229196304829312399026141189698439294191977930409416541984481817058953818522851936673013086829405889187982168273948239106832931090692023415389622399780718066235821788770335677194453040498249676213897374516379875945631257152314864776866476953319652531266494910994911563945825468502300596803942301164483294374292214780881796604549842817983982160074059890038846661847978382612198790465523587286271674189191713790876153035557090624636395105979728991992681627648827249215846327323015484322799842592616855364308960252547029730310840455016304711286277599496176569547149368064994774883007372853659983634412565708882862576181822219299507481783869310862228748677558916376478323088172027724073168611455235157658514729001298731429502276219971188618638083953531312744289024611847495875320544380718539137517188569599188150936351922318408404422472331920169880959608418291907986881298181602289494962341232317306985822866380270206173160551040595167685958643600032281814482058717708658207732249544432422388838622071287946513026873334693822886472807485614747700882632930719330572247017399994948552926714063630750540591863174186039032728990957828948282423111956066955573796233950124452271928435165269971607476957092112093613917838015152980352241540441040648909188179866510568691639649139667727266634141667647912076749531286257899139198686408615564369937580488114202272734363732456956052806729440170919812021322410430356336128077568023126546516868465192242887798687220537455503800027427991305412431729225438875839858526467976329775063885572870445495584471769522159054226503094437198590713458900081205086464760107785538257083674187530176249264127435887899362663693148082506367418013694765085142266537649535223182009716735331250768782791220363578713300900992391233529484208519400788434178596990506984827315922021055529861965024189482323637297270373335723942610446272347738758848746953782099799630782524288733273760371626306042942545004460327667872474760759843427424212660082682743724607374049925753740248635103153598300001058819807784516073619721513525470960752041640752107567985308434221704041588569398515046559591495796252948533311227610489155065046575586425787788963731499559726647967826666897010983303827023148663182812597065153299700903953658191973845943154755116984195156844298072261347164254988473147613699389753101650491472109873156881031060178632045599216628005081932392871812705608637401677502610702293728527257316924151463133972719882233994255776808714551517882460474832366726986591016391974951455800287998631584471910345823732287899712654691877716912889905406655995379885112652859645177499650124281523481785011887221687608529999688738964730810790136848754318217922985875807979409116854880230753413010856277874617065057705268467486892473036452215595077804811097663862050713010200448828627614994075987909497309356303766908538741329481097989706920315603886955349761445121399792361222994958743253189592526859218787816032272850397628136338704318109238783838852877262324202331797073888495793957519569277179895535853853672281644878937707771006009843298558363506781107615402037618538114203568834885764346129304567211422606055340221823014074876701058739066494655347264779091647627969747336732611113921089353661686748221653720025298865086896566291535996167397456855012309093252068463437475160950622227295846296254883573230981747719508172615566261132698250554511674424246488873286730467197902668687538308613533670412627949120768891726702098374270098851937068786260965415599792496104103858299579403601361830937998086010368373590650172912332458821490019463981552951599540414650333499350553189156713889047888770606289760771685177311354646563283341793553834134410082612786056166886356649168377323610760569276531776185302889633191759549336054363536989398512924377726514967078812775292279931309084700404218700891471754339001065516079299932167464009488204288672622556430727214246494810776047829506874758493278936374220265605264716897647843703430805192683347618056635065468722215950979120953475916733903514266915280744170238985042662844188115427493476446200453966134618113152384599661938278745602198813825141234003861715000457474379911933646058342197227778605323828615016951200447742498731377584750318319198002993457497541915784056477248278947771211020752439206419997831617333373256200887159928232087771273315585204992637609072473745173006643985968060213584358283071895307080827638625540044220479097308967909678353645387778467289838441377020689588982981674163429653938868760556011939364222719005736877931065400119527451742088176116152995141257263048172829663856856635636739793561274742905903324550338432608668111924283293118886853526586553057316211052322689598383731369229143740087954605690950585818180025837323865021122274850521097655993136592990508106103605434637758675996050945457428806055181268636606039385389722302562845160295113795207828325197919268482149547905582682953028921987187723474891120518175666000402184013766506129265394198320724469256075226689874967034632533500658413722855923295820810862328466799407933609955568926805933718617364067621783127051294006453669706247177544104458444525626350917494633792341208899705424617544307916293577354078364046154824449906316939756276202904212749820653413756748647563164951336229573957501150960956917134569693845248654484214918203963933376883278866013127333224439427773504343323400281649823707724271409155385757312763689757692641751458196399455653851564517514140376213274190180755104367929769203986023519959365928744042110473021780846083031298484853175211836088274342217859967429095793926010273795994153193159917612386548296463116278652274822494997768245571795554256150928946576597696551757236737421457140620078890541408784544260082899513849588144932011479703875743389846080079894083853695515631622706682538655004425212369338839759483217737768600867027083248256761193110043885198379835419820659761639714792002522164547584032656508906833957660644981261747449235462807397629748294389921608238687778738526862881756493617067018404275186916283956847922331159595695194465487439529244447804405865830788125095610110226309373006924196094483167558220393574935743767376498685652516581924264056599068166032105777585856351350799569318750227835269650951857572322839225021320760031054359676385013274009638785289261892990612364608381629951484516545911985582412883998769156590813664008814023343162101317498732398061872442022810753327818378620956235986099513892259203275876750827257159037262354681439939689163132435524039188879648593076075848885614701967169381540149511697372752517444516562689033182063760211942984033322852526174527240680898751064963132075315370483240708356278166799033274686796492287566694955842135473063665135197854545004082407349124761088595180916432465959887759263335743977913115663148400547187099363646262106821430064928937324201181286100002105374912616155031961412345063645941802595926742493442920909222736565556230238234706230511104796734189761914326914887707938733203453229526519827417925466086594667030140763659454046597584966223993113399718262625025946091007232123806818134756723000348046776374726954413809296859468465632491039819491217940871892994653991539926134269327359677632020123410110344780507679797247667411918181815497319630038768293649893566179071245520103284467384981999997116994650340126607373515642089693641448574935539672428849172483996958743220679749660727002618944142647660188419901100434643740506767690243716952269588141443581312064509622534565917991569636497811463032374322795211547871587941255518550587323393314918949198366729812002297159855040764517901467926272144574587295391436663616910969670328956167617448220672748738672427279517781233370516089885929694929244449742283039927647682875973575810562804289331332505247093325982791228024862970706294381649958799923735842177422239380822719127958012068250698072804526226926655139110539340090929905579070560432152921842501512931874123656996375006443324772428841243049893510324708789327283658126504566258695060304266599250754223024812442169650945712987881272951763279240540288963591828640022776571030115042781356293240015700207538981395325444515866179204612013530946393928270585979205963305172803654924094677427755899864718071881293337269553960901050115487089817765820512022821411563667487136012382608587645301063564709314804688581597689719702223047255672003461673999505538471774317867416599648687864400548552791445741554098576440407075510828815239221568573697715490086357080631225050919662898605474693931848248119749875644105651063636998726471855244095539623728116411957802443269046687846944565367467582779392467358987985283074719956494545269441530803585649035002152979425264395959639891949216059973525821326308090971333798882135182256020906264445303030814896893872473013339459072078096772479411649039902819311515628497029100941364118912852913067569109714569152107789092414331771415294064543293643159480299313467290184301390344454709741355211194299878527163014534223852136818966445413435346274440792084517806009894004856839665852822773832241141158523454632425591755697655241657648394067083861779409771033661017620957244851366697436198174929304095124596333635116787588648444995857690317460733312380405026216415220720209185762386130248200634695858829692415182257216645604795773727197034836233570832908452137304300338945968773683386780976963706185458629263472491705058416712283876553306989180426849323853606600684023663288096269181912903668938658268778004032830190301904436440667615584348775863075102165728390784604393216589041686197943838347609769129542128179389356385009726461604747616844791203589236931388753287614359213805616876245245776980372410014315857979747063047413361914024296285966594977667529431661489203332992713144440506861717009818236867237090236950897186144914998991028617357833505967980565770723134452410156379005188860349238831842070897161052218343221813545840807843150720950611655378336668907154591791174896992962321986545919841148453627792638293879576762359442669069425576495689934577726834380909163467969274084562251125324661947422469816337589912302351299456949985585467164438940122457838046620014849895768928296068583810862449915131786533461842546595855779978085624468600015715829893667902142157680183594175607548826967101808612488413028785250305864418344066801835187932130638591771247065557249339220056524474359296652694334156923220115649639063037052828266971047312599183470481859226887702297996288158001295929117777352167442823841993092071910461724774376275592370454224800671179729888277239226969446555153750915351364995802574117805532174338064464234284208846441723814827554468345330085181155847624461679212943011519608188039593038250367329432139476830929470925529254103100866804655963684250937366621574709987559596204844204028107259959775032867458755248104558477860402697144173502728136309719615694242178388489177541424648012377311139104497478180917517717350270676770505726235157877435229368713495307278162342588957581152862930302379543355844237983987636848635960281083279977182017297207454837456735444046629803246575054878732368441082194049890944136933312055392249387059869784320475965194858300187071121409278554210130709586609760475258635421392340839477839442107671343519490687553690712839340959348674785837089914394578775276221959814018145497650903526553358965623908546754298140807447124396500550860759208206486581563381509445662705526809630029133453215368375040853622463805850920218105680835015050350462084504981871540051014808666273244694251604857188334494480457041254664799294731154738765105464291457438886340564382458768672687174121207599307997664718921599869873086015389070019375420254421939999279905759794891878147267043152961316959097525821051978551267522996983645425294634620349650727067361575285326962677792830876378021149526647529174451366309859783322270189277811327182728378074782689984203106372783131551727759639018152898656756587906208924815638105665502862233026458546014393042464208297022586620146263317077085346405259169086385056622755889182881249569958010723313244588241037384967512227529534963593232353820937438209167999023793841543728755926020882094770334745183311114473193120656603864036065939897904856763305922278828394405208171281242948288336552446581774821123238185892665684075792071133697934505212648076065263900856661120476258156553695611471174583906735218359700587066847742669689400146433985886004078222228654633497772104925619824553470843726893952599864605354604550624648667820024243649427480128906069218790693007840130972660574762086252746370289433191418505442698949724720074619086520872081059597903632958106183770969226211468762922596218892835162473753352545136868244570895740250550853526026733395844123115717678917079605615447634406744446172196838637308545403167549097899648694599992678520357325234849191133459748031997160896178555979012625671465947559218897452220419473449230199587793194555555429903566713088943777713686619188585980970478582359024081855649194813872367907130331794180776540116118755688816607427763191187722600438033994973981713619514502939440012152756749951223082384671878781234465956379634307196186520132465549083963213266877996291794292368065670906181908866410819472280274312584726750950098207209545227790851572904296003480790077941969860602893598122753469496825194492660091276454976521103416939210544828739603413106240017138012247921770578214381629499507736024881520933301434875178216752038428374228296103618401059452375982040345158275883106888213051852565521801616616498572007052198568375250909031168508435098247703502438010677593424535477917494140071308413747684577092849409963748701026231172240371963772882647117531040770139034724231157754785286901497065784137084434430265996610458420816524352799622950409099842268672367272256975295602304949565461758131959302642899954446000349436152505581029319389803424201423309625789231655927013419247123893026590493421713596629797036418630400603585649983448355652605110089166692878737116011114876667601453364357692418467697518184966113493204631732808565726707896936922354972015179131881296026666681832068410156717462252051231359871320101084998996211988192119257079648348991220590585863304311143042963099324494427518708624002930860588780310005159396896046247355228120959394774076266372325260353019180196271213246607358128243765521851853950583166003227603914564373351958467346011255404382487665114366137013647815498255894738349104958817704248761818934648050518264383091671828872082042622770233356023223427035591413419324264347557709313454940085110314520880176756645858606487750716722231357473394270332707496354010089227692436876379929659219247170451013425286745479135846877510706582254073796784756636984589480779158298398254690618571421247479067459884086714149237664742787465111731572636470987446898054132407177564890158105495875963685695963852979876422033342606803203491937840009825466908847672766871387158164525161596548003578534665214698592372842113728432275635918140070604782074117368530966604119951318837879744680091536112900598637347222649270483315454859827447392500164971975592912578451517736229684545166525219788984386670229777377293187895618805913016874630779109813953541825218228420675532394427159194863078497703003811904886601618669635434762930346396905899265031860858983758086257586922468984529015776779119838942550582907171802601671469858684355891815822728497894293660674334849811253318614816871112703009123731746265614280034637596476398084311417661551349309310816930169264797959301877084177391310893849127948511582298584736378132221893792436311583887386025292968276213293246363914432191469001577203635781603837841898786243936283109395199017224693361705140393035591588222555111544075223346134825222776183638165011815501942247356712204027337340396081472646739480157406406106281844362517227537683500971748308458045373718724709794018782396762939679736626169376628188805507329001478462713848888150202990854989779911289740673482971146211315127948101982223083783415747984659961492167252144239762072888282225995183554274271472646942132316449160092270462365279175993088937328493953680299419210534596095541915413004827916520341203821507326529664515131676922128761456931167507148789753886657718174248145003455248035598053409465137356368846067112151240547477117060047567389642878187729481258498193704352582950717758914305191176277789287451694288397919367387944654862317158862566004606035656667437696707745876186999790822816887128780840808003528070899004842726103178514211798076450962632420721196867995817252872657091313818570424829520110957843853952258615487062963903342788925472065503843889459002696076340980765179958799864140593292634854311769430662895424534735801633777460453614466443803311895306851035257980956969966977888247491572703557261886357079565465522499591723942686859534240035292262285728601560600007992623003711578773818407825873202481237840454869863035801635582414699983481899946914263235501140476049538946274903517910407899305050242713781988763240849045336325276065261024947015370470572319767541179385797576345171333978068535869426414140163785307512296531322466009901708185461634054221468681139886431356370278983003922697733531205056849175466125618970001117943956720733588590644346961978011277511334339120354164480743959541661289654422309439645076631678958695468198393930037218264127641970196548095905645585985303403690357216056231919993660917123070886818847926777405322242804806709587021352009150343552200963546433899739280909764356108057918616941573698554610991087047805102069557797218725789704696872640920583328977484674495085328713159385498763564424466450084913302673200254023676177020996865253539873445547057104180109496295555238821697452871215913030424275162741980166087118297088586021569225067982508203840239752018838751077630662135109476272325069842161466776479021502093436116232087903562338031179695505903392034267059619378085488389711108603483526168940702776389300139890997545028569701065369546179559316046845424140447818857563623811363117942335729353056803396099264993518226271622820465534066310041975503631586236709856988271151513042564545052867170319856433631313076854415941227963364076248994175109191881857664887603755572408442355664374662256878667470468971747352796908142734004839461795994769652934515161791764695426483739142094922518918126184114996972562520548373880670953221358302617724503714903419335223389139280239669335589261290043091354004911725766533004845387760628375698008156357781728225924657266939581869052641508745483541023230040095663160930250391829905892450499875903233932066298529379954194570848819915267121122440320574212362965131712697100516225702366969820061322322310212501684197976242470085637396954937842208372554940519028972896701196948837406381535801068706992582507416363305565323781005041555944318351280011533651823810207539229486581530193233937917503247073353659241786160597312374287970726438892107551835056055185307356488101586773431533353059502650607476368877980878659432524610229371720561220697303829301274641268027265654519684405650482414201956060675521996050445049169268806251370393281040212246499957642965758207267062168501874656993745311172013630242836454052610452894296045891323489716108174460691773756124795995685121420469354989413701730634590059579483936744503573111029918952745789306494249422690026373548589988935592571072686146500363585492932796293802104496336049960008004054600493389235526867176429211006607050661867523901141868503555402765142567677227089214888895537104484012434060560476844454172144471092939453365412239191488625316467094306521537817467054690660488704266784595216243798324014835987375724155805634481896020393322048990380411205497246329299975535703323651972000566246162905447960704837754040086227657751902436144052077743591948366771172584005110406025023635255518277799986470269991586566048374472304296110564018628307883121866269686529469126749767151061898082647254252890060244783238542727750482005523983769632783745380410409498174344813065746641429988889222440507065339682551361738808076754529352511559402201950654661613978620557435178677570086906013851788257451103662792658445614711171967614756686006014708137568789247359501153737124377998734018591088979554200177521635893278798842747129799827114326743227206212042998196319258884678372143767870044968609045634164389330905241258447791215909409636975852203115912081164554952936959557174993624435186081342898711658726065657355130258761078480485346824076308537316486525226342977466575040251685973806422233610108327376312839123911296211624876745750043681561410114840219767598673414835481121159866460649305894703341032377185913072954756169477957051302649029939530767779654302885617248444675901060835964664432896732809088247620832572873783665581189091298647409158223975038017690010790576368558353012809782078073326501528248875538780181875109807694963650005953409946676524463486326713878700944897277794019853847679647596245780604581683416291942089216790945612183164441974668668389332689513944746775369688300803697711608288301427500526115818935424999165044542914328334442862270403985939524243806016746764574010158622168460886279433419920945239046900599413909533405027495954510076934282921440746827338338240764297446425786768886423804095030421619784176734931959500644424604647722834275845014642072225788177979083497328299849236899806824308550967142538197871678058726768029003383119949105884698680257972873775466412884957921961344262063392963957552624853898376030044713299434005831873957541845950107794527712167297003974351818687998263303879775007369456609203560175910992123600837279272110452315986621355920338042712194531138766190595195218889761013010921033805735286910666797755601784733226293241319433303653886944816609476159684106506047484138455026551250639994934974968266166441066551802139031058950942596932934888181984665813528399014893630327104886103027153448352583690071146754785633122509245092346847461306563238553435988563869996601567186058612474588988257925983049463313311362425041150367526605943976465359264532327633223319860751018547634193129972821972812936917765373540523212220572346832475001299207035100665762384727402360384697885995722525908452266062691863282211458075828199250172308507115002122057643943620707427834155896022955746495351914508567512874929794056708656539849871744412488817334535608559370237478935102349426821653449679328500582218159689050573591689721439132211505274663264207286280411226782559084572351779478669479383479157704906403912293550330704112102924516835910335986520232091882997202408484458254568473159485768244652855633966093047981447838235749952390643296960640427594595079815050322109469784243288068591108941898937896157550820516744316407054439807581169313640269129171642991630385965316300822806706949491156026615212738584517369434059484144775903620822556479341552719416868004921836995551781485477483975205304202788655061495348481057278030041416983749059686164017934133669334073734527178444912947843844310462935739939040902980148998649493484704163930702722474652200796312165756044622687359632494487164209199768090613711885941521436660552698591646263533244455996626272840802559242054257589343986404452836081389978002591330301930935822517563467904835451068538604861286693116602588843283003985569850855644133262542316362913236285471166779905984501926940735617488269912585186782940707967751150931013151606826822434837858579588080699722769925602037462882249678118817608764564913781718121890224717594255690193502795232086999862955596579902791443423675876662298314474457760598273183265393271754842407551406155089120484275930345732618374685191590684516417544141463803609413979685388345041685892464127168632344682258918568629454602204920565917797131358285154200441964635331344205736343107130843155119302950777358076785333838806043196777195504876131349890900191839285347806420781619856089677472601439174996470335774115534142316125620869833514415443255666118206765463782722520773025214000381086330594392760644961501035515195682940796852615119190973114314917635464466963432290898209231476931916894038051233876504421677622559098506844870085773819681939574597939166891187752003975484894753853984731539026977101786567209028067996274932072141402973814580750409956165906615444836653859373403172313481336554123086773063182166745969842431477634140714093274019482690564864909354783091966881846894497861616837624118800499595576365339220832942263909490543421202423024269128152029970981965109215448889818066900033607371471091484162408323949021267341285654658027260921634828085880748855012536477024921745418397124187124108421569669597589748265135350443798203083965759997554814365041805360513120861800406348121131180290885645073485818852991283396147525216402164179558486194788414415783743067748760119420846998469217666130660970854460378980962705892479414613607001351406000098067552937395225099086837806617648871141489685093851014973462906463980638735536838024822961970953107678125915303701582241021323554465039653412311688557103292746579314045489850780760512896217951120032656796562348385200700994523791869572917160992023842683603310877353834324297886707684630403325940847966101796013645441455749556065367619782569899289462263894274594610021451010623547744567867548842470976943316566036594785131062843208112125111647545970759513170677192499928085724418678673056455911049190697560267009707943927062464783913772586246445549797402750511581692295416671886194831700328217545033892173871635914930862586695047048097266047816143287250174729268836963059122765954692725163394231704179065872375528280600114914144140325473525153569834996837500424912583198617305817914463408643646517014384505600146198789577900341058993958911473311427734011816276991607356658068837502801835671154187418527402547729677386094377127429155823968421254103189433944699588705962289843198226883721319870786721562042419048560799358298042900208606457935791525970125373231053163710610926563166168503587571334680640307679940444060789784545099150587498693813358098925574155766622168159445990260477765693393931216548249783317133410958497891874254877830512545721745065724343551881594387753854615182429238590268973411229929684411961965320468358857634687757780554977983897659194982931496779168443842634362136985362802597385703491909556038231399171757910567010882026918478509552358527575926894117897413809526891406292117233997044116162427192030976316146645584489560353375212279875372829341702420706905059232617908642659322837905012854473317758315343848132091117419463412138432286513401793430140727156818872732284255364226988614696519353160648231191689157480230735467460101311459723706346551419057523081807153666054778103118230543782434755626986526098929094483275413545332730921866673059920770211873754030210312471250231435904167477397929347169697503355720613802110189216451282476075054123773831714851634463699647740038350278884404155447604325320758536225050527508806761345940926740697502047932552889701113035082680958516000417523028203574885929493253893036111848604561009477357170470800040901672145007440527035872960845507272144648558151349878080608213521297937327044332259010629049066537039666180672782406562030489978637783122304282099018084037969543771874184021716194587044640102262733599818158593365452326877598181927503979385709516221261073350423776989468372171875788041055260048494601649203545440874627538520732293270370348086757836354731318063340788128602694851019869015427702324096815909854656618366149329189232805312897454049507998283066461027269467832369111443082564184517213405909467946847373074046195707787671207246870191107888630055547642081880771811961841198339685742526988316544528516443706474360152793492435649325764903595724384550659996092411284327238971798826825420250457224063981923009556383103882365498074891808266246695708504307674001778446545911933427991389597296710703161405895417906583737939519497303263305349199089276731952401302438767455163591284266158875763373008347740269358406294860128411305206532833977935893610781186355145975692621671550684936292327964473984063457314475231823708556136851652853747956348776151214230958523750381025030952742157322061462083953085032140689572374844879111418175913457973488676586418509863128339777194791902745154120250992525875815799668273496844816356224868028778736605417341699916376566538581095634919642246410021617453036166646767784493191687688037604342455682325406325888890510255125872387020094507459965682207682022372401240208209428136831620711042665728552343755203994535506870498582151881444798946681763590435724767487387031313867273666423769572620346130517620869612270834356271293322754244814441539762720328603234137383411832281787718959075612047446860928844366507065326401405937431561702125012152897829458463913919521671255415911203662617446988989738953558976129096935643101760553413097616200778317663793839172991822217771699855527631876415362159050295660065405609429126673910583258757789975918507663262661937192596555297915514056319132096459039262421449491795986762741875170656564452685195881296548342882035648409991274621458114987659408744652471538986596487203211007939581684178653887617750304241325568183764362430899022510058918663252868040989769526515207654193805642961777503783842477034169745357141688754466614766850847279648458465706227774334151119299751212043310405492298062443061970780124885833964010844208954972678536603328348370824846333642251242034255438554747923490542487369732412155062977695049576940322598840527323833838700773547494206625292385568754759528367361896950503254975105475685582904264280288223133583017113458619750197844202320417857560471058859095762346770565043077877585358715489938500855188951167005590631464963846456224224185199851310612230676179904894428488317825175065443465384251332713002302404383062472621983061047601858907494381215097083764992948968483123978975240059120343706965306631739923470616819681720263900462328085534076013964292364420123047678226703833623258852546762685363678261507534053159337313071457898910856926960637345974288402225005290155209988840428093453917218475809170375130608136420984855729076695828421855736099971976403540497075703445820150158257028881134452044496425524101031249676626355293181434949379326010482772434184706399428953446222200412993451422074481419033378931555068522756309684544363912187670081612847742123338998836148123820790426352672021614274850622618875836948419117247948330004158287340051234018949209028767417865440211256360975020769150161031730685245191308694915945691392796245928108995407625899546354852238544875799414709306507726768451250588734995781768905528225674785956202175853620241580733897536259435693193627514202350752121696191367212237935483432189757522193749511566098362743671674688760399745687626778025082784567540835581457350675069310164155301861754793662772940834922234871893773711933435647383144721809411353838943428834690549484721567494897166357418853498986877125372894967217015374967204028920038091977769053259435538039541030192310486758936937681983639059267156816018726405672201424250916680655520569294405829809380194330572029684666000783764140181555451438925045231496109100442498254576145514105068210088918833396704587811847052148663943918028156428711765630865258717067101332225766604292634769246899873003825020947509408732193929797277222165184482521437363062661500906273381471560628172412951169410227490796850084604423363335120981329924781063830188851178987520111870089499394340148384509314528032587331166957402516900180722639539584778356843138684511354462605623290430800164514616372329597678259608739620388021911696732268061066659942820250031122396075044597321369468855274375199846159302264318400938016037620588591530231147507543217941495241386152185844100046721746115786282155320754268546341641223324502248355197457494830997598207476203598458553861178776117091611842846234733965619562624561265957583201139977697669929410552398382522334054848782257697172610571825777899998427914386750694009828253560700450889999265086650563240602915052527087831535674185366150249160148918863598641716495484203286320898579528762221024459958538098289846571759564070795435884464842786147216271816063827634546770146827533067757844957716681596836933120493555645785156347445647222403411023455203189943146677812758700717760229128727812153884127522795145673229093514770123493141779551529255184199489045458062174316770001872914625555492636719407242868382751868497504021067531822862653277886758587589757047309159134696241766295187506504909034934147878753083391320447372838935587328545023092096517984444772427884316880733145759978893644180777361910085676286644684416438176921333632559039347700334317377649647362575842415788444300889485233208587871526500050691126334424439657315439126316591822350061381939077791838825713002518266673724016276852190592182269900410288377422805113108056052078907550382208141733415258597812578309938624405176604685506009627970458408524914433496782639748863395427606256644086652031456110728562669475549760734155109018382873267654318810455999039256211945285722953045128257626090844853207330695487986853042894503115900609655192019442937099129267652651977565699367821565176327731073958217689669658630030733138193569356262742174056971132096329824880338482075266443578876440829041259871534663933312714557492180719422508250711103454113839273446889930330260209356542595437891137025608121320817176226975909921549286373510996971026838929130590866671079852674170699633224731776579391451674911507086898977151541247764372088469142117156032678679940233613284385816900925956540836728033788083226282383672243265239126834606480895610842067312646227930911047885276570156697783068404501043891550072638396555048957337863001594535232806742782621794145876980810954905584692695563687777938491604119576120571209769528050747473987152244806218741352587051914357190035697197795186134880988579157805497669972829949362856550182141256796691879327842898697684622775611319553259270105727628576932101618240207318340848714593413824574814675844986115398865478026573052647433215788443367515314116147090038675905606603317449184506126408365301127697010801326956627169221791523627373515092628882496998772443154350299339932305487039409021519989283745971657390840365529747454139483316354125955313903699327655417686394191739090020078490755799608064040240393400227427229576938496287941375072020260615285464160762321102731299468042845234326145442354980826236677599043671010624440478921749266099575746732816121912517035877384263698892251137590990640323042559621426395288847886272073948955784597303877278159279083019503170457488052751227697077672823869828775825937610838545322184758148651835644783649503364030188741468964075377843751228706255233819394714961873053299615055397265476626040539980121295112636823006489279880905663785698552861168245756804575540748564845952644012608180583127216136244365248134139163794144634730543828298805025016320843043179771580000031916599487025801898709570317981015727124299900903127147591663397039087130900010186740175386236999607292783050152028659217851119940002202924826116539988995436569081341972909425856243756203895973059855077686803625588713295629021809123615711745739465030992733939089154027056430027259124742663501578662046901175399606269906910873036000992726558957515298129698414631510780151126516158262638012046330758897950105597007380136612714822066681481200948629085685340309039868950439524351553860343508410242603852342770736776818255307504324948016173005780592122840402228140884311230979332474576121961936090079208295450970236446427689669746975228593895922853876651108081759069742697952003307911971690098257679932704885820161802206692332435594684336505386467358120739976476215800855159587398020355754628711131642521099117403060325315182148886291172758840023978951163415136112106165483391817639818075222987791827830523326610124752434358539772955456149275999510009618441807305035616860225699526465970327029136587005140271628593504058197496898406640182337888682327645408505077457834745144933505025988027575445816623315328396381426319399594137328294358629930054103650728011683767852227914918513853791943180631475301615532353678630907546983539309426311532033712122821426536039340307806608698699124725595897422943062923303476104606328842584959924540855333705753675672097955939164644428883631061799952688028052073786551356890661309140667604502898274696593013959112229625236267424899217682051159162592272609923363190673285646462988591597232879160105542412876241093947269235916336623925095577318762005354573051229383960130476281764192144605177896157420509687932433184709279461807436762756145910129371843454601814504106207222599907287247448767459326118548149394922954203855890675451694410246817189897142031287294121173133410592687699363167276774018600581131413817362911298442120627982641069904888488513655991138443003150096600074997788642628078379083290204596625706369507631399951107430448637806643282184302823362287641288629359357830149411550279951906482457138006871585116268508146194149008954906372355542243172808403400419130343162150133835831815377990630777933707834195839007152363375974961473949116309436436425591373870808332995852610554224020193458895839987876535602712847917018737489026266196023324061786563755928949980607649658199000158590371172110026743376166840495420107735819117092822840294832834445379905491579791867026918553423690746321851539896754909723582169507992605314492112024649849600536930125687740645491776281297325278262094584479450871322393052928491601587956584106679658706436811624733987637330356167526424726686319774762229270706975477728367046885195187929425571030500102230198347832637286045624647118073665160234667154368688040606601548490187399388331028172331758628719177572131748900095655408202637279800257722693625197257649541986165882149409049141337464714220749961792860059051138559868261790059381357330969281268002243029291200168077828021778078959944888068609163923116361324751374279937188245395419076451351425586294626515993972166209518940874093715920822569843128928971400185321069449788197470943831569399645290830133744436786872466919763772149859259543307506266525046525265621017822730197531004287306277729485858315051411078786108783742457152918146691279138245357714414146619797241124508714102177138541679373327577219616067048599045357831044004448713385258930428638833753312791397227068545977868543874899754492135774101921727278195792329055922959196471251833874405116947106585491905108986777511061672750571598494054119711669170933998913143164975293139542919533994425509293577260797415213802299922101112189979205175577073074795395048959127230344601147313421949906045194075139764494779213443821780788592893112236023312057099323697677580334060319509918965377144452276225400433041387535406835700711539969590302500829970429753124789392137970126575555695939051180379839001625750683305637046070897595855472723197288278811173723966983384721159475042795820608390963282620830936706323770793370528975534716173771738635978064002426244448210294773392896629895175478975465079145845247618691862834443031063608662251279775401800173647373796630594990068687576939904517784320974887535104405528246436958061135014934014293973512105734179152861547966613023560518322225609101030230730684693856970048894045116155492772029437986224167680586932209178902486787482341944629510650508174593481415019087964439175109270543742252351897822491512371871614131467282093307386121193373159737368122885218280428272860105926851223412463388220916475660514471715326737384868499405301221698466093190332397253717441312611129865670364282631114601047844155987307307953669638066420878535397037434612346766646088543155000089919001676730138630820946218535933783656625758454732714739488551614961114004346899681877831136200809871446003353897586259675743750829353845811464521146707022192131540110258086477968054279265554575100934619342862869970379278804437457352319318314435513739000945465920900161796450283727586388033877246991162327235419077831277852287410343030415642346839298292476159659394423331946341850529195490180739482965548325158279393018861990265346806692787118775137014145218432598934057872019879834590560986872280396108309589565722269656947489376758771171599138294545720829789204495143816278401431863343394611057054747292927150151492087106859769175224170545854814523336623869381293382259218371364395860041670903544018437775465982100580563377685690828945830874830408538765145857823067942253184485708194093264581080930980894346051976567271578722238209168937781099561205665975466816043057174471654341745460420343127960675810044273782465330104671489501345700668606133906855556373852837468752993346569667215296572474031313193587342098104457048783769597325252977289247225785295548969395105518144058284213406303182280946485968760457957698112020130277358933508662820904817139960639721818977158673346352691055443251577510276433739032841718069254449470555668250823909038514596170949648850674114736866729027184173748799577843535914789293545600593816694410050061110838018538996323115688582883485403509773256372393461930179854870409338694217624537312224362182232666245197431181186377545652424737298511737549019734487831722837516354392564504467743595574016184718027109151794283888352418344181579300156619990470311544268662454659229635187935572435990866987861193664231120162768123894163173470121498095892678616746883105656571349952172225756392031558699038334559351668630188467690170473360157005527101052451040021636097815441185231747735016843503204176234532948694688553831476136085328592148397820562799518875893214075688196409145976848914707291472427607701680101074012137929728413387039112551943138919291718452864204470156566403869898904085046682456890861325353470025836036198692391010048565892660963030279441376878119444343065092838111646020281651865612454085347447671067440914627444934134714281134703711627274784755003636434377444991218075069908191246549314379652745592277602542835821241579688255514213626819799942935221809444695342606237588779495443916820618698480656860012873016285466847540065319836450462431815096167790837968352472760735819175112682311511484160624547598946054249547790902248994183404381867628458725550754193224930958704070106801873372064611336555407263641206263642513641124526314882534976696307484918111978701712220703375337577352433076099834375161354779722877740087542362794008374575359466728472177333500384847937660328504613606067578523245184911020032118354756875270905041151205543836029411355461099906959822855329963768516271469907488405723239918139184628041144186975264458448664607129471716348828158935208565557476357706575128141328500143777573843363035911017683071017166889229162984332632053570254955595830564559170237343169391043316320768962649227890176492709087836357198362250850117738335047038969769101352873492335826286622766603382803035953478679287237132490062105017625537643755494793515841495676990279795874576881932902699804387773420512936398418579608022425542127202324455065525064400163632019761405361459522969298969942994120939077418377340866786862757521429952430615007003799897808489059893216952937558052802727842487086746881854720511238448416197971090215465605091401697823964703913729020178188957171282879803504980563155103382039704336544921639626293997852596601195243219349596665939652709395437785061741920011781884201504625103826968929746111257412997683949164108063288038359306035467949482103989507189628483071472316704422802364075608363762105150513400092048829151054997272865806940085406231030838146996715968277893505023852192593460963726605555281238652303889939828218464947977465937201652559144933473358283242449235545592782828762691118487746859424473583720509735833032636244984774067872936971127533385070564713510604739320626014000262393925513766554020251711526768076241303952889997878866485573159906796974346060643483104845507350504608642164840807904729351974187108126957046822530513430940638084919154901176577820309618198311324813358670882429400748907810871052478782855566243845710957129434599836638504213480752972808725580908928890762658038100975724542448669193377841693943996926080461052840722876949396201745220945637270224655391039429128753837998827618874369057900350177591558045557295144791102686294020582706586487623744829211581956382110179620240687116020716940877997072605250309091598823825796096497387932254768300687304514941261359919714936141573642968612300548353940158369284443426907921203280600331201400306014505904032199194128551342946242143494178176445679945766108900458089981554313091329247763251586548360443113067906454351871295343040000265238560342580660726025466286513827835392611334842020826926583137851695093386488808880078588516093666643387824009548407968424645682407698025094184155809790205277345199906646263130911774294796146711408011001338710943670737431971506554393549315360433537383826109198623202270056619303667250709974633881375304255417821091280594034902431650513508954851046480167444268554542457351558132379001074563887872244738853512564683512695677168664625567790628119635309351504831082842358034474111238065955513189187857834150234580398192525004956034945935016761766006063413065840680908105800291651088920483909103857862366472864422704247352859031300712840287053629011702085793849533442932800426202692438740310269882221315972645844754432766356673477014475441661858465740430811778387533912672462018336617485276058871941752953624522953204123100847471911813440356730538788075692642357889590913062272564534193274948474774446417377172941241562517062422940239558124643907288856209966947475142018734388074493962294335212335186067575120318258459049394156193433657090489860071292174640791416339551984050332626439071838903467734132364262664814477970159119473451942260262130584774697286600917814745731997352169112164254715408083350462051167286155039475888200753548153894062410962853344655600948971865035365846751835425851959692089980703012101528597475260537654449139211044608574805780550140043190863259537288443941553761789905341552405808368886131108557844183102844503903884324639300972867351923505527264558639311143726388356538877208191198433096965647653795336995979935273992709705174951575074389993225387797792048244487988256999809775561903094427957404978978002013747344335133268849688585746806461698267350831516599649224829199642905698520511175212612469847757201947296551714668055721381369206342156109315607365729716850979690662419565220227007370599650924951540070869046798782638201420144315329399174243567066922650433041153660631089603790615520322524461176965968607364283371947702227251858981899408450698870770053127547053283761729722084008712105727278790701320128925481110213183799722593522031515042935953591850622776914873115357190137299355662622933921408745943833847292163100120244149059604188373197324712536991283445593343396043485775259608584966726846731995723528785191338071820533613528962154122756518946570768677288284294952399042356805762581900754377787943797727795935968432889468674583518954738668888535148225369514362103822157187411827228417531452690953091433098946743769877384272337914642509076436731934068683382971387498471947671161995068014365918386362266031328312315990857888535564914703036598020493630948087117551370616995732753539882275232741950751420578578957127306441427482442894425284024635036645327146088683603715997126026962865154633754289213677392104213409319357709559344394822245827959989840257868308867138349491278021615067014264657467777933373147699772495646972787944197346581113332967276326159060661253476045394061790402840234807070701799428734377250465092798820598505004631484645278504443004282464088784648177365061862366382330101359419819430045359345663156842881276353521050281851849179648152280419538612725124899177776716201419844547581078379926101661218564429225269135954059971781709102180765256078279689411900995698081374547715499120370233814594936462473903414511737782935182150672850979076304788919761299875400648295296465935724734868843262970827877980251745457625835817088433365003066531413036624144311779845365608813987874406131560367047148262486973866330330126485321059943912746320171951744626999413933765570891966715296645830807375980066410222949637115053217361535225325254420179234630954753667077907696085605058270187485686689560518686371698456779129801893430045749591734618927956792056847685067637497090890378283673778207004572629349843881107654775751371183668130228454586041200949759178165650363101103256745611288367145298605383003764654858426605724865886588797606449097467384304730274185324160352310142030437850370971381045591857790052698717940072570401158050255731373527806636945093442318871853973095866464690823191720259727491603903757117936912622238830576332543292182027648592886274935145164080842791563498384785404317391148103655622972589411212236471750492640163549078296160790036616773268906161828517584394565998601689685432275214507403602061729238729399958769452383625956751437977427893109898805307158611524186539239154113092346161731618384621826225964597278217280768891474220810014777464719291970300273387427843532959605221285169157944184438961178798241226033399751905496529255835447079817117933420355419604832866662273654473525837473849542600952350395994449818225224265070567494268395486394611932672384622934384767677944718344736628433080236851417172767763077234749822344241882644212252357092531742021473944324000314728945289020775126654365042543669242137900891121242309661763101387165934657315087669413270570879270859020761088673478506095843251705213450335002897390023576807828426387855251407590915287858726759791288252505097682413571985466755160139382250340632245439833488363725490072735553499415765078229201942335306884276673130752916240532575957239175823955888440829730346344653352055106507059712685228296954494522473882797037676367825493867223982161231014398224851908034053110117482575782807753644675517433970630780070463892530621481181570629681191589099513666988531871636251229581551456247693690288327273081830449773248463722329915662662896290603101018994508235905342809524756999826260220025658669043267051781898651096754099354461417395126003763953825984598518137078273580174162209269668236265715746997504698990366701848381617615941183000772872741691676612772268188615456468834347521214016219294705850639498357997387619255133660874382625143185545435997345227885139717084924489031953682105895256640782058948711596237917967430598858783510251244019338104478792784496348062125047762522203800682651506258057067776372855745146703534279650897466674897443247498966994658258161351178794155714776961577507289078952715195279842013164706054694045093271329049419926818735244064453978718060154477718473545108811942145295674483274725874009458982556331598141487800755993994019558608553785834962540840887488986888162517082087057739792052573906620991020603681322556703256796731801265907153784565101517259681598346130994036812352970678032126057136907135012294006490761827529979197523180210070044046469987711388618341763972276687668340957448093330603123739800407718394912922640886409681253364902735921556513255519069514321748927250676676870239582864984014839715478963971486022497726875739311657231782864407465254325637304884017082664939255988510173982119610763494734874988562620819739280227162956397004125888294520425140069021075788091736725560307873042301158286944925222130731865287494959911042639142499298119078075683543466842829405566832252918844202395719882342860892127329729694435339963601429819508337210640747666950895314428791237966877339914803538620076772547980277457024119603390653315330426644840731108181956598274319229132355409251854256742954321209298039059761670855312829132258922453239189501560371135638770396775526843958739485928655682497126147070148311636407625505062002173710800208305367506534634543243037505881824818898939392714026228518477776495304227948289845525407289696233106494993421345920993196614868814556332627242110698830513641230668821304825179859139585391384393461990356615119767531195588606684851522931830051924371697881253965990633077970162927949483561345823808996505033987270111853295210508189895751530650139226689121825130497161868795240348506361661433580430421202998551019709978810405602847964279192945220757791677749930733622487157901654350989294538691729334072796575210155749754924075032077396637107619382134433509844189638995019973128812815221464198366698311823659509195293903507558664216085179821486338710931745258514697041937805459313249254724650305210191143502631038634805192883661223054434652444684615362495212901422385564300603244333746479239990939774924375748257058423914092362913255497230466924272589625119414495800953336925264552092678646963732113027078744415771851864601555115650701648731350991644540576960188451947464766722495210384472780383711268548222838472252435338781876729805805916191361838955943578229736057772352148984068603918619617242169879600210978685302261045598803449314075237177173724738757764791268347005345917887964098034945691167181757074031546758005626316553642982930021285124840879508741968645582299757890851026012597686607332794293164845142701933515725401712195789793947800891304924094442049404039709482138905155318980387000937544069007794020298403677662187092740769898441275827184594680395348360109743590504736731418104064925930105141463162352660885383633135229198368753987664754696589895300384162026569752312854659502467747837668077898052928199134218920461345119214766846190916480576307799365229378584743384892060229329366683144671200649344722129894214470473002556751171499671544962011089760132894602597980333132458850922256106237157175045143015851080544092629448402950945066637119566659698569988298707170240857807091579404687791383095762335358011076211625529969461487179306616118093225376446386922002198487502202461130078077257037695646285806078491301508831753353225948848781139886989257178425558743454444751804880659082370188451857171039237954688965023656565424060254481670539255990701920163931862188965768163861279836182486043543256898795981791124906270370147844261757654086799568975980502960453798950112452558818165045033501046579693002767512372546219475714804175836167354685290126307841627576818903703599030717001182680249027207066787984017771653008719661687676448359566211929328693277483515165660203648480005241700982775840232606777407902161095274911309495113634049114501581034645610064827645953608569006414586489108925702434339315558272309938907001845532849850241318227138739833938238709319047574438601824608139826449870760807558582433754183845557388009380606122905541807684668910122685560498487203884823400761470758140324558911541512909975684142374123092780918659141358671222406013049303852574316210660806013320769583593841689316969196290672088569774484653197576469831365643848008626972320408263785893803682161989263409279809885437902634125881959978737337865772855335391927285987715558689405096931593429682147892821583924997907067733600483604541375709091188627371837258141680473006698594364391753481136815870431873532342597979216013018231923987930536447510140890895575967486001835123921310217298870382254127406575454336367616871472153827199961728187139205583472252975913288933179572637702139965637384056944326554489692444283878282539879892670523514372473526207345042664132996842686983028262149207420932068680594409677073727986132706171424457115277492869424896766511432853913547197616317751420227187708832510415248185586621135044202120390542431090616613137650943994536953019749943621540160924639576161174137517762186953999087005968113802025046928238177425546609782064516931224212129083307664103115623618434841873002038866906220909716519778608847799739130984254364903231068220268653417501199652048958975230931542451506383371615377063194677206585375563732844994863521843797374954797905329247426836738000281756919639905763285121123301675275295668552796012609875641820510326203404455945960095287790672324901601952012207614828807384244531187762742200663988108526230688196573535506264265811798413901444610814495807443207314864851693984197781175795279770375485301004895865340745578329663319571549812143254504404969871943994695999052253929415936443799852474226344511338902765717059466914576230885232131183958303509107911652253006569950685148226220607352171210447643171057834369305232498313500836551058787839001405557408640564713261642391470182386224662829019391724297780208199002122854709487668686623675611833561863395189317471283264459347504338489446628990005682498711199949272797615502895629447265841872935228323125408004464819013480595696381358632537469650576701646249408741927905474885427398228326554875038062191384113734389612523055680102119276079640392881338919048590640038023341683684156898245129757150965365106502979915636847150969351302835204491914453083063780068981646543448942035706312974883844878625880160228817243031339968533191342874756954210563721477683946381723770265020274248225416333079701455009303993352762856316834414746913834500850813935845371448185632231462355706144805475162387678156151422335775278433347309676145217926997018172914267293396601254961025761854612453159176214066289134481036949703832545752886406843414036761905797460036630404587403694338231692664393985908994300262622084781545224496580779974859633168234424035099786843652652382646052967419618023791760920676258913292412695916285445468554302857260699690662260191930200739441138013852112389357257516882951271694266536420346702599081460772212023040255611428620753158136922769799259163889365445640857953755732332050972221789700992945565141416513065720131426919361580794819410189988764815068512895875344890818843262531585814518519273554334501857834006309888713945940232594482233154383873296329025698968291699596915270788600282041978726480262715212766934616802851688061435109152303767155014047589895639312931651946471492881568741319215148700113341972043029752826181012848448991572027206677315919591583844206479427095990242488025317592845758290017190866819677940556228130573166729289682446351524067005602488432921186328209799640572455843295471721645076656327963680578013721890386680019638931368605754413148929293839584834056860396635366347641982222582274405660401028106796333169078072970153987757023149383914586360347034544135739492880067000854765152823868240914143560136783428164661342130888851079829109223578552266978000222269440052395718258449873089404415910616581663742933369471806865536790644820407365679424320391424489890284525390684733591218944170483568754082173943414973855056012566818059174120679659833231522827300956580244980153971520357063471876454465232406773260261095785320858718962318707627821879680357866531959667122335289080278651656237634056773440784888077692700413675910055035612672986384643627854693012813882111972497495424139343085130101443023850961523285248822030826414477970868165428144396120426663333897491680574524051367980330374550592884510404037824252010627602688263885354015663394008817732440193277860316493819243687290323583743980755168296327078141283187670265709298521836881523268636029359890103441250428154436560520194835470588309655756833731026245749570995667717728972676342618548367593768824974253450820254749500245224425212459815054941261506166821690525120943035355300904341019584494455028996238107326034508377374604747161637009877878168910243818705709180103055328169366544138483814893703687356369785033336644977299470284358532733489432134846103284151630633191670661148063909658482958084159068523623896115729699417609023140882513317403949483365416246008478314505577339620938515938436666255349762999754400525488342688855866377228233312065078938142451290803586609777882873009280054148554896728724647727171769129684996805261678179462555300998904517073400893102111916631121783995627814218003554771656392050885164152655676784976822325464407016855999306650203115773200355281565129988191200714058350406719050497914943015647178514866567990319577819239747739276749443202345312051192112728186482244293600960741733366481458384165894398745749008370885100492401082779067878670165773548612054163260898249507653732991932070870882970251391656337008562528638749871538208080813903830436691368283014852198463141357980357320024969232147182660877340598300996067774139001810232446666896001006310093079156429239004963935056122506886842617124221218773497397286231337006346833587166643474511569233019402346730747483524057794495140390273769134758207790879731247534536933886049400262117333996618523404719351724875711032247265249899450095161245778521728374550019011324506824775267247925607558620918808428212314590987386583463159613489695284398894659452779103336196588220904934481637293302938817513895255232480138238507021301536074410176887236126717357342868977623576165901534823193807516500545628348412368585932478946160426033727220001551850229844323022307872960181808046924626132177138255728773589615276296854124329039808021368578916273011209712059600363418203229500113013033772443128555829455240608406705659660024501072760620143433882532530652493719973171974429511007274704642033708602779155620010970586683137332782760370600235889754406064730265069471353791988372334929434831265343477549655125436661715363273320748868121602569823796679227033030935256019530006994866947372101392640902903153411719000150161791628503963949547431553097127566597623507943665827912946659087388736264595215950048525191588542402800339751339800991239678133136984103142894034892321893272642494014607465054248897377362841934231802177359519799007282546887203479651524103115661846296024585981512380366683506038071537328205836957963199111301684583527326497773179069705194603036195041155418287550901177380870238808341381095879408748590088388852591075239080940650095523380424345664177419042061868149826496269861943244615487229449132033048912129156981660568041098002384872998012117867641296959151688176092480281011317372526260047658982797911222742203026138800062358642542480355155061577619932536646918101876289067923800217779666349185198068809787578051138869464604824534751990688359098587087809428524886940595755644145180442877445757387580035671993954228567315514551013650705555527918241221147656506282634803271307303281754991648031818893562812818541729268642985933594227793621213458307813480775233019084943429696182915119831524947322951871019473946731715846140091988518598025011980250670169589934823504054360551873242976916649260372089279098989570979643567213144323110651217512328556421008235823432691461737920554473495138877184103538962289500541717192343973384000015012047500649530520691756996705596501898911255445652923373862788026245065060635322199304324943596232321813492607561563214572890024187071596383541577104080890709896847955130779476989599756870901872487773670869244025896964115104609063871717733825110113224320576092506338774852009213046516976930771377308583764785926933757696495327321838551344858608706045115963862445508750575316607858287881706903771657119998710469853589466931533275151784358737333057571462315087057816907683167182278780144575263684903843925685383923211502729010716760228894246853007286907100967284633632046575793752523889080208723725478049045338543595841500155571743823815639948447027271239465795812293838281297551709530030375728989793272159839645629730531991077825279305277552684281789000338645955550450984690356238235475384685849919252640050078687482484744326202050308778540026361405373301677868445918470378329540808816735310945649108278634552848889002311631973582933948119206932091602493695994291296348942182840464315172051997223020398828356244275515756065754423012401752322697187443954788095753781176036661260510619370772794029416228772836806117290342500872281725597180468240983815354634102785572954668281637314669637518501296401711135269068688848048339327068849374853474844173847060959436657320776419937177432502654000474732264355531814909594810237736672833850526242161911401633349280197454466077593195770746760004075056940878460852420241340501402549886587760843892657598776615053731398643047900368367038771701816174512956397043226745235969064560616433558390797531269717686617719461299799418906221438883804945355055172635448312562392755559665613123565329689426376603649242494812978124008714875750625852906809939003704683946304684632498438409977688804874165994879279852300590551994645310554885631837025791190820333275583292672788127509865096996103946764519572407197246287300768443504730155771853874991350584372599469704424297412172188185900131803512676073589431599050342910180665256986077009938872417560444197409947056735753370267450095725610634712342725849419842481401673487096351614476790254769404905149332557797955967313767440368144604528402171624574138181568072548819828779862081259245464564396230340513076160201207560241592393799360651351738895112114144612523023952366445417224259825948989929498334859662931308935496755338199763287885483542206322943286202606078595664486914165052798351066608834518232728398337131240853612722057826784631295179435412793300234514884276211253482199902485560050365605750444922273070691627810781768572447580935746183327578603397343637718794818292835815237696750323967333865678180490826616113287903394765796294315394058535086694678674237223916200517789927478672956254310968690132737925139436121454930368334707641118801844552997125093621636891902652543509096929597363409707805091907032789406374734442104411528524998482618789416181333307881427538931740405178513146740065606416496986698207799003528651729037213380519450852945317699983309738357197444524384882291005700012105408983794524721523078325506946853880570976534874157159145591746378784022319971112906442608237475532478946531226235529798766849993688178828914790098573299994808740356957760731135377379328264945452259820671820903162572494231760453535704731737528885899480820061130164584140945947731222563988363172169662924892695026866217527321905042288583579676834335117282494503845230335827550179892748704068845769547420187503786565394962495360897770768470033186637213153894946503302155569416979887136429586984535939583654092371652907950277171219807775411110562176948646251347289770554862780395981607032696667819822028317437775363430611065444146765395690850275922644420694716299135111353269641156436179223430374843837362226890095717303408683100502066520136847489123409870948059971847049246707092168871076980407480574377555925212946969934962859568161378285404263943922589237974094314451222426346889315896606096382950089676063037904192811728194070660659524219514089850818037495322657002667659933655649788554480529392096902344888835114592013451045477636733294592337475950888088968249766734449316211852287196326279128708815142338008646893347226865450781372110531305152727510538236647344207746709381642915524593599156772903142245494763969550183595148472010009572053674319169081309110012830011683797937738324736406735786519110739535630011669447588937081520439538935644895912400833166944263298544548220658583841842050906072249142412283254563223595996865839694091360955625326899228186733664491168670076909547900454170654380009739245093604750576446153877271569613143596213233479435817833289809986714583338700869523015195533199498857167568414503151837389484467828739321753587474538916654556986300707143486467989089434438318278514836521379811634319006956311179772534985688970805278677565837024824741408250943136414335995986344153065254992123620947829808259290726009908987997434948045201121028898444069058599792354821589385077093877795898633671501610832225513477290838822029396541329882400138762737150776987849082295322087686539848149537458189414586982120947729892617978539305264201419289087328379922387685933949287922665554713674145742122029839879233112875997117623119984654519778517661784277516132271636076489284608523770592665835395483637150856054256037455276027075621070694421206195585189057981850998692188363200389062408621675505244829480840794302430956375415076626798398101169505327723741822139646132955764995229742146598662254427205941728482438309462216785614146178041975756266848065904918318421782192057332318457882343704980032757366580582187197516627165558194435266203934227307691133095059314595267246688862057642672062800031244132466523465621052370095161412978921086499141331196820665057476882775943207605069794986989553377056234944951315966957517180485132238866116078654755671943029781018228104486277498401336777492875644755261491549324035419771915507247824525407310138073364122064367763903450812142712236711894317296936272332489327031013262992510232058541655014477682413912127822460811925587583575346783612295751607719037331013964965415113453288143152343317920694955496345914866860857687171169268754458417406859280309062218671537185823675950789203589693501467331785018568662745650061836103220529307849269951555900828512209403442466197242875590785397088535940154628067263520987468004633418393373396985405848272030742223547787976838988581398334639887139902976882979244409024278104653921850329473527436337848151675035818232373296300806311053013078147888442582813695009632597320455132363150524024236183895403133311387967741607247894688704149687637641703056636154577765901109672610165960350785426902421049988968237364570775637932636675374047725749578210405891682442399996114500224236977689908335192624607676635734284256773561653988391497968648052705231897881582464691650414623402018852470538266380884492606684697411817457680553589835911725793988409244094609371400838776791613797924525305757780825812180475224207176031732023365746317943674042379328021061415470770787552429505898465302644070860100832585038001800524233876988710613173579824080421729927055050397785450969459126838741679249909239764770785249926162400382538848009146757621316463483587977240156644728003089104742321605793578148893434154754983542689921682206491591258605695962738717299863858356772112006707472364098636914293644408410549360491191868804869591266630698299709618618858359938415614606425799731828525112955882623641659702739143991419904628564725082654199739546291524919236842987134381884255878851498377381604505190996803019819700484530494747878410786658332988546264647098513152217154149196208453846749516574705399778698080172535054425916964024265298088647470422528663596917578195802814845929879484067870339107590329403426094761065567709882735322997223669764374683637375102724236183974094579446655755950889539728920533438814484291475639130016839767063598904416675055355512405752891304984826377496491031995858727290893875375561288167620869137326468342162833146429513843619448759802431552216881010923707227168292099265376607842421353768156279208089245568815994683250073163724163176642880213667872728919949613459105584138820302152740488020734962295536015024191293370805109214508888443919253651267322692694127670525169820717552838593326146540864441822043457755736257327206131500516972090066271475019038783618177487904076182114898849691347895604624943261855851982471892512369682939846590523806923972425175705433415404193350585147325252142270334397769965808650046745025540416441303824141361887594617895065600030986507946111621217588773994744190427973470647343033684866322476282618789721049911773184973258747107863204307642018909583147749495953989917280379690893296511317589931837554541949160202051076913932258274064740238356448102978213419195122452796319082771922262186682944779305153003034016735612452977091023767608348458456321810458152254958717602779576010618045920501342378416734889572817356605845872749660457844523358721207164584423090497801779292422903243254315506455264703537881069195762146668979497991071290625891291210448747078546767078312705687222135520877924817141038506194617375456620270590983798553709146402739176043133941812582218367093637033023214343639778965079999319224129248663203389222365540819532644839797575949151857034775044546185777876103963293955557750384646807705796850862887375282040109715731785190761404166685464281760960135414434595601334711210326938725543257283532175823065943442568106231028977477248573464658054726304321446470210656661263475053647604489814670377711214734271037698560088679999157529136427692976957661119263284248519749851452215507533932658534365762197889016193662784383032871638457129936478997396081558523211904738179084190869667985240258361536997734246920916930256078100403896671546316362858452125812870378600570034913619947525018040204234723476500468834513486561705933585109808217587395840926067400737460788847776653643742026318783123906701611339094514258491546244331702484723783410427679022405032234045702090758231892952817620592088263509208737732741899079118604576914388051621554280263669755898985052881124662231154776319912218174035752105949831386442931236755290677233355981279709716105622912829906947211985414467491095256110619361626779529061695300044769161076339015779161232721841678560987017812889443078364790943915045382674746788890038777246306425128619171751382054056345066285555475695017541797952343110773267462785418170921216287817330281981194170923707591940596236730434794830837860815396542642437013470731210257357802035208854989534277362165835571513705604254279311800464877381056520327785426993345561033537887910898361628061362678629262787352983604028628051676895847370571118953303748279315628814282777899324735839471277268694127667796650046344903357160553331136190847961749192476212724239587350956984209866910784596133897640042192459885795246069166869284767283119860190245511600186616942735899638421638118741124910982381200520402902690503005998538457820356756740481328771155933455031108565520970066567668313341951280186212042836172145559076969742626080317418584858623437697225912330414353265309901764864707069698459837878440394960078935571300401621712551336323878354356547950317939209480494946353432550081779238462254841269334416350171746442990204097631079371236896180765791790995149221095209884224067420838827494194882031201047601728345673154883530937314441195311321991262174337119175077457196838733469553045909226036150185278468447406648746077570810713059177171078884323680578959466579106754473762043149020434119554995437629111491851853946183566096512638920608788908909816003765410537748195032133444884406689985932958155830460395310250009620798884579808687965918819860184283833772989010770943845699867519326730018307470402328822372400199703621412921278410490655771601627556786928985336235517343376949597384062710072864933668244363314622547420647027242805002716464062170782392444448562454042163006289730216933371130185515180607917753167788478727918932102343309794698878357939071545176410033800957982403627556793851380803975786985072442104231504089706640429601492069912655601073008005399490518105162506488879432714265487342407131974507986039827188936540682968267736938926125689257255971113406861657813501178866989593182683818657569464794818954870665535853955206108850738031397019573962943426987597074993579651522952916481547464948035412868817145324349552647535687598532389926320011935791837136738972784642370685314456975634719379754612931401169619077202473757679423597963248557258898186532126945217190172358501873234096961772855976919883709569647239319088801819672691442108556759581537888587037942145701829420036181073713563598251989476868559632857647970063050828682700841227566071265421075793840688298723468352504225512156533291170400168300339668990991480419972443523685957214038462361493544533602807681224567776582482082340839877283438047624053015579773062847993763200365244822898253206171816356704034043851536853425384806820482785073767248029710506029952606478349847955695994451785537277483580407967341208762316398056771623756197893425429370840931401464259776496458876991743626543561248140201901127674767160153937028416630050914407433647694274983568396582242462172043341442033532674150916120200266599244472473977228814165600385779620051016504185718238560696216858990602985948528807341749079129843252435715643083293124556411564943006365748026149582340780971663469996336761861828629328909345927669499743369655657112687717233294152943199775291048528731156837441092521763932571334001035592507637392218520618551667462979441896542651998343611543173582254556021882573270559988279700141679311885457042174330373153980160217391428870201987067870219668135872498822599656576451980128763996816372103276901522853739229066564870818928629888595205748213676831951959889705265726773672843140899135876693908150638646352123763948276956117780705900285031042154266742496147727245251699476447415411368836965641289352117457868223380911817247049889298362036356877449506166165329966507563871098166464828756763431970601376233666018403299955537495117434232915997659497832807397859893345583328753502052798414730140344179842852266854908625968245017749766380423543575682822518878676261688731090130439461171842243304682350444091676222989515669991303657112247491689458654917052516429488378742277919204015890699732487002711493763534654184071627509903984326154457554336674071197188541334568508263772696524866068939199014501939222966675430387033314289314482880074964622400832969643694469404575452248257321021615372741602886400459277618244506301227048999981106815667977602755751902131331143938185497715553197477058501250950717071302130146228062614316383774210616229675528915775988704690141761907947782517468264585438672586671980857941627767656453940301820060668903292847177255281211453595124133308612496893634282847898585492153640242630171358723674542717403896655468013501730890318142960342850754099412773656709092917628130500486111523081036167059145179515246363128052390854986394921502326223812056302994635261082026886179383272966699782982587657773134623318201978879691479382308982260797402346121301497427714932125200091320830841984749398058909636075962435208755634462248971391525136475083154009032859183680851182396097555849842207021608499703568348575735151595442085727952022283209225336512993355829937558984320579362266295722378006260044033277938176662560159651355636529333458872251389829321247988567134957390678679652991464356334076906200433381330512614684091280059554298603796017501363298447379901747415385132861670372622281576399946222066558807151557293721985163979837439937460069806771232028765306965502716704143551527033009436145001269490442632434752033920660834511345099789363967174581140643991814075767758419441008530543803760273680997839117161682331312338217738196094264930163931799619171561714191446945790515161354498848590095530920114920886723347391818125806405868196155705215651644292230373003288797692131225618341129177401377507400053257345535985867601601796283780434115759372549894737119117448686823668754218588730316767960563183987888606164575881625188808162284226005651751926477623984072871597584957432330437065332399347432001290700215914338242985864532416532656042476648734525356558639658561477848139426139412352362903068614966141774680005854262816774611523467214097301142008802139312275529757166768345278233512062942281058862196834452856651876132498538363077568673363523912487668463251421482016319196162935343329006717362930399896488711279701886295459502791748314324898455131652766845933766233422110540157011094814148075296984974520420837222521178224772649957486051756012940691994228933777841159436711270225135495831100793898239471334198494134711184566348284220537639824290145045948538877431254083349388161159415942774129842214619989849320193490634683814618066062525909180246956123840128920388245794409716514576034936555108878880152730415033257391797821883488119864029136507892613995565017877543120104441271619158714943788050533061794130367434414420435097308374170671837686518037272142293018553285064999555323492172223221355947156018436756632916758044867432531354277969784891126868975097010704863833847645378663702323542093726317147125648691095731842709713883463611501094806353146320305998396224603513370417217230600106210664479800918564168980157969819555270256096684431719633254204048704276171322500765058468483244104573538169961591574788947019410412783871755847007065333929714762524702986600198760477760884641371052627410104724855091923494021807711153256840873074553643207626175231651382052710006934803079202584079984314188515802412507224323267976634268038163129388855070268985153548765665378056805889104614982481548382342942737241665423439262749012773989821549652260729634134115211258015697702052682249787944155685951645195440185894237821651312821613206538657334680092392144752766016626898068087555547510546727534224038627624970263653643447704977604027210562457259541059273099373428627875919002163362874832786553597532019452005717063839308987172497171166168902391402244688942955098467134188887122501131035170612762362969009298655161242453544737412724766254799149094995503679309934077543523580698964869742894617397971707536398647511049597728584625879083328289247099816112827711041866998621443412767995783950143047620520575298800766296715405761726262673862253443027406003166064586295135990781691535661900205309534995410778777558067131440629437144470156331005863872300647909174603863412355471279260979394351149342629260748121765301482255330974161868740423700088073638670259077260155698738329312756924511047463717631604675859248583895064261162278194752654307375213816656889627099418051981991366278238262838500160457361030853799044315288566723495453178750829389129600676223523911281891996066423859201588039170139565325212207330624606982241524456490976582616594631159879796945064564598443795032424904715628047831465229836577619996692855863193025482201196153356506269465782578724671391880415697262200296400649486949014107366467849703950347073766687145385386424313777086053912770413852606853060253692515576219767225492014222694168812790566007016454473464257238046183954900796180646696487202088031116827237007958824231665613158916894766690562226341085405247666496410503012257532731719089775336036289855441439339931148204806386691600511250947963648305346779451560969567834697100232182151594295778057385032478763144440003385283708028842202115904722882080105525416512554500720335731323912720752646810750844764373847390386441110388758025091710264037377562446315254144703825313612098019748585377583878271144931096211543611649294943989888968778061098552644580124954304715229715226254737728297733191923966593688068083626393808527418661479884204111268506970179598193713595183032346845916012498867500321264120444043087209089676607174511447570922861672752413249772498556407524044943557922786355489746828435918636733385467300827679736729958999848404364603939198423092631251704606036906428675435063996511433005514471242068464413687718570050864371329418962773259814718234994223736203258065116762866861431728821856439745471613912918729345596444640988074359986131229173779946013733007511737195842374037165478613509994646818436000528670243294777697346482293004768338745714103869177479814876841213281544471596311894448032148331953684099525603810484397969302116709870688838372369718243976113084945995446251234794230455918653914439888754848386539755853323184744998841573101375867930558805697370423022074925097985873916191720439174080960034450082500842783314919473005564480136870634285431922860309866237791419847279734223674680042945521301590144862564923015193293332785392307191182413042586898763744303783885453210251717737371245345160005446951635860136722636237277455327760142759125795665696194323689075649468605307132494687025818583862724476808841231089613012504539219041040282341016537686923862281792720492230557584917748119058900718838385197355514905141901096871597979917863719765305745262810016084484733536968256714579149909431046369469125593338584671970519617695475768431465714876626700038442753988035469958594156477573960686363669130960758251502268341890122070131912292732542800366442000786621154981543342215045618441168983265967298970237823142360903758253247712585715657219891574964607893203492969615933140143085905300533997757826625363717312764947709313828305128121009637088505814421025618321062813361435047072979127561761250216458498865209235963930068358155523449316844005850191568828014198093965539397088997192411001850788101909067673700487835790088685216285899876735082819802881519214780888574930504860069020490249412214453188733734914986198052977015246274352007595499034650278268603012604064104448925220966239951062240592755886786003973063514298516554395983782888953790428690508899375079370783077223970758075704126367747083721681916506217568956747930814929409655405043357540558267621379167638312060423412075372477743305746228148194632056077756947826297786774229700847072964928009525930337157302999370821922646029578196576212639745385044675021518659096609709584060045927023093152401114485305678848785593576667598251235099774895259982988405412879500841531784351295916126589084932694083197951650264084170252495321958916359623825759753845093257731499664989266181385046618199085835676316396087035807089652338148397648966059361682203646120843012257860718746729873178659937954140031914979123303159453757811606362784901124899282365177714980379094502526178602807965557904129310697065096447299215453257256418029324463743394645443218322920139170896390281172538897071005217490520076200218536117478360770287048221358003897206148026004965046825254961643461208644139742487907170309018795262868156203020869615117483078142416509199147614616581339451980485614712597831089769557523234498989584465013863479386591792116716767595829363940608914579246095984413240514648584916837135770382797047501742874393503681532562388522408688679022323253414632768211952530577370342339185989147169501444600372639585457181962230264273735107080456503096991528224848575465385722565087151160678288796276156729466039243451121773146144429160344908961086002399027467426982754758568148600047026506319966409835047578164283823668829440667312502264446616813809644421982744027094900978549373228118355539735747353783394463359823885003895148246014134577784727754023476259605599015596490171648541535677046475017399886948022166539997934209249081956026168921586931411300286548054193087179005506186660800273876065848488665319377492677680402739779415889678050531466530035830785143144188897997570551588334634226516229868969103721754899770340258430725734167366320062988294364404742141612190636805191272835923188187801337667480775808884536393177094930612860529017497448140631993039902159803818838136109390617743999614035099497706052561871218466922159508166965295496721958434467485815728624596935400743234528355726531290329812318509832255014091734804007717305212397312303819035260277018054519982431238987887053283212730191016104103139154547470649501258899621806139454620094426303422031988490509531446238608280454454867946717228691407774632726580008603896856512936596450743828852733978677802036017440249133066778449721029349673428698616963644023763184529399203036674668087927751256436908182406680350797066874071130098716755961854448957646794159367675998599525260875654641280580595990143865285822639916964606799751230282475421877654403017991649565558519790674336277422143439333732294258536548388204392160675818175587845963232105406802253544038147289907803402449477798529836969266488897933486973104744483651264724582143485218895068338852201600954647006021463651450353754190307036400489400417222326733208091890838382910221832585196596259450043740326246097537501373580726141832727217863803486570053551750418441517551848977033185496560477354126005784330263024375209658172274827853277226033509045067594055309131475475623279964591439542286101674902122222204351913838227257083068818787260693034860025854066033688122151410300046232891260572519913339909972626830187304066988255629248321473592013519172866103231634642514167165855456972539298984174084293643486607437100810215043320795852177798014372934620934241982269929703998050771058530465759630232163398341829621750854820100384978714890239730019781880066958283156820039684715638366563593456946384501710522813031864753401938359939620357384565163709337733518270550713026170610700977978248402496034526944028660333839594492535611698445398417598828800089188946506007184986163454058183590541631250457459037555161618315291292923675997212493961449728862094587024395020772890096026178411681547168911216892075017742348621417636518242273226048554997721878211274816428404614562345497299635409324461136275424144201140666414646140455289351990794172748861595001968665888933476841954055870921115810688006804522455140425731552767150476977455264155223788638910163374177004858354072505685075074496942940617773696311953801694970468787820842568223001715176387047139461708892351064545763569183362384026440350156534553641881649233252062670423774272994074379080464557869531667107205258266637840729090330943096918811702132818275897449491065489509786652301434978137539060946945491537802139652934846381546316404908060461853605088308773742313252051024723094845227359998566624813920925595618569949579186067392557498970100439433310381548532177502046169736740825161347036636054806868787458654620565042996082801780425768140842170380966575574972428424222587711358974056013030607180882655845291691230597813775915094102528136849189703183655406042129451019855070241291368591314175914568839295288273125057050496931384784342790613175986237046346083879745281065648399869157964638231042363026442336533151213749895600855134211573827578075531813296184255644924532430838894715764188671962222904107677268272640874861525753148667016823275643355441843252169829066375357181399046342982274398466948676616988642361112910638335174655131721934462148152845556364325794056867796569988620784287371347047039342552580903909803292548819613659394181626087439767335124008217161403838695929981531003254926728999650777621441038413805273792164866146967922209192262407082611014965340333544075990741586887587750953471503453940858890015062113220536921924431673947809054657351778072745627178282618697514788903271853054663238335592912906242720000677597413917560358795659231455839449349956837830949582068088161506109398817638086712464820357881293775783674979927199293674676804855849344360038685314863167552907105912815396548901455570408128495818314736331949498820950281381688256613170838091850112515999904688745831548199406815385271054517397221218601109595731499195740970827641107875298763512612816737964585115497365797258710390655648491652123693586873181685180681113527108164471311014816609837590794461676999850368471939426580359973037237777093054568928558527678665774872908942822587977811386374414645121082163785263181773649241434537885662481813986561993244642490500127208409932386103837484976469674550030301674021880556996585609953737873259110623493093232921697774993734743637997091928453082850036209872245015469289755948597454248150868115814357488270988217765501637283475312549333481987149624059515293931865617159329171935117539794788845459294090425650761841410336130202306428085481340101980586355061145315106716611529605926774681395986611178147014666252546619187865253139361415688101893912909152270358676744603595179602608339423434922700396982484054328380741028792112079394919784222567074547830174609097003851958726329779711185264972971863450057260950477315463306257716461021237469788121229704369633690198485067564177744998185839507273390966886970563726731322171094229940010006230465359913050364274092125454737087186115802911754417530951294740521609438990678808438232670843887243478046656451521655996556872956008233801018473610874240997621962914102152772073299111445713504985424544437759694119833653849800615652971541743932684413134009444596446173790014143423124103375380388734961332713032822549858830377464050126087225320302409235644848873561138765111499354122263467759229301454166974786799059483352961730688391607986683619538189043411969853870096814943221986984342783040969585004328814161628904582899102670883208884077251587721008121196924021857498106741040650669399165496509122564227451978121712523069186198015932264730353820654979512923783695879713410622806703563264095617710303505163034588842200480419197350975767105184234979225738812868439333247608583033455065854989110567160946715692083349182855938934552967947677707465090538080806319172265593973676441459106342459152284734923831818962732351298900928271542945723363821024973321397961601490067725417724953120474379687288102477112967413948129939195666650381133986413273460797531866278191567087260342492710650212010365254616177087514375956225905162633669674747151294693942935428600734502326858368851262432123731177282285498177573145194332169893219187442279213837742086404242143195851107090239367571130373784747579938643648431564952300112792516361946981981764562919833749080976558135260631226622681960542262532664959735190787831177199122309945382331692605416913382097068453358746170534374543161224792669354995145401700985690566160422179367789879595404920484872148521401414481179090993402180260012485304287880233350536516783401956080869996435159215952821175903851427263757299087782210403556352583588861246545439518279463464680287102463107252117640612546570389515746704202044460543029762739217135418216283258986861744855618272769288248396895714047328144875432320562052796090492807566268554995582118373362399419673429483937986731333330508401230065997076488523706474330595234066106746162719828771794363489299617569356091274417948558680356804555945781634206653203032891572385824535847601881457630329396363527085632666520458723230320764071432305467477839229771231131418089765382739288242077541911612142365818316975577936535694122124964236776191946876255492141140141427195840570256976532801079139021785540564123994874830245385797225002098273235632656671287998166352416628315508158178238070234605135186911876279276726867927327560105778374157155206150341677353770780409688768704787467081632276534653394448470880474858704052560710340348270429315217712757325042620528767117959416322275153636003151636596889083693912951204849529280787533869992807099267486062622229731134213187717139424956764949787005408107443791603923675852378245421522476597279408429483873400333393444908069902187646326884952263256954417720544629775940641251817995720062162798876035535078071306940697213950518663464886260434862541326449572342567977261694411520753432916048376871485624892656880388464109981652944779457528917435459079281737054330347660168266782872906617312619847427588478637636142114766667343573667748502546820305920471876123446507479091448936085793378187792699102209909468132420439551877023842810679848594830446547794975983095738837122099242108582099391259311618169305552534510439400727844248528541177641577044568704717956774391304614977757724438263195194997554528642969847687610006284717612991653279674620737100059045792201617054581820721379285245591730675962493786180961667666034275074596137289702979700307132669612027091422029037468000751582780538209301434429484397331286845034470877217060008140983864022275338206768951288662544567133279419008546925339254589443633397157791908908054306509901805967890931142118388775108721426852665228354933976865146896793178904949583013375233414280981194646252728498615989438788530104832490709523724353689291379862936936814828949724756039435694968108197060995705848006231088462514444063187363760394166324840098124985207020457506856659924645949332514417122588259951299888283394460192064932914344920264319948805144534176588013910701116528824797468260549943263520680414836566302033367698160332457240802293920886346864705851253678118323037999242047307004998375786889285738744236077764699924058608359285285260791217098735447240284740298891798847531697259058489734830551655771210270990382129856354114717169207457539896103933271647308958838056114164194264829747627615130159919626441278499476749019373217508815948313155873239053854352970467317567979849399619163429333860235198312428940354771584566606061353257600100670357332999384447660582409060473059506507964055363193489697919229391699095966179647374880159373006569658302392142265819985169418930713667638634703337232300069690839409706887792042556719308376556834097478198387542835163697959216076425789322346487491712363577652381718405525412787953772407825707544386878548574241017618671663597032946379003145774195449626098108034612560996193622909497789267140307554138312349541810268623538683053700963235149744843976743760423925976033443319997152937962417985485676062196888425666166707155660611921380084341244022366934599675926010601467852433785153839479486120562153460950947966581731471364787881569424578610890101585821010569041688325311437469748507051979129964699928916943108191765386518781659552196006637106522073570016317809669925804087515169154964843882369891540681427810273141044684714103737793183627047063968940038476690021825068444931098052216728224154875022249475221947658007470730844998332948712737624333821881307700044412181241533641194176840494707074231975155470973039699059674203972516587670937290244680523696129007735073701126014924927833284231301439425839618172103678498856667239433115426755710221496872791690026480879989167146971314287753511412051505822735580068016343692833727335603053527506532843530573512467291247848280598959239996709826146126017105567895181942400154153994610187014588546942768709636783307474884562752349838633277898647629629847676152485713029793683639183878375191300835489186716236511015806163064505330537754494112526461226333959961308217351953352292443804493191234822460610180743685425734757765187562426901114565160068100042579537605703096185102364396787873764754402165731859821945648346494960139327204809206714253984233200729471159669974083711337083407941250605302988204996548745148860229736439876814270069119570116396956137643814235219537724371977841307580084052864417064232861788938439020060451629078737427812138882304756475732481233800374061298550150095107627922511117817068067028905836378785699833820407526410792297686077469554714867775846693025288512747375219192666894167060467725250381782447665736751220514641804746492119558706360167776367954149650681511906990096263255429676752876606521942175443688822932038106910057626114388781188784792361977208200594051144729858708477636552435884570138926302217596587479241613331684856108570652509114984858377993110906011593468045224202511248664206758291697699535695763866204092569628631050420033033164676786824645244057360118242598721483139417618310144378634447797633324965805834432736162724800527666615060649941099823859313582145138453972443518756597168974029981001274519074744225445746637673866848768244018738872097562748506370689740990176242063253602185204002638046051612242657492572673979994422556567660216687230567603035980917341264893059161177712790513517163729987471580393010638379386239711795096906791381601066072624657434863261483171956033967773183681178313548273890859157076880678395252473176630277222412391574766236932953715545086130716465419905137494453938047732858396215082540697804152791388734789334521219068870746856399778335969426829613477947974966019946268369310736995252189116262986241969264005809213899639623121409979380887413011156557854095673783920408731965690044203696137166444584663273893829838550296937636226159328021707731445685028316383374533726975576622832272622058463680125938743330004652022807744511100662073337657005905154122288269933369412760680543543588707055157402832987602912029656439166487156156752976622898952934004079950551053909892425734194380438460376897641633245828371518632601626010050252519977173186374977968033278811870750700292114870829854509021655600928184847936956603007886451534789520175178101047594765037355763785158240955731618776117416361072602586797645385807060145495225571341561980928489707206542236916667420273778991794810702663059553969123556600315352255489356524791810603114975269074886096880141763471674656289150513454934683579989363973470357478412759805253360603670190084567423612780410325910816039314792288439697880399769833269550600745168425705824280734355972109689339940639606322307129497747734729150988076010655779634842227690869903301974341893919564763141194726581331996374277533614825145189954602197288813278688410089569158815401493489648621299387503636059918030632988153872021435098484514714925697247257932001066294782023405589195115050659228876685868060633822558687338872616159487364137246063234328131917353778616899527976771981448651783881084868688932486625356019249693039348226564520691097238501753365662973633360631107213763076824249423244493744911671687113824368643097986206233659072123438531242345551397880286233155225177163758392272473158962037419937946349285087833260388107622922368186377128655296422372282395580587095088788770972575705390189763993252946084534050244867299021613582753275217874396760556250395482261908991763006944474691226059045512183227507272172471945689164531524635817500288597953868484620905598246029583034939605404721126277608034967888616167985499162274690394530618670572206016301256268893941619641259960103124613001185807290337789948853159261046298043488620457527171436195843026318361208202572435927432277649438280887083890379215680450494963647750759667666487726456201709410349025569005686624386383995844023216764601619951702801108755035963088390159637764721271801521189886565083358146012156281761797451412771306580724161231829519462144037289904475380730571548149414357075888377337716143960782306089561921447555365449211365361079912866280159179062688786151662220389674797266173497715270048189873877279553921030017749288860772599412842614865588650620074256753720597367216379443962351769381270251811847614546848211537289892807132899147500154886896253989204819134908728457840793100919211738588450326535622744671540333934054091193863592328884775339373640168298937665598145563602280811864875467776718149060681860967317088889286313654045411448711055130053289881682005125656323226826115097873076683585328014014460192147983063910256244853810817163290710277396863568466286983077729131190583696605288820526283360440286801014278947970841914390946113503246086619188386810559719693691329124649795929494703205379960021104460592893665115036303876631476911653953290164841780140682003278138498893290998320866600328747170733559885401491051439904085740434592230147071315666004176826896860686667963841970098935149715922760923389506402297997583010025586336188859158003697332822685559435998064777773826735242050001461317979705678710352794589027383578231989697932419096243416559959269549207087306100003217626749455350184331748151766629478080740691747339548716586978061169602259606857615127323719575426585796662095330410024513495044378068487618838297170756023955796452964376414047065535436833064249075200826943112929223293317555832948018113754542814571043875480879081195882549619584811795141554136767703017489057238153174733883212047125962098086353506906277689647335977163977004812585240043678769503308004339232562531421483300657768630899786815614871885314226551478825364120518677291417590697965314532643535940927472368609428782290941142622489219224159097330246458403461837583612231322098917215609267016458432937779979466513944252012597279542024118148739261293670361539300397340232940581172751670661460128294768745844399901227185206999888518288716134952599335457917898998165539664133680562497876532586133089494670275654787627730984349667488822097167051971151262078834729968283234981669756672732204954697326365978155137855258690302273762139348576103388111646339201086763047113182156063569287770991289980304455883631849795268345898080229287177327838501688325093195158712877052465844986467497191170199117297214892071796378742328968183330253974408425261187781532746653700618869988705426643373940773164881218624431174088624868790845771052183459281621194868742779446864404122518544199983719592608690311100995359025860026709025737693590847214431838667327868378011696750105298600501615470987555662895737516950841816862630308702867853025476155102953755534281543490381561554557012290333743719127634772170729533062514839600318023012785638584021300166026784416009592157465982269872287205805587423507784411317155283016993544712366894742351284549483722501495988443633264240060655713380872072901448197635077721137187887384917275443286983443635508620825983998709263136992796730912996911326213422208471434950034015150428895211568937669220566855395579537169525911295690643291366027166873348764996610100719953803085221224573519991927935354938238463404366071976279033367063841400770950262724326374215298205514674531589388790086845296530030716375998737898310947339737760701566594300586570361623660291322810457331115240706589791067920240131072134740017551100853021802657173412188944835670450486242505469388992976484539265158996021332744959320830153710886826871345185824330865325169537937792203463769884030977720801952029527355451241049648674749792544944786680666590384125046936611861037259793470379074909313893276646829560669336256308268100641562990940901666029375777474439960136735305008843678386412107262109097338161412560835641578869246821556703678428276565412363467215178239336493894059453330127347194089881524027724513846405950699794391276227801835314678445305868505182736734145004792237949597274657215087533395141850972123766667943425806829637637140875880176730884905038046201733339112078514167365684090135367010798504590182189463571664651272020914913145996049596101992065899041739342506928907753224764820080431945074185076493807833783558770457911284271524633095298698702222866409410905702178437139508737456340556518556487905845606044003037586715038059750787537100214966604084070169340575849129626231382547381998730262719308694124961977130046406802433431376053319410524774204321260102803079206143185391903307352498293576082729842773441584020208986707801404887795177912807065224015325783105651527145027747026593254829214867835502571859734834226221689739607289939016016514995174571252488768103481494757564563415014182220118792103667969882786954611603805357243834255502456526701088379459833067171141261304004523446352346907553337471617035642713177278802914991605789442659083154378497936839366501435392738645007013518613074094293209259128186624892024277159677719553975065248254957624880452217301002813915461176990706878904411484136046838144406662164945124273146803936608162215612917569358379324759666298382010331415404147092887856157848996612301499075269149046829726530645665478513630481145497101789319063056428223157210347128757103803872660257023306162440318854053827576545377591520893560269934830508993795581998815136260975623621317173430381661401994488170720108756334949507620985110066437359035115721765742082027683613292542664841723235654212073894587821471940086973337322950461882837985564037821636213415936954710179324934807487607610381138750066714373977335990905092935460000958115676045436836060545224781856683591046415937264551273356112038422925277543328726163547249197538314763639341175083181740839312471314826029101037993578652559456587890962468440776179646879593410503908304453753923427127723961712709534934479743089440864235269931578345270258353382690448858798684812812065807412462157992252998562232130229548791006286898700416498487670952872906628627981767850808774008636814899381168873506768234674818722416862885314220017307307480516078681647910058194254005772539281772367180733719077273308514462421359826241642810924523166088595860614221561682833960553826581643951316184706546941759841712585385204872526009553695241907608675485493063767204677117500521902246518766545982789857586263639714206460055448170763917831741405765741652536600432254889471372287206258953530670245495286217184477894060842087058278123003774981661101527883198293319605616466996584549306953972271269902299481066349866667711541441417642110056742259055973859489399956416877027403686844843878331160475603586333044810395367908436009255398182405958893732955789850646085796615356602079265088799225882476951161563328151312060155958757652236229610314043737655039032110056785575521022544264384326095780364164951236042764806188236160890825160752083949890179981889996999361787560495806984007920321165173700520872711392252986057538244781550431892600179113661700756891386662229086716434365066138685539141848869670045603649745465121573191228685559238395660555034647129502272973429272324828820561843249322610566452155667380755254012807217144473403239753675637808509678312610307280681270600126456421425495339867496544294992573736675057720340242200111889969391862722662472985723811522508076083907468859247062618438713051979278966220573619236235884414040374903378967419651424850609019736593447674433408886157827291196637314387602556825872640040360108127626486554739771754647752945923251286783755693999281277093797872143256722393098775753320877814706366224167994532459489604439278547717546494740527401757690307523818712770802401258016213611190693700924477698311982720672040301495635719361673563646044470733725465954798413877688251653402283558231113076048674143215504485248425995733923936500852772757675171790641672968398130365942376812678819585258771388709006706147148564361883053396196148931037899224824413660079163884204492064977616153309853138057636688074273427947239602728505304485873507046172491376072401615512298236587407537029361423362135584469525508098506414998243676892703264122397777780797364982762651764442756998664191149250033467033383902975022281574290289996084610599820200461855658250325572322081492640624150420681556810385606292974667612314900454434631163816019911788555033327887961966956313765326499460741004515599393220921877619685374338982579392523232381906272644415698794056346700197147309006066975747110891841370040772065018838648648952378725516827825097137202843454635845720745288715893500586521416064657271802755829475994377284413622402278255823297224719731201808049285217820696007950178566097497563938879900233798539886083265103979019521224174857355499840211941288220268393130665866693078492677834837518281655693589893157735607017101765694142118973139921424274158208798586671013991982210373016321195660611248325745529668638603284667257122544340115662044484068544925938732184958317660309552318948496447745205582316975956975021084605232853767422808843629081395938137059908999602252711688580520508066861061705767663061772892595512331877182166187437579907803609662912477756180722701905756176572618023780854102874362909856233915153585852097624343007128852963818965639827836888066119086253556646502579672717215977941584606920731328957697707517150163970841340277646051273597061385137570395371793307148031721327772102281559903489984161157363603608374555932386954895383975547376650885566839720304336244609887286598535584273929754184935820519527090894046593942228790679612068765922330799831962032094315941357692606711929439001783931100270270040077330829912450149098133056561047052644633702930631690915333074299528167295774991185823533685797720343876437258084093109871827866756787472166312874765106236107153501937161223524771553785523699634331829372557363105922751187700298422502563559713764608962368662989976500574163947235212213619381032014021364586718914467252805879704389668431341470687622389235831340353998407125405337062901538833352952961187255133383966558189121269744800025614585642290512408114242447549724010284903791383287173419488968857624795285310528359740109136972237837086854188083909494835049343247719269777456765460563302257136585360189963431084375152136644883522440941913582693028799161254835482880497180830265294265218900239368047506777804131994427952941995122088725010286291022239620975719721701584143907796959140640799272677407486878660868363449787190268979288132017387699034115237019907961958602867866030983990878036359281774981771468774072554554927946481536187496960682284631667799505988206594382818002763337692890214619867056077899763352757223250078047394056487785142212550555102922708554728193106518346083720800086440306467280071988722019758812309893005257262526100643404715078540248054867352879278107374139571292337388081356532684426670940374303254020368346100539388439291132712921246285952836081954846833872547593672643648959789430255618287447631617015938420825888425260167619480962362451664308307106951912234095018190194807832165714345627767096966738229179225407304485223507286134287617999320103157373249657078787521866369988475926237688107460983583010027850265885808496784986481497065172670580496038018704178331641984765891849002221682912181051305060893117308628480614348387448377488887732092249498341763685982037160495321612056275448592711603500740976434934697772603881583376336765862230762931090764097477551192765270733578957366996596027476805757936363756568548300592337612216027700270903690596541187040690153166527707965265052526876565064016647141539746331770128633793945421043370822664735242277637590926206610050403013365492337424312386707973326871234702808539151223240378478398145963811020307018633948587087464110609810102749002466579286329392296944839387897206780219619416052134334996581911389372601922278885758225391301722492000485630125353047171193121744779961767064526686182156494316979159948053531104152742911366603204636671438152014696982124048373373258291184676466798304251190763631178531780947110292141667021524088644942237960736223109753718485928903490494928675011080063817726842004226552069312083354005699157227632492939402019303535176958406688605738253359345207092516471214487660584108929495752093179284962805858168576730229088043689728246504825367268139944333587439763647453269976239001063588317251695246739434851079770312911372105124334460161865671721422719088978864749087543640532416789825830009882824466336085546004188664081531166590198165524257784158354416961724169323664187103581709338971187084336498393851210325134707383098204662847156754590985028679575643674721017851679824306643591575174059898229276931753354559748984737339398139925897306696098597489488853665144385963858318651751306920315502773145088537869292050735387178635980868057113022181254772500866252368770780470111248556594478494781258909231661490340371790726990266933337788812783504899792389506416656164054879440245333651154411004937485882892377934527485680722646601033483055241017915975717332852481902596595794645346596144257977875555919404280576800707656538817206374218569319802503561806524483484388077133512848655204874193274729654526341426102540899427315951170841839803922955031713875852194800929825276388573332382856257019934171367455780664108310682825265794242866887803364029343291171640921404985319131182896322780843604345327288968658408272005842242493738668276713091655377494074592377511234217839194915013715354021270067728077808132373908548094211373925003634094232724604024661426699978270951097552299293902958253322606390335401933365900400069980698143278579222376125522507787102074011220174831684385210288496303902766048022869258935287149331123758696249481636925307663497372321992847203892030977632623867942410982150858414833914107028226990487545340632276073712784489734056401157397385727863271314368895125021272890178073152521785340683030147611784092379488117406246186344148397899253299510955660167236949482375094876933217204858969701485145262209059419631450027103437543780503073245185585067387879110954266099790423151130593091871850824723107082053166873157084146082023585150018636203291422188329458432252744665396269022540833394200920731821222492678009107654832853729859534495923237423861940193815231087244207297410782075799185362864902584222061770734528805317366417607738165624797803771826896213450459165100825614202658664882676169316045362426945142242426608676140691948373858196522616393067930452195019024013122301456249141305342170482836276927496492904128598393898746110099258105154808013910784925257991806968752921437468460186933360643453706204260728292752203903945727121117556575030583937117420572986471255809314325093313251124361262716519112738748531665612683606819709481916999729327846331643285042672160901062338642820193828205647384097609179282828633497587010684920143528889180478946542182968327369312503526226516055027865494849703600578989357217398176999252590966171596099346227920654599341629817468007945936043517969522340559728594442335197190512426616471527478077799603976186078742589189350829898034841251987632995113379968466276941270811283240312633526925461853858939771931788982418195413176177792933012073049015667497313361908091299114099755324387040950908355728005735613591267363565713986494810889028275278433450379416576809951238584991253613869502338102881617031947662179405074394938352962834912957612198871104855521931662738172599632946782538175341987884277788742020817600896531417845274848261449239222942794975690387187554449354118409454112203588207558547741732689694164911056500919821801338908064989748689850968592659634667383445072402451527153784317608201541098423019998163832236390429497130534103636530157887279096519038686614748425097319503687932472726337566766838507615867828931030058899422788065029691310353593494174840007831623320830654786675079987704153875982756361002060933425008168693493709118994534434927209897964144784926476996976250332462057211231137708422282809498632812832763797686575831341615137109913751757530596429826754439547599593930139614912763824555058880880401658107577487181182699040485171933814153148518796096700558396924129788611789623797755633851130580333893612643251948245838647125874345174939949138915492599421609693023201644524372425531146013842366497486305490535582879015977945519534975511256742393531943969245712956423629881614980177019648519025497050178654825452523024781082435606436245264917943683262828403828969544751991107154531188460305583397508506266100579784434646882542242946295507167480132963261228301053325540905093081966740417921503184007730303909033395544096091770891194623754314583006934990192087763744222377346800736787923855884589873456661703378565822479434249399426148701651033717779301868460174891761036264989694426361458050991276515100251071263439524153698324823461072830969480586905108801261200137863434917999995455754800087171285354498754623447331600158028899317763581967969975192694631295191107127862038091854380328445529394811666908137245135134857497713300547446308013630115563124953930044260525943830246121103022453600801018148969630461285366370969146452907295745691771172299610150250616592306229785803361251766878999103397571662413099449845469455890072765611183296981613845571574066165776674401832713275682173464218222500394042435390646566877602739303815584856755124431327821743341103236266664826216700768898106248850571656248007415189137930735159250946305487552639752101133850810312274421142439537119204793496236392549727840919408023171947009340694123388848703800584426408018294375789667123481442638968320388148046385997260838557861278040352579608736480668324049872823288207755568406313377942161922224473251523398910684895847541456007414417507254164734584168150219696628169584695090833914558106338237272978126031462299515741791562319718338256224681087604277270136841734428877409353987125178792347626024635420721272852848721089678477522433480937846746289641264462047035915790598887342852092112643197788349087648692082270039202515655995562624160387659950832094566243229512224574888616241963564117019692173576953123178814433856669339046803511261567063860629887221400983947025623897617649821476488277216818358496832026974968607337586845398327188716335485054870088623011730595264582506256775830321981359573036917109489408358819763480081020501292029725999686965561043540464232338353434354128363183642900973263308740249909159801400727429346522899127789648310148225640311569914914831913948808841539470891516384191917864286752752244082836325943554416190807788147784146599876249263327735530648114563769293788171655928382242900518742316816512218831609519100407639418347929841056562803119363713678702312798320345171265016655456896459142992498956288442423268857788721904665021456859250813004141051104055592647127940661545256623209237368962032643552276445563312485807181630540079716226042056261110762862382999873131796697085431536981437448401580872355642683026531168260590897620512237207104385888448258985422648879810038646791401875663940545410835678235568620443606049983689249386363499931960780519899209576038644937404603331438978531564868250927635178277010584498929460011627871258374795788213397323444505027105884126176935345179216219071745608529228919708734541088088303438769579771360358762261483176096758782874642607332200695942683039888200950193963319332818309142943551771677538113655018681111812933245426930220906480770493858731455726956083133408210088752513094919960597089015948077056509216328200140959982891872515339667054920344461919596649573012100529183181986181882633349094032696589444355772837770753498378264313550806407988113173032255737361788823595045187084478936033443983092184264708461644473320390881555244820260203169542631820728575989022715017104109248036356445163527076332319732998863749546726653599543651223316434679172469185504284716454578096976442871803842635467416509052685014707898053222251386637007524388065657147031724529194484308750861856642941970824264428107011049075609790949969688394070571586695852583342574573831676473055283614624447930445670293742279982328514339347782022783592690785964617490638095604534823639261052301148627210184586155729260303440009382646374066966545454364220573170636317848405108257674044074656169650823952691125627096001310043996886958513899309189116641829317121107386040655271035337399767342811405524432484973683168588640318918047315182213172337736351566583159918548897597987834437197033000673966961450805213482334231380470027375626634637172120920273213553404443303064844079431917003383066163595938111717589475868959950924619248721065118306264056734172041922770253530939865541434556748988572063218405582293376135050013581516690958160722641837095534192726150506930903709410818318140331738104279966724428844118899546499816517675816636812840293951743404510986838662585110677492992678190502223297744305328153601651681691424290414735029413450959117152089767683575904972243139493787504018429900146764464708641077834770880503071579276171118181876608942818409077177804873047238611775214960626270909733023743924180447156737217573827059959875646155086161799132421864870985075842198576294864405779474749596410770498230479870172972406592548435146800381271812406429361908086399633044665311081374803742377536989086807086856794774429516214079523947778891101395206347811033037237295815481223002155802813716432026877710700630435057437108787108708958666818757072704803637498142343227146108988140675022624076470245223335126191333253810114907386015741542012965245374983584001826222353658787777301003139119018559043180251336281798752388971348758102553773830185693283402895389753820906256699498925568964849482685721388134388305479367385195636378566271199584147152442869528576431899515774649954099508969269942106313631972698967875656514172097563051975667102184166367297560663162158821865029172797920118347519774567561638492888027900464128171902850094207806607663380648795514924012805840090484231526819950029071452667762953098382840202091931407587195716846208000069503494849849435363014569786753261372145135553503472187458112720404525174554574302184662724348518720567608805093779817404920255386167854016846492437048497252481438060875114528249114278511093617485373584947592375592728680373830853916819483875776458717421457768250389226619820444326857679360168014776597210863813073963339826275665031033591583108373580651183623384526852663240224702623892107263110225797562446750888601825883747420766809148458348183214036481161988928837343429496873831842567359839201648142452728880559226400720871820531426214458955072646505325046112257588160088739778891490204990287495503965500006199985601837720407688563914322313781285956076599989228783603874100634732959977629068472333446391015822041291008875796006336696157039301206789338556707121979739850542647972272936250278043042694753839206989389901875722987220036138173487064424454095980245571856695270712533991626504152974556374659170070626786934108064091637472263695643395023670831727054436023417082580952667620152184228574533797850083969729901385876647420076279832699021584780546635771427690080752275272881403017898646903099728583788619803612091358438236075147450674893751552461594760415772361772496427395652007799900610470145767989923188826056157425438934184193047205131318168890384481796044816426949166428578719531427894705924363291094746926066449169593656161311633189808095816021001800290385737192530783788415589048013465696558966031653776684366607629379149974438214733838136200373417772400800360805417699363245960275513602530408176419289147430119265718951572902425108980092136445245545287177296676671046717056843728144974955701739151524635597937806950353011674114321870248478143556111403696160001860873270311136849061520707212385415421059189620705401362695626840575739623589801337114070123081833123676293050711248537068137857028480761201317626039014259962874850996250782404644436247416789704040851551785298749760193930634406251809479340414159554661784794457936248762183184310471713290806741617845823459522911016459394576095871403906889825369950401910656364253357100362332624294868206169255974069359070371065175385161397052795961740468610492029502860944844887303602275834842092257064870824156783102754088632213506480101703457597539843492947159562294598218298498592840803913273228948392359655445540283597884642387588879256323409934722244374009992765407088044912843124189481839492254265937434578934371678612996355094042249599217172293825157408593079616177382292030001160102772727933109612078093134951593365190150621495508747238611437804251345699610624537751644913633206880632499759259474500377987792994895680854402270515394428396295003919570950645400998325186214653043601183540257415397100766270659331283142257265076499149356026544508406858209633366088416404363807094038550802054488963337780674155477562167954130314570630757899848101166306408073395056091456481424877413917750260843749511691185002218387540548618685039604703654643552504131923778424701325804583558041662878809939113578112677578918745042050163052413201695321125135210642467415560083550296847898564478673903624024360913369312882255426792205110708359552389800486115227547727623044999121288858023225311688629054792061260733996528557883453885527259071533693458454957722324224845568528119905853756200920301648672833836241434989386985860594891795451118196084617891634037452886443232650628325800334011049881864999691366015789490107490572033766013789433077220804390460581351653245326687461228964372738333982924515798008463365720011812469633140655573748004879371240075407625204947549534891144566886888687788897485976500251469784785422078481025507532161327118725256213783795534745421592929422071097920961148766462785086427691771270227682798469614109581981882515733163020021187193547449105652654855475232151125651014507536211743982992309698759368021855135489916418333311660198775054896453582063290311045334170591490037797669127797404338675710063657648665995684343012892751483323252999396847498592128429125010483724455075456589811007005847447723104464782704581430568770568043835410631076420629942677730878962342607457151405979462562117779383941065714825867460866467602540593201704915240778078730820597429468633595110277421836890324440520453473621744945654259467111623583147759121807815591293912114036176213885975334932185629039944333870747142001743188630700595331783836365873104453389531460682646380706202847473161685868296697447231157873637863284020393858998074918652423691941850878903036933945782475549523753793855548095574662322992751463747350461462937891961570645239939548756569157949341768951239425622285137846928266438953118761464014566655251183587608387465645499700048279875906777098865110313125148512278688389704317388315686241141777305321340955173091909447691841903155048858049491851453654289481480078151004648149656797019783219529907510762102384319765509456482619316733640891752172104493290350860305997796865649151108411864991574689509099398082629163283660413592136287852725662390610266565821218803202637742575844504170656506752618066367276135801140426940280478377142661518947355591646874581204513053111346356673593126601700311913469762690473430738856771232943254167891457204108781448999323344905520383358425101494599402974374452685348187706079521182145346702311072998215298515318999400815459300389408544728151472150013256219948866619360790973901261378989817203273306074150840801360648518856106333336988805198919361602035995535664332754084151185319321304722131380275011318578636710703223387144759453896541947243246474021481371918668179296584993828261616550843817769923072119978177711751607044672890642401406948010260888967377973559065951631269946746537329884941897529436904234013789530118532907157575211520445337878470097193374120056311376980536099525959836309244253689844026605047100531274371876611430363248209108684197028289057211156953649741296426917774881744725277306630009361039166766882482532559002556285643596997692966872778296737856995614177990526681177006167696741301131744737766951163929740008289362192911693788808743381815734138604133050689285668650884668919385615532565399217267727803761489955149003353638763632354656171798915263379131494847728423716850093130606638229390178785747808253855065553401739335020991012220343829628128063357323003311907408638774306774323544382347817723127845882485920094604805680082448050865122157164878259292860143310547624047852395722934869542475254281970777491089738993191776307399285847867175219944092764258493974066240031427884404744862596060626649812607881253755584624360941476526199776995177483692745048734417031887059584258904672812574805794907170943827607592380156953057762363073379635839283018091796270094471981271387264720039480766733844113971622799873917948936891093458585515928047141213541403812680787370103546237131682297305058230100352248982888617469948810175231735722548008485291257163922471930727194272891262424107367101914687398162063368194241475240376287102945866387569682265610316427589843965096968184593407573706859221860046780204582355326674408829670327128596971814981402710337255747130024923527721695813685515928187919357123607717737875816574468984420317455078026069152803201010286508187565934513737508021444975539325118222268238685577644612820552541069114967246048981797006378267236272197774989808523313311482241466641568242480971832027371598107692559550944715600035661751420153388416706385687058094682709479705714273341992405871314069733293052021866254695612966415714452906638789356907092651846210297343495250819542899261934353203402254462157175383757860984654323423110179349172936836719916399163249018455796305778191146014140911208200241358557208508723726658026184454239132611273577314313666625466827419156224097176206254862575699431699612989648791788323858532846852957057655939312255443939257520378280788791230381172750024391988717665793411430690003853232177593073872553297758906497551068452026130769469860861120542752242357843299192405821724119114002471221594478751483806910645599217657664459071089069710959148740193487917534144124839394224056810137788450116705533241482106926858289131960794967457777098904550460447633247906310478767337487042664208188092439653838378389312471859845938601925740065529306880162983603306698658079130759991244103358337839962354691937265480625859711308081768593505595317751618708267140604204099648505884691298414984482089115488597792896821401945372279070124241328954654210754475377871936267317945584417865312027482400664726322198392314351909266304097502941201384885936867665743679298485286340807177591451384022998041505379582428743631097938102457780732789374665619374113346761524829583016417941003051456493386902017037712189816928821592190826974013146271372602019838932779406161784030585320835588337119770445639336430028270364869288079598978815642969926976943281961351716835271442200744587914862164125339033316656299936539295301524722519895646727260112608302761569479840474923754768405192624842108952559935070290639597202309500222666777135060816192574499595859463233920353786798558777338612557433819821789480443585324500425564670680456355609434697753908447272547335166785281497858671715379127127882491311161056380161137131712376320176626345929808129551052300134874257268292814439865570658614591333300531082264573764975779935664394074283112375096433089535696032716167393689390160947309812166173951072966740468360334585417714625967350098719006500432534191791200311563501703493052246195276794951306981931675318100571709446166477570678596023596974122031834194085044029582543259375221953046369612892946231644909439602478670911107622377411456692527920548887473088923060724411702642965361401493252394034327245406618233826221620812088238466622347892778633061320033958813489383173439569772392380264299352011040534949227354548284947800335532236919300013894176342457757045061544997087529052942828938914277052526492086581944227912879749976178163077033423042048993467324512994597588462398815898842046229296497776011381028578692748696045370010777196956417763390857531429277005104633777087404720706017042102557613410987232092382443294687007393355606579381889484999468296150163911122564104992676842921393392502322489449814663219568068362331730850973432027898496293153891616144556131558941761983200660140144740094585178861004147405214349237659207199779217952624895279751929662295373050040362532376329396585695724087537279100310267334735350257704765681124551125760117658302551638510879426496637529084630797935998670532380831706478014080784095107058095616020555549659187637267411454690441427676947547026364491844226944971432198232681335125705176643353256852335602491038423807235766415568136599770921318221869168394311148199212450631238257893825594144897153288637450277318939651479717815582204897622049232912243284797211411816005593848443646040382578746584497737104761586917869217672860092523380622861039045379844821283197808813482081992302394800347444469781395400730525251266017614764481436916153441347214350082184799411466997571272880307846814286059609698137747702714324850502458114575891154935146323960791330634868206270346644349875900998793163675667959682736375027539567710888702874447082217918227166269660434936538250753010191742148578431700488607228646999938864246237985750752543689229176313354973236076694247265818417772008268347449256037299535504354870218922571267262665663458265520311685513614192703432124929773611458545599283289234042159502942628194563005171188091587715683744463765723567281925585308318406249754882647611427720231906118334132583404471419858844939249290392641889162922699492440422957007152841121816426442564489777692238801248043321129662775439600661319187566348076805541940005088973423003826029883745540574366427011706558608348872923612347349439715758878180024536872765789599064693722771377440937842632988529362468615545440309249547581126837886710150179572422147022495662077273534196399122078584328240879842045517108322018477233687511147092770178050799038755056641862824434138385289456348746432863638873912295369106935112949512918147968201063306840794715363508713242063248387621887877879802978207900066048952695305209884117978639920354080535318772332264504082060722792979763578450255817317456232719059291539161135138054673869780516406795613592533994268553766581844965386513173627057171412085435016593942653439538209367678881655736933246181138105190019380870671273542592659731167583144663173935540585491941026053993636218868710794803000952672503423020053630035177545198037047584587301126382491452703229592566442707035314606380042668359106621634244404673104444297881113397365538214239308101294425319163296094152600691257710121002374958477210033917401851248337876083078618796236641389661885814227921191934251224147638929120642565004116187930278188067886343689449195941707388545972905653480988977766692323495403301867711803964507012845168452506070171911553598443933233217435584679379383490711793994503551815912862792687173162401574061848096926634532531729275055410802972017346186724116320075192473875129820660206907107596815696433074377377678016874959102390657986469348652581657984286908215646949628409197774580940569703258298888595790450402323424005798228333822814171667958164073098780438792260602580568607857024380963217133517693721107808216505839044015282050906072009564215600435317331314426655879135696941449596201378306714629085859667004265233015260624893892632976262721923433119720320151274945235367007471883559142402932743471786843400907359297060729725577094726796337375310045160146655916794885505071283307934740939303254050224256560122590501267923031888535479660156608393429130227565954947332850881620210899286913668935605873458954116639925311363934115765172479569041167187750855647446628605733360108168492220207814650767083810076300483370269125791128352056634512556212994191071165163358193598601008679460262725355004213180772648488453632712772524688924610050424616190580464021579801345310367328193348554865153562520485133435235325197591019241067440199511946434537187487876723870113574080942828780638083612536596171540442195775377362015798974081482744844706472682694982344111785005137173193950516014460630746767091698594744541172333931701704979074953239474175288994734574540460262420898782171204321670062692622162374385419567374060568694539806088280259617212268651759024618235634052833184906827921057354658286643752159178048663442578537651709598585893504753302327196743251170087440530161638228936265046618593362099703103090579965962913590868101019938075278965933744215369853504332324322234473106362955066239453912261084023660808074972121184173122170888342280900009464072648254312801960211403646662756327539169659213958361529413765253206593110113436473867765627146964886705789246087146733724569184247059396111092735205471478146882988881414240219571479830354195813555543385721122845954926152456957960705640363711802154579069558578514479694374441770465085216001711387148834850179762659859711487916961099780132258835073369767433587772458162541880927954670719248799746633172128290982714555245885242504110450703971444526171525642852049332260844175972622304896136709267903003957927220207567514033206462440390544629775935857770291766089105886330947286654508969500830501574144070076208701689164461559479475431405086164492587340442733812488663422668748954730702915752553733044902302412801406517308882033874257934560167764023141901120260179887563468506189353663232875480509137128206656609919504100280550132922107959398388809273293321391232423633901698943712388801229648791072441004175711122284935039663727763840957564819188875770901749697889875301669163173544279930004155398102270226412950411675555962839334001354588538421942099283783228755266960193681896830820968938549414041104980098174635445432652855680636226301747203609252840417437799930698306341880991794590439956546580613466806507026332909954150923981887129522045202687275633131456088897379260081085365797243384378324734972622311781948114279341251160968829265100388720980091003981327695456071162929077183305053923059967039251750613476245771198011082375554184807528837652454441784074333242104600684506310952946770077054021679062196846916813161173604759620812059475541932814327377377133963517831717259869259111893297530967307933285896279656511478460507176718497698181328647145247905084163025030441994893538139619654964002318633869118814156266704266903090998230041165683996954053649734582939951778483368122188875689251309466571117562727798391574862400662440893471836738449060777655542433025888455604764503542260013531507119333492295036136996097283199125517694072228201116059807253290890770142859781721393651461344596099717070063451438458333376066346994003768223596361569171041831638735972876894759664124627441037126054859831427287907206750285831739984965337760290205379559067070881822286887663700143055673756678451952514058749743774666142127518770036943102357309714847251396983029880084147653955501378042995097425390564956088621699658233163856637329381099987118072774644192540501095242886606524955881665477842461372936059481543358741414742093422444213730514357094397700411854331196512747910182275745642444685141730394767409440911231752179175967322370437233285159296829883483497756854981795828611865465790244574468072421938670287440554863105834813382902745382350670920015583766545762235111774240646582228676531229801351482781612369508887011069945012795793133834446126037276119679063920971366713274682665895926032190201537650471824154010174428052993699578840073862884706195862991510541795107516291133091394590629526874026104818968481174814423584029144270991772876540954048267951787110091622076241638900651734741687952219646610502758103915136530048555089218040019883174093286022503299009597828213008031930550990322597317332002194980505323615439012097314579864518744138286913631050875159920553233361458488848770260331864838282703267112303089724719916200376829520579963829037262970539150837405787291896598158246545293192257703268366051026279495624428774563009459533710586685447630790885741882737878077170541098264798989644443720427965180570883863204507529595912391361890106857453302836519790969382122278556429987216008435574433183287241361725039156052354869510867273505711628981864103252115950074731017683958960045954366521957376635757082259182528392393314101522406744371737434515844762291443649599142973029565022267601931702674448871840744676671690154725983453606275354363769901585990916939372837116190468608849173008278897479311646914163771804306045021985978599305508261256210225876236663609571404319807540731270597421621829659440208904345226681969520444843677692624910071528444955205890140007070106500193842725833542908836083954577910231918216465443420300662503005429014544848138846364358304137354120216630671535672890831520655444901935419034699239556353430139879807108327956056429039006055546840811411723793510774848393108559233849260579490335261073540367877752791618642706694502138689817722755473838734458746331042788229231159967350119331457128434101172937584553811837181526991863761310191948205850802078503375447422377938507019979618313028438007186569495134090819382909333594127041707368559785587655597240603063447240486032214420880470503087848424808009045632477579849216636932881869250718308970819792311687886519702545021256089980876730469083045086494557098085194319887235075046322149602876465253491523519790017946992467497453668392846098246883262669373661208063216011257764828140422646717138750545404089875558899215736627243319900367414716406444243335657435766463580498798083510347518086886966278872746052906451347796089385304404590945179303974867141375409850926041967457563900634467911611917339925070821668008837052970376194763725594033040252477740822320773935357700237315938025945913006895809706565777839931041661634651568299314749372382773756576647145794909859102623557613930187840598785453951635966150528066634717741766458320754788730809202996573315632376635777257763177722890930012183071978429874246333161597403137692845839107051186601717463648569005524516517741652079213216357069684099493601019197242168768176051675591961153212732472278423884138114864778741672707245258832720212204036121131119968934419253186251694686375093842538619487903261766986270143486336758184190457553220178209728179481602261347438099722825438060183060988708347556794511940929401804984830508605011525207837236369533362767710159772269395336942112073999776184300271690570895103400190595880847165540419753839411033829988582279923344587796243387730170613766698455189067902317136327719231170575824642440854228903438975873831618723642321259190015007068849367753710901910781910224067969582361962507616436149808581048384669692418445388579092417005530281967138429446845670597814603482566193440154441299048889465726198472149912725809051085404212124273616507539324738271412010006132100054856664762233490606176944680545951655128740373639440314259208034967178197775104251506586294972724119240341979294088625790058386355313253846133387034639530541463746932751678863722659305233292207350982946200325312386224083352646001771862857829187388141014779721794748838547464209295293426474603906973113273690931416618154629329402045070873647982627294367718502057116225437225973380974606137294992590135108262071721533843213697403067385932417337439228762076404184147203236404382189136159443718973627669883163243128582893525272314497251018057222714573260033939089604830123612828271399430947140386560367598837878071913039751751503519711125701879667015442794063328107414329498071059241099027408016427701338893300581951190548036657326654164534754576619935288060479247531300078912793956113769143695896883168925340138829490440078357557034932898496200460682855613609430341590307598952528432361072718305574041750825608122828786880942079259548464626176303120604917632159916261994819131272119024263767992495713364383652498147496679333522762903964073288502616989476897981818942845614680339411726777785336598357515774055544581928368458325395401755540038439934269053303867228517087547147087826785556244974307229119210095099142471261132728673057521688950418097374914684082102103072271465341070588792399465104198007393764020378741317217819778879867678007194227980676575438299384386999829618929349940317150421386788723242187258273591605953447973533039272839076621165927380852396398249320355353797533479325917540599393252564606010452622146511525842661081265017699022905153720635004176923699051359744057004534834051627836175555370131073756085997770392343830352730903040253302050162659598119808429180731596844956284707706989153378415008476511427332522651996117662323680720655363469143146578846237938481881354219711569819912985747853793534897915585446933762204309239085531735086230592539628622006857489936728474342982821190401366123970100436396908714052484541428942948958174794012427598435317251569705875628749323915970439103448038815882792301529032733504880396801628896296537534687636750251540320082248464712958254511496198273103083845210414662627010062174371886799052103740883880245201902342865158656403027184709011954782597537584305452594353039974332925590855019416521620755305038039976837605817533585360157954089130074389102332860667421698056898792762473102621062676417154031183587084130148263546922429845019957857280222643575750272227163675666480485484117234719789901597763978371793368697948765670825482916650270529195671762311259512792385569945214950761509918756249558614888687502821457590245555925872903089531193198321607280604973446810954985779303569323366926443070151909320634281187325032723111115225703748304467773094713915918621669307844999394155940780278112539818751973199130301463340698870517168611337133851960456967495528747386635509184674660689348882980956570078370892086965913873086786582435580711079588834264189763795017230617548518511749478625488672801012333810947358061411370666702791318584959580507316092579859337925660867057602897671810528263591511019194533034813271089397874432946728128501534039181740838338064729721943131849036310247589249158474403432262044391672206316999688970473398379959507624777615241783934752673908032577765148101308913121299657223315315630148926494289530995040976035138764525074244876241791807158104423766828526364596404090588861708818351246899823235445004297306921702050347321994887331983208483601425552455846100654529418868924425932984969332934545852424112703287386133170694081424284209092137945681190134910602631447615449541033212742653083324735622111509659800514813605314694500887544437872593856925242343041123406094288795620099629780301032780970628631138259782302829711501904645132814079922486295316505253330579982477761826984243149875129371965297924730788081361274873952357111934312298494209567335604199510279606277379449506002763894293060934412452942902254778315077552942793719225953443364969532068981341455329389893235031791536104726953174331089460802869179106298924786792847627568820443119012221234766735866110986835277809779733464837434750380889820177491178486343967186443909838825765252352450093498539415344803875432797226079364805105879711710819790124675245848639494939625871100203566845791206830337657105386745594989028011618030953088723057282714710597195925195521719977823469947282939662529711004538870199059515050463238145058521974332298759493770611432670756645699133864674149825932690800788373912605728413638289124058038187958423567945027013980464229176947303945806180400120932975509958842033873527132204494987240518933678840826471296960780530391150305454119305703971219569632849887500704684845834641948413460050481052962424767037236794626635415067250578676655891825961352246507664140797912935514643636369253331068863115397312836733709260852016969757682483160006178683727752257537774358262527369657542165484305418556784259233783819359591575222732641647257840166503284054007557630461651887727987476125617452258399058665941627505453179723517227533136944948569392954304584203139817345661328163256443102357449539262768397334297997181072699313836839397843123715108856579735754765721736044864147595187368256367211885602738308946324233297011353567172495519575246964296536214164238720220815773159737216533198270454984616102625334647729837691570581126684911638109756296850318032640621162623902600560108479515830687994527220225638248555997748190979113235225717904243148068495410000226120463371850697496135718318211833961062243392124369265572668797182319837868517982470837437393155261249956761136296435109977314700443816443485837299876766060506699226697548699714330827744977894547052026822124657728979894115093000475290586042238918346502743891495142422347539039391135411605511308115989023145930313386082209498679483029605810463091529192354430260744004997516494694064456121277275586154301144530781558065638464214629112252076126027806933769575332426984755679711681453913180237458373771707122286416686239518410914348779814525309152013713771009664583108871646967792081259905542552074035038020509886101332922992927017440440889537964876431876467712353231773883195777847637409153123909036334437912684383544307000273751382039648722495814486078681051249990721042513423677243950808385275821245744512634030987229635667843929224685358812038533780382735201379337849692440239204904284545471693090783547546124427143593817603659107386979207901272010540190010117624864024702722341845388476348248400840680892839625024192767676021770879626079698134194212963730883131599176404082773122362005125861127462207573496816789010595481601801040610842690339489484983317889937129200871734714747951993843738474565751631405894354854612469920832423625583331749309302303191677352794172980329830406828049647364369901691487683085500666173493065943990260995557030730835847085156708579526635126852188157945330673066592515292727748088130084125330066927703603871329371435847317975736570226079544050026001685670036834314628724502400290456002868948926374170157372403646319432892274969969549688773556083866306924465028031855380301395884305091097143500202336721925146007862596771765914098203695095460438900390641517655256641285432456855305526805729655010396677628570779949417999007618880339358400810922991979605148167582995791713158158935525273856147491242729510854367774203159807237398134733235990924304929294688500441036985790354359820224606396094331153610866310789194749183535211551801888217573016431899774262858789390665687254139929026263982871870865828878436281470723754744503628292115955429640958641599668080696084810110350156245329085023597590785921101440415372485907481569571524452914335050067219373758681808127276216276154740937120883592409052494674787345417166424814023939561942307519653483088453112077440750329308505817295988858014412809617555581413124620991429380766870347813408586571298861554200228321231477600492385705244489704538901049948166466869189938846360331059525064921813902835683021374540973463094434009807917675503150935359901849362564321642090860370760492577344675953414417137022657276040461520300378494569962039194428735140824354081681251222996417016273291637353934985464471799166574691583952615997462250371345350140264824770008144805130914324053554863549285561124403385322529179264683170048659163462690020792755894446705352935704714100355692934071944925485630145359898316083278165799288903321549011621353904409336024609704486518257245820897481307109046600535226599868050759204292613083694565668256960140486066753437251962498837318036862876711002039674587146744468536201344779457841481228368106590810651319395975115010657502040538435896638486062001097525593588974203961009112246493911734834256437051857095705074705078488773997069178682294886478443184698598811874874728937564949389167045110147579373204017146929617189978360010510215481186976746887409222152648959786740464280902843372542942963817516624872426728857400699905939532647967582663614642975306935195743628040902485001136494777567406714039942860412491003692954076712733702586391445704339800432348130402502201596833427192513863281218328469706104265983561467710592171395137459086851332956414336767815599685090405138688288751184411164695344662254160870367682971134647742779100372771919176887035148306555635827193292621725986258852520646426094280857189760578912702093100243109029828466319041167555357784728638519266141382694889169605909313455889424521960546746097382538448155295157119940172850444616677566987677970487081989612504947478602260337112261426378983979277712459570032784556346414601514876862283165368614993797690590059910444511989121750086670647265020535943008181724714680647313572080000182621013569463105327763964884886119165662422653888634119157454858658450184077543398757066767204698746087436042215531803410416391156298272846587386588156190317828249303625545510476591494747799764034744800923749448334365688044092998593969665463146608331829075804755437232766119323265899021327821920010945761404308135170249732934783645405295563756094490061803073917088905199806221271117508446136326181023940892091101782377329466787064124299231604958118354330998705067118958922351996786180024819438903961609655463885818996449166271326281613131810775918858981431039576898064868539191617124214886275640797816768656635241926404348603510634725621231202497556427637226106806105673375138965069380853181486894192018293746692609936911431082279703563748896096299968728207063119241972752304706429242191166862908768221345113951966397522078036734450581291870642537161145509612470456912337066406272991199782033645246688280065877647469662578889774846922240667216666410750160435587258836846231619636757569892716530195012504659798779559784337499335359913552637941981383651217104925887177384298643725882873797916927141618182505686063688819190490512075982987117856466328415934537951787505747009571721694461458071344381258495152339603179374180287395576333100943300750198413271060291044362018662518000796236507849758386517297174166876535747608678620807558315778194830448572517940271225536918653949545425216738464055930931956032181517420620886356727335566304504597858420534940865259922778944257578063760683653415680653946668682079072470247223503789905084183630154347740377243345419499888748671759946390721266555621641591641633614450378313432696356895418497411455588509225225046196956989837109493309117071390225979090236777057983594796402621238064126945211737206754091621467806142735156752207513219865627899870868957608802920110572458330112959241477463414054343674580700872804228334508825356609389349481846026312881862780778607580760466203563555380315634481065928996891765640669539580574388895316937732257148700524803843097250226106614754987514729018722425811083234013416033867425907548416984764555051843469049649880230579319985646189144115699625667075363706083928919745652896673192918286909303931143627382747692825869868557109070549789549552507049327629037222224906665774153111010246152191663807492734189760930704683048944448126269806164075158999889617416163640162378412679799106521363869058001991351805746807439316648412039850299695215965813792256970029809544575562407662070842201004513638916878175300302954497806150246858727505628428886979669666773790617708859159572501971354455631933213735516070631699930365489209640770470878175605556887118872145122665273501252421729107298348285583169681481947028359214816570603841735569915958387847811915188272995711047200664714599195373384370524383275431965067831235345979895217113994167887166191508625163063987938239805433727409141797934095490841038639988110445104632913807271579760018785175240526960765954592863932290336140202051909998126441494198462250099014586589048336565699514390793281094334320697251629590890738443733540124560412361809274470516386092445798514210109293763134940231491165816491383923342316268822353623163962501946056391194468519472259596580646936820110424811120715529263801414308095742699228947709758715171778321038684155098733595625616945803784890045678111513712730020863331812416227101261224813507450732684266419336974254871003252934655328508297012100234337621036027861309284818847938864778317645720449688095924302254449344225700551140972930165164539290687062874526552730025383122231441333513429156261557613440856777582121485226805844910452690314247997259418108808956363080713094628171762169402597447958647960310257263242853720896987067641287529640631309871352808081257291148260868864820562485622026340210889721878063629524116708405513614892678131362583459656619043298273261626563656837349545064420698761638599646816696810595406476640290920387457366525261845795646169973986725869214936882785097728710538868087990735403356301658350557597561259648775493354011105406395782932767568891205136537081978985214714349262948129388609046235623201099732355979676326587113513400762212110614020616095793263296529933703656887528947877832034725199525627354376405049395114314892055176281052216846336103217681653746622218998337637473691824783803764643603419861639438324450283411061590989560624024819242348225989317099005711516442443772678108472206944307374859385644042715266448835181857110971376372417666028588185416447795647629655000677771484569383247527725283686893257855845480547470772435148681932974797351222589772928295687507384158061875476695495329890590896443373018248336260096838711736747407653601671463989780784369698640932951847562933135125703906077584266896922749507255549208195663415765560978078068269802099753390753513763566875320612439092983350674427872859241911468994818743598410168263207613494152098757275973384109886920306265649429690409573356434558843191253411754579157190711141415393225106082511433666098885715720407127963009237228727457177679995928181595138994584665916947606467331601026216455580950389877349771289100566481401481274395265750458668251110780870154942125689779006670263743433272969698533416741246796854511452577856351318077096436885819106430448962637023294352864053869742770314516400660108531023958587819700775433793516418170939820353332148907505371658368147748072314097752719689333455409532916274768429419431055489748620933895928198107860171263879371506104462091597131157232798686511741618669742345460452046319758670124207951773830306801204759895184095468023120123600444789359946509432219984156188314726442720652274548922648627564284324849240564537007041270377737992443607622180315915200122874009612023435182217921482679626514048578811994915902260895222997062531648194865302762320418753179952925419045189131503878400644869800586603115086716193429770582405125816601906101611367491151756939871802521491332351740470162186438375676068452379630085632942410647770895747981345873664090923051157058043674699555657725179514090341017439051448525127575489352929165252343601222274547194787589837495546331698371440746450763850031977450204933666590320191331128188232069271299491143598460587493907294533319411171335149046627770568215132372986376639994252485709404095408796105598311016281518625184875670262465164042947142125950458302949417368063029283212921759578195593897908302160594875907182540863177440475927590302518939196095001445123212487756510243767889397193535971390703829290240471480528093763761655809173914866194758919876067517184522628198484355737104106467710646792231573281893649827403252306352116629278833649772785482034433068380171045445186347014569752164816256369976774898110961200817106603126902037437565481924481825156478514537344655613541541607727679611038037934684461326430483856285269911515011301673357578173805160874040338383701557114658729234387246163507123640328316683035219041889873428226614718166920077989177303582717459014907036280091378808300923470086934149698468893660795132126212173475366330547186721765508903633112717942028760460137422975160706406547265653975414388222907010015862828385318368274171929003123087176921062644998761016525384864287157558400575764533247638254556043119320054333520286262813353485442625543703071242701822421444100204395475434706995240316665427678690894633225898162822946105402609265516485728538477302436799189910811797278017229198752428880443789019317127765421466112293554213880845535256479372225520287606449886272895287065344792579224826517806828054728727998649615691511393654406801451898560990294777311559263956470616676633683985332122276929636340713484087669995531861998870998510438602593888444997929536207644602174856524125479560916645403455759581054784597765686609794142312002437909126925034945965098770474216809188944324944760531623895135215295253268993232352247720584897303867447013046871504888077498875200026904238107494230414435247549661297046774561971081459270443932965714953472699632622920151400517771440828429733803395067109120168837314200415020464499696211732212174591936554069108117044294599828857283413814138346489696590710101221819340621298016470208121034473919600840843254812834487715793200351642443287468354856440302229935689973558745297122751174425600843736233159582540695452121622408315473632422858879979366225310168106082196363317886333910968154801536086783131408872974840846725889717075424152017898924868579212343071478320223215870207236929162226759646503082463601277547361282576959582645220767021852097859362860259112843940141818955888316546383826578894509287248780062471959389157671577737612566322203940020942753984779699271725398699135445247682583662320196236543555624807199768462180666587690853605219311038814591851953629305069912844235355793449288351280324469867271933145921589388275636487901737156512335065644961514681139079222693489532278518048186817131902299546124768407425781493021372635624011760575650313998901535152030042153165004305269609772934597350069394402679574721723256163643608922441556653587396392250075842866676277718769979446477818094988851274576592912350518130172029638551375190254044358725667313564939504039542864412882474436439777644954843575257112151794140344002722046141811836768642072031579297742917086900019365930242169310473602271912449715638514176649350801019527548938821071715046272628128850701729564196045308591491167250104636407886737343987052397775290091921886796256565693698166584351920979861215410509142079337406812624458155011495993366461724956046342308171107626886003533015884070428796455599622537102651009893838567986157287234325698683488612571113688585780472226484998251613947051979677175699508945184362668740141656554363677204623661858104542455194946940835414553754703542607907542466055173207346667117958389578811763638922897882597722280067337999805970504972916220130723583070308468935342052056007914534784591519759823716243332506145805058949392968288500348988658543977171672296108455489314903857914293509444378114715863900492544421456413999164150308379085126672646199192401413919609843198813053457995700344046016496151271277269692207552177621980221493455188351676208875082352203136024255393300592878460602862155223839754300924482330428495449525032327899765499573444668133900795984514265351691198617560492302808844639606405765529171111233913979523783993181090171900972145920529035002383512062748241967616227714189889045844537714911837337704697528038414861042636940580572284807387173455725174630273725584400584265016712674261253578166508986700218361939225717065836316372294972306231073677628433797268657030958528281396560908995007324764710290166777565948181936498512140610235403168308454953017787187138690547591479404348209102895321816106613950754378601438881165608665649823257351010610983240281222097571630880634053526779967670603683259636680677648880284204151576453554125783192205671735875286646161180164269297546860694258583152463665301482028094800141967679112655819184468215833393675172203818372766722159193525356511205513931384115086135197173747803533446171255286715280434523459660009354051525753999333059880039042968460235678061924075646603053450450671079304043694878227005897282883655988785945932153929715901336388843424878910633630472663375086780942824769621602924534754362982626266924388368760015839456532221005555853934622157992617059476166668956021891697439766343590327893311022411948825628858132304006373039182263777616636020415021789403034904318810028195065742772081323440344159319679508429414229323163959676345490391224916767561676070822151973336054682535463510082983965816833842069405350493435912568074792411430131751628295989231805681796308160495454588968076459382785885163151164508597684271842285377096183414630409003914663652935771267480567003575252053819596424754647424475515295446672523036580111343330397630139946287737666706389631236676813640747510779908017608458998273634111080329573180865279841911771391068281002050915607339768922494171238291560465254573790032711520572684495038480089129928576857475333386718912336363666055156039965756516746851806378940665346884846503064204600104396698828620186502930933390196716524005082377511980667611467017973494970348723786536855974924003784040239903624346923988175907934975007835894767747811765238979759795350266536503331839354353189708724544534350948380975847644527554737845972978048206312716720306453356440765835988970960759100153629383940643558991129799536269934657437264198810485897406809888832700936947523821092024171190246441837409550744139500244590987538870288993463793392539577398966378314277165071534302267077514924540906137447501272543592377949745950896065175666613475105090090987590084157885151116424110376357386350757926116241394715438361911366663180829945309303278721276627441499069593075237340744425528262769453805758694730110750998229829056952985752758595744294198840496269382382075085425361818300964614892086288596547967423776440657813803635427806629438664111505021033166796402609429662318021963729115101784816110111594667918268789013009188240160383244597069844139182882372224176953063238710158940279601575151491892799608481252184739612542509141658061155086306646578833121839016624090157198681908572187695152175983023673063488730716951412600059079177713715903945905985847665647603733239253289126705187939795464063472403873952091372409747960346601692942074696744018051265096920635320584538967732679421178237799529668753520175701888753072772930065918647634461348880251105264202818646846073336160125493497790808553272289426440823142391191124886949527817631371347181319314144568113220745810719107968486437772098094754828124989793135816205446098689706396902670709122342098292390398075600133337774890247866686027229081989990015248654824274661403343703544599447809887986442627293734929103323530969890793597494594548615079093012614030855500158126361818214544653978495909415961704013554581001307264823577491277085942719036243281072797225284985679816198775284920017479424522450879966697412434340506111485314077042329776938149128443420190334140897306085149142146962502640779986874929453870310202599630425332794938675406631587986888378689160499422783870321751167928046469772724920193063106257591089666666804095190039426402713784666903065745766657026553510660922891222516974551934908514681770389365547049039082136500854906162416952094057023148208281988717486727602914387585126321445529083476804445042471710890607606240857517935441345485062878855097038105811051033585143384548252097720118800265783553519815076428460170332701966468031547251467606381322140974511977416018504745488235814551510449647646553569861330789168219255797564971383164003552536004058363613105835227276020115348381677888575420434341262687740860980494991042845362386641265683800967957151391156380407434620209542597048870214623350870599993328822201810367431998037688904692297009509974773392612722117765134266909430621117819802865455108592107756254181055038177601389851658596131591214808882591858270401640478958566915010932869356894135029051855682826045544039295042523809936937165171643397251601400681195342644424494653268541923405312518784416364166484195221723612628122646230263987603934606146075093012380201982138175574872939665752626112817434265911746501447013207048311659074803495073357579996999144997783598205515804368945358330325011997156120077583002492409784953551449458628211080655273002024652857007411358497071909759985627615120634213134058968341531824563352088434964714753676523855274149950755767507933848142607266010806288929357916770842810544771117922783635619192779978744225584328332391109134541370042661444372765323972949257670127467049493413002554072869997228934326468816608249209977696549125949243303208629596623162335165195538438335428705919407609785807699093367869115908418522819207097672431629425909702653441028187598425712582575926013181389521989690072934996447951861862595876666888500059583908178148801286985196273284997439138682722124070954749420454893349797982863212182238467066618632017357999711238917985678975141165820328550400743238987149388899583702270947844828849026979612370223042441093199864192060827684916734516365774265248182887960367381182481736797565879558407032250179062246838276092119949647908911367485220753105858284836611927637065676755221418509354845316919245724750285892041835422920721717857272275132962654636401113661725873401744687451435472165912300141176890423318685800202546469298524483553831217211285082437461369989536551464464355581926213560183619046534237415528244743905071247744520297114379127501657776168074629935222737631107596699840495238463673199460930351563218687236868049690833039866419348575526941022028269773430929952757708814820487249084783659949140311864242706946705596041910335188551375458354614724625274437003592950092997359533205245735937834131326972519826321025938440561296908035557278670601388905452026583113226366724005350514811916685110024075424057283498205540654259586633618187062101782891197705034118341196313789742026116185858499689553704123506840525633815465915418850854216217384650109922915304832489249880221182918213653595796354422004202994563775295907202711573182796751918291365783516275395354916209381691653665885165262317777125882220709110914114844784448404146617612146397961616295358887444016367776414720574438409932733345818776931837195484222367325152049239966732369156812366087201319567095138850350704407102658468270714017109002578440015120369270615776414295306318799857505940361108363000251084858079023538471587634185984928772499070139244168583440287448244764070426512085038396587236913538249973700041709016295523762970638135188167854614844594242718893020495395593632427009561493701900048064546043904290234664912754582305875618412189524241065690577385156539202561534723043765180624102908904323442602266621005141397025235418428609714525890958950062074698295653610150571125257193054509324249202390386607518534980001655477398451484276217135533233054407188631946395482308732225918544224484957040419585820989286761667207056765235180235607491503647783500788166627197462749384406267566205238263422472494936616456664119603099385036739564797774883080634661225317301106196828208945799475646988923722222463961923314568868493454849688986587783925679948817264915158145848684190924786061056348544685743001959531603756182805430919897001198917075622486090027779282898975695342543596500114862703876489670445974116668717211804594806575049522228110110630766237945182143192925695311465535007940562317379781569528372261210002785808730215433917474499797107870960043656696125902736710998913772590622040354144453400096788659491717719355635521344987372085490333033918669352947039478481347026237842378727009799276815626716362407463060930451976383909502631066787300710718034916827247351308494236713251585393485070729414149623135343560153966876300546250439144497732381301858709067427229591769766952234159581488644040380424228323596499719855559486420032808826764413887031048398909095483580580389113409574535462015578656424803735283806984427279399745320694482065449015683737090550659176485960265205858906954768673098365802026899869272522176979214667404895130403026872571262523973133185157677742342581026972914215198437747038640130451663897447436566139105228765334529179157551475978427658912788282388409566596481402747870001569977748028688339879792840996497627235308542566732117506451849815671759154438317949382050951943705870746618552760163348501733392498171352609818836934972400692661030129404432484708830003470812808286717218797571504296304933231045903471168322057580213964643679684358349931503714337439328768706525937501953244208371985225447483826104490461705094326703092336682105647094167321003314603562676968559849829179634921767961031566125124936766231676852579472279398102438719704629192930434883751251043834072881644050600421453004219502303780394070858504998619792322291808322173813721154461516361185051695495435258644051762149403614149366243035909785654394705712148071122159954130521105463087976569257866153545597128491742617789696294102903857523611936169743965960614322569793017247070647378912093088906683940100886556235202160240673558927325116253608057485802087779514776643649559156135937736602474501126418800487858079655544704739743774351819487537185170866234583242088413150434898547115396207702747147470252437635954530361201289055282317905243458633083320530016426987740330410992002998426547918802019607867447030425067025886899172176420479620858700190185908899074509064141644630725550714980167737148550340168558572529581590111391542331914932824295015928739155534769279212097541685460845447162911684488378218665190332663278561884741693978974465046670248208473067819853537865103611395034519120137098466179135685489693205613778223263209561513920659262328722360015870615974545677092264196512491856032280111294554737070458212695577292287976773929698312485953519095900488001277569612721050072178242780924216800855322453664962136548359305476619677823255593805185234708685528065814979095634062744436311313063802500956174760480339895339208178060123589621615072110162245353027675379148714035753369374352996078851234015710456566718451520661948915885550763375488911634253292817457989910708189213118993328071563501015882527429275251237364831337090556186241223044187236862117088847274624504017501091574242922601827846977556305987389661799620343801776423283500828117095660237447528504594055588572096123849510405775361566459349136014315019004759361808708602892840831664167910896969623089546232501666622632613232793281433325708486870086371721848552736831456538249295915393038013584958239367336227870517710434955076541987610911613581854868863859240652759195323540782506189354658434017761408791827079497295810055848426254922933468811499548340671950751258397116613462752545975277870388985556692550593187672253683818411174699842352877576572925702574138830977385292421065675649531824320772932667322358185152988376260081856108000022304549209171313170755986631243216869937450119693593466483365753431044826201483120026780050971330302738123331914994215779012294848757515567076058384988807467456245707816277337353265534284628416673039988857466189839334256772779428687538824761349531154787814642485772790225943060684207620250772465200306858104760872866659135095407328152941461811675021106276700338214803313557608115937264982187144366190874668532700229289147318998661462240198276103521128379371934060081534192483252424822907599348477730896796463946119011478697265118459419078287232734792573760395614478777611268621453263432004461695035352949238925621399959376811748105977349720372343614906834979332685043019488721218305210847224949499503716745636065381296487201216518412088898078932847562728260594076151718989571031885550380820869043225165578857808158236876461484803493916383963480637375620841558508932162938155555557255134530894034969913577112176982828450230843040315080915086569886902532815590605108286050114474964106999931589066874744931708154296394348708255501059275874047606501950170159653513168297522900419938999677726819954591476746224340285120465403655420239744230800279312089430409958006735792232843585934768565579113509266356073739530770139259611568155788526235123116178749137165334913126318916537084626131134484978174103415123721140300784097007763881476178074940328114973548851611721399330314344953427337310659008376330232360017091908745148651022009095766978901682846403929664855509012692951817882829295452063535119378121227723934574560543742058251650232648647926096344854192487805533409252270239064092175530226655358517613044948189337459212697874604460705648100543776505710714070413724137725059937763498918598386166229276876093134768027065661242820842240036132825945271873788791585852423330839457394426775582252986757612566049738642634060053453818303643381696374710133351392598308373089127400047659052692169871068224891422637071276700181316901146487105855019258630640098097148491846285747551883938063585309838822476137008051740747320614006236580809331978783604195267297866898932580026148215512053325588941963552450633582998680701535678565464272788154703019680655093487485149840113237455092210568862737981129165143050543643138890977111568328732797426275812883260100255306184979259157900688081758852402734700141523151769012569048118674738074874371641617783018631797314809422342776659891960380037880353805230628907841714131577084716319760167198376391618585697122378485053625609374009431091175333858431602801837306346481027346112701031282639676371229788148917412231155194146605825241081296548804234343728681435651084923252912692014079464086101887621069931558425045070053366231663835961375002664570498414467720174506913544307274207502679257035173510192217799492195305964459379461474645986263580444833083066524373823629806645232371461674853214247267927710129037761296862050077690854696798138273367620928903434995554623077821570713848103279976719690019198185343130694515287712603129231002652018912618012055740489893395122920040480975604892643673910660420892706776691321854573666907278368675770932970299691056732308353035201951208992357419639465087982643500620108125379660299406690992266576373907504945095494048153206722562544890310230801380756371498862017143972819044889920455849666145606320612622936407395385510011313429863180620546269119997314687184057435599891261238611029783044543822872817599984535942162722834068985994315657531519581991051373942529622739084439897552710500857465283423649086249110396495092120859846839000214701590327974880749470510155190267203546120866485388833116102108647343544589356545030421936676814035882976208723450864820819882910201002185602046545106976512825982432366503411091808952080812214266373188745901973443366319292909034398248270562834394767283324387359940140145228307261635151332678926709287048281287820297473670535634016923500027933344852711942756627173761416969753649127301789974939259883412234163692464406151741365615920151309947933024070918327510885004885365410540543502036054040442361013384897730907694893567443441220770262828470523977369336739958733114220773398248420036906752859596144988866099205905349096493416091065277446224736318308749888218619956187498702091943795564096393360087254935440554150121020962470972378312393327934624440734659075809707962497545532896129497400575776617593507981982389938650392100292277876913746475058590321410679733945149914035789006642249343966367434796142731238028506405128859639325613161937488427358243040085678468644547050893120477605655737760354425421878204427705116803644162819710035934791795756198947143986307717771659314854851165909867196431995447482119607589512496496038267580278442719483138918571217893533634973696736036867532806686952573561030443583159035625300377683166032130144478428293549790417936558352233037178968808674699209125440189042531727616820340770291347814002762794638075985396981201646834610454613948312398073024467805999290612170026405417862688424350233839988956957962710964584475271449908827676784929191898388128429918033391606772163844494091752332666554169260010286689741972282882010011770763922811881279570299171471041287363451210730611111907074646995482444101751354216471696558290373530165245985963191181145187865230562296135945725771264088065618785990495110906906600080196225662753069388441409008681413937734054062908460768714391550500042457105724410820359900902306867996930771678331282866352595409529407968132909073769254660513379007221135396031219597803000624165119272635044747130759805977722985381688770363416563015170736221168142695616149886248820235287647377735065469827900259885421384008365416224084329075685975704155667419412485406717844648721957233981591038605821049489635519702978139382254591486382352161534258847670449524663287624399971692592119428100894474569536931821124536667395897756436981719381386293657976255194039694306026188593319218002484665104529982059265575082241145706890620056688190991950194524866735469665783356770226397657859130217787134344912545862838611103319565684589752382064995715400613549059500761687909910190915316620776250354365823519828860809648894242322982204229191189725010102886506452279243931794130531887147271421519451278154424048762119676659272743222254256335660290972983431631185558840829898476814166019180298648979289079477355785902293594568100414801389901703245630928809424367602720544968010130156544811556497691973581523050967040551525520519934952328115051934901821314501254298346787994284186300868727343840811511508351166634457008610601612738434456809994592335142492472012487302344972694841231868329328834415321919084925931306740994197949551323944437335344264581625328483747214987639962184942653868521209637084950300366269331683092901038103604728700867237405464632068351236508373150500336333133042906026480400066472409296952539114803245678734535171199057284321041891605520271182032876270519592793901452334411410347494789194883350662289015409590298870436449150306292138866433117753350009814056438585643759239525248698629233071131067033012433245326265772942452694849340540760908971101758147778025973979032697344687202060191877354897951871545668031948817917815077765939099217741288594874874887296863666662525234507694940097041672561301217607593499343209370903284505413823273467070738682253055688036782851006871899022484175318123134577469467945380085636381149100717098689004961026923529076836758252763802509784033414736961730753982472645828965092706131932878409093162399041712208217116262116428729853018134069724346878465356203246196487686740366120010974442529055835105642979339476942707960197263451984586381583490779085448248461885832538533263427847441654545555725114937353968781592877301397383290072777331567710017127492117044044053022741372473417279882483134865556520579032397140982226067279690226032799547116381322641537280997643590844975527864295604940171259360879107158036593672368955963555487100349252872065383333544603207064339474443390968993292947412321057153184601807821844778520353755667468139490034726872783908472294530914044251029553070615248242037255882698647710407497889267176345655727922264285880106021579639101645872844725336957305863247412694236108997903636646570606677918883214600819620636466236452103652315281020835168023268747878660698901710357666217602334842456142754837399017471417859875285730486893264732006230664293645941718410096695616732458709112285982249058443790170048660279374926281764079690679381708057794776366901503232413402424969372936319528316556614065437554880243108205991493971477855580218034627650579154489391678408771707797155312181481795346424670067865940671090013668636203998162303183762125626061430057056430001884446344264484725983971551166045280684806846125239234093729571351155582165677906647072841322915215304603370917465577767640087841589391131798813684647575641668751841222619295438165488799901924625443242086610448911995514994329017988322149781350001389740825988926006148841279843772783203517861827574501806733742477011448585405293192553829132879904570634804501714211490463966465262883168048212684358687654396422211763467696421254909727751438948602913831235790504789597020115377282502475934882017623824672725507217723891224561724103723872611892577243944595832380981258203015314025019257860977512696986085002543947917552343981294727230773344420070915708707404937157316248203989818449106285590414787724770073645716589827851922007746051266714970668274067141091018131518091460872338823038456685856572141160894226943055524118484811073488277584842488015683808810161183885700561888847890161694819800920374220120547642897583757285927221568609752489820858835906563731800953377236129077597140994929489643035493023404887098845325226417079751503515358548879298388141176632345219729425890866285879731384839993468542546618850083198372387658901997113804331243158229835820687831100426405041548014722627554957429947413337181936390083271615638368815355158530082027603271012813250813904539706155671314216173821744259437875747919533915345531338310622619894281793060450604530207005159463722956225664871074131941770750779306682165848556858842816474089844394784619407833871020633845515252532244787437143399501710173954868784721283636215118083673031321255735897560674195988614887154525801055617593383633243707774354363730449933862459037777689815930812236760159175915532171208634783080214004914807910924212190359451444271275794965163460558655445041049776231333077142851927881607517364455224630943748041681151530867615895875304580730470265505095360824721696079069295131387055240599096335254363162044883713938981112964637640835852957183605645094611871718514697273109892721787257040764925438475490196330876885301796581971758364777319763026136932772729167532969736407938541242484659388525177123002848132270179480170912979074077169017976588221843332499868157741947539077777511860561558453943875497460160387682089217490695943741062387168366959463670390935290812552413831168268098934671979761307998854675312879821326755005401953676181683395115116277705336586300593560328114128291542994427317443857261230418746021094554273656725667548762580351885767615664302858229198589677614120913908418161597477038663358242611054200844577513085164039489255573853469926269245625317876680655808144026754977816337034345957741177070923203207693880230451121285111111726083723672901926321528875287544230596202290595617684783008358723822109598194617586227025427806377552406734505603119748383097964479199838550672525371054697451439126892042768285453450158281386117579714366011251127910655217903031319636338426273780088039385973919158927224959874479174759476313287083435180311436867311965804961313536566861632737296571193928500616596503057818796483621902371605131682632359905495751187245813239615917631773525075832811260992479056537574895898968670001506687960233041791077963448004569096799524287192514895438873889786864128942422765213900842662467436442551791112338895428359835071480163658748892532374161785111336944653863614871470175003165367159330144925865954474214714729023080276891052934103126804539047053656682894676674059199169399774872731535364106838966352768944407353806478974704209286880636721888867109175807281488566015290013929112225573018606479922811640476976301951171204872858703432454070844481008905360035520966929065025590616974452621182356353104745103968482733207032920351598216826613541098045233076942362333480704073060939854196369878230753694620033432184856127765791620520780617580563423587864862583544380917691664639079879056090563484863964136465304018036942623492181025229177651407778862184189892073354948524380545874747316374532854484419542295889814408684298745406268064009702974982063855879752026415659427947269738430080333864534425640466469372941914366478277620337116660037781604358528986502055588338880513983745737795021931458512476412901192583796852547902920963630238320930081646958398284718371006961586441976976071737270124935702784873367711548393625072815175567303194569127663803032482984193866920423222886289323327819032077916553839019025517175771512322869970674231250771131383816249186361371039488331020671137882439827242351440278191696511557705427560338922705349675338209889707927149829112802425715519798870534194092275197657703284281779440301068253249361552323370526501756282776869168568287018584641054801208075547947539993445887652262068349034533482169838945701256424566245918849647284272073516523675598520029211386324071028374173601390970124428425642111386098691302579078112403445431017662115343639082744731205666528983763723863493632995364274968995862729984987086114261222798403068765809122079241076980948201356045246422630724132091509048578558360411891871641345417631931509281024198614807156800922818720063942813984547575311252827365906268559457205750472627885240761559113858385405260385577813206675072329335611696648466440799885326786316156201457000528551498079527991742752159816031810595062162252552868661750616412494017054998572182812906476370419040729407937729218538534124489353417764720009228227918919343043454099502386127033269753305388656658885143065641829957827907297999858843445332874019941078112146870925045583036474539890400434599839224697074891208756085072346020177075973521808144091853687749613130396877478388848637909588091656949196053157653348013132143409350660146806767182855136383507273747554457154642698334701203829575149877539221201557644469436534493193303149694299780901214623413997693024281039232863609463633551886680420149994078972247270943147629811297749465236741700372878532471140936845998194014991454653998958172116842030117912502798256306866580543706717685727914681766225802171087459760527916721008858062469961216683628856011000999723399597735328651520223705624046979892499253928039277592439219423984333984382196807402064649233988247895204784780156126489910658852127602935845786270258935750767330151249268611815417226226624180530572269958278533841364423826406243666379715230492305455158125325048810057131440154332448480519364252524518742154411140790921828088525924283573386207428898409613171261958626951228593850339942188543369594079888723502097792328323555463043352650133437436529092730574571133216156083447487630688524566911735887839118247559869723949413865082227653545240592233398595556947039496694474517529820060745033661773193269799862405296279273076933807165832755496066532815894001774955647755960054726692978710431320753274009652679625074784879464157008462613281279901655830772241725890714187931500854165877138145991042484029682904576597870800817374178153910133583842227723227911293650303769779604089350875909151303540791548505693212234974719125150327373048026527283296322131821721793961860488077858357906699558638289626482548772670873347314292636455524872486108268339414118839878850123228640195175641951285629625516433969618434752441878212194579008500520604638148782652271616844085579251475314809531370251645325588421640421652006105670491585782383677441804135948965221652900986119296824588346386314845327094421304189140538656869132133062589680938719276711418626181559122564518302631861700336319226555460345646878539384751364945708620188457988047345839876677482146289623278031859522251446920933327607773880402979704733204676931479159208496610380246754349326879975131292366429435531786637404553211906639916003436580854720247192355526337094645553654380880306777430334803045269920016430933331414933149002622099912683795418267407321954916915017053356187951542997486973853636052123579412782193987390903083603924673030250276731508887735333863518544546390842663507180798718223681392252112890728837774172722408599720413479912094178939458368395081384953587579384193782475749003223118903147075150383430061139884352584373927456264088978711185138845227493453970277358756662525816197620864721163610645457826566315576959587179341701950584397768377331699399155964833356122581641749781658733599424729992679482824323391982643483136248696157767592390421068786998745286964038356038405611273224463531749904049110076650603942471726089703495160631253410738623335620008289067835847291554244774004242455471186661044813483028899967463403516094168915674505141577001040630689623315972260748089121801002921557684877559869799621595226508433683307943421213185004861687081817498846143079187554471619061348934177843648091708124236291220329063249305650073550401067164045605206796570891146440973059587256428300322297559140689867665655041542181072369661959818198684638418636777303722799720681971285589703342413491046067399486631321395513276622159198036163855613988811276085374109132989671524195818991823369591384400330592386896844522446097219486584893688476700611999545145071630293345504089096049478460070973576668157504960147093687511958671582035174854430384764961706658163488467201613311494046922639479508828713755865480458373098069952610216828903052027608141904775649959838531939178493630468288026821465753574338609852702877097084628965108690490500592280558107611745975365111443614955979149381719697659792224055339966061120375880724867476220933747330289355961987428121024195191708839726341398175382287971388643444979317331731880108811834459152446451793134757338751571384452066523660587759276406426682559807288393294519199568828414072928878125825581097232848758034843366253601226724553920195724896493561354566481734210894055359476778577793327551080824790483853238453831626025042542693426354136391687559085781260615625201543807035907162315715114231860005700894323912322570786726218137434939990139546967307149767049546288281257087527343260971988773934645214281170780203002158766474653687196603824673125553288524624030273176069078558925699797242805819587026404709918828467871137342953404297709887313933048326320592664537558623730356962557007198074059282528871694041772080681610086620234918755868109846392797673635623378483747038956677403020112083983132786227471991732474796652637315305384681931566581029592284555975625880762023099000666901053851313653414834051412524886207853548252471756832325494582326068421359453394031841606711696023085424661821266979305264448556511466716868336110140416059329644943114897957358134731407256494490541941681255446866010705995430975222127253931328573910303216652851192732858240254192314377537322146089961270743198572518322953988529119042341302544534518192767584279399169529967749839501323574336819315975771857097786188347723568261786664916747515835389881192628587624460873481666881400536531118229215181078480672558365667791398561520407342034884144338860361367407275320703482482498098113436019083696936308367389005664598865272138193870917543180053803452329244726362660915995097838204279782834683293342092855832809645352308634713129436743623975751073100537869883477782517260524275440020943985697046956099302716634626556711997171292995178704476310315986452496560737648955901915231052408420998943127191611222826325108253605435237041123571326930312454146122638085978424968704242239038249886151376224625096353336685209581426792221797270890949603232207537910179771697016019940346536881433796526296974798817393711616991217288558663415329646315741737242495102944846483250508026991412468043486152829335890065628254622042469655928061063921224565124323350186384480361415951823282366292879331249486148493418731640231583658694355126820983838490498797796460587295664425639150757413299358769696008063035464978711459702330916590677636258483690141706872305891190032369350969066232215295566636440692487303314440444032189680064397280369168985863145051576533285608939248610467961462952079656503956692228399384453180098112767593366741796211482727234585077863187643798339736458226646267655260440051339852906169395268666198889749469486207544440725960615455236926024624389263340857558085294915444598955753980578002021657015869899604670937233655975175837789971507769967813589033489745518586590880411691221776975656152291084896413920569815242470835814514608041793141579006397644940076254053184931021199717698032571685935572160423766712833170028613205586984113953170224426611246300978335435319928957702588929283153247991889816300232354701804963011060884428049719137258329966676724078276036201574830423465353487428213882513412758617326409095849704409147601831550903416965776170533275640171459958971876278258493681199896932265034556070193072861390566637735203731737819299758103229234295574264438623303390255961970220601103766200908796218824954326519961336532224589933376333518880381014086824234288120929071078132193031811976436268560596624195722637018508523853877268185179230301324224342260155906746788377440265308524984905933054812149255257466456829576555770531532878987455010444673238960496165608291030930197385176884738940350008177947931984097931608602148477193181942073586622382528535682300744502194445578410237273023128003977064959368617600374149960407675698132365334844670274355614684691616718848026315890772473186079911796926032849027854721708653914457963049384955736788804566490983851595709340612472170838272913848752118709945444646994682680452588612825662609354932703018597307657115221465472123187062338522393635777111768162579803903877732346852308931757552332445946052015423512028849314926667303260783033855804838469769397326632191447164445067622996939062689607703827976654393689985933221091359291325444641214507570128841991805803816204988765767899754063450369677973728522018159062922289292682052733491550056629714226249238474892577205081114333787278802645184031993315424266960869766014394808778462844463068620665498720061446526529821794631423249623304593035909707337662410311533603471595429450109940266144622172740402426624629673489526655373149666296958505416984114495702856796846245730588291558794901661883660182943603044513595525078858203498419148108863883712433730903854901579480780344734823705849931987500686710050100116589753944289821596812630741079872215241913913475896625992289643850416851866896430856516974820033867415909938756288495929606762036910617624795869805585596390408754004776083531620883640330176407488911681359870111549603022437993071786679695533039541719954949453548239639137882713832257702605739021097090026994302545579484532343851655117570484938153861290259824261898254026336035765897174698954680298470844653736378346633625380322851350752126267613432032170261062835498611852648212687847701815197813757394890008839259963512370815190430554363888162630229971524316655594743014172597155147983383744044722927236185642441750449605714376662243501239078653257965098946636281028311607717584620291721776373113885544751938456997116962813832336447314630428889316390376234041341471946489758978303063545846517776887152018067118292748830996192655551189772623370274955240142613117647364098724996744926711152418999493681464950698446420891586745470126456576159461901047582489710431227058503622981293791754215171164280734264824080298857830489246747240688360230200060633384539247492918190668807945337347854268382370337783372993856163848174951753918592413056829272975258394949747931580149202166078453100867769181004546852550021059313677967120111713797932683566230251492419466892613613699051136044238924643440324233811123588122016350321029160068704472377613651951468171093353889023724849901721339869422747570865460518491342686791435967239775759856119461456379415597834223156632379611189281733766913755860068592638591913591916796411776823271153412893079992184195695550867016212739230620424427925509461666446966089347200667002185533028856060404499681021700146434657953752669743985824356196510957374213733177497200869914236944468009237670764256330065083382729166252262460037513725008749866483542491278389586450200595394676269898711529681978554911772319652889161845928894037243846791928986556907440964506735965416066148669437951664967675815672473454982838890065220442101740741227568912617901681312871680955414234889858207584225430498660348063073978261121644404832845460264554487172368667329468648731106957702481267427353114987966073924364878445307821150499476280517772844486700216978730835407530487769399167569077975425798004551795867605174382821794233467652071701504579275128473480357902607039667807447201293273819583884833812365486529306885689733316776097024911040726330119997088512578532865555183279057194912690950871851449642024465308579327745034235914454077435727159088025121261218317270354821600353795998341814824268535114169414622115513700881750967974053755338085228379091206363506283723052224893602869258470626954258840663013600690032584801099445937009058520028952967785388253762948765185059733890326995295203115169986246149045538733710985988408785615956985725159496799138996959893009815755595323257131598988916829558127569321779828385573615691906048593713903591167863485847285888016175406391464165280113335380413415515032632524625165006419404671675514499229798056516603414986838252532324311751941408354482484568684686061609797292996338012596198419243347450924054480425157444120087848341762718757113325914144940529063512564528676286249683191762180454505708551376307342584303154509865116347955502665466886328518168329000816897166323846775559746345440596046596478865947174467449163657895354522068510297470694253726690887543932762197336422524296046708856749974978253351054836063056632015434833144952723881391114369991552270331635867536764996605424899517678336163366830027133804196363486992420579159307682158333467074581744191805664970470735516949212979977602393789072455555632910606472369474902033324573205766882001887266947899560032774125025150760135018925007844087919619564090974471163523825778573849349629481631047574974725883782787496642038455413815193399773893935929317269849233796819888242607897119983032398852682801622234084689564345519566752441015110570601985213446087456212621916050760010655242409747370374558254751315154003675164703315580641432749894463998691328092427363870464911439720233083681427812701190995629587086788514840022705102245072072217161502668951709569613686080316867817250052964322825458162978557589464289468321718170514541512610386830821511977324715311434924701214380980929744466392176379111836877298169950936983358914672513174282381705721461575166614935102052618873838545515140338900226169741876822151906082583609452769747565339745828967756002657676634231621154280302140908544137101133746013904831156618193107708496787643628758546802322885467506038896514276001416801037885908785278198716194919202688008426659015241571546312399161622160094584289752127239773214911741928633167966060997701630235262001834814199968510581170023981856299416163425607919701845595303909340173704841998515502527227618512124257535952232937307473897550682900793357788288388045818400274737715697733238706908568398801852497806798484871305034223498604137689700161720201897568278321008158096599205506605431300295800528656743337582017213014503002187088885725205092799391344477837382807229240376504118336491160111780326694224610668134603483529473032008713486546544086385219742076448190037356153542129692432747683709732211353210782942634080137232313248113940281291519090495765906052954788336064671339329076419126826726887910114902705880946486786498898422653443689636651150870479038942657776858914951622655762856005288244681067385826170581009971291559484191997919130464827213119861627316467660933672957575487323669964692830417192693849514573681236593152233862671368745045072689242582061491527779704225292102515993510677467759677586932152354821258344267255937793418671012383506732147048617777327538649844419252686178989932938637231608238064964670831343163621489118921560816980038297594362554340992384430475876200232917405683978358170932591515086111731990997340954945434729993395765468828884619595419787702104534113435631505062551167691100088264753854843136281942052855942720089086462315304239053677041452098967844241658782868056125310968822825059588802226879072269063587892928321488390918965447588870183862788214560837885091829414565719219081041641809999648125470287544021441194104181748957314708038734965077359528094732695641986805423204436421199221826735780745227549125774106543315338273000695614541143996486312931935379843445210038446977339736826733518899141806969660607706593641478452398433001834729666673085549258281933739126964827604050268287894792455860005584722500634047120352627465830792834009809602197517821111648431394246431794092496244980950858088592320121136868449434467170575709585597341187519935030234212980719975096426763869417563029302975220632607160424005978542598952697174526752955096434349371865787959142065496137243741308367020474881359246891608141062559517596801126076951324120095685095636871869376775548736522351510633359485151969782174088728348302261306649009753964368507490166001867355338419725406931173191072911815145842141854709200168818122920374493869999751741682079743113426862101198899465240597000077115719572112548824626773628024471487260515083302251932301835666684421082427737996110801817107808928618086744010073103475517848288372505837503798693602567577155149002382820535114505324129811882038503356621956551902248270323622204812945268725797041676191473869857274423684135596063317931240511358093985400505908429433089176695073168755936173794706877486860272755687704800123240263273892879118283928201791851897465724488273298612128962278307746071175668920455623279013212164637356799186571431948172813505916885418944432593478345854320194688639685773375825536402675518426547077218305020330421848764388987135023448993427835607016964970081684266695868232076623542945831268255216061804239899699780819437128853865830770789945863043603268035135490716621757113073906510854446092872994928750028574192363518137683626134354549851271842557983599095908888320226354665034490570839986012676930030891935685443938581598571440865495112798100688427738695593869010485901255275016926611260965258023278967425830305951230952518616743402376807266296097286932987748400051033152453693651265903772519843320318576154193982129870972905774839935124656864858850127671107779821460650844400215630680687875080385302860952955318393805393569593763325343216478596562298069792828401412913395029588384945087348234015823387058663993836124669416233502986721734357868786011122269117144859495503829472096572496134255674915611608866948225771888331952043520533938024351697642733213193884456915992187678813211549107786823480323451449503177125570169920930679274607068069170757432195882751335427952100858113473019812621005084818270693343289168206379138084205165544075712355670747415475051140696567643595439890655330793191119320149333515539541785418308129231046446632108507014492132952467684266362272369190820250551596291640732601718677223039533295668542907571325476320463948887540846552644345879545726531574252215766604915195465741126581892040143091820151529982492548168714058200075253984228055727270737973833747963274938860267671385613983158741955144784219795232805146995140897471532577581151224311608342644000493561945856863529629184925097308579139148360318324031248869798923569996812144668643610865147901744593931309818094977292371718539700043133278920016698564316911931664265302514964801201205412501551411641376527781896676206471482182006607215681675142747587478288478866387203727386841339677314562121986272509932223451050660763838599569289554832888799449265041024192649647827031078317550605568786306488557582149273631956865066076542613607805317325364121514244536168170480700889910742696669676461217274377055962187506297015788799325904457862432520815394592434993404409571914273497301829841242743451769117247553471062411409464185196720160877897055911912917083232380006863955842259695449263108833511549649629901920792081437376267835445330702950144614346067342080229590486752658648419162680932231727096559239344732380528046615314357716200390498124134680451902809869422202298927557868563034279148063467200610335803389984844214178758150890318358295175882975879119013788761741523615931212333567440612831752814419539618765119699230726113771136542097012075502956121946712335360233816927721278239418759688141361062020080600438217142984511119957134108436519430408897346698301560868942638342004881680606922208666600583116798171846847065276842694603499143989700848281756753916910348504114890969733050716463491817367427428003082913999566732806773959074099097810539842963397940660182647183138183362006310280004892023012297328281501487633116486635888486698346428090037789726036329498976495023441983014621481969396596679216953851625909244594996078993352695022166244032832884259867597137306457071474286457957699388221245761005367922070587167555121133848285081174344545461113990021444856683713348689106699035222316678859254286494052696399778778846895108732426128047286629599240609032208224148820366114186711539358710857150534378690653309566172934686417408473113689402451715206405655422481391397858305485922603269710751705535949565198897308399852742387005460859438293176316242682571639744163327707332532655287526229128796495981334855605197291832102915183849340538006237815061405312592997089624299539370572730920013605542199766416730639959272086742449410275468827354962661648316575367632912035208504397476523724522010647828866837902413157627116252545633061706727531404939243266784014863137143092814969647524652590615629941198725745956665467850363162188217837435821502395971864225767024461366816132901228452594059878054088780457808098863558087441357077683210262217634983069045731510315683459500584496391846597806247321192803339030578326910729387442940924214453743202324934692198966686065891375222123687071652941178706757407669340280418110214011588984288813542316747443889046598602869813047533324472738277637888415818829655961029660886831020485061509118295327648612978043324888573606904199863106875046708978865032140832911541986814095572347134551214729145706743665214687745271339220659041240066247419713013097498568962468514439675223035979463145241486097441202511196934431013906020185410451638602242021684990506696330871871635185672996422493704332780187705443502351959083106076647558118998403482825277970441169418690381317528979056540210378516532867187914306082883090023411816042852462609678965872916425039331573690222901276641383177900154207896167304024113985431697128228779301894615802739387073208837016141357793697804308729698993522709044576660333922423084158746778379757254385940390708997835431078148680340802831693319465775778374727302286921638037297116542309384531584030109368497033171830053041845904743702421544751133519068538335203198507040959065784727131864476087132011397708070476427857120084441365061759816446519053613351694188812205296553342862858029564557101759561798149451604739765007127636370876959650561333401844228422017159714695022926329381694415570363886419884914089608311836480142846287995213304588380432981313729984669570806778371638974545784697980192258886901961242507090103607150437098107799072199648526679501337940063860197574756272443879130377666828544491382194256904872723518509408059862551640017768305405389675596732532078568178068452275164090452631082336528190411465759141401995920218604028547842701823505680674852820777145811860864786245203566393360055452218887855557113959213761446520827646526791715761442119083035456650111221342859007617310744247462913224624002129761663010703548038996380570805179066933755701092077453482716487969590218711107105036203010548326722929671765895439802028251714527038525085642431870674019175683413748656266344558670942274366114116502381828584510488557103963043460956398206230657104604669926626178894659427916725585127059769761870105499567465153040881246458645087320452921061559647332604546476560146114262713887840999003379745436844594658481741544124793814928509427626020877981595287833918163710988030242319865456818738796122894931241278235175518457769143682875136372518879821674642500782008805642896378731096260804360274717543117968575078073987502578983655937716886069533382914039713869205212015578460104210782777492640674804877226399936900883399623037635714219716120306879111207910585033786539032586444913656313420545372584304919718077542787573973470466965732340433098748563864549208715987914659857746751476073127225763206991006428899075172894010185475067947668091643678520030597253472366918556510743577338308943619478230345632794388593903282781817463187184097148629966448820114934913621293441576925462371463872738849923284240888505192323190003722825107015967330494222854341380692151850173539585603849704920242488097193296484802372128788156748270976364539658886499226475269453988480127431154982347510452597900951261267893913980389597977982634524725747438242284328600045676470372802786284164440291776512056683395278691710755862409310117567202534751609365279663237722533733814969081799698802107561501869759830832342958998069780242695894858801338233347761752631746481101211798491929087944203905194255090001372960207894189044406059911445958736146963520549563901442660011875593626754765351839887194851393402360734542846768532485608155693870822184383539378170138074636601775099635096691207888527368370634032644462973517500669035020835675924128825308014112924981556875295577908955735105244210075920900894866396052138640708602458215977152243765589347463361820221459418814355000743508375124480394651131321389889273453481426282497037402320297243400551487641648484441305931348887996403358636368167378023906069711067359607970645932468073554262685265237167208718192975438960820855225787666992654285718221509669551149192727315214208507336895414227150888028924266178728256557626397405068507002989146130405142576693415959281845994666010909138648958477465573816635519316656277829731245102360011799157483508509996853523862159434986143621905691200626927383273673912560526822219858082836807749630473301301710754185218893809683241409232649332577660626667669971385291828245202842344478390091745714570539471825672259894143151635520922495025112753116870909941116717965891294532397662222496713490798300420571332577347187242994744385153296763223655324870378980294171971159997406582268875569807409262595173460420517981461850575212551437982477034849485161930088700539668534415753000549423901342632781589513958591102352947825097608346749938604626526223003340929650047026497335550766160462503556154926343769815355180708481216408128593982574545657044877445593370519387224719195044695156262368932570750277115679426870213095672031576928797561664243466757740149477577909135144062000721426835049776154071568323190945222310878941193095219952478966986683445854481991643134265610975474164888592522753685252529336044982019460753723262476394347757909183081007503929530496190462251013394941389524479697830314711039321907479149101824210989258524768920618700975709657927734024594779157029891083614603498757902719735394627243973807649974259510868906152125556387154618946756994610658672313344544775914193752210727252522979641982213512597293582663325521151933710113729607562104669229180492161352066074684517306797341076941567921118888056719837007902629676551189671080042750974836436976908877581181693943540584422863826729353483004047025423441816813177046883235440853390300745250149351424641377088512027733713511785230276031495575708980929784857207154239949732642865716908705586073891198899559015155300147211921382782936777070672740009027293522223076554383595507527031764428991692298681816682472270209631092348318314845193359238270623768842476571328595009833729330957525116551461104056484344328966961623402929520366718318690789263150218427782775500041166302880053628471997884693836334909788927037337823583072084777800837224760711854892117736618949359210050580382049872730342084118025346710022358815598349447579960768051421757952802300558241914627233424405392392332538092911114988471185966860801692746357143315831142023753701348561630396512738738015386426074694739830933665963387409981685463840827544156568890058890786269045989070853955012698288825690468320974461188639337389938794321417931396872088635106878356813265144988639708883777795430379424923186635805337318910794319303707390154430137094971478893529512672877561320059865139326138179157142268906694145810382969307516564257119409691130924668337211789738491778119434082694739702190112866259657400201305280425272700360449446723099581177018931966431476657387225284596765778047664583451089589191439097728790148935773312036341335444292211638397687716791789106661290536976471933734470349368873020306841988684416526291870556199026263408309276618413897703038060515876393476092202953211183318465620198941210186553465408204994293761698905770281567084151667313860240319489208313488947471662173134872935042916002284595013838528334064909635408196628490280839504688115199363572266415136355678170934824179067605281327204401726502915893578100375475631560317058309338973885009318181677662816655089536418538804716537396016554115983154605991304586422295156833037262919578622527721824471918721372353550474424227010097844738364287810860137953197125850555885450490012149784400547478447208667439170478728950143277134576831575834966582413859391720449758183674154869793739538891165851352980501069500786458041299867285634423130346522958206800468434491007219855580863739897782706421068677490935223313613525919582591600052765935596478392936426271726234369949947842254966664753223540752935732380530882413455560898976873751519122571626423840918590201835040560127065859867529316402600779578211400602368423994478123953711930362145526698713256198315301667092014285034574865988210040672116906817389588934885327045441362603247647379429774936646279022903821168153368651852091006625239067222153080374359270525061762620740410450151989793650804342365033143851851975098001525900227764241892225739452599838820722767046770863549766385334012598541861063625942854433947014212117538830283889040925465837590148467575494794685852378700054649976303873510573396656165884576264563874043982462937723648850903982244351702511504012761321828234924028844458904492181987836900547453171370526330930637609205517886679837399841223634384102787832345330933353967603279564050338154351211103356927723234911482261378456401151232610098401175588903607517612171419517373775177423766920404474506538710660885820669896207593927482903968008575078013735311918934721596145024206068212508374597545778003788060323546564676578495508635952671339634868891877045573357937920229956676885162809751481378878530055500654772766925938549405577598955577595462464889102553934162699346434151936557779673869730762980282720362740697202935277395092616302992536460935681698056465539038797746572953725420627101852474639390783203471321314944104290934109492448416239222978928286427808131138896623382268668738583580667993932250436169156722240861331417810600521066770145046942537290291935622859796124592258763066655889477892946192583759167518954135717159130842557965419170771660224588226223530907857248643489780357911447892229696575215556666861035276666408062161195001693038605026636325202742888596331738563514272711097159136400833455027623443893153200092495733410710063266247024507402674089608292456017042402351172841749243160888054791979852645093075449287146271028106820337683526824617913953187768502850269951366262775978126774572008155647132212833145687206363515430409671163950530833753719460523210486601910010759017222856170273835076890092382007521264146952256326756551120220975854696057810945662058629110694725369379065983427136451994579710074581366267893717301977357840543756850330198618939533692284325585276308072807997266633142471674150267426465600523018038398707840508589577674619685856161116093701786534667163042400089738749508526103719285247346111994728851997031671980047064979493548778081216237619609878422665319201188671060633190380221979999497406346549714461986444059251020173253443911758467244801387327795466796421110720753298654652072244989885146176838271407572847032534582527902588566507598558508867794545342567071505980849422576013524943546824476863060375801860262625739242784779098347551209538458797257862282158751285470787852926761506354703655906100716984015848297533066168679511604093853095571023075385316785366810299109259480364164081955766629334032944030288131097356364502115005533062806768372283391702081326269340581538096891959927631840657664330632059276686676060811963165395035095548837218162432332321372742445320983119798981065600903839337344794515228520966819283691238338663424656120659595460768147412927139858437569419724217729683490573966893854126660816977844243058681094014512228721553071309151619725714965565791158300943945212790950594314165049451161854796837490684222113165726845008359613931839229051226858372809184327324432985576808288595519710597166088039039079221095849036231300483818952874429449368127904339424217056079438679597726516102520937103200761569521745353347749186698402914535881929464969318566397210814133692907780697421029225047400120092937201225201137658013926779294858693698655967387449032789158806986244952521011439338230527605359315804000925288323918247694741370203804511548391035311683949308762596501837296956880043629843514741281002120628188047588064704154361545085545775215996046500878475966272607461381770281256749422367003585474979968615872715801322892047645375752315003802439587996100998954784216279809347258705386090006216026221588404933790139746768059129045540857258306575578932604477605885891146568243088923254177837819395857941544553907657522910163387519749654021251754101843217490639751154414693316164695029208234548177717456720699861442018229075829600977690829869215858296642553854552412326519785071377814026291524456665818520705280557289060236389139392947668047344464008415899525484711504744565598732698417792908630525740251169602983886450226169285175604975346873371175873778028150482804353003529604645135644085332297472900406876160098983892523721915573884283991972506810108198553003465628155277782725915766470297252510822412871297848528960694845488116833725597657360631749021115646854223735541271765461136716051537216892599530750539800230852755908953059986928171684093476893593052768137431373647355350913367650713792521967503872237807916616500462500081281200772056029526019183069422641468784301238796999088288127978870153638737546323572167046581550806516087309531821768005167906562213740783428463400665355720697943563192639952970889050304054966683904134426363058793439721767391890344124788173474859517525378529874392170300801227558537831975623793023026433582464417119277809915226342649895106254608368703541190555613594722127852177974306789895216438811744683326767600313293543365649718741033813159433748772445141784490138397228065886765033871048802984842179721404189132278833384606078614865178659441832573850747627401890518195931139637976523264394088190825697691299063051591057464618439935484133074262489849731526740198384974094110579957235961543182567496195533216717225297118485814864658969529149618504630548845006073377449516836771009678513607502783438237244493946008373082154626518255892027247670840644890345349677138009333903427874242734594312487740442306503284323895819719003312584291661229653092153148432948936033888678234221016630629640742653159344897765182529899211332296700570428436179725668023792975554185133177105126217754452592754732809604076431002126940228068841734124224130869630473860827845256179034182031819765646748806224748770328252286312484788355215081859485262592006758709426470188280363822546559730277798883453934367100317819777519316357294757196799038247755804204602971010842521922746937906136084710563725181485051744254079588082249301164430820334071711273462276454730728862143439291166643125988833603918741952996000031921585642703779597974116379879358116497700062572102563077780369129761887926959086497570772266485143692874667499466323698300480311549307283814363044070318732409038580163719027407924037645868754601655482677778562932679672404334869594590841715672477027222154639966692594553447300219355594621521667209499400642578689865512802823715895374342069853824106381458987022010962749023772861366061436348466085119063235004761205200554442792810886993945110154920782797728068835482667144423524489237993058260051973671019905885243689250823949534735870805245261110742688699298561934171346229224402655170118076983333915531718811335141050962315177511530386537063229138806174473425348848941077379337641756988377679465317159315798317780029966549343821287384586923493241317391890894159009011766177154391002173976343467340582199406220868159331107681265934506175760286666386283515393055786782003275958814744164340554755226069130446915092491188441141829044229297538706024618895782589380238022176805224460964052845084279708850473660249658657508650466097090834559395391046818493169774529087352345721087088157606961005923666856239642517988749327424447673967244539744948448902361530098849503689206773660570287788281952915848380654713488431761987461886561641041247660973148570109023385687852135886031024273174385597511738479436740129464291792611214338070428319430142394346727738339958154064629963925384221913367265513865059970000881399188226475526447627377366407363836738110952215520984149197345048960116263810014934254167313651396394099179328260267008203652668905476949413057235309221170548794106807448918468460312309418446634742106366827291053067639610668709210244168412860101095269616998886676579813114415261770432679159004733670083622059998874509751139575201607777537236507899963281151466913210306068886000973282867577292167130410524523593169739822711934377127602750840778586415074860456256001564654980638759905644993938492285616225843160696949414872066537761795126113320889801702140115364573258904268243197696035565251848545403050232724496097426071198596028432137466941951329696346828261907664132856665678071048013630195238824153947443741994595067122844861824420390038554716334499489208917810118496307140080294513495805887355634754998367366254593333163653618490867810577029998925865765822818101915873321692855790570691693912397120511338927698559593287666095851719048074395449119573664823421711807184920537640332783682958637963108251077426147861118254442317727545755076916718607266802305170942776973680532194169519655940857484749964584090272285965865865272718098102806875384358947741200340540632354374039815301175089444722056469468521647311000106439410897213794137940376742738611139223409011551399472496298353069890296881486558596153122334929381654010524659597984874594434641022149347594810828610135134229656503581752039085959386195701813034563746028848276371314829586342078792306629838652804017818836322163770445011438409161228137797329413055079895223353655334020134963965641784913166202801098395726196708988064826745731814312717874651208488190289976168857758076683628270301048236193564467138301483781525625152601786983008308747459817927779443248730339239429309272557833221527004429847961682975355956334683383379004677993332177785103733204620712003594053139160748683871929096345615959171852628558032148364091913593663751847662296574692002300513889132229941687884589308918667874252569611998132720492696303713260995242794980646112055373580884972775747336833594523823078050119204668299996187421586829396383324686687372829639645694717810654079446535368850597204908135170237398220227830495590481492435169145261136339247479736934200091579139342104931577447812164301243356498077923021112186036956730216282828179413072245957550733726465922863152193858804322608525569858272660881686475981043726976795833950790994759925755602690731424843751565070752072224978339082073829107537122518910532280411284961071235603268362822382515793250857668993321607511304887640523211062114134804207788974159837819608232646957553348460650889653234381196207755284717133507465977207919729433139204865019330455581630230489825008371143791890475700981874330747728194209985167894268268803493463518072374486712792808502471528273032411921238340212886815658428772708011531736914282533991655968890928346783882839756759049947586703881962017467637705891552886181223201547730821951558908809113447388100730487342580988488327583003458245934807748668902138258007444677628348206243220212193635054478445503652597379088485683311568024684654002600462586906775383819610091924310730760177017559911337758267386591186213454151548369441009131819730976427324753709515626793699109506675870273563862608432650626839094784319873739301058781766648160944612226282710376760315263328861732920857031990184333888857727821589738155081397543911039926248163299693707574206730081683747069271078866337481220409465264582087841053240170109545822412208984697788297876797543531363506055240712641295165626938272407049261321071091072428662467172760797441114956263269328811268293475653607448541318322512901301516578875148160282406860352179774868354198656034574253875438002443023512595059173378766530672423212235480390966688628286839769544672446552993675884590380712077477840195320277996786283614068098446317127209323697543847795663017050500469144360307833861847518504106395805458583555267146622400311314314763394668768915983139845849658064710365804161736188354348673434593098607526193909062839049201997869144078091436121158970140533127699887690318004746116476693212108598869409174252401414618383277499570073009176312908229589134135907905456843819296866901304726640015157654972935971087408195669852066351062047730145097142112495150711664064959582582982167902398535396197575879634854636729850920549290559168328295022897633692114999773298033532123583823534297409976893970752138688067250410974808741334162715324061695994032692043812716008858295855659901668041336049880633357737071715175847896635413146053985753528548122192319906827021102254272066239684266117190593607348799071603348627752661621818010540996581271202855467790437078384786025789047868243410548531745282668894858086192337189836926908123668205390087349307324953436499357446344949235682160733170961435671255015760386150140575010722549708939561552402163571826544233030486332600287968207318031036164699886346085838221530665432592110059323703020359034376805364928933724792912792392891154212193028411577389219933143875341947529000954075680796483794077095412050776405484245633852854381860770693008597546352103370034091160858887407540591780953278343102165834462407190693539836209598042696380966667373955047252516899350132984626207461208688506376003587818239139697340217062178908533944711823217522694248454329068152901280998530049889734070279760946443348182731793457497471865644343644247121434554750097979052257840880356213217448973498708834804044064360265573072499146014852447734351455694494577874635947811509937300306095555810140680094102976989108804297461684044873466366730474864368066635032199788581701688303380383885358888740462129754832435737518792372269130642845223339897517735942642822770835125186025118135131252397353599469974784473992734922510503187578192562109715169443452365391317613907796449487084867628545749800294685562770817716123702266822724682055059097169330431714138965309287254510381083142643703954478385459967349930353114062797829597741241959243655272884726967680385875405373727174145012482879209013638083093240617287999831197599022676363463752008390762932312815997916964685184763335187950054175929218412692034427554044076788438207779178867028955215439087767208090052280597424324628752295194027357262560865957857983292288490959626744540753110824429500163856611722897292631424295698186800620096502029297294165738980639338041530060440507236600329496135452823476034087773300222559730059777166189029023775229552645379914695495123423268146198625739337493502913383681682097755253259409934959151305645818125004325940634727266154227529082316435170332386751732365877777356705702832919825673120857696577500394637619005680337579088934849554387859895264316991637919549289754957179150825345149762719491691607186359475184679105207512637923522827546865711514732477613572433834131804368788551829011397032212965870109447768116598774975113751267961576432160169406668694884251269873773876118341659553075475511213798201530825168636966556369036944627315551070328260484177106947611637796612920130230297230002223778940249435197054785918932228542013235102441239639072678065008656687450093974705955485547239700701029846872364992733722820509219668630890100123513889597127579488327702236423483236859675190943032503177529737533721284031458613846225639360649445897617611238037621622789565331924817386952877871662378349477751388689177431341579119768970042363608009369560157560153264536196049879987133965843253008574975571176813421302319838016555118598919462716562535147125029856272473774474142987139818909924057490101482823715289599306104547307086395832069687481166997779049616189157966251480316266139932914336784035573959414396443682041128535996665671134352695641094636766372913550598572279944711647217185101520164077160665014519780958411977226502503710693657370783502643720638148063503489818024055460663294351768874278913572367912003071566575588707772029061348503798156215627033183508650107454433066634439653646872431265811352711106527296466914448210411050133572790202930445714571550859626767369972545082696113954178992617025026203683066521876791373847053049791624808857141139123868814581392191332529758504311718533466037990274042385858383564036852038093604744220518685438528892606936687757955167847175660019949362910549712785094200791148849143392855405279283840217075558681352288463891462845590985637404437917860212454619850044523800476841320207274505540712675969620276906042325842067964733514817652397457362092985066861362223004969940307709768907754291858442478901827373801890692634044623849474219556270995692980318112602099409479064942733161981373486717153513968595724477792481896758260961237946436160421239481500541831556056361251970764846127476972753713379234056483673894170701018080461723633095509013593764262410557252410067746888840702759488451464632014222000971955298059681787433106977127882654750306322271685834340666418242886656675158024263756267056148281026765378522800759667592104686656870183301285412624301856481835758605676446701962325134558686821874188242567564713625630551771357215995988259148738685728689431042820996350925732957035906125791268425985106685576288692851917407477781950773706301682617214410854411331470451201631318445050463114157635666171977283071320530585406638509317310633088731300545537305653232866918240755714912760490405705563892511085013447908514344513442734860519273324822581760835434101452531826898700960409136274558730382467827429682524302969630369808723146086889593148856322310308744295201503266203980004011007889258004700597931064581694580836655615186314983109901786818977488973175884175471053710997760164340029765617108893247111516591261479308332441641420767250767832168667175983530464584913391049280858320257931735959644537896447812669914368460674176636080089485419771920627305930732138502477162083550991448769278612737155561297855528180715125537205715674744979122154165278639204804928929102850161917785111358543593612215343726456954592500803797618344739227851795403935806433239081135267621973217547218569954225265985444791161734293689284618957065412048382664658865250334825492176028542286629727766625231045124932327872774422900220907267211357015463586665302207358967449391270251088892030108809652806906875600060681065709717152582713567349606496256741503267802212910577998327034101437474869676032203226461001582252571835509447049157224838423409408606094005860533442739744615225658493281936797552063853312622554082867187187368689698881437718404264954479920749787059078111011767450498161093152860115729635693440945807718000249385994724004232983092475368429011301242996847229661657322281613585857477496695616456978641526463220702436851819197346192869149278707273068849669294809274059131300685431975249357300476322773896069714773070067480653002576939670325733439440604514790695964358495118308605126403921100213505079408719176832309958801775983436770916235286405055991246804024312490807408508029763934207609104103762134728951495118188430537947545343603513846771644188369755207284997564466422030540940621561905255393364773133073942487454777143631939178310942571142468012096418722696079126369488807558422325584456760542053301380927483869555320671327922384158603156650960377264526803799440390376820274490860617648022808177921521890308478391517124320717895444613296525122299686685173903030207490555870639199900997672822901813437057821643035269840564981742200603932700466023604028594672304644752400725531810044266469576939316911174324152065401818903693564605984704164789538294430047287267961751213268342250983278772516301631725492126124790256604351566024014063990696663310344689991460167548026764213480128027893783039150573323912186043216171581459650055856144260609132442721680300044708833812442048616528740777231056281026515142720208121370613189618149641644394016954553021359066390316732971762872801857430102125727422539006066538412655562735422716898785908813604236599168346780131003485735414524298563274454505394830701865961894837702104670724053160491947105541313874213827355691115457949452696135070463727706248833890461240312663939060363605618966433356662972262717236937442994823402181085096322561590915928701508886415022503361843988163938480459642598266030119053921701483567193357324372392888710635563971361485371477973762877717342100667323668728095880704458863383267707940962328938499673078480590988518994926316598969618381304326044753047923156942796621736047420055926720327886366451157126213617331020432543757160313976134924070779943063142201900155183193796939070560465922223599450228955223184029929235817034486731869539371901987733598825520965394925434396633736940490939868251962253871487678401118133564300872040236245732389136117184043696758889022398029199069635638668666112793725872232198535041214870735150516915447111239489308839784721981567226516643833652841261142898566391596612862383927277989606574443293526556720426102380453424330481971325307142152909136487245773948242036420330611304123260515724162481762625688052263107656654408442349296672231685264093047288844516751832369945816915197690313016206564716456171125040635834966466294229367096726124869066058725306389152095730947018269298102356608086522327413284246808953084146897405989458294232797568268922421575098166826272143088712949602860303929835046982476080243297363600874922519644376137382687294885657806320783311651085554124853878882029004245143530127424884827016838818464877085190732299275715235664914512022148869235704587238724322926740327490092149599894395810590848046328244141882831049079833877640836566571608668044879137384271944007214853139108691649351223577941561237249046842034843964762701564302565463422755448019955075997207182814525166532056562000772100930410844278606417400091700273494248158661227924617496437315306827931294990974517800851202942867264904637108380911350835043318810278342268366095440246936404022945204453565719713674484477151347451916325583441017654519201330426914637369356709652464577305487301101835695505976917850340139637467311163974815834235330640204349504695927501800348626485437609739367262780926136309248661060182358770376933391975007846022141195367912048135873727896984559136240275936903336483905904959448738620956812130391124410904302256230035587264918131783186744676057168022575679519269587551425658135158775938383693063191564630496644632664817586294932611919367203260763721099985000621425849309969883370260783248301705496062856341743156365420458405271542046109628509501952607289663479658264455138710655938691059470807500496270771957633832171359311294214302206625654516071585547840420175089937669057704764422047096929015960858692665974940873668514143845151394141386205933821251521756060272971856216988347777177631798179550044099831313586693222587032638146606154334480569060043959646496475168795699870642237110638710205319929381521250702408969936524583029511805257406234042316988391045182176483096186528363810656597156356317458100261467216680793451791983919849294900926975942517056243971682928806651980466214241357070627584928612810785786049526299478377348647511660340915416831166577087447876178062074880082914117736402991035162239091744833107096126728644755176213714521348624686333077685818097778607401100130097437089191281505727327864317468398152713346034948590011087803425047063334482372613516959925557899466929272323237085910443043043579818850982056807550674844581021072092320068052250031892614054962655356084091548018266203151704883760165332126967457606261028767837191804999574092526065086099827358913134592590586682295742885628880015792172759982968899293335184314680907985388900770919873344791882958329982179102717045608561162384939355475839847932160391769711792130367292748187198857938725042222437238419032901575775991274593071349373233659367545339567752660098240996445100645035360858947017945964851735893224443460674900183719442870704619103345406750317835705772573085624195123245126963381497083159894781503300812881862410161875719462665992536141605966232878743262309241619433033606054340949345812412875463287625027344269223893847906872312923951128391442068460759785042477452411493801927432319799170565311002176233373333861424618619724181506302987973912219606133555219650281188881684055948289276997790965403444597240865421566733850444993477672861478332407967899176475421171184275411171537607882888286548269919901771303496501609153836525496471955584265820197033934675680485741887208118721981537334942945734569436994482437441909894512423535501055216933965594437667636298330054825236078009705851563333693738913269148349168101918120007049361544761244315277858474407892477543702575000914783365324758624635459998174950660576144346740116023655326860691376804583392406478770390303072306758512317765365093130426940198771783039107046734876224468924966558871610688846405582965828579465054487437169785057778651564604058819051637005910378479176750271436303938178406886969029254071307148533551112583061548108814206995685075462987569648375553992285401536772067077298948623873357047894729663822163976994205315421887959203758463715033716567525398985921904426394645421921866478453292259370760306446564229683484643879203491237814068684919026060530113245735721724774907523793719706472600664745948616811076717350133166424658825847821016237392992754180454257037249840546319074274864311250953591007106638098425608500761534107093656608685199304437430121593512745841112904459328736485395162924726958372770720843586189053631754553140016419822265316024960861274256879040275724719555536360085381127342270494534920316269174194284624577584501837732393598950198371445306818041511565565442694744755249464751363128367268063882629690064163276883736231342060233677872773901430470578882938843815376562322323911321240240777976181581451263155747063487847288783922605244873242590306343087549543802048067432625083816468847278237592745951454794475153829344800098387878716990029608262549034245874169192341232380433302293710258681200429112126524467099682580158026025532059106503903638326679599982793263639032113436834399908761894329396169819944754772601518320780690701160967893181164253186202154794388018207535582476576977245184274480011206110388397106785766193781937412802082578197617061804741193364672294188698643152449279239200355619184018485499734314685870970969097146046006862176332947345352500348559591254598728558093006805886323030530607894128714532435106542072050100431301308392496569222312252883779541496070283831681820452655724368574328679824482982559905324809298440745215982624458662057428443631262114448084018136310644133132758292901287155416644495817367158122912254702709909600940556680592885519672424081449708718643431278624263432308490931452395363658204448541043866836433320146112625330076183426683785445926021984452499178166312434206102498022236382483063747345482466441499700332777091035210043651298062209898145902384832104260422790516354636982645884392017423646193285941992447554695375402148972654687154065398377410258587365977751507587824521750060062205698495559113978635866281830195536771335931613197824416653395981738070077059456606113346325684937524107177518345579110979971616876462147704007180850097126701432063460576642351831828300707353895014835259630936936878657974048155019915691044092310774639137433261324969599112178185264138056238101086906544902744129596969201675006165697692126395949144229819366589548256997897742602986564121061990426594171497537642530789960061982468730047791640216745069218023757951305508665310188832941895347697522518864553862406137720777944064467011935570148777164539589118435151951657039926465201337850722990891123571978016840074322446866857096804996839161616843705813704523151709049621529519579040857517826232819103796764605849325873443228233510283072863110393946833961737991962302324642690693762211851471703266012886442860815237510124894151373588710654173090799302540108129138297683923557463400941058999857069346185894228809773138411111010657397082839994150285089915450568720700953998728604026060344168843733869903814132996080944534111613483065295550159063317809351862047050935238749308889650507770482179839587984693669738975127379260345983107861570368843640252205732454677876637761557701634783908126831074918049680060617600759340599715050999004320101234152504701416142031581491755568532959699769692317800105214256124206307240997673094691633965118903391897277700905062042695420111475462424973426452683901906460990641545694537066568230769282567356749860224334301291311927859891291031957512605295033695386117956156548103939114891347290122721087047352965425167744215842859993313486191456057787831521681683563105405416655043531209629093004271558730217132621148381574123089692057796823180559245104186739736993854453042827290968318620481740770577091669698509638091469698588997190366112136304118815166995644984898549669135757340931664696134781422306364885923656805261960303866963929904565741627245237327905787426041860796197179036635616197802252418762793340829691572944734172226102207623992517511861473923533988358415653002867161579531133707834052197869678488970953672678426197062702426186511472220919604791336327601406693549593550595245587442980338256348726811576515540387377656945334505589970397822261608998179469428066661115850362423428331726083656449636347714735573068104324935030316945014832922163636745155080606245284655839597761142094952005621896872776648029219106013384741030094217762780640558026238879490221769738553416725564528185617777459853302965049684638468126603901229031439860576031649641662846964486157829624981768825611036470754391677181452274510809214211644402615585225359646176914879315801679520172915379083925242146458143641629233277415289393239423774133685734281674604753539594782890618039694375123331572129119959773577295789496204667857335366471407935497691932297874896936856550313401349041494626448726746535593420535832839730762545525063111705360381110519347358693521061425296085989873606153626750785986697353133984298294098758783174720847014864445159382420194193351935604073441776186538898770114360505563006262578428803411456842217589536138067942701308326689042849404121978718022813091201629196342819950467819854151085034508183893870487248847613091290087699283282643592828512910920111272760812809854382078660958750467699333862438097213442101426523999151115304569978760554274547865999132167111860968268574646938768854994906886365574309069951283036069753034640847091338735417098726936698381245547973572892694854460505870006883995987655205872099265360745402098236198649262093886682442417657988868217236632064174944399954984435781516322970282324429783519008557142749783664871447374392611332117062656616420477510416095785534455056699973433612284589785059363611338625729996319008387012725302876527136908582105089853291375367618877019823626444901649163815637720961308356243827532490390132527502524918636625045798608249666690859270290834458178973543299690156806920071797378503541322220280647077439257222878287510928379047824261067817365832476964348419482405212177581589235865601003961977881414327935477511814141267787751094558083471156703030370714187013683060436403617754958794078147344367837496791136013533306074742166402004530465240331991302439658915728269302036196444789695122598022534966634558871271129356886783697255847633823611317375590912008888732612432036430497833689660391984518328790409770337317417728650997266445762882288800961232561712472536427700561483005794552069074092879993533974678562443182521377491051266527734877900851920367988265841215058267153770337977747684309921958298985742445008530546701842021534003864498187077810512412041774851953720718585043337836721690932980439997616829848857077380406211561810592139189066590596917626699118453739624353474455867813467874665042996918784027987626681352382770205794740472470928057707274289259269172001444346341774941375313337104467726217509623282985741318454039784684489381873356113005698676335156468819219002123348919505024177618431974708346454829585134704035850063316225992212889227051344133632983479037484997234832237453542273763591896887378784223563988630818946145838397023670223443870526751649003204109607458505690728458940656091439518941398932900595861682214831654676228571429761832634399372417821348767293664456124000229835982879510732711113570840290490589467345040699072153402359251314154372910532705563345314207213001350811979470076092953738746033932600697486406558373815216518105667625560501493012256699947499244499020242274776992062603021854406753394055268504684401056901374473815439172884357653339161782284488045019237313429056541252947073763858203789378856287708147921392741501722319628831840910176606152703952432638026270578010274202289108178798243892520293542247080943509989467343402632128794439486058444275101575158863085066369594896247809699050003729357062138628967145922166223352269220744319321463861269115613864722831668724207199413553258093932333123292195490453075875053272904525859147062083030993942779467251862025941707424284473991698494790340397066893081682069110638648584071633437232856649383092738559443494370253721467104564305282935402085753128049585547790840568620201016513542992466993554808305066939456918117323539971517945608583618707286806987914349133620108502190919273181939266244147441135900700658263031257122580394446616710621391037279926176685691309028644994964061061734315271759857361855005567308369177076092777506603117481942362296814843042216249152190125423063699523617381405728137829464906967255712843254991424482677857524624507484419944713435029860992064177983786084451001943018851319583260879428013552230184628611552245400052057503032786397835442917446574097008829437207356784061215606837447089424322394630868899991989479080323443025491433810013200019992846700989750715633219164069534444123332658819753714916869190436729735246309499268974456777088859963352655599705091544851091142512428712799910223695415028750132440577733916843491977725057367657634227297266176565255281450354262165170581921348696328441641405886776904121772990934382386906085204078805598582282822274729337495778667231268558867774507472839170176450933687015244406107090836295750220715435665726679045804371534435966137987345604664069559897388443578744644937624780629513356442494216655179099934248492941127999886428774241001200554772419373985418721383001825371588840211698153858324579256976921928342218973771399068305433108461649316108842483094500280977692903400212854182568082482828855619889675256741937497916288537651831827278976328512322282918906796130997290703223091184374791695939595372037778478505161413157319489938556054297217945834578482511544862706819722107232408073391025102307335632314908845497927763814226061794568630504119438455253043978343526032724893018656539585685689253052461279867150996663836153872870276661993931605330017107826625535622682169588955852530381533883168299196037151630804179979008372156764433344598381061988211602135192136427537194721503129573012093699638414727850196646216260939798116460955896772091470990499046240468823413238968102044291094667683864122823916710294811531557439976852534593778496947185236779289677142742737372370156575639465779914598837842402083351427560602472990372298853293495952552022656610667467179284928115691758205330657090381284948551999546938146091243806837627636179952206511342941357628574425455965271270969474857185024013386528929364128400647005570838057604721283838436442728879552402423350978459057584918473536395059619330763951202695715251514695219792912915741274292283454796768750581154031749065706451634076921426924268679150047909683649002709236180879747282296366512791199486886177502256547655019887620316864262741776414068348443568618506459217135156935589455385859737565394430921194781424771274840022314658602277383400756065951666102054351940749456374900140318148718414094971668519719999157342830958608611783122718258945136215221113819942951975143162027231332904189569909852160054940114477465780428202811960202509177382479551318595577469727173356936553416368731543378956252053900319350657877613158863057200512287726380173487037860295624596443138029224427990772454954533553777075996540795563696869631170367215578621488939492848120921888398552045513790813064346874549505209185424185951377148880618087425603717858300199409238260578756880293921137378885836137803119362083285558657497124754213588017820286678219037277387855500777162706351162171268399522953514663509706864075871561011388627614258912903383636405004318328637931368882206177675352103457769372255736465889863961493288792765281089251250485738454393848239572761560314253841369191878438632783049552701814101145552243591148914836511886191289395489527246321805441473969394038053830414961328089861906392290487835242184039705242959499636323296512229458910707883434175627243697313053496467857784142112544530394058626712049440077525913586747905985237948744174441128362332870550432040084459422028806753862977221372657512247854708310271795313067971532240419936663694348642833099529494944390397255396813902201107920293725947139814630704842723012348814804190126092231706726280512140543314549101534499881941706356743628827773295543055358224339844316858412281682729027699274642756380417341723670549049053404147290762768246118544181464869117547951452147990854366694015099877199158657915350425497444518186220363054484582542362727480720235806497284621437278976288360518662421910428718071356242826602097279670666007454920876962324109643736431420289392106108814914911493362100520408359192368281014898645284857669212503001804342803732024095184497987024133551520057796093101061496572923379011482296139625417369404355129646374137101527967712479711636465870521278808614895002181901383916578751868719235817682771271801560337823823520619847007792590568861560694569375967852329775162481230694002104226809119484478764698913901394921343172667054149829305973950285795724128163555388602884673354853244633710606912482774393474635324349634290937785005392984601756808678822446199792801838857016904987193453419254060575981149087663046844434872039736306244159577716845365364061520211299915834657256018837771650714528692357031197147377778220501716212519510460487648080332845993548381960624456621842555160464389412312550724082572345832553263442664162272554812929909214952451314259201481234396140370182649779241443527726615052166739897416384828134056607152375115200081334117747611267206167619588805970515337197550500487271153904308010350261388111535167446117422963565583376364321049907254880658258438924775870277529924621072599162973998350116715597401945933475504005037869835022149937231717444249401016788996940488440020808140772634258086575432118784526940215665124272885265975801856297293448372326296485899986165283718259386142911582861181005811501871576766886030787769869029383185540677325941308229299089284242469424771241089342258065734679321835734062249581318106627204706701394395623975178169680875817572245761479145607525020914996553934824881806362461491805907773570038065623113884359911085699986439678828711887705541507982885820281400160194401255253892570256334944148473185551813129217713120002604109144819376126753579022202173675728079905408502986173117554613891366788807054557172651040826975974064596109473234983332970759057823402556393471033881107016786782001769254394222230853693403583443749422965224178237653950023198770228363092403002141668031853376277431169831845668380887470789988419385242122152936033927393917774002249243501706378488232230276682310037289672061619064591465073504220277471310190628734489150381252396714002324593139164306226200689479345988491526322166880524510015521425823604989687217931221089733903326234134383253723946681709392164416211561945750657957687284487977879963060376464544167875265354972614958529104143375968483189865366438123154492753506951988368485686587314731759175197545642720592568325498663897991214944833770775770249498602644287708161194826322283919056576464914830249570283739539316293491515397822231985157153454865596451520752306437967470368782510774433285949144349829730704136609572179822761255517161850428666954727763176032572434750938020195220689362782098545282441769089173832775271194972926778692438538141430523407440504255633564032655434661834522626730154262376373711109243423655806488308308462346791342347941882145296859426037433997370813358888052894280252934575297837596241760841778114491498113896481542256514303228090564152343129509206888559025782020275895968882496327687712154525909617730670361208953894263097005400248275131060630393357813728469696647465522938544803538415525439159314780401155209630940954658612351127462025085212517833018228929666656002803772029195674175173644997453439424891945372464723614869666683110784193777027294605959152143095403444103307512638297967322293129917301791448239425341703671568163121616573584549022838356153297424592188770098668245027377539859548291438556071626028114267259599544456604548838931919673030717648628752960643707145013936716996997301095533809902176975773861570956681308537304493830377606042874293791084372877695991715572913141229783479479998242464473069459923032317010305045103727260812782289568512765070071484697061510178237396520443915372751763776978301084913567499550094809232298133678128359993071536941153365038319794307978966745204781816814034948563918091814695108828001243490123393506007052722326347557246728332869371566825081548055558132862890138643621535990388409025229482588016177695303490559657213593998892353312545750299733036575542981874309728658522311426829650414752037385930292841568998633102859051168773556594384573128089614716810434186473604665967023400470577323047968237262610651125484260786777760570501646633701041679196567804362105354959420623388767824993612303165655955866059538733918896356654438421219713996924250158586658385967656408465745448153886066791260980607149332647368393025006288268062363609740589997981472728208963107271927512594521315707173542664888863045644343941846377142870386959272399709517186606679258034987490664112389450920289169300551448023145715000605094618166342507979326782282163953396584359727902353753036225369109450886073361553697621462450143325803997071691937947199093586786533504341408949496586538382006811361768328826059406200027360490009001731257746107817854018097062030100326875306483781080258074941275791042948529025200030457725262211212438256983858055308799511219642380336427649468691553874389269196496592637078953327219000563561780980762912017933686402042960260928362412540513244624181490961866803455851747110223056550286348232295072627642887091059084053387907578557152171321616123200190482079028265141258576698629063693526243284558187392502789190905970742603659490736411528367902218707465492717899023236875005725617200858529616206302823621207645792112913983630425703992372766335248102245477749109323264398571399834529482255962043737856329582124971323767731786558760606807100161444796476178172439792634353534425556206095253839033494611960667320760680732813804883198108227652920697044000087365493108242728569231827717439702098831721440748418514623274611671436996314701708765443573338648829127913685289434966130816482642297540557967143773722210707788614586908532627804131268469116586403555595999176023771322205535514430158523557328346706426503776332759415452260760371439854888431515336621578278185091231311666906392357374455801688294015138843030320500389880081649025872537566694763724568286207856275942904842382839123988056291138900844248553371440453756615012208536920455728405193858430717660055573391467630087227566515641702343478913792014920461556741284927606194580135122846100028455564622161063211587040744341098120395426411919246142928180066385726708794645364432778339146348340112438358049615784395016755276187031930710905582134739752094679454224860348250681056720624903037166909512641960361098271226035922385168634973885705610356382512004200417467591634089684621431894370759450794295072285025823070483319028496795562888907869209518983189310885682281081910971632878149052191375137975811569432423312400493149138510940284842670706265058952703837259008116861613951049239212039262151304890145200476075596567609058747768289392446348535018988233510148917856186626591316802740051099892155158350368034443634515948409646918040928216144267901576237920385324505754770168476782985487067580247218127715174521840755361181487542074634405575181067928169846460844600479244896114036894407721166931066716075983540725965398991296719601549586334673276190368677136034284970035935836984042664416023115467218284476105491018866654123048876661931668442594350851562327800402842083778170624943148369466709924045797928776714720870459187167422839479109333953152293648774961470760197497533543024379891570744726254921027131181010022092281683707521517097563667206331476664389613445671363225453273668768228554126093801636101223361310437605776149313206202220746643308689102096106433525981984719831937276314267724732190932589680657242578303590505938500190164250106729341989382394093046176677138061626472326740481546525976148940165911489208165522982977720701327898693971944872420682227189637551712844911422335028362573134284187111748209927469752545867397219308674034888329507001482340835086594951196745942045747557642385225966254136891301873322130086119868452517289863729264974206899673176512493034907163959951079549215659508896945810752446582770960056601017511499528474626649238333133834620708582473428781360407639474401327688142542567677256113730568812682381972023515793009892931032934203228686067954932009902124304318699277740795297092323543683423967605173186702165169734452209439068959271963868798936588554091389325584352994743703180848242521810582621296163838982402970543938215237510484078242688483004539126808476878176406464318360075811856712154947792182437946298236450739102224347450944451961469705641129664403427680086957916372029611300384442817660710046784529743815068264946538078166792158958779394532435811111429597979401053608888893017676334692004961214827448632990479067689959588780638611633919174881960902310296217604239976868192213304450912556149977374063167954082425542713164386997526423521131024111267802023434438355508563485670080437193221258591363025498612342700181833380788022667824767501091102627397831999354870171491152017157654995069258788846370056288208694459090938484297684899664495556548258577636125534726219247136262164630844250887275478336777032876189013829443859045803216366014724557943362153906958759462426679231501254631462375846671447260578927175269123681246213521009622542105756323566868903400618051658620856562331915932944694151662777490306748306454226576801153880818338889486259321988218105946815283785949441769929899136204469156066881984828615273996913735134651089863061957388355263264046513134784756788852449529808764446117806159589215481834304953759522578129110176199759161573765390688574473001341615545119058051559902451560087940763311105451788283452308648296359806569412688191184495552640481844475279590888529717766934906460760116875178713448112609398492442489683586441611081105266413100459512511343945531374246311916655367860661601517726963206262180279415316027263311652450658624003091884934708971018121572528216568987794741859121834715548400058076548500271785621910829341523471223935073563768077344025521666357028507797470762741859952222026356648605832973286700503994728924723279542047638041002584041048239240416229953768066803436190951722277518028756730448273553126856593494234480399021958704463361611135722760279431496844843541447656576783894904930283087201048454581038667847063885815253906030637068386102798550263819528057412818863157715848080285851303207253209480894940125796532220066101539899014345593994194872442953710116447258576507203214673519469889678200327641529984487183065025729415727600791051248124244249424419588813762349612311750278429534613483707272902351282696181640658643699567533683558558282816065455965370975169972263235297030359132073041829033375319153408818222768440698536147997000681848627808402228915095092190528869315397363850325711638147949352565499552787125110377973801181779099927194434395049648741149230619662523144673375933254313666569872894194938489804295770779785858380632196911151067940194153548562874980043476579579130025572469942583544254656851020302980682068640304267409090082023097664120287044804634231783715506629483599823041143080921588925402533083522915310635967315277195782821886567956548506793286995260966959670441734133637665937765329960945653792853583645047154376793999555169596880753317059465933281809342457307480307172212020876856510314205424311523597927283992350204394232587506515402078166002900928475398492323574742726871024641073422885771201232919559685437961063778298179767491153669174920719284325615343879400516308775950518969740566767808807838871842744538418545786228417282300610736005483539383134681601555987531423745224704211758588891410371067916584773955372708935616882226712149874791300227531779653851213927952706997405340993145980737741081519810507828867643210004751444285907436090206919259952590013514439242965938119693596224835225242986159488057874860953964446064379037124699518143865754633918385089600962783642868071098447776426027537035870224555683720415471083083310203106479469005167099708050820199108702786848474304508449597527257472541188924019441406121475491150479211149989008545899514116912952561369903182557291406518608503053546934379426502952270111974707507437932990102828671970274530804659689546785595781196285297859428968346261406279172524206565575749037694803625717598255414323735097098578763719242558917466550892192235227168095640367036944715768710448931595353310014979029585682741224336980498693444206909995808494403078919001514485879984677667225073957439376202038559454801850409870979055428139946520162722170606457866671098558921844514362842191326961005401079299321793529130498075431412590988590980215972425761534533273979004526016580475829884560505460639859133054673451688723278286964042063348217497734675570939560329676231448194508395609787339059359392887566224589595947059453006718797977462180573857730532077915708570380030889875546682115249651900834216797283916511342375425209466769090668759261503385824531356385785550091566255788887631087971774209737293458689668970514581614262911890121857719940752693761685651811217113077436458066626842369668055563723221265644397414030062115815558483708381716135224732504107825444767767404231951680439422904364758861440920732812728183643129321155208098991208001123628767569075336676209128414706942895822173421595056582713205772887295530452325245141240439067720416904318346413202340900373834116665572963699931316662060229050982977411881126714991827409066793152305095963452573267622003361256674634870005408541604034374669892972516859650294325497727247063477947202115274814087408933693020270702701649968951534504500586997665298691863082056939807465263143860067532656818299073013065447467830687570826645695947249261116030228121375462730798517483564667916358787039409502652695964744367827420526860125861122402248891351708696205360468494068944499179759641304666761593281389102458497843521456895752464755309010962875753152117402608536820621746412300583863023564884135957848012822041099233859672894429712088967758793302288056958069796157901137220691165436053353555790561322855997626028897013900064898801543329955200364736275792147635408236950395297834404883324452463053822974422742933724166756136040535183701626318693999435615791819773848897438766411592468090133013899892854560724036464818411008999378046631846846567375542161210162815947672297740715906433289026035349030905587021866861891872928783758310213935560577321953913881029272261296511887585628446117096461281550803343552636460010406621600695413004828450552063307273992755950953576521022112963140303625189067733389292369153624146563408772841552211889223803844685107886094981803659055881222021186210954899034068852868475597178323067541601963636840454508018143740840391998675344139108918599545076877780477127841945842175656860272330032315797827247711744816663951980158571718188310907327938277240444254657835061637794525932299218828834729295119390041731953365786834029059748014996777938481657117108839204636779534186311908624795241564743081045750999935926658407468049514300193195435074881169197235060285239833864279664601972431248173169925612845320357674709533710016908854704120492341721261897455714843521542310551468111050901239639870886189761430803136617170240206510181272080183765140357015556690378784841628370017491705580754537984592535289874003298531546875742260054074691119360598973651094286297210745541062461806086491489001686883682005501990024304093648603385445124878370510438733570315272460509011928132986668898751194059103778772672388243750921629211218052242871598173345774405264492590325401452493773080573825594504925125760215983788840421690041958262392859097636557477150139304675980984490556799012722509708178922694693376860902482308812773384073743693782036312426810725999419678578971259804879627590946984626629779026139725091712247191533983944802214538736697812738761091275508813253797380400410979656363835635460407853012237467451559044944826862776622620633015941101346116485304277540799469651676117849395202056029154874823595463304381212637035104897938756736154375496153476332441474844243678054545204495176471244635382698728663576775675833212997959381281407238486755445597047948032780125485391248188362853348719312882356674913574571639892628211486832370649001686204337625917524125623463982079531601028266209855768716113970471503484952513185628835545263256929615608823965773022187997631143241258135433349268260017885193106553924309082643423262984038243556954765498835105804266729616107687754997436338184107392891587214683637708338925055254088495793256875248020250193535278423153906911963916137730076312033556839715470433246140975660101477326099050652909933342098940728207912269898031915460609874756582173448314521679657001168549746457353915565593680728812038664762915995413057524999177635622554005552002792902318858545048359620457769283771913890667818728940469355891661719841565649777350237140054478484849114804718033280657023638259934847222537759339176801344919397826578095301192427900538534863855987451277396473698586139019921833904953609333948973133801573885770261867524085864310843924660709464226949266643788830274408465333380068104693628814714953524215003567863674061539480167854789813287203623848558301267723814170118289904374172334088383310190460047825611702425829853353265612008694302303447380748132951237998513463760035032604136663218467472304886619168392252152215869300839331216919713871139530489888534215064528054472640817121696175793186613182237289437630654575706637373633783695680716563390463546821089897791884967376533752853877904339673456964826042418988551864015141583989620713556007247367066296769540136892690205134561486799630739219668616176533370935911255378806469149470123186082959362903659207998410962900859630127021087592708782969826434894664148130564401771041402051723709953084673023457849936539421272124531494807472023179987922259973004937630232199012041576762688644045432428676761292145873314547180077610115347001139806152780476258700087604985574343715163323208224082119557516593828789990526554810509800941007959729863909728926029534344944408069621810421066597590523418171459654826612304182728012275091428504895339857141056999679787763140852381540445348243855425222728302657484848672287775870108291567084112417295259051857579548369137772366215955298142312611528086654288472213946713702466161614188304951162932853576113289759044937139682740533673035708344173184213446930588392249548512294790069708488527376381187187483133511721496238669683983978688139219519783026222168086245798855182512682706689702520572493052775084321603813596065509552610869718291859570275355443709450920717346202969438337583890395037441991502116085491007016475237892624190172583659899471304156817230102736773286011167064127942726392007353785388264630202775848247216241775638616862767864014217081501159676989347636402736404372139399304914759425459076734690085926800501747950226119687893510915166131861648596995757966862416071965715386843345424732312429468104838106593900362861500720131141281243969464220912005307980166748830629062028250450507716330033116718343771128857488297742407708552954615644805121691935148500312901569907850336348601736924767348407983169295125874801561189788883688292814328984742238848592664090207388059919629857379500262748618097230894647911300810161064899873707408701858170820269020228130399567740058130126538939971643797136823819088846446132795068251866786854036869152697471010625020046422778534276665369894160429547384829220423672665400499184516681115228039176838742649648809588422210741859878335973664151304132044491465248297069649469735740890598324232055928806335932957903559760848248283382916985071477080887282067011597798582044284701619683855702479490140012590881932216289052970828682179737291411976135246129335442968865700832168726477195185614092971813439671573078899170924826338879480862627048345278043321933890794279568351804307539403862556087529331223720614140413600739513490305847792834559647225367603737880504591777470778330018854871745473000921483764673902970490247515069314962834420644993031073622429445414383949265530767386918984094384739297153436400514890952277801817028929660101093675718193271272930418524061826989948493605797531894318214335209496128453375940517325002397449592421547369545391848297362217738897236304991526518380018815664202080633352060575544814579949340705371469417991456478343166928699223283646713609523673114686523080034225637912278713449553380771479242503823191309620822673699805386822568622389016861990684012323425560722089949703257822520277837761602676547306682893110574146988747397116135029488824424427278112304228528135581793653474873063398865835335081274442780296865152784776396108399181018138482579124322888200986705796588103671503999855262536423567663139284175693543060498235142905822411490053962486341219200071087179683327439078484726464018137239742786700590610433582548358897040734862139706802362240478109581325211094704771835219052147388894110312787492937226833915179597934786239411860775718421679087273320702490842659452550708332835223662664297226381149355900625219520522423534429138418884391138357452117764722473693743223636540605153782251033812490770442823950915927216258130807805823225155084291539740520502562165585001228226645679943796267256769163239081492897185672343047855306929351168123833936646324878946336879339472477507730738598202935438645732554191604494129182567505995480354830725130808261238756565457676314553003473595818738428720233252802114808542437324524119395148003564282717423896646855565669468032166517707581624395432469898230855060380707254999513122064644931192948172950123555966277104614362199124858075625177059562226619044444429687417932334747797291983192541045831660715245706409994546419601873690658957358493700959888121328087507037500862965435793299927225580218807645894849208531016789604653335689078349612029026073011265144600519574442752551708265281734826255098784223882388638472196609414181351356235374360850727774383084603610409985634209999338946720770462339009782888387346761796352593200545278062470908275015205628950326193207976663181365230757469836474333456369697603997115767765062874858246592318874145032651608871832528625611035943907626206971838703498359921351357149457600002146002818505314377466948879675883221918296286553481466707765235099007072302575919091789851503648167470124795093411768132179425067907436354891084301679810843372817049822844036834911153626294869958321431382345526854550016970234613643094574978601098918233301317682688159011751853804534488228563026258401126157151220976180237298732321491873671302508221922844696610521778422219790242742301097290128375951954695444285296569242751531491577187514533349812142361613120770267908536409567133766380847816355297055838350845440209923950237559461927225268213099704989649571383113787597515405239013756305039284355423164752751641475514774040176934975084229294766405527483569973102617115667785545440402173690377509709741842355532443017467891126410454174973122243266771235586888885530774315182332578792099247787249936902557176916914946781444692270763115475504980922442318428043510134607475680973575064538196942524983177032109117237142410785389527337904677174602058954070913550369950887761035179012584970119489296333835444511859942107891038909797427948805694717226431673893726038393048049356596057390966304113792807082939642648532779123373376226075463245973789793382035619104764383204602475221040041678868389177580942145004303501541195376129797088556451596949876059316517226202947765353340384778533418304750307575730388862125505566808212946353115873812734743699716435959100751162561941962170145479298850394882895386878795367025674149008445136350063499850045761434022622991229684204232929356898457633939363615374528176510942861123726151325813675267488091015616047349522416702041575585834267160436272840782755843949688920778370511843420302676240628011949098389724184072632693379708812601135449175939532878787011750146197998946376537374649333600798673745216207131371849952990758595502934053279563692419016339094098768586531407500641872384645295108404136261305215688124046444915495648302887336566228775737059229734084923168599350109385756581409012809104741023257576398147373942916805055728396487521944244752257308846444044872515232523976258091344195897852112728497768525800604401935138344544977962741130492483644674800716272538299375688895003604239966303140179565733621722806388305520564236979882386485605094724886088801766760873957023363036071145011474077965385432528488122710891624791354319349060596894228402407769698538815467620523487601331183317025665127717352698276075343866139843638376331720832448340298748381697075103786904542003871105392324018291244706440805358249474638305409035153811480051001800005294075239791409430461388908598571133724392582785436103948441911763690258733868817814921952941036055409706827766293547097541209605508122814904366284375424109182592471784954382834047087767010599541168717653388256324229374281722454134147510586382064095367970196308816503160443584840999718209091650415162524450267042160624615614627511573267555824119635829000480913539078593501587012964429700105411079967890760819518871790396346839758342665218059866254573668134021960716159013284407747112522359491110573907126611399482982434650633330712142032042684644414181745421009634230424816939925204886862733328881453504813706285104271644743162001960278956297251634962156791935329524825751581035035055045821447369118082679743356596149124465389946824387222658063843004806945071635089113503898450778492976186919142289711170051978337491338802490899406804185202169513469274519935989253971408394837858314763259991597034225433176230716409095300704829813195566258343434123634974039026083332112105671587245952200092505196818897349515373886778209933932858920358018496297131527690852238103528459367434525818272448577493746906238673261349480622054395394136408418342309614371626751023486821766985312355720239911300247762347569851023433569986690857776159333067371693906517272981289685189219940046268287106544479940001426058120049900690606584714027576916120130035345937952395441034653879055183255795688815003304164477423285096920589272611493615402845163447282524857826644222504283460865158147343814274853499237526388842860346573026839182340438166947333499681166423514681655811865664924973523903736650380067669534824943838052835600567790862283154167514881260142861051113616158970410650281428350134430412287977230017724013587975976523372038553358721289724444207063812417343511812076216070930041462373553242200361406961497541231115499793696994197245012382978400482867731423242363065518223823494279052161123133047772331250259586414361127722417390061584382047165120696701151366161574778236312600653396243964216494849200618590832094933772580974406413569604766640026060395162511591802547665772237659405540279636098458072536021908192653085943698242282006495064267915159931328481628800272861707626315355944484813074702122079916741106804859579033440748896556590277883759623859578764401030955798766841951191738518971655041282559338414579904507446314250139077492665841717718907196628825688512722720875348048301272995934051827739891542610861213445633102068238225875307350559500485036075764780613016508461972907584593839869473703773629443779982638305652308265617722441248223874954718809278472792059842910184141630364344493442050684067569864613549061000491020535193319842025288161773067409436746449170001569598890525600074041096943143296352561082979718332048481162021353053070264357780351586722828493438805189425948405939423227506554586250843914682923483867943170867176797432827060746855977812474201582831032909861968675702363462375748170139186124381007074660637913338268430608817667533467530817015558650440644434273707010733375287845581226021766239705511630104695875518938284057015658387365818716597443284899839414141844215946848310047911474847290064906150994243357536386119298881064485535585941409459370416841916069384696551255770302522478354996755568979915741206000104593139652973663880608668011093368669865455861624013655785803130634130042065565486459754215669152078391977751730801810591151294806187345330672743636683347516924948933688575061318054086654332383795836406164740366530375267924833190886249662139136189237589214987185258712053469579155568476610413475235892856375745333240331345896104231612528293849343125287108258942569787176325294658400907014010098692647089551830735397925804043078594275273999260194005360730614477171300215719875340283344379148699332639427702938072384176801290255509386652965195288348302719656613316347029342469054802386840904555146864544353442969211002935469287335580594253162330504135345441243730679356290951594486527411441001762026150749539779523450850067140195326700687372683342304951807483713651358549671866675099013829351728309200638642485984342014228695482705430932134583565849346307176696114645527408685396309531779809839339467562597483727150015110318725104115044737409656404094693565178949164702736819227759379694799077728370813738643592423723643432568999414277671149482737656695972837510170120731021202853085289585580262839009038589909633411329463088278787461042577068922850898191537791785946970991510951691571196251071871059641004166660572567197085658059074859369510151513239134701046753988956130952781573873277268397439036130671226266274315817155149983369255232611835020702025334380328028447809317987826912290482102307728881699091027238217624823814141166942609035417856997584043316823744116630923803965016670561130179842030708619496906015870141452658258605005599198260333820012987567795243342828503367637476117089282925146217002589522976475380521897090467650689507620695820088595093300593859375374479484404213754079370261773108174876727269500397928746393198125515117993597153410913894869463262646070514247602563345238546690833707418800181540070278691758950760173555407244280572596793639517657437040926988717988779578975403273898415741397543763799884005688103295045022863249595202502457223348711389469879832560880260936945942930286191896419513441604685753805257055681135645972877409494200690611896462609392327499827144475114621037526687606220940585185976767299422297326847747839774000017732607660550276202185360306892174475173414068008532842641073816047434252096088893001174878620154884623698934422734527237373783446001426385264777769239458514663108548368835300117626991315821186712126091688924260794302712906836338570396725275628437214502966010745171890550976403017146107809692753399137175842495726101802457700028268770533497557259617913047080588695603197780542598015001296338954773085944897501282913485698644148477680400679429661963379459179867647609564845302280524121080969024349218614078166013160318406115883430800959391677035855098819090130804995160699207075262828957974353464877863432048446783325176284184950715464299975248932536434690499730223924994816591462470764357337715453809755669922571864113467002265206382822614122214366987123407064757471321921527218981958832167043274086557590897920536543617390241484111625473725833215336504963839941412042717470101959206797437081848320911534624378992800166846266420772994861450784273562421852655258236971143731055507929231615133256268240833149051795653926622247861530770870530094673087296977251273653829526370061110017879278862095456503188245204890916094378512096880284624631994336060685835308357858066447450822037349006082676927888137356551736348329211459530922450343287597879323097872943228016740700071163674672456626844792229622293950833699841513890063235402750363410132064432047614016749576029578117076143521263984224167565958549288121081111362387518637809398609089485940190352690549551397764307151510547814482197332191053162472081737753569574720702962199569804056367808753481411555403549700322831839679879519616896095963799144782200885156777900931575258709162526070317571932773037992897943158849436497444843580585196077945205898513675917129628593667462389525649360155307925589474318769573503435313455135729243225460171234359038134989175516330499320900735378212891063684387616633188002506405991320793994136745656636355254695576190283611109001358660000480254952562004188936410060480441612208853369768736687470409909589341784439280806123918815483361070357730859865255525801482117810251178364607505450156265849073338867977798781614111989783280776322952704129011978554500357837910047560244403362117548061661521414740024890563890877982385300749153850966996623819668134971499827551339084525513572332722203997935007199170619779962710807455510144304537505504029163543038782475624342033405947529118865625859394741899027073940461781312223414594791616950158587090917978525811599288624552955093329187286778886826205562602242019779954977603975491081364458784973730802286757681025352847813136811198842539619184047915236523422573545062565094573315360568474441528221584772145980684190539939621175956737376935616357822771282949920235763423783179664502708857502016870901643602768931066510249869500681253586170594761117916361739565768216224289861638392730282934076920670099650929342509735126923619971454725186977956178166593658970498836518525915975204511943020553019297417514259469469364616052399958218341975857342694686286541145320927120883419659439998049866149395995660937421091644244992780549012469763142114336703535333901768878490499171222159545810151491406322412681669219657526646780280197909870315942159612440795519792426282001140500916259490191269052875123034703887701655087158412618765108986495713038551013576311051838487157036078066430018194905443712721523751121845199807449395165414013408826201686531552443644907791777392089023442033506309917155375700265427291674981895463745662131523458583623117254364264874353522352720886822680558825128856700798545052669453762265986864230996578538623303690857377855159742191066106295316790504921749492073112328895413269683685194703930764114969207578362724538441277562917586955421148796837939514145154602059676597691818715114447097405484605763482945782480398039873742724398359678048584195442507204948245373899917801304101218941522137123520477069762418834226269503129492775821730529717145466763859453198840102135102799258045666178083476882470815214439456514004130354397101314597841841189024364524384788935676777252282868311841125518960988651233151840792389962413780841178557330809628741001669418385173035837482040509119122217929891131445133184795268486177007348895735998106833314305616352103493664285626911799995733064648663029102140639983444350874925959929281737721448802262182865935318628834519277165627693652335002879425103443012600027495165050651837105564583387105461682028199009776076862845270051192857333227296339125844020800973630719923223838168433378362569395129245328735460218524546212502254341894379771268168067750788079180993100812399176339278092915735438183227024323179918514417780269844031513439413440430289986200591995450720622850300327345857732451683053456070957771166342717410023432930091813721416714312319232881207827050953699133957550280983290414770773572932514706217795127168922011935613893859504695629781849277331839175879395056579964753160585662410204515572753255326228174777102775956316650296875432637222634522182761678118210675273149256035759158356524545664948652189585198010118811408799253033100959228945451466722407385147883764770256395855199211974005275413971378865358053055317719252595680412176144846001607413197322544079484081580905086639250905745297218144475611984825514167926005359116813376538505689046329722449724422059584166492414701863407077217162376606210600421701226763139298471910890775467536677126905288551716572127502203288652732350088829500641584403165814753518968800160563699231354606051662053869716030998570153588194629057610065969540573965868259750094867582866211440844861081921138265358555924050134146703847384124301894624700346622820063387349110804950180018902814084583491408259787796338783358671938611808744885739208372675009859539797252653149378516146373566067184826262444252689051099198868670332432315222544299173647606638369377590038987351291109662539723025818888815378254113580568979481089763200410734209966724506128070881740804001915922447836154836410284607973614922162739140634621441310863038573805701227227376628192372132180339068389972616949116352484483727855347489660657971071700538962578839272091649250201018631324938088390015070809753104077009484812847640174936878519710146575168898540909389473102828835471258820324127727750682536190432019724610806681382842820219252718977549009624502776076393025051259555656226598360439255647960532889693061259443601980607140426583538653834744198346986612016129121025658112462237893221292092375162340441014361150696057126671718249460257771896039370319615221838766977502626287723738782690856772671868772192543389368670587145850534172510405648659591553826742039208875974510969352589929038028649260495822453799061259744694516565316862628033078200480968385954310408158753887885550140823266865800209479939951049140623244689150811695673170386410275261680358789462152950380562000062592279921227652639197275572038195570101942974471155574336284962973408836005355320326584406353682398865222727517314171505134728785152165930696908225240807198626175050439497993105733308580311429884985445591406534449434782293530200720644483040139893698487555165222340390340349134231618380726445919451816478307724621134047847620234574514135683052956300181298550985681236944474843146735028416004534956194946791209123617576727998226801428621024318205739189696411050823640696448544985765038022632525598422559661473462560304159298344798164004127036120465540733597434165685532009367507550358317265574854415439447981570524839758218998502607509849513260421023738094558261001100028926092651479549225045646835015351521542652958994115770919585821319482701624166765169809737403164214091281943004258013748879507822320950062636393569316927898932067274472294677918669075819770337406866854723045585397271196724701255174272752766161462688898850190869849931762470326417350305511357830103720675276548746530150009019425619562547487409563402946247012175250844785884730074000431849390991471652138763940424261424048822930865994454603261249291540568897280928752817309184942483925828120789407354499259521998972467844644696406902000487926761156303328055859969301652495674027969884563743991635535636241059082323090470162723754973468509001657345690550402245120726849754167836394176078963177108536828488947872387130053559148706287956340120722253395486127436427330215851262954618066965162010910566041327251570652289173724522897254379665653921674181070352075934976510564953935705355577236445261913562129590642447897235202864190343939033040162973764757818263870640107865868445503679622610980767867602507216672745298595065805616106143471828882870188497396531533081686921125215217517219411739739975294080414861616399751205698652273054922367456870122888826975423157869629679132344452165766704889589144474288915777025490504323769336955382744771214616150211357104248208864404190430794947103062143612415789814805955076714490551794576031494496559293703052110721595226370679965513262601532705018765044822780394358026689937472344823533057797906864604604866451786496590021768552271514192353619228177970534609861490660181755615354742167168689179226726855558583031587713211209266265229887461676066729750879658883245135198838815585384969206187786890210450067071900651735544839462680791686549506599717982747306240181810698187322103472538161658421687622050284207469510754505097945016625795329793887674716359918951264567120640105436297535470821704832581161751737986322245792624801517389825740844608244327473875692691967158133459410497539203397742425030979134211421342737199459883012249142654961489172443810900326160726087648723382664057696667206643942082962667118053456271191274140972061434347490492494194582151048360840797233528616730780784196945618410439537036531155534969163224519879072724985048188431216697540484604650674297439615997701179741560066927461591842429939140523057887102492299283748625298261050451812188415119423702222793531252537015761723502175217509186902778918921251866883694208519255135426873766133198603041319087324668167971452651140140766044955641599341865366234044985520231498118731221557087337155673737889852032892106170355522171585054920869817354889495226065721815633310940398716922379071293598861387737185284406968881936643694714334603264784409887540899975714309908640768396282538996488195621481624166499675529389049468082522789495203247489894558925578253902515938719420994189350946464066245865449400786556030089994959960712373062167493042876888287465978782015843885910980089247244379723631116460272292792094559499504348944531146556712469551872419492471719306419566365120135061951374079821080673493487381452493471648170166987469929656747289235739467246897018851598456010817981426797201965999839448629809703132809137511473250808708127019836945973977902431814452922276421912218261120762567954191897880518627381645224428487643985565980184424880407126343803845624119179880450248867521473487113690525789541002485095252640929100296635179158039450074268946602715404212416650591788019167887917423787260151234502147450814482905385000710193113723566409606091976818002397097690696530420837766813393114848383161256647689969358084854383744318115389404506324541878805045954085211992213809245272073030393856530242339789212559585013845774283835505926294327925345698921534307850209621306805757815958456775688831647381100975199477913840537771738043769483307435523470748649542027516640283288200695412717806112946076533253823512800470288694841065153741755546257528118885890065172196334982106187725152697756980194690156421246737755143042522165691415801771578891689022561693943775873582214592016445774259314117865192783340779321531596821157241719823014290349173613917312187081569961815949086573051862430693991767589604677065091643617888989419330979204441541586756179137204660390879888850425273487916693343271105941794982250334459992550476175287064546639427439499189901650571754637134570934126657114165524152261835407710601145648869805209893425567608742685749670746951395919205823369564819961620900585555489434555795137525823683273221004997204209850938060229527926162422571424122184176353973406718700581480843093420347878798669610645928559017034382737105119603023848583101631407595125791354182190215076412556515592508531360357170217139122479728991952691338350109743135958434806165641466661530805174261426334350666995708448383303036480588482610656685006515736504472804366385571863777630479394005949604739197770126899265324416033272243275101036199746775093283653964976197676008613032350920427776879064449717227241601544614640663320371946120223566489852021938752728197968689317215473571418701861418739526272857003909192124951855210315885183572911539720148105700885722889586860330240100543899495431008262165592402383682367698240012513120330352187692979090462588325169125494943795712455394875352555925256179319916400901600730451175068866713309601187967621267360505518340341106168171920922515518589028703923310938651303505604470044002195667381264237617325807287385646688599192012123489390630272440787248954639623415822075955525689864342854519854127790745094102691215200767178415047786922308731249459307538261135927381388663437748625196513626889009168653443769747757812102484328276889221541829751922899104198611507524667999514216655005630209550881713213406373944531173493738770851326949913068101576840035461551927450781823450121657537913776915464469831672107190342342276320837045925786297685051361299840543227522706784718942695912268035672714888270697738027814100295660550806223950654966079702405556491006185379761234692989426570814202441914693746362693539295157683089113448701843628612840948898688051737220062618079995911384607833194576293179871033228889376648457325037663972811687353394013846849015067078348496421251402192399951420011140668610748777529635979916636025529466320137268345195220401102815423380738137507515180320211605672586017217289969073315264988016172499787670313582007330183825584141988915501843215473676907761261314735300694802359648223851782021147908165304070168382107554859191138402768642413846588174948745897062429817388823247158443224433386882496880563498765641997709616070479434304621724612634154906846604922994210495332989196135044212744541602120037834069981902417380874179328515901557184587528926356122514709785717512162586009510507334900307616594210892667814011435975128250156884006604998833200872134593775272230352733551445564446204960844298529718455588415237627222385655388129127918379194336494225946771323986005802288617145704559573768699696103821137069275297385775681689099879068845281137497582244845622533289234368765605488507333397192834059866990868519187510601124075914290910836230189970265421262494338767266061847890445825999094841185543060466403820196638927083731665650341771510080705103217142819280229671610214691389796261222253808737043510697571888093011945420033368399360089657023285702152550577575394539658114140381714787779015872377426720273073453320508582159354051246252419879182574469615678824004013499368948246446902303396506300938054085920558719594521285374864167844302419532763202056753166135645778944551877659169969134276690644915215323727668794469553900495999618135721301090304048623530715352213894622925585256172058104963664974098148666128418578701080374910911697880841397594470957833074341505073035676756436281527324865833088001128143021228313681776959697596649075462777088259132643458031352766703081080848448542018166717647903700999214317340464788939980728320977105189386844246040996968546974458893509510269770223294131925656101572779759501679540236184388735117713502798769515947651061466787616401412657460765209248299286062266311786780749101024548806100964983528278397736333563483441855676121646482540009884580329629421588729968657486502276159338647743661835220450298158992520756495793718874301942712871399254951333644859072246317302539931907514850505869338649758232444386499238488921256654932837198115421102246103082914403226249087637155024970216953992277742877078610947720838848947548248575084686349904536590035127121702774503165227810341938344182983635797888058440082688345899430052465092498443435928660988726816119699791938028559322099199324954852102771399426917076724733387140676697939245895550451973029510628403446812139026546988447995918434793422431190636041112944233757724195495180105507887911589800570686755804099569177771012628579253452303198692595204668897656036988274524092303994574877584261967687439102347202719094059304881071337144471553238946338204912931734305902392694761533094312704521146090487347115641169982187118561298717896782541051485822661526789135780588614408030378371530820961178099526931329633718848054488190894584983105313196596327574544240623426198977400820043309030921836584185964152880734535872554257623758425444171943778401955961348647874472508849119296352336685018505190119505068481153082420897179297741850105090498223897857374931542943555238504702067491121882362042194341900545289194693001350867629161360929105829729297016024579080986182130240572402267268736868852309871962020939811874940393062913745354207876875238244556625996601592296296372135687024420762716798979408078128231043969377714877393056509795113308879780541916474951173843656161925841623458135206051379351727974095582046672355768775755837840470508563899998856722510673595625538943596757859876098088243308507740369961084149193157670936780899838856083179893488179509075769186131136402684779994818251998575496754726594422376873904718738857545607136719806719184397957197343988705710151233214768118766302137944194705396670084595913284214968831131689203818535525776389934477583036941385932630153949191992363883384560441425313659823445679042980901074748691856525552314889558596459636019967424145727198759114873879603496573893994771371441613983445350388188316796602436293932525954421543809894478952217693083177910219964430906334129637807530102086642621182827324730892974466613752939451305117410509489076041338267940404931392650727837053132481507179733123110832534835363147721510533327273382379098945342263327294516852130670391229431663508662709892413148183316127868893956118006114947245671956322988095156849059704414888908823740922236676593387467858489971814777462637488321296724966167621210828819220173646077429961340550891684462206430508763176262237442722590268171134644094607651792029177959347732407120799910975624561312047205573920754837894102138159564220940177220608224811243438744321280309449008543458841249830715920754626018884921815026950431479533949506457525559054045745465151567601148241754670213163300491456131880661671528018582223665130578061956311698551870129530001345459798869048398187271178693888178418107162411539092948429523634220939376648260772270032119551991831404871166230634658478327180326076031528645361592530709184791500129452777663399865729062455287541233882542874545708900587660438635409388322635425302705423921579953429071524064060194381319931902219660738393332235813370928073014304380722635051816424911723486978739803527358808786900876814535750005667570269093055247772635545674797880176830296164706670546410059527545615292817957508976632532064681986908892446713123401328203030933453186546919863230509127920648395374907697844777588329099628629764120923762682326683867411604287291714473795655426134222562201498424610636948996141695914580520261476375540348821310068163098625144074141191814562249327804894562088602698375365511510526406060487443716335023250755161038724725943904509639048480152865459657183173455159461519057087675933403113148396443815074268500622229730596667917314818064206299896663313231997856291312739895423856029699415879583777294303743015074618924719350534613738062947573485945532394067378571850025059750708850643306250937872897011854175460245544288909620290394162940558742423271423053108335992302651249625811745751816016582759324982635860902838273528195923710679584030303587979218990988266953333568092915518325554526981922016008372025387461370558565074327441938546409912910938989160933374078572491288820804773973153080708697603377472206916603949681148214208888427086630987862564833495683806747987714496819631432668872868196792128246456559109334513710506666389024811276008046946543586993676584175940930635019849178415879311472897302271708254934848214349571270610012840163532928194383830730110110733981290157346394860544813783064202648541519769566489746302494624226012075248826758197522194399601397098308977091172893755133361300310946912231794386650616316119710432589834268465199472014856808494957130726900945613952184371297439382689230845066306403755989736818188925224572876542362666506125425149060338253351145078784373812064005045047853085767610621502965939519337758896971010716993329579344787779949585389212084992533410763300612581806784607086682887868808434250816498840222518234142014450881703206829293948336520008676423662883519840308747578629790202910067959293869617529605264465318143734577690757843809123326526527075248066066406594983141359041163129772247882890279810989493282200226147944063813752876153879960472518737591326726964491191487564575309032826874998982576224713979114759473637236708393585945711346594344866227402480901566985268355881127876701634766719603183390403176859817261312223125724903697807774902252010811967492611973879742546528472577620202567343788852897287933577204790329368041844793059392739746258045532712551375641902151886094907837811645052249655965816408420569752288767412989184899134865724140651018751516759867571618040095049501377908305404480283975209031113966828858747414454136482546174690670970283365401557821254800190203578479259523944797121882378285682971412135529485396030309148328820707448863767194006737648550515061856518565685975099632375569136085599119326348242586959381282199806149164144285292901434843407716301223383138632467869582887188491731426633976290564814919297763556338630409442341236468562003136156405705567947880625877446027234796288653834444034949433155708348784010151245500001941417387241229761023686600044502835404056085223931501110063769252840598868121557291093220026200494932696094487864174636080041300210646084294358805182460742287085822577933200703347125425965974490876080851787742779715046294167013405426217859779361260850498375931749020274920912882470921755039528818880376178971308478395960171855732407183758454081661305888993371922498777142365634682200610060477658171349504947540695838770906325374647904910199887676815592533115826757239526128859750245071453226133740947029278633075211316646156492888929898595329020699437476655153463444197570632301120994055158043029837020973826254506265311764137833605979404421833288848763733531809505199259151649912810400498706041827038524937957722498029925299037859088222588612560221108248013687599580565323315541707830340286946417276696298126163579509374570284608294076391263648070270337039746423119452166148522367484113630586945701754307951528301181239033386333801623247541657471146984353191687259706843089853280624177245076859590818715304149467972882296132534032873031778911336804032193392012425610093674777460561888696141101162941538302106771508514015671775971002752039531467778158395125350481233291570458426711142862153751709507975684933163380268267536666290830165163502437144691212863914264228343726425542514129315323647453277075493755795590792966455080580245820353314973790112177332754984271866640505225475167215871515219421988104605621572480630332699563114083939635464301911849506330714534119824876864257900847273175686122191532084852752424417422597031388015002536657646352413029743216970279472595693421381621748394768097156855485986007350132846912018584417875389367628537940101084848064950015129300454430527913061588482424491534451283783929139967689443986967993037064389251710746255670211149255106705090824577569328013044304033869193127453844285282881913611051199566722307877262289875049625413833907569682439034817292486384930775301514457919537187696625947985649560626757403274422847722285075073288602143911219929522247748264550150419572869390745471533789250317387716100297478032372843770266845981408938346465650308678920209383564996240752987102152363862854071571481386169016005368048646805134550566316022045395174755244770843268674572844961767530419963076337432144629207795380026628640433060592991677359107104829781484160109225177252873822180369252528544502022629778852643656275319660781308098770600242328660424899031224725933074541920957455797279497440136549115044927639417639454783040002079437092948286855082079138915458821454265038349522758365793817523706586869576892735748088566170664677934927884280755707243384156264714444741024503818457884581455860348616191688581556511512780451778858297069055096422387092660874738567777616753532488765130023064823510328385243248138939309560058263220549268604838765352202920278935853113331795095256333438682010574671582321374257860249486604901690910159042789721609695810886252981260254101908289526850228017022390177451414485727353879438308023848318309805704346029246790325757677638699950881093024464764806801407568902797112472362955725598469490891071384552604367127485143085483659988026109463069339073925705974120602816055122235060343209255466979946530960196500915347712017596188176399846060841288946935088085906890891454883566420203930525559259921980955549755777864420439491441340335102430790383072172590188693602805785504029661250126970997785444519122707568535789776719652523811321295238756034937976507676379167172204521240756876725018616671119632644741236149922002579140414994609964519077951983210275792009489930310626595593931997407729998085851356366109308358263578234398090642881598005796511248317596279555857253699347246617944164169843955240528327749310821551936571710046053456879054046748628869249108886012738279591745156716131810177716874874763436758706532607571803332456708262430672833380037782487676157358114758239460948851152308374022691862791823989071794543003333129064067841077413927435294177088920674488366099530956539582051386188796107234752435355306073918278617076232648657160564173179894963403279074205046244366865209951487603194589284647623661395684065638829478598891390340488375820818256971620548681598071398923913634143424431207512366781279278017100685696450716582402354653941841926485242347591992673398576443315316741469131829794866790933199386256402476957537977036441482262786539645288075980417281644347243980705049682840118162402491075867846061401495223697701948422415346406478938510315950395470528045862947991395429364793029267266833553269645574888831102638250864009373514041836506039332798700702617411941733885589440628565156077295519338898918360063274623175660172392386158710735510382220785445834684082320883260212013875731953288332346844108792910309166531180098444311878414738526808072558509573798278623668822627567445668777152415272189820339479291655503738121206531304233440297493534691409913749007043291177150446107274326982609837371481991978261384498178436192959077745033762214683912258174724032577697508444928602120911014428039308528136200288733990742795450668105258272467099015920197710658549673840362602370746517012014618246216000296802157888897789749611767188299118834928916340183476439046657021241037289067875962245681862543054232995610807856684810436970058506345397051572314304614825440284641279806125456636473831083258261762349599085962560268509374171460650718296801583109051083024087136819422551772839162122472583277546238743738372262799959976986147646369680295242167238054587344608650551194891530861187073766148642148238949896243298536946122847992969537092227725825072655394738078853832564118248484405705634845238951046574408257189274588159996262996833058002030197072700520202985505341159577930310445731501909639764152552297798468511141742236741858125273675480323749342512473166139632683836304278938869178984285940672594293679127053154673824466260367184345105762451427255970724717415200045431465137093415677948610743652561369264395919247672913612954422493257172271346141148633244848626880439687317465870387158950814084244448633450444826183229887055068916499338614904244802733052500542613843331499000695275637630039519029912949335695482791785225757653047077297543227528900768086931057705956453026727566341644593889916594054567810182634657669855709563488558834168162860636710075084060893765785493357127268585941583878504107965800254553571773172197254641403193469601330313540519376037610610187549157317633045012106993180216373547183013459439859412240139085562365737103276105866521874106836038115631397736539391843377605321600849097268522252870228369497400463993836935288514366024277076572675286913894681002303429567221827327262468061786757389333302410567046880062688164722648773426964115390725416639456795389113644776563784392707317047060983874939834459596166409650190713833031347198595164529387801512304370271151722127490045851217601261102158798293455764456564479796870943268803151338196981077240663715310670897744015810639935768694515191043581677744528514655873694658906701918522964559359160032311413424513122254073069346102267491689136660539880269325629172962629026740394445911194150996300693605784562519891265588563173467320370345746488846376080991022173333704450363843609205485904197670900818549729745556115263569668163960531831581240581679355431417269095689043784432014006986785618678789936999286764196417762168327184597963167718167839368182766705355361130488917393687595853385476903873258842994048660684156916788715231633519429466451021415942985767409072301960690623749452375355184674530528424074426977298338119825949740133523254251586078320320472665429450226879997239465934110938003456762303633361887420406459161318948443478824505618379811244876307756778611674064929278489240661753107893493622132262245863377121358407146467612497173551166462408222549113549720753516394894752147808297386990959965858123027798551174935558744720109439831390738535655488882499938612168703970594136706541452386287360488276984993446684269261023322040557212750200865975477683674452178966251243529707345336489896787683145219326468173654562703628624110915558072976941657516799977172880937002445646367186935674721356809039588029554084725370964056064133572093637162805918123980316575175364456115159877490888017345714873530798872931739064210414134584423144433471208442313669200210858240225386841865697521369401385764343386761997857796261090856051549376082069245739410679219455136339691537558578875794620832674823154585521338863764212774244155118473570373078463950518230350315020308608876562243711880461063902105764949516501017057421062932613741506120003480058326936081183646567868629326507558172584949440099984285606039346067743766978381561675077355705996869308241755571213742335492705480425567665551045774936200556291544353295313991394293199030853955576053662532882071357178466662243223426539431312149677958574790968720298026298262342444565304551846882227038192130043040095861045008575673246315520183952324163068581705991518890893883886047373341884428088499741430328476775524506184579105603301370284619757222464844936092337097207333179171428242229081804454072437676310944551962413020763388655206836570703803945879490427567888656560073466458153966199113321847059790742937509027535378453635198467792806656758699483399808348429347627173177127137066690295711921729576736396563884857550389151541501673615546488330738210430036051068041829107623207944359295832612165261182466822520973048450240508636969771759100007326336286885094260574650279696431752904285063708369137198261240531549122138001074516809178172477755762089781720967841471354378113337106061637992235262683296660245124532573917988020218745051371059264473859646905620889196601213615648859020454372557658755771831746882011290483669792468650446911940686229326523067741904832343409013776998183218262846696207151710168226188687475005809765017888759377808817296114100116743974027487280927854594764793549863190348760988991512669853356915153836384890513484791759621945313273901228807917659363293176083044724140390643666142722410334234746512406094471222151723428928832894481388688490188869945951398031597491183862452096362038626205130096206142826936415751471617454872750830998292046575221741108688035142629389681992823594116115873263231994027067932203157870694263163377986246761798293668620280422957708035849450864807785133591380252403793161745426068146802567036904440724241865576485324427327143139392856340332858646505590920498738830574029267225742076685931831133507013718168314120944236146614654614844959784731998678991162976006152903475358395479431665189476567617444034711008456330230990715006241699553077343987270024153323844693667391885196212363517409166156724046574322180092721127906920578919430788462433463107610325685008341128781626990229555933297152108502105603651953233087136770600607767856469490850624211020774768944977870495159724746376219982956224465537627951694285863991928382247596630911570012615203729293866044273191142573085297268037050221430272907544831704815549032050653151578128024281409298698397329440510208872382980439299434603017382985531974850340285495907123896748551141773808770799728499129036725885621340371132567998362559064130041257607211966258834355930519361999841136109042205294152497845475111481764816308342216179465465614113204455065739918934367075050256423458296421905497767251220902698836152400266816619772527083956194850630452069524695406559777623831398069823292418981872521191977762224916064915729867896105748004311498369136272132185880207978500123497306608461434057376558177430445769141428739017016399436501784383692283763030830249235206705728822460189544795767771759682912192020438473644169520074862652038282461580034372433134216689334175634720674824619351471783163358552414463102796052409844514055702952018796844976232306340999159375442532482310381953627393873419913379284875148947540672244924226831319913917257210318382307358711051830752734519509297840057630959936939039381214940325377608846337527161925622528813177145462412394359663712168890666226623342536603868091206119922631518230057381125644118607900225833597383566081372606873142309782307247148950586958129977538393245134041347274738734149104595559314426758701670027375580432299829403685435122381928273797158161428318331230247699044221104773869820734132491994036888916075822542403604837928421761846286335741995379981898028274301143037269215326346649180950148612995663298985178484555539271564451698077602282837498907766970133103779634257537294460665921579268394213605552054381946474403316243758852822470773268735462205602552727982282868756471681293274714499009579839669674997025464474701108496324112952014675959097018081555872842258786669049164669487000454658396163162447708555140481028491813317055293725361850413427693760033840351038091569195200107264731732252667390800701697976621469428731981394562470454696437983458753341693308738195337976470099286287522557469844595620774171148341347090449077264190992384424508393597042523706590700801635813487955446082146682451983811254519044108271078189510545919400783158605169027190291347559657722726230842880877949450221939515024156424099481906502724772939079868387774436499011687840417555788808911769573953775474851847064359778393496176346265186953256513391064920481914367877602953785885895494934437585778388711699055376403128154451786505521777753534579579971905835285009664488442141131828897167183772342486768335560090326086625429428951135494092361695064380583429413881709260790800454695407074876368382452442059809213280560405631029563142576909966792980281459788722562362484492136634510744774480205541087452121425563072546038562171796263145452642510049362720971954768120503703960284108882281563817144923349289090565689027064823917356863390091136549576480011976251066043693376799327234633577536841658097454368177941430278162630574383714189473087158776287452660097173722988303612831375390738649474781973821149517614863083420353028466760402805076523450660860539135625170251339000294752661059790210418358964519130049509051634909826382849539100648498358255108165509357682731218143093738482527201852867257638458999060592409599874106952181794176170751494504002835506879169736434926497905220857591713860077956801120114171383670741140087797991762401746352882610762119456459588067147429568606057495201733051887667689263379667768666641583978393333750030278856202297308569216784134080998139438969315133309525374648924499478988217615600236585134267854465123758164264913932670635156657603011904292866291862521405808028057254240565487436673086794659706693058656893436802116461329357757816392186792727766634330684887652112065520429301929439053614923065480820946333610561386920338639630117960609505254186628826973197503390961731055924959259418165236396453202522481124244496102294693265622399738881485268483688422158959819704333119311129242892194169035673343657160496695496411175748112822312043288726583566904299543622853846942782356941801507987309439077146249334318937672279191853141878653022316357252693488907547642380899998956397994633566141887844686612091911511147954443152316410152037237592447334655610251298878163059371086408193850119709970306589837448721250777679939458643892774172548836150789281202324338174007573760168931228585982382993824794241020189559491057222709026345790491414574783365124894216572577831361538413131770411456258217891728273956716136063306591219098961301042146506896221580311798370472777585617542087902902118346866541938848429857987463649441184705219379765840137333120532066175471183370214373310133972373852217564147272872926966562418730921096438899585300804060665018155383486636048025873763145786988247620862763299137978035064084339621331558262501956471327305535128640515539701403637990493495429119518934900301232707507805833378785210896252804971519200812502957968595356275090204162216199022159642435290848634468036616129673982103229775517073415860146025132379292190983733528624602703377134373680153151208936922721935225985009961659965900126236477650246564161548788360767500361660726865246534475256452208200662490915678939376603658165566476722083477544781584394563454293721725422174461489235494091864801729045858211879302558429446176339752166675680990910562282494066146808173243508568690603995253923980597719700377242962644563198357069543161162948830286690685290336889956102751787023317138619532375239993926789907240712759959992739884073805788709607021179214575415107223116093364198094710698049638381484448194526130013415100811232605462213316182444612037830729750664691540934521335904574876823291422356230273003146924278883567103490608192536011227334144975141402391821222171368817745621007447734600906730619570569108619635854688330050452642220360137453543988709243496487349791038438052129359065138140422765200864625308663507448064245188415542914926266835419249309614327305737703929436289090678108073736985996168949381062927713785224526353690840821678195238334288793376007395861076022735891900378714554866572830368905752692205330941182493238955781710907252639633638681425501560094978978058996248462380752681864916445891204595346530362120648997881454924429213442101859942942774213139733110541665620154481848086407028828446783377641273232542528774033240441063803604612102836387589546196062870593209777833193330543590619105093961982042566105388498961019454214479300272201206442718911849083027562048358907928299466695982477279416209336995825998635857472768788351444445752490745214110573213066772541046970770111653805544191796029852316937597373979569782713731502810120615859371707559042352397230869723729082655613659448236307552660756086957483799917177382055553720906625054318881955971256361434868674651956606121919352716853304362773689440526527046842882816515242227870725797985050286576363833090682339479537618411291823508376554185792614939445801550947846336373018431673408233906839451187184877350846860250576328342129327711779299571750913016354377981551916736134813876584969038184713707088062175408945991279284865051482567063270487255421093024123524889561763208826101414455318663516680303060327873696841224222895297403921002187813182973458988660540285234498076071062416159855545233751633508855957504367959392501418240544036955777118488888099183530703983092887326474442583754036890626860267131145973713404068082261533104728635658828660131023669636006853440545782902804928143668581181432426543783563988506176140746767090873932966939808081491210754631656667178457730019406441847344926079035803944172712884295706613371806014088483463396953109986064506074850009862324680902140863516076380167984806514993878138281978600212332377232646286825462625593221021011510003269099952525080278127096678516370655581029035648602416546901523996151552898510246826442664426072866791899207259779118653385019175190571364835314835111995450110404497678633818417893145276465383210277993221995464760928639326050783039942394782685074673476153107381398896383999514430453528613188687466685241296199148514226315339044351100735300367106992852395100386570179647482173667812096986964680356519291814338970142393689141471396791365765154973374866983655237778426206894788285258470089389913997610713224965680050895992856481752388797964662925115183579448624889444181669033604537152460445911713618428984606467810075337675977592607072615692338526579785547259299252894206058669519118713897407505143704006489983122149387482417840207328345565314087931250223623094733178552140653284523254242391083552739750645752316371584522280782051380265088688902118130376504243231958034978550251652959070079735526706852657354574210382765539028307535492887050631133833339911539043898655138433847980891663382000297266266066904692269630360869336127953667749652465644188040597019871365709842480272175892440495692276458681850704961249088680212740836482690572285910388708998699857016919275243638216128863664622255567581377416019051704983211967512956033103383670411728426933810635666413697582991229370291887928613617774703725005907352815240990103347709883526253307234167702582882356990313468891901976402937308903249777153114083740182367413517242607239829149858589184748914116575921071090677754695833268434177953268747406917390362488022227331871757631592000748829623987689565400171565381592630447907916636697936431717791387758468099994877487632255372985989538623826362086805864064281731332324087817764348113388756158259277004294415471819553239356889254562963987591490002179512902129325135966598948780554292707155272883265972078234400890425988267666661126161096692630455076207573776022107701003153760164838534802024977834886026877961788616822390818794560815538914269211968237742099572759073242367462796775841692259376897578318984655180891826986698372667201469864273390001700893301705534420473262230713763784187845903364197349612504322627413948483018473473090764791846875752006100698082929453353623360550644558001538471501457305453614070265252240134849357128440405797705021712276245385360239266152338224032236621068884800773857446136951900313057023960320697958678375299513746024538616868834358422125399411978015664769905083855084195843091574018780612341165851182080834625658500436290538415174910220789664311910690814616505320678560501608119630541218126933124647717890424012687491086212074453894586379389690911558029412743573403524515603974416498078001786447694852040763025231325972734818246897245684304289492024738292220397322322143370512429663876367543404829166415529572826062746844215863028720925133855351481453596478973020017114616530072198194769151128408307576682322087343825954491950137790977593817167100384951383313224541954631751425512969266211249647912758135213223079142048314669101337790819491203648192662347688542228775600814531678402608904117465288515855205594162379293216960765499219062638534759088166799874117912117838555918021256236137848411601931009674136978913587927976167694057138339433810439589917348099322366268014324219213924576443873956604653161443205315442558988527142428520359760091364634285991176197783587124030019599959159532594596691287630380881883814062185194098734116691976623246911192360092483754642309663433585218195202353031260471934511784998302344651515308141077700441218587641194619161470384070466553134590305527648988552286214846588061060019540234833633375748495244054061625262317549043244355918235816617809054877502113782015495638601183545416314206851944319173428922510405993818130563301245181292954128740094712334358267627986019501527145046323270379162403339735583166825774921694502906688285233932515143940724231501745162411402126491096718541228446868251185530938797573562179928502842607691664272198264538277169166985681028584294138305259515931515226810531300122212288502156120450120698487172720992150612694922796163598317474677059221159078798254614084398144209952533885569801584998321309237073420608892322600400425353552467645299779420442723543786438999738984229662610250431334088391773704610156555233419235424571511680205765881320111680322906889881771442038967550451821104630840722565099078170041234701564058201896876508621888043290626234741446046447850712147228798271847216938356955561736574568478475932343196534626394860103140383251726251478572957265392339876959500546775704067521299187133930784255453978802729213007235164151393712321105261439293630345532335954630848630690659201143432344753971172062052688688951292306514105420297370954825505975106000496322646248575678485095679248485323170424095507193550805991876341382947714702608993581720870677756532261649434683731104013433496071792478008046926101724699759126016023219039697226102728828703036488821741085635518407803511727089290121846906150919746596993068166137048127814882700691478048922232487618701469508904727350855636325306278538918916072903619074368120491059367275687843847073861421223046136195734439427752149454190511941481197667948818032680410331729331848823549690157079409325845846214153291574115283547092402060885278214252100990277517308133829133006684947694591955208191428323583708978741981236726952615146083763034298380512610910064301430128998295110710959912695426239559018613474260448951981097275231947399800536200878396853084140752122666542016910782161730653931904257579410948469827850339583801902520133197747248313310573585187379427225068485871236018721796586936168644956162571977200463486724641133997498535992394006398527713410415724223859667141554333452061846508782008382347586625665768492074318875384490457621778960269322088273133304245983127361789364294466287940915336647852900407184302839429387744772581041980314386173987636437763667238930417188562383071897244197891592829955587900246356982292068901628091483224688277732430409301398877051026000077752515692075455106061543771955284690998543730182891747729921517155295518885480695698018883995753343812648438192210909016074263733054889040090522839694133775259471610158393244271515549501063095402517699081756463594163288922087091292823546857184847787500769897244546436901373081045964500173987947670306241917925651552479972708516447837864866044370336596471609760180946488377501563646156554602044749311791669838310879771228918742304445540967905143350991112155653918315585272606853226774332242288598671843546189073606088331838350489315406926935490315063641331005529213081442607945645267896610891488357394139556199109611709226847020458651687712378718848283871100807646208796392490469214864977062620259860309523144021169206170812744697865110971297784255437476220264135210456033269898649592037231909305422495639384394100552438589509258854867803808491624655684279049322941313719043108149872372194917705385715438626324211165583664027661887998214020427725131850104006100168072387142988200715466842163443649828378920224622696575196020613788163420335029214707079339347112686281622957196118700819574773773810829371765310629153527827157525709011425394509487122271787687305695349110921308600581699940558389118880715777307890160889585430142349039213825614115999807055097530870678636385212013455628838422333339690166837708238805578349201088863664853800768296605484936949232794917597544802620706170093899087157020961114751402098399336619867938206656601834300507491962221124222497120082144440332258776602190995990698697070685318721025401530048156906402802214352132263659143634298300568164756853586923476328285157849903076037782705348728474801805962787288027634880403996982261652799298860515033574139448275158066919150628483860988666193936162448149290337438436184289108159539647650796449715581093040623452441116314814678629236570411639357686940168879878166423380639903294317793214678015238511375387786485128775410212440014299591128911113782275582457286839508151298552590617526540747722687281508978463879163428756958484981448382745224476351846447682784637204235865878512596920134716725479644509109175052952155012439781968767187964498889513774311482509081770164404893271335737688627907324557413643146542582937182151834902052876531896499484598561330931860534389184100701404593425383542519486820077821622605540158211896677010916201081695315850222674012324944215829241973616826125632315268251099549655476738457274150352444761732608276299561297224876598992918932333901800125262904307704406465257799764070178296805620808268918364995637199461223180884277310406204947504440001762873127876443418856673430012636209136110751763964379375426702879984516959981380658438812226387709109801508144739671217297990714340276913717707646613134500715795679808085908770853884220962029487863372617940948463602057685470188686502287752751910078424042326328193380077209136649564487289830503282439543238272402035377685634179398917584363037930976791263145889419372961692473789180405509402331865071277427916070826702384078713811567867513848381620189613692652675564050817500633621533233900593944858133804019195412671699796608862587476407663085501038103252282155840478992337204293497413048137335076649443669367533027587998820780424695210295474808348105291181618311841166585997069272263520601058555798775330438193559374721856320136337828645650846709512279893977346999287013034111966509867659543921849720184472272066634414656491327209799102039539032915339381462430021124081284668116389036080850241176126723858958780042309903381319734851778843702462848960273432478832698043500432875373692710019033810436090201288596592228847519837089050114053578841475240559105070569973655757379779269965303504930951911928742473239956536563102239891009977003397318521458259994325798085947316275405920945444256325447444399682593894406694031871439994730134469459624580021430139486123225651784534830432267636599477789228916434524767274059095885791175995864743141100506763663069692279014348922635409417733323105893407412761343669812355163510305367517020236494257162217556487929866830533863513403911852257045313982367195387334081888386118409971344565627486124407024545113407813889957514613205915469270407347457577705199446096396552849858317874870145781027864722961481952247314356302068595323564214014864039481301409596944986721322551487304173370719650459207171346094298725942873399331199330966560897786811759502509839693231203066994760974750345437919387979947861456214396898378657721040224882443927085290234262618405807837855948808814707070359234369189231486936161364582253870992233747399473055074014522177775762071084063386697101924128086963945608566643442409798609254446355125829284503781401036104210852577532414656610788906909811075977843786427847767965564256570078421927759882779312309559216184855114925983530658734803712399975219195340507657646199544201399101042687428162077390637522600413575491105396342287911080110356730373495962299911373037278972284284896393747561520432258764601401036792657419506294762651895853391727158694547214762279063103942038736143189305446466183511078587823389014774051072563800666288762235929533645307480751631423946183580831349290495972585160287962635387801964713251910947080943928057584003556300712591347653762647529606525928737040829669681847285858442365935129933315959136983881177787520985129561790275305832040503456779104671429663432406970978370340094162975752308750692858345825285417781401944080031418064760560299304790998836716006854660615944076946884421601114342400621071704427673134303783104068820012489058421446652593319075873918406573523639964872443800948978836976515077724953906848125849862890230863691377664573581700315002696873062021029776042852597005967359655053582144505812718865039609149358413465651791440431830357018338124239419301009406374320578007290425267650188890814854288270368674914789009684197472648264891379731718443333074738752286155499575423766223399242491693576617364017467647925766106064203824194289544457613078467375813621301219989200530523632299269519240300918264382618692042167741596979165869671748533083189097248231230724421341711940386734622649304898839945811152650090390396224467167500062988606804938133043485054393368641406655867113080156685681328646673536199634380719155758729269813528242052009855847178529475611255649177308829030410800391317621292761850523136725201296494667406415101877743415584662161343371376980845753368457944158895209047371214795951860669528405506724489262432312198542028742658751908005960987147756795557463823072594317814031813257145782405897061450397393098497883165375006548493651830441793340656980419289977698528413540270452893309810770998647725950860394566695256739295911252787039702118209710478465410872743920070815268946397853961182437747867025292418584479115254540150716746657364647686416550026568756947418399252330089543243753922191374289591445775147182115250719833788885821628580928369534685792592869874915935846417233984022969624125369599979677017133483359915639739849353621039899146555731372343046438477702189684381950334863054767592965201568800727384389728663328922541050449052197185146812092928084122533887214674114951323957711307615933244741725171725303711636971599567918024976129867711116660370157214862252386704615108072272005044690086990313246248927435378997352946373233507474890879685627585866473313216877358260739884202907946158137044571419881352620660640158390123023743705872196905815769907955549202938736889243654218374940398752812452751413550543156114453328823077335284848667144719377640356256319356573085438599763258273537811566451226334974635319623187347025770824945714643573268079811997404228561088923459064469071055886164864870903678038715870578974284874655007698452836247165338411004915060535170983874965180258669419856989471814727023913619551395551456055782265156938364094515958859533804892942235902976937191758362664735834058844416091019883874255103241299411488260376540169739998507303201438547353306310399228882909541836656314188304814057663880492340102222361788786336554381369636807402787010464357110315353384723667900534802415345227134454207387131225803359272738530994526828297806772868929610003663185211580664277865055763558855276037270126387781642104142247904537822219308983645874207641738457012502585827652914040437090926688471362016093032020375773843359308118446450519975576664963011781078897948648114091019742105835805296862519631917299852914154288435587677920334312928037375838017368071557213684309057156792225715463038856599051335263308672870672564381347879766735646209612746883771375191786251591979977579653048825203337627314478840777100014503885284287689428721869317952020532259693474127948996117220985545878695351365433221596942581371961485504291629893715938327856166840552706768493948392318674163416859127244535294426761674717707911688713534700378632070600912165103674863459816837834544751522553756950084934723411213279785876034794899012299088951671710224786075822803803998319101664066386107116737852898567732782930157632927754549821680729784275358871458388280050190402245289659460540940962523222457952464951658447682448194300362196636197962122399148106113582021591078075465633626235318508000821024202998370920078266312939894956118599890858958670860138451630076998405415802847782751469244845102738088497788716791558908891412122225825519909598109307236550891736113199934261812990333601012451384074193359643978166351227457704764193585332449476877699781723798376806443204692163451762563178874440531345941021759449140239130044008336166596981894253276649810136081566756480908420748998379466088825244621956353731197855275127500652301724732317386695625601050456263785999569832877116642955307016143811930905541816165407649249171404860621731688581030363569491733080785174865254882858187531960253255529831205248794364108515792026471251168393768617843848275799097933261498396987128533528389360393610118938322221675880074883310651434954614791270009955511060078418030688266312060429979797118018750898696307976387122191157962210963014317500794433763387925968472503941040319426223098257607972530443137305470788402631030126030213575268302338628965750675046341061138729276640800238069012802563897826918396364346871151335601366199365783650295350534840712252987265830478422359968466451210333381347377599979685175102336107705819303645336990878488852646635812190462253556795279173637548046074529398618299072489843916587922838813775651291641781512844079040169716896598489737554478705915952023119535206220391442321427392364274467170843452935444798293615175187797711070196550827438119109828600053098012300733843751652133590468683113273370001589211771407090562837002516739337092339421442827379400804648839083985215069136590064405779302727336094054034043736253914901041933390987085782963652986037646431809140217516607055306229314886640385452839019392355385324347008443167219374470199590904522661095016116936955776397178823160390429265669857638277962889625583905498899790144356505580580110020617452624078468090944121101203497637487115749679047502237531517390066325625455879217153724063771748452150949061703233812256099361969956305040960200074146849009301642070840681053781890794964196611467643828944754830763791083099051955901121275743944678500795714386145455824974825992206052056269887251869350610864316476086633128357160876921883232818430692199041047725088688393832920876192305696228166087110189671506598929134716736765461879257702572383453866859947583654583320776856332003078215961045690619855580742226006747687973293114448284718590691579898996701025933388686667142150189407254867455444331268505732785904566137816777225318351114259669409241420410207919397444147408756789422784992038584759059096395213739576319216669160564234913431084638676824534987356365883506560623661667820796531134852856516705409997555607650030468403188358623812760346128416291158741786663657859846959613352344519463983336055560676268797276627074648914583836886483110453541709660733823962361807477945918076729976985325368116923400018349083798218883323818167946271497105333983628316592976762822355341469142815599958447944497851592079656610267731701536590631678232226922499213384563488093822027401521951719356734874628173567504319773811102646309201378193953041832361560959512855934077132225683940589642014321615055166622904664277501158103575384159536908586330297331400329309939214737379115402849403864313529210107872464073534013098347658746500636410299792086116172479389789590822421614763916297271627797002504568441739276795006224685333026294253706268475158843425771963597414453416180590297577943216249599568961357360863123865679930895400454044106707604171775907086309546006971915576032261716654926927251624020733000770023208651619171543683844831650176886346912946129509137992502749061994567795045707787267908263405636729291637429716708322425046338673122265112329724275021040183749561776958791352658697963824820087410581531290336223095031262588409208558581184022840040789520430659893419662206772352213062551396050274248400725161027656576575103913846219845071756831269516707586503651122046725911896408090768927655093509729789309673383461989286971411249464409126566787153514015325372255215414308790950057455656112663544225290096913887039666823320856953128399989665735776465760128947447151910154025301868089119993292557793896173791798101371632566762459795697205563738084579290861937620641519096511014024004498096083741535453290245155578208531783307953289840051915690422180617903807419882227649033321449547207889839777705179833313507400093661265517590739817092267229212396682152577702401676928474050686524677758361858916733106765784590931933672930978364888240019725997165733633141102854488450322201739388757621091699729219749742970734079897110287006389954189888144652420408882825263360788710090457215241462271893017110027214036242463885069254745527962909446086107517264262144217665178500640903167093943695330536952582490906675544603849974822423848397358758284756984279089371802988849755755060444177727334277477490204940278399965009239072847833306982691423018580162630992307979313684763577683089732588632806234257404193750039124936542873321055893396691339477296521646497249748848979518836504209988454537264938078068059175438410738364821756695928283537351158420773589663486125003145212056272334697109177284728851396836715222527352573953196953663699596932126597018755344250666703382430991676618693423979754572796477746807293448476756360569122797359193610645271494326738942702902442554793118011707270098271771358439163775057161647689069117617934921418188461689322225140937374395977742952113988872218443755699812839224538821802110899852584895090752659252666893892184527327437739460232088381445673894300803590437333521656807592898280192293196988540547514447639102957916836940457725883410438526168793515053017215807439397511413642628629181134248395886823315202501601403297192493339011536215502351340056777491556375399517228956613663375845660820090120320577760007152090309035264060809353470090732063207057837586623009125037495150306388308166939757783797703895590342243076587368994468162255728919165453545566075185895169613310119681779403673013904290400619376167385031828076533854810709831269424989221794642810261141209613472974467041537184160753649265082055699202177319491455414473115353019301920235447732105157229427658210570940713881717407277732118187056733384249755369771639388946871811995086556473435493938424321543895377529643989873321183798646086347800896573682101044259349439575781580478835506335387945787632788323541115251604570090778762548520172074474040839524313978203866048301605941353970235991643794980813686808515871556563773004237468843997249288555470742529313478097362560626484822565932112502089393943938628604142078687881872633418233670966710556157367214415722378607535306633244174356123538649996111288925710145309093269743912938262987881663397134225219486707610898265106215878102193867475536160284396835961113428631729539515649073334962831420578071631603252972099858281462605347726279669069949535894107972675242792034586197598792009105399013597603179697301082909329472899705842652492336969552168574702291725378650616220276049924524688737589902498212592938091948944063409679176196276473929173596784984197545719567189174737260172985136626918369089485538643127544202693864928833539955748806881194777189583566031258640148729566233633811032643081756457060598300735452098387351773487613261622476369540607773156863799074935509371000819617907210143675714312026559584551913956189241723736499492896567650138230212976002735694541980793286912021737930934338915557237401998748041070496345040342278619234556212504229403717875298296880614655348443354220267137598387198242383551483333161212981686637439394641048948120080430083601406201845015311692608072010882800539183194055004624757654100332544042941710170858796952351676495012300634247765141567195982040448739661592383392027650886107780384073008542153384809456759217179140203593629244076903743532945776746187077765253314737694866972691140392377381599986986878570046303245629034373984829869028585436907835854523383040598054580014426990989350418990464774707452296861265561334510243174651445628484844032228991227822059408314151380183471495292571852423842398703593408659768272393271599679646600674076017046233849806660809067902938899270917352132286399946011739213781857437891053368440222744601285774671777167218099014713016843857121309701511212816749240377435109330750645268147285878778962633253041846132325845782707149747884264505505552342021303127914995526272170909499408605966168492187150382019109119193809858915293839475521331386443412227633854362758761977281136651707587585653255842783100121052773669806152086229253198649007446910757935348981871508112458862747828229058377057280822549015121439093054491643238154405533477101265788529274355154208138519418600042099622054574483198477654480177242324914711166838624128211289397303490765345565035187320719546845976489728645303732085246650934613817934189448907690251994851073767731813325633093245503868413282445254275493008604253269732445064782137142259657079190109036505994739734080547001126030419598277777269737268205074979308808916661328105651090646277463938583751412702849595252717806411874054442258846025870676316265350347489445339342232559350154444083008876149858403131312777970664909266215996806908134823773502837462741061598840163441897833258442436355910570491613953626290893697076693285041240982707424723539898924457343744630988496372992421977597938600173496792740085073653015785334956910941942027452634945391830879183224329350519840558748365602911924006953713644223062836393027885709204924476418085704918600665532435806223430733644504722885835071663629578068538100166073433210116767003759845627581475196019168170587173318306802466812418189559788373341151009072776060060054868379532504573585904514239780920114529855223521957830218322701307695942480160912425358050637140041960855276727884355156043352824929762638978802233787322888140760356669486162970544446866057402126414998750239306500844326776823321995820525515013152456031001841242795086273845044606009015771872316089401111039041215961124359367330050068618128616382382551068580468278141863035700296867808870262263171701606946099295360872764931451203797476816716914208718303725584563415897772229022638988380651346424946206955632233232956070764749557143614826849322975888938072233430796554492571335497855622151265416724585463206288729155083611050108216917107701594553490630126365144612215567580380395033923659257739128506303772244204588610070318755015383423279675334950802858274438146419437434353075743901623064255524796628604291789459081644504451386528331914437950708438421033561044948472562546761045749789983005201855201588232678665108822555679016003120746890821272081806621148485167331175755453837613248870281095861784448882788922496640437874298679151190336778316721896655099454314933131126200265933684297985262470328054373311955633968019109569148156440400489671868324901560705070534422777687135846918842316412798315830839244133379446702091168564157024087415868081483550931236480785489348034606122561163020421596645927549827978188846423569505396633500106244608947786772460229163274696265520686747113835008818123677481802549470154372434804868609785406263896701540684073600338590695752505091882430707722179660502210340177479057883316455527668373494238077419293432136142602139608097501297839068381303819761002496450351995221035785345311433806337404124469595731352170110393614888181398991983185118924049862546678800169321181492671535444365417422454738788575030995053703226904661996963604348445850235706386978518131052469379126433162318287350770136276334208141065739749823264203047663927016753019967663171556205822545236566480002329970755707218986740464654555886600807188381949219962991871924603248556102656274816042701491319354698181437973617982855659094015534868466793702219813449429272543918523541121401256046009414187475955193067163739001908447423531147038233257050865768718863944382258896409737891059460789624017353310552882487161809728257047483100512766133669826375320056441145110360612808167195982359254776198378326013932943150755804717061156301677910313849322456370467292075974996649229044955853292735272146212613538437351604283277583941830037064847843353171431084728285128625283035441769114281963833737379111196074163810217517703348633401826110125475172122944138547218652017521488030453708533675857795669144339332390080906272616860077048291878967334548742978746599622912860148515906253002610106519991988145076837682221175308476430873660262165514546193813354940328723522855426303924767923581901288390145770456185703333023381450653248986104186456618164852539581924539626269999309188352625254452755048717246159355009389521302626468690386344792826196493253587761800485932173181111440722385753570212973769776190067037249285877356404063803269496400681374898196283481347660969861685663706343695293352168263154707930371159008434559933908181083511021397683887476261901582790237282168922405406711545307553972421736423621757574996585992818435998491254321067109845251409540409686792316697744793970853053872073867366695959254627310059829501815520873045697750198374054644741348287162780951026388178139436449024926306803283926324910815316369136368200015974564095719504885882958599967427682994961063362452465866308047073211316514244435668501719441811969900307137402204663945242643675287260274370713031888777775889763364607651905251695280630030774772276531327443104570093550988938950184983507643442928406322807926446650275262478641890533748269726970599426340521293446666837203033508109776656916529605066764266831350549530380431019859228366224790339855103692183712314409129856348965287144330441305818563185788715523588986111969011304757728900298806493332675740391602229422461941829774055687773425160898424390027844838716363897186373751876317139928041410558634018258447886677342788586795889932531231549586917123512927963502661858013685236366683210466282626842355433277685848618058569416862674027708265718262676421672462361077515884166954341423062381084738692002539593682638991407756830308406511138848236378535921952016530773587119489501456592996120286682470949456487389950693245732778391127822906699277348119050038243211597372055126848525889127364004872416430915923771232545627795288285580719687085470410476430960187156847396323623978272304010171372707702337595283827001580655099805788970402389254648732251511753432781492048841277744111367335445042604241940149486700660172987580315861056767905876741289679749381365323872302387326940696931110646728894464141092012261182236299501687142055070740889394297391553292614536081620686575127794085236067120123984276498510437830242717202860653413558365458589393917514927973689034494049380463512200183589084225000525892650857968155458570283500283989889667707562818329560343754481094334756147354986556357843003895050598833514850668999409613089670559175660760929754259829120458405230608862857468602406508234688142540592834410057495818106719576740942322819262017293485422732077153864777916022956177824214014883463842266320759349151489584592612649223433693568828089619584524800122381166809673961058646098445741224010600810091673706607030568140681561325215878424297844515799717555564297186833365283487255373190678506733742958060171321231369496216769648642260786059876178100636603289583068049598921541549075152488769417214401991760685232130745693036358091794597640998958270892298957779054898349940576610613070248571219533316561066084093622224478918244941228387189045030687124109397828964705860723801418506557771649667002962102514457967933299393839493047935531342995487600016884841479713448056903129404762234882676861582317563849996734967015964363494601109261554041032572665172212728670902646657784383102340685018580482093400619735845802418482637075401925244917526585945307274684775815625243904691227248455684926386001192691986469489301044375728577179892389530483568597081084374539693328651298539614886487874712241166557839317793835671737269993804015718749813706328880222713032380648645057341993760922274461345816739207324032698546851153182676754593246693446835899344168201006252867403805012776803554620391729218814263689355838524650732870272564276345277091265847065383781269784737611631136168370660299475404301273249779046448867922920388093285729498522818632563759217139923428639884704746994841022378120091288913421058404948800281397922590616299227218427258847855647984811823237660238306559103387788112649962771937871523554434168790336134602235481829035911554892574320821947898837454870748594171139512017178721432710170908020300716135362653614236608880700211911556209227691345946853517442995670754997787959032308089595552845285898554502444760986530401919288037031219649920771862263923368963810696122801515362382898740932950486046774422221625904664626171811565866676770654070607213151126969353639855457048752943628525791072326536384682461415588360820835006107899880303564608482904851780491921237782992160262981917032594172364994496792301055387435508733322460542648212219605735554817267461669449548249544119944161291457141402465806169000199607469569703507565202783573933601979853387679165169237648859583538471681061550993852859211959228262462467364985095843627281016229100043109401957757562257601505229302490274374035976075490770237822777586750021798013844209980408603736626067158815917755403950926792503587371502347696519568977122076354486607320016456982597825454325852569497030909187628650690974693774125268568180021121437683187033072266508210430728190905125408784712882277024388057433587552870877946030174375770578735149079772559456395008729246102753443902090913292051478728011035253434353992186776205153407028532802881116913176035957233711438570070127876791053107620572755755722918007726843854263203541746387806649811175907250652460859728048150094880898652446627069091276037668134152424123675228668726129105545507272663866442410616205440483552764967039039911535258052351762699245733220957617597064327582291617818252746523545813122761393524062519105247565835030210979775352450155575509742936946040316152493327300509943470255508692516221250058902624980689296126355401242362047268200225344853357110890095447778556815270709096636264321914882724834226982747693163711228200571872343532559392110136629131703026824865810204831314429977388683303749830953637293546311977338321718637881121185226836564258310066594720136188468713348411696239410805187901564435533536579297182301051194396258610712286161303438801042599532115937071861993041020611114929996929757656280466564665508735902893330329607965022796699282588030879574360347327900479264433645053902204561795619595130947531098713799401689218741526978814734920531908869402631882293155250732061275670956964306047717670727893044791997469606156453855862838786127360844788001833148634264049725470457587694148563989268901050391047697237389252327726228971514685791689947071110723654710268263877052723820499610055627413800424354550736030850112140459816918638131850176704662630417593195102225994136517011373439674478075627839935013405272512271530540585577987202085835897046484483597907594880993279589164594390415609109563457628764587084878437765537927633334330912936386191694417156545598829645823793058339143682530907778219498276096467017266067295980727334719136749015117874356785284073430862317377608598722348371569839896798363650563196794202583133831743219937851032226396202796906259196324876605104587389930978037335124244460096134563548248296749824109726111368719458017298866153414022798801043176420665699070718574450126056280545245477717702251687780966541877505031529267815572392139068946130698419618394371792636381414699755431493833129533006090528023861608126205501815892799075613220255842113479809347494064998364513979000255290268789362415853590161813808438169856830457466519985475377909040337163504530776633513890827192780243743562744344811256208300972716160059247715111294257272633654240143493632078947774309530550668013784057934974401387804302278336317267356840465920401653655294414976960766168502910154031212188164819359635396979251352042942958289533637941730654051410274576184204316559580679740176964580849807191615221069814559817657592657964142651978361218998407664403487032565920836381006158930566038441168918251801004178111699887990938135724147440037809884304835584084105588875538005863319697380453015529536057324951821715372069318069222298057306918450254988432300101940283854625588846678469797924815917648577738641411063513929571465156956067750904942380172444108053621708656375123639429664823173153742937442574334872416661393291062396639332667430946445380515763786892016832975321533576577702744578994823364528441072575249058991150626883377942646051289941089124890071005113689160084986882193110957261948559703171157177967143271154942921210463647908269054065618174204370648824406471078290237481862015916491519666813648863210005719092489483685677022729475005799472433688820660404371055185462249003844197885691542607420270779905295628761577920472506541620251465427907774410707151289486370680784872353350515347480889470927256678535361754069636570282878232920267889696105921426779001358701634444748774176556447901780383677822298402426186189201195209432761687749412596699145713520230354629954993516589468574808400208330035403018860253392941382333163037192202182329508274150544590822646061489164931044444128644492169144875025115542979847820869017536781446407627631292443705245846423209069280037002632766197134355657932226422591551330325208888696384880206864142569897781218839461470976050643164549274076064760549629486325333677173352570966123434167540840667843657879192940321177420017023947560808361185623305835651361857934891627416291683981459387288248858492059605433586295470632845453222088603218789118860240333919868076965883321651994128090412551699598882601757373792045197296604351084591351633667360579597440151684804266316576299725196882089407301330349233226521253279652740610837546745774965797692489001302182875742788643662452053895690222090966972093562187206334295727847612299015803753705557636218676162947940211566170989565957194059417089196138124951415014298567072005367142757319548955578410963230157859316946369066301424168007902536411972725299336684303432697497757575033850729218894702238045391884525953958812996496066725570879030476003621061657963198972214864054627282616514734165069716339312686838742887427677054376259567395350851174906730340100020230411645219352804519096973856370229463848854837470900791744862231827551282329871232042843596920518906616630172984014606778460612579041208732256669396061479723537002173830888780240712995146683298869287617963657676120397241213145155860230615036306403628465232282645690078125159090850412186799538806812028203648837796283756426260389847456935347024252849780086658643114382723567170358089191857830836825611645752615713503901864190282311883420648627394235291155923612628372963110226501838709907524970836678639080710892829543732699552394093355130688878536185046260692743067356011315704506558213096006387998556083405251015357943408223667024310966768212353948700932676880075933645945373034210750272423436462076898539652368498956538471424682876064406786739466268845359815158031152706810264531619631122661397034009916940313521224667984068128150204826628163487576548693848487878695075204839353683257626344276855068771357680798244076115617752331996405892806725635166483123563222443189492338310679052345282285405772421914932711301575799282674037365633725898543039983421894038710026501406722275291628210083096609936052402210554071736484280347620460928930215233475904187843168873385512345170838513074240970200397202962872616619591516376326223623456745695545314594241485323018133298839959874161516546474507283379155194004973637816068861376058264272960018013539668477802653988157570099256725654091454039225178489392119716776807493859313045746643437916876540367292918170414854676759784960231531605118153469000441033398943109877064033707167581102482746533024458248372075830733665137971228412634075352933922566450939065790729014056221496137136843986576369109692893334957841557074773959387212044839046925050394537381342082232444754252923129049261159866053868495256640296358427002234363878759709694735748860055270394295023078461927390262755706879406050885255201832430542592797206526709134634454882799132533820961979530935732532953249443076668448336584129657345610219648050092611343073845752503158479430205583074835651462526089034711221414080945752952065053310619361522063060561483647276196996190943188769637851259954795716215332126176878209228708934397126990394659890956278630743581920198631726573690528003761696797624183773033201902449313109648128132803402511528379815852197356586702347994602159108348622210133811973906445881571099071825721369531479622022085703367082073636617837334868162687863291894092468413381069932882665809956528679246808224169906530192720665333977486583124018387179369331449756751503254485755542943504315698375891359293924560851743895604695700136729686084949756870489154885519737297983547294661939033750352305313310397993309511066125445722225260331355390609651758204049426178409767009724957201435402336027790767524546703705402970183501164777039129276866736233844375224716672642424455546641555533943425343996446377617678502832336114732224401316046903666198018956472889092699035501597934991917280908111892688583756100601578866338558787803280441057470304301495572013667571870177309420793016467983797816373826155933540846296340092661964029499741170420048312800426546431020546880693493169952468899847529872599289514529947477650465379972174625995471796546394813213395137271446802733721732814344090872029944551144849623226829227970605930407130536625990384343579091331308943994214271924290525957423379564450694269109927812745262191910078838434794316787614248258179921719786467573443155984402261301705696062670314607117377451502962612688645491100039051098938712734677232022891006906910778592876125158925529462482433149080790004252782206385171862181363520488176200447575951213950668015788108233582413540957559832280816338518937392950777619562842560926150565739571511822545100183051267077774920880813968147037554251313927467713039754503433081429441515950617679796548612010893321258903830416044265168577390703721387128358612952503049590251429327837788293609312994015632180296523175441854455405290079191082925158251201075626476711728781935092765641396412323924787024443470268182476806790164874323036622451294573319722040888350703814536528463553601239162893008440973079993729977706486020020100255629606092277297561447791334436584252625823120917822083908132092856291051542457435206405075697813075700594841081827897923386399943066365624899600556336419696662859146397960666482051112634459915653242025201329346470145187089232929117325404048355254689465015892609958937391115545841992889345564208008487325258590396381071275586388666846741590856921060637831858232898992039389574089421400051737046935507499295948337232428228830732338540835224649470451135577566278403956915331190001598908879337800702807673773182714013661954071036331813283659529389132992563104048115168592918211364008035513778062561584694559181364569981556196766832845674354933606200471288875812344517176730643637399137374543834485659990719658697201792551509872916040183136710598786957558699661772402075777768824424980157580056093292741779393055233131795220639884353306287859379418076392827586059857137455474105129598434357018912324752061929001316598911263683239211924349941502549130387928991564330993045218960323485952909932938862990513947195768878723075038988899722347344146929960727964964523576146186354329017176327548174065223038261739243201178896890378467593536346020466753833713075668615710829492038362803906325024099158534201284603331059307825541163458836608926865875582324104149543058118178809911731870865630681950711356293103730868831014747618976344862000744623655575550752539266715822601332401000231703318989539248828832844533406169156636416200120646141664808186770176251683738155753283592199381576375537632632201674509450032953349108909879391127872746387253214144980968275943643994938114923410543190036934228022284916360835743402711769372367038115400222737464016330034178783769685911500722261686367486789556693809881388547577101288330742444858748315436307482458057246419440797392645662052347104023111786430474252313671841203167098343418265754113881726689641749856421549719736626497517248670977735427868508836498076473941974172888794464642657363142677672608397249226865284709667841981462387390536123735472012595437239356804913798457353752144346178242133244097502682676950141255899663615276243439382556847814607932509167398356181500505225871283496514150314686581279911159178562065541133382943633637325507449957145888248402398300236365380164629979963141957091479932123670521586054702812236497121705691851246346126170371315915248758057133862330929249226753263877584514683918959527082028583949119743175790978080873533808198250505647196203181100380527453695431881741397428385944582136610710782284235980428969903231204145909075009010619603520088889919786986986369307960407163889553432355945927300614929911752873844592958484933683597234601847629365298849963241087508588221424399539429905572140370717707408114357441876660481514815110491285422862509736142227742257492168555075396365217752820660355274603566009994215476365923001523208881426082994353888703207996942572060985711047193128933528876658973542953216866254906524439201831477360162145336665110531982132692430392768176534424810413978722450157491716304677943601424762611023155458792118068723468795465283002351967743390837855894705474435687295285209894592685073091504719516275009915029931630037087250880611884208054075064490538439169099609234903453175329445342760591241644890229964385392609871558432348461147792888619507474065061370883715409921527789458097169895355219880538942083237219125378473531230227943633197792078565248454017621261447765077567764534794810129809066983174930144503698518233297024961409168490233013537952143621344809300181493249521196760148340735912056306052807001074314885539269787050416112595839590108132992695854961754352851980823802642086917403285773427073655750716386749561159277323152201491830895887934620602086268632775933655104577981160641116184003263250741204636429209680781857211443489556169489211049803325148250977165306601859892686842269990281317487148004135998144862225536280203471224301576494472269292815148520943021168780943709524030695251258568260154647840884295763087632370468344492099428420852041793208871875707983021972262959878184363761145616911087746225453885726106066482941515250127322241727658558782539768090315199362602363120276199401712064032976977346058460219271003117409475283092606493496020044294202486126268906908504088539313080997294534277469250539483548070057194260913972399601432793873569166156190017057309930397892886293822795756224667534289008084037429485949491848942236106305779050460016178790630532876512740786239292403516528341757817104424847128368234701180824662094688943314258557676242432515913807037430647807503633052414488382821340162648381353446155916470755714820600889386829407493493963872793531723883034846058348389255227259798416212618590764218581536510343633718832368497896893903490900616316589727389491526017136743339761916426146640455799397789164747360133332688960382515766129609906261623946631661217275685958427081675826307500993952263806168568740632186920940368674205225119861261998810335859678521955244278296444964477413622255032934683494215977911023201938004533532928358338542194004187174730674174935490154203379855283319135185531436943447186612730813379565985676428503562631198912341692202973723903435478354977066940617793313180332581754523344003128596010209233965198935156487744154349486479038076963155579851340091082439284211881373227411772334378616980052909911870595488350855671428108173828805720906790462478648470321718696385462042843515222579854119040867857972603798894867006177056845090645058961222104862828206639205388310513569080883899936808507989849053237366458567985040655829468169234027247955677329475743938598451998715341542868360990264413331230468892806928690502628696261575806605633479321760789763691197086990017348325869930686740518678258471201013875402955973794861975782359896367348932178398325969152128602204239802958911526386856135147464055575958077989394219016333164430379496211043261751885156205412453978660859225077474219093982839021151534435892069875017902362888601795227030022687843576106818241941802951385543586431452657266726491495613673112412515407095274471050232889515682294919771383822153009633691244314923535236887357818141474149421685291886057192139522455337945007854578802714037857110455831892283997287398127302556992901035936795647964663225224373200612696037330208672511586524594614741832723039500816321578506161861717242498086611083596798099904759469117091170521451983101042800351920090155384442075364779608906152730900933792085224295253404768376741975402039518553051545651798010241555870309322665585543928730624493742878731112815643771727471582737476831753323931079352375785947963140425090284529392218063761403968982057079289757365429794325066741512461953395682854276010128329249968562149461310196601553723631518050254123265245532383777718068765271371798631371878087445010553652578463750227566729094313745269551036683166017808471915461954113181442888741056112678637566314833732596545397068777483213864505004013776609800244053228653389084058293678696923080098902571023501602139344051983885667510068501068520358755146966825642658088629539879629718193719434002752810234782146090043534913093034427840887291899862397249435592002258454335223847643006155916349337758167116088806421775755763049366877911926335572246690434134940845064114203452062504085480262543826219200896229747069301875089223232784138468114564938142249108042443807278919162889769841943648175995009597166310382052166116601142003331104192264423775130657836118095901262901196563180084876292837226263380005758446542832368030086999919170343417100460721777066140317157838684624879016839146321970461506264443149776254199313418421218354516153114474270816939006124479325485385222392404397903486197370796508460076376037723779887673672531212735932716329326813958190594729101564524667580184155095962787815270109695434473763204833947601919182693911424113182320225434158060740438864170378706579521791157350212233226984089660920843488608209849553658791235296497901417676533675223508619367973141458625274226289366244501520986730929148809840377160166130857577570576801328611295654669758222868063756606465053198352884760467608757303167849725680339784406539626789403753797294055072907291581063118430007869408860174645138075719159329773692020340674209799860471278055918543329012944278584363082961761500672087635008283209173945754927578583879149640568374334354045231203020541243249852336639310697216451206586687007475094566429753259767209460798218679814541594311040152189694122770573154461515703802176838141248020672761548735477656254336151616470574970727721773079969136606875977883750194950331963183573635224359146562181605942295222304075528282555203906121695643398276814933902023088466662001485595179791501889624414830042880832846165355027314043235199170370099225325459603346632480248361643596286864351417840667545487366941354217077723219800434058923527824888897616726857834700580488412727911710659818903222325709332698581912914211893796353074095346638864494215401773529098037318897183031051363669949532445448525880743764032104092265992621295704175694235089762548195499471405404012253226422745435247489165539779480609164147129590863978383903416027517606362717034265528077072787305414123002532448053853242413271226231294289329640453908008120975295087091632414049984794180457236363286843155883960990167177686612253191003913351780253853204265568568012184923157537387244785906908955571077723215169926035381291521571976860337977135149996646448205895525742425986028601195560842196594283349560767183709091623614650466139357387252077924884126381626101392382381986355637606715463670329608143482360970912842501721414440281221269556501231100053844463544156267353590141484286271877182302668604265773727741911238008222643202351300813180223578751582796964406628140314335121070910676270912950981463059532127183637137023967639242865381390871117388856153619440870101364593638920712109986871442124013763674779010065845117399452218126966568484190543766356098507305863855350805957688530690026508129331882943856421099562008036984727362578592466100638637108884751866969526029527396031569889550931924056581314665500333122995826066514966488217417525300341346579339415876583086569003590199256350921655250695400963573675742890417444218427639748153882324049697343285873319527689890188617661068110396276743477151031291151700988800423317141623890199825185557784180055867354548088723845853671710117292142973092945337743044577595031554847296719878804363909706406137727943957545839945316992529563438203480577284902386213859788215770245265856431771697835510429099912850116021175875972584812085528742261928104594445556500622263256488577963253469835400066257520594833795070395462576297726335998015518675048837648820004774809184691602617000712353464220011712995896243291758618888593373440295042968155453264214375873191992852224737791820796095066959331499966571138216815746110524014734818249635393634524890136508268524604287432596991503611036070988468667507991158252524462898735746969157470584273649975950745443441515785836752566671530708303677184753563322812581386240393843646329107653092651565821796700640150794194773652830030043932007663178796152909605063439542225933368784179872118743755307960174461905112465829285786367250527105505086635935773461285074899505261408768805550401413827220783720603296279384996554138947736268368399578516422522008018571949392325433257017407117137937299386722939531896416493829391140023640379062736226253543480518665402944018298798485026115678366778491300233122148214270677840492766250806549813389692596846982531577438165991116684180375745847724688118007546472467192703695417421937784239484861718216712238297314235989403171102500274492291357875803465144246200590893095362118676948131642219883424429665067307626806289979031395559088585185527603352225524051343304808732885324528396632792867797421473990808255247526585531511521655841369769326360705352255028315803138267688897458041786209297764383930678747509826654515247501902469553555312132399474919511149510414983039750911705906809144864502969295215239600327897678953255958399765727859321168180654524033813685399044862591880246605157132888484833661420685661333615380867611391124721624584126860920498746159575762918461873031893766059547791316734905413828180748944372935536501333579124102434478249722770696616796425317014712938284108239345304434356211856224986659023996829819257241430879107810304480428509394942479870467900473953701486210518148669353964103522939236622457924954744467158123349217096214550560656217419317562038902731529179567306368799860387167539533300988079303922550259057813870139073982396672428219873674982763528924681406803381258274442673697666770803341939222808230053634060450698263018248033722280969404383628831152051715814299334749733526119862306716676525998701910866509238296328361695996991753513366299577446191094943713721493484883928783498164065499720734996539218754814260634221434628003609684964532263751769063275387983608243509164574336854063623616889031197912372583106026420899187864705975325352536555860661700570381377387346952841240794819550324882878567840231835366049434921422311102685966311782347818565360064677958952719834470700034976228754803919370690477386189846384896512374126646003516827365363160991492604460941570777695237345557873276569904681762109526654431317730583409016609185251805742998358776842953971340101036265712801032143391381804095291091127096554177169016376574709075820649441769282850787870630330268947341484512773411986475839919154829037494572707214318283261822833357801190251463931721317498279453151773541201998652215149421566457091397515080562873113223318314128284861482949639750232427174911150517133481422465452680020623936589184232790154110751601563551133043696162713629139128859623027565463583179896502299178928418957712118810186149441547025493248591189058776420964177315122871309812270840807130296405033436752553919493858558956227729137942152819969113886867576579752898482018183338217632332287604080212914040843324925635729297728427644783726806744753934849209788057129722198232184857372304190586313768462467042148362628641878924058680256140617203934476502698284339843836125868914546280576568609262904630323523321786129479019790935264372817417832591214231454022539934363526726828884285478589535523565234629990559930428417845967379897273387144067570540442113541939034435942594549260072642272343922688926925235825275664783539288472166143535484586317842135832796839204578433203585621822072587009200215457500236336305085742931715564183486638208514813631344693904104747125705207073202695376486540693396302163892626189373548833727623582405518537289906303182397566104090548270281581595695514056190716939130098780519603690199699615641508754296736715840130640061582388784593001891708175191656465722033652736690583818484790173265877351221046375834257480095212804025611533568664633362167576892027949623045805713495865176110960652381717799238901756199251914478354034760597767755316193562099166243050331429976467580795304258896029931476253588942971013460052674552413698257818393676769048606977059714054716353458077963593295210286292303949443594728547613479633397585693755562706017206299492382156850351581144411536042560440226518528552914227046791901554416483899054711788668117272511383076372279355662782189362744931763005116130233874015554137658048127490060140989417694113229483424502528281140572237197468531842122785933343165330687574319337713145570350523470544920923217842832455292014895317398459621750047150449952379701879280328097878488223370730935382399758152036528325867517191138109543984533958899087234023182092768697927864478623238468821389470367382849665761531760694824356794145496609325828841069699301785099636750721004005310997602366384134584967468824695616306201400844136462972181826293922107262860712252611805047129208675183228833870561387568715311004462761319831897056318542281979352826564273927873222758700877942744251198141183322030609455854797305874302225840935766368725242359023635953773589575183170022097857559420425586372626406881779788364160090014388864770943274975038259758714468932634156678519371725363876527396142264208827298896888249661016734501275665533700093057478825801416848992693199430253272894211205650870017377624924751129507530343110897952145235649392529403544829940563844201742324008230358053818281716590757649584491269680241770354130874719859851776447149584174872655789972230812258433669563423341682047867475453532342180154679682891181839122040979730317678742360867320414328415120388189446331386644820600609162103554774800693945914052679039543658236638702769506162535037843022646942809687522181676318211531016607612505628707090403300077991195140447133521482902321410749087922577958859716071965992567476425239714270034420713126259093169913491079847125021547686381524204729366422573858566005687153381149696664899882138590816400361132243787756133696270717641366842318953011113137677037308720531256336550343812047567282674880471859831579189561512715664475569797585665916707517689706105867466323881239697083680796802103919477292333411443693158720397937479377723374266460617710480582583645968802225097681073643892845860803801816754392987601325098149704539907953087729264039057227111238010121358964560205258964664817319125327629408403917240324978827615218944887227929601434851591448821092406439262230551195898258039626645497006289900248718953814830954880443350235259979651084597514497810791785496918682657694286671168806437636877971090714160483400921721252499289199604065148349106296466845771147362174485520078305301750648770631156212458924205732232757757873227763741343153899613573322015535203080091821836142095121480628448171687811322761459943676698968893444944325296169033684979593775559326903386651593093155076991427838800964361396819387488403598848827197114917072764716178064704561598139562670873316198069836056891629549090436089113290245974037995929978593115786403988999274577618743083428905974200424759911258297246803641071751595751657832137219427260725239219692288846002879137107014711199295152956851981122807884642406311588602781730736054856274660117562363146316662569573531494438522838325681861714461036575092722113228530888017277583841820758197157753278207655019325986974404827488231357346146170583703008876403885613566482204936564586909358034593302218041939557178660976222201117895780199301686621392970050495597323642284840686233072798363592438513506413476068483173110509639002530841444363605216365306562061095900873332433210146969940326842413428927029258886869308174556385726417363577691019848978812940347884751231190892930015516047981206286693394431072999795095963601139823475475301062139137083048840257235200272367869145732500171222286707475337255891253487275158342460008027559591947678511760805576866065959893798555119508988685667160374064554379429340501222081991224046855558009874626888196337178790514444772568930062312860950911922454864616825182722297432431459986135741926403474859227761398877309614972722279832710317579435974843931143213054880482129141555020651624288854270586932677913529859711271576856032484692501329966923858664220933669229816207789169822409658755897444450353239103188561146379861561711715372098315844971681941294182189157320675086631664380721277684643397259605375430114574877131770465444058575815576046289020411047463859671485438414527005316319786664743156329174358137334302843601949122082759891007158089752685599259512230330732514395078075371428935280043467976999336777952317460746038427772802431403195236013429594727338728949700092594524850337105499448347788529055740296751802391737268263518438385201584370452830000512587278434419709114037264041408923556361782904232993703815350602117194406820981892718833906078921407843862120950992687800264211210873756297662015386695319862323128167319485412958542678846036973452938484901582326025455922043355975650849992126103263797542743073202407367474587358033512400557282127083571116703370722093914696026530808435403950809322478918403773642321586561613622936756426604405087026373282699431230876124444579106922010307372792664451436604447737455483258766234405430454264236192339555865947547527504169164478493497612784419591947335816885371443206279469030422074866582952795999714396192749562988345792659676591332874083264472105844165507233871543943206677886130674128676140242017986795252254820098445789947640862246846783468951054178164752235198411770188490949769752411124133606979064753696914888712865207923160530744197588902929949820665757454099515294564038202224761597756887539150637950150821244441739338877797519526940797232631511437030915448725912981862407724714892072037906056569750746954795962957507732138668472696268734229462938772144844698959322560964403605933661091653455451882983736781467197762895888436017311129812119957817842291139523540027827583064205423808907003870196724141336609162366654989470750935323527993695143087651934553922548766529452820564877746216869800898118176510276895114588425435837795396588432735764233600875081381209795343482127076278877086318627856670927450238158876794960879816984976619219079506867584757184994767176665136857578614125957738403667480105174709018309845037304332223725652084829910103387137958488760943697120788475933751970900850291855349533992093954325275476103084844177951528415919427169425591132908462176465273385893924014599980336675028963208745486002823077217792072890489138634433427027316864044955315510628803761429068049372300538386999853952883827273240141298485382555646626558422900047783590574163296204255928351618231068312355226557262126778366846190448670790113966132431430063980881762064077964841719821157765734056949310750027918275432058111674960872901181445081770102986892230403951024893318886162780362950761088992965895358979909113778557844034463491794165996290255702290289169935606168536176876206839845699477047308153199019517344862241120718961353077221158792986833574429743426366233883758307775128579131077511101330369983827946322391115991500222426610340120274733545940718813255182503182274931992365623667373940870983980003762490711800761247569888549401993795689398885400864239216732115130324517987519129182726499533741581382047351631111886693125964013655509728400584468186069847012698245043566379749579248674514996867365411980837109588347144573702208857512083488250499842438473628025414297369917926182396580523752423827485118714222942013788226003323172229007646642576153375402568418671815126373083476105091670057166400632543446074971628485573372778920070421916394913518920807993926138356551251001883391845111352118911884912944043538093220624818332229318156284543707448173727004949385283392979425807805132903976710327084120793004113952999112118133289669488576206052985447902971114137390892249162718342560228517602311511891260863417290407888320024066736556522510435397617216033598382591762037135865281153542208784066973497119305611046825087121463201229284642030141529404484410194943269604426368037532539911669474958239220800872552115606549080524615347099557616403946775018154424612480307789946114276709335513565765930885984358962537252032448985221656755755984969366296753889012361018235853471777691706404159376201161246983489260710232836686889302996419871284710366515606491316638633198931108531134552984603347643155608887952227374503885611795260478823201820662924877536579353980689021932397429872761833247398412025204813790909340571743236110624818265419077591143350842988685819188344079074940308410661729992588999601218737686387313603994253546444376934821605355688441222046324982683118670015742747407091212808397705198840365156614446439276670513004761784168667431047707695375884137698282292218776470987642899605720906992424267043011396028728427344543461215776670419540718864782276235054688021197904513792562901537650112822964199345530850846495081195476831362623955559641230131054737466711527568664457455271798267927588774793172221736034129919744510952951787927300030734422018395625691672698414714518130097975057184677723450960914781832951059484799687441826963231559342579992871440294439538237588986572190071855611217412318485468915460011449001114655555777633334866676572946683162445173859872847604100773400658958494324892243335701054169883358174246865523169946452685860071170620244584558065732752759841118332319549463655727256326923273460522404077328873610807710347913053879721069570324702843303959404317215949430232205752702992245445334628428365418634085880715234265762802953110951949086224061913242462635286766571904597295053377336105542916509054789024023298743749248949339181987500001578727026912089928140820043540334567905292757463262172832113167421092663611584630796862795991206377751584570792009442419035580925580571199280043024704926939475539417284786480612034305011907076213766326063394270451688351502900085908283339663335491742647464328702600448227154770398254275677570263060320539798217619599564050328892852312656991697218460664304425956364441728807727813081709775812733525646336285640241139082386234212845802427806530431270193196103259722333568714727156090959296995286817524649666588799010103812416915947588555405021006810867924195873201716890078284294902162824950010258771164737736889260169368453743514119939195440700916635134308748218314721426170406919086032682641952650588685842021836629206367635815756334987300301060997778542015684226590158747086128138235305833767310461408157962960811634230975142692438658697250553467353044775038599006424608032039711084907261653668425183341839839219354555484614266289217971671700483839908480553817317813957073116979051163503722361963635060718282724807058863997945008216935958010227873112497712197890978071205320823848205233621349167248338396436426136721204452594270756322049416203035980797946486256707411113647939327696084732046423986887758742442091561641561824134602193007464249774374818139841355004591351578703336847908958657813627236356217245124889197538362168472944876687802563388778364472094673450582566732901236674722658989680056270767297620337979897591299462210379826002781719422730101807847137809372846467434442942756365451219483751426103901637167636275547762065557024242703829961168138835485540797850690771019571752434325292190970133699863527988016401324890804783937283720357974592482757608139601299525066511731519722999538512556015550060038639903780765684469313960400996203226608454266905283469374671999985227684572879157557163216935053342571692051032242686691992201242602893703229155409191249253093173532019455937850641632926567096578380349582646964269953089016477090853019662470204836127852870522680597179788755866410770811513945694468472105050864440765804290013266340658525858254530610131789008403926370391091772660081108367539590131475899792744015234486619344280029801503176168131393795812735287460904700301530929724097454932597767613301508547128596787654652268949715523941643788550848958503623880984042834956886433972030968139532960240295830308469068761198726523263800961797542677944695262596476406762161446502333608468974158189847821779111491992703395236542044642735483487572245436181490849578299730104587123923396059209289904704478016092066225220669479813064271122101556078597326581974970343971984312532670437640427967748438268671131275411132011097380799634928941855404817349554501596515861257050751775710930742022792372159167902040747685189721903577127286184110202523245238569069444457741859472178287511185306586695661696574366315866145116971526668847266872878613900391950897271080689262745015868463797740978097743651037660690750857725859341157350283344316406341620957157515660129540054490378330645822738946439030279774124511684848182289147913823625086135271106327080415609018058465911477412074056840127786580117147539069388075647748051897110480581779860949553820449239791939406210764748051481145333890341407642725476029933833196221099663514371027867278445803316729817050838526210645566981773447776436726988203029651215307477114567407425544094329149376355708825518535784032821116062425563017689403349737320018800963546733457093582863846426699270353393170925531607983792488428256539660155369576913886022203139814829443924419922520319448195426146909956376883519036901604965068704552269926441002986180682739088775393477992473112444473607071049787121139311491712931876440212182959299944792440921367252410870388249321810206643643519499064574544762065992317042770644122202295846429136347400603346425087827821718850619354841350843174387113115049690849585115121475186319271476724344853279826114697161690480875441636838122237027042750462183495842701446562355216294657430270901066236954345842392091034586491864505877426243509877373883667433786626624606890424917265261835943972321097304654392955931187855292524570607543373210354689276967971591068454451497943350000278989993549424761936446282040675064566930017446349493963467190100354057269313889125659890843512693976168134493556391485722034561725480782012014617463915562305149144278363210799716760337371135566435443139096488877852665436433994671187128481155705045009832480031920838607995981941203515814316731892108560476390632892516805625876596355720449657623681759144022049083291286355349316429906577229456736002686934538659561944591978966600508424878325329122612247472517374534137269686270835196723105707238864687327265612888767111062047770171681053448430953516129812123940464974665714540187322018383302419382706922014197556540972403976860865894310615831302581679375262047078716057565770262205126616938177167361562711210978438760053738799633252759384223478519063686841942341998368333433291841634537311545611548963877514371073005147697715144209157927136650256024690714281983258548486445621355873449460009010076805427415994807316148266311405813522628988889170947009893841279611537342746486605976994935873676640613792017183986663548492812681049412193300059502857936711411003207361690572088770984939002114073125094212576880305182923187572180308784175868481249852616544311217637313147045588266181083475647891213968153662935994066094574853544165230224586804547926677255765658561995698058099197349002063921473734944453513478217413290668519333822537895906474996936499029759047920457066581177180088798817489473608218729783564211182974693845642026242906205744762599902048071934490937287165105947617179255628770849205520575630284171669293526910915420600861502330258891359668584927563606505919039883361312254827592840550069458578634484289682014223536871382126253920478205968787686671551945318527163684630277887291116792110609557908679960757990526588400173486087376969994284902594732147215782076268102250085359324507123482723148404289891876752543367715136192160373098601317958976220423071866556960065208281868853297905647467559392906002349467193223877218149534375968440945710870230273875278279635586002551249760927232841093358088755794021368259835812122013678255555222880805919148644133742654143590351656781254178888908865867327332124288680675349560937691984376492934274435957485415060383689485438306502265121224698900528278950396463432160265341322166922233966358078015072860320263102598044137739999663486074725694717710989428971916628534375555073382575574262421643210762707379167509650169952165944726361181829913204635680957985453758005701946613742764441570306194442257559231371200551256127967072026124449448269494763340126816222419103942661758826632347132573667735995534665291678089925182188156737780710813976193344098901147035669655019363951995604364775106766279037071060018670783488271724935096127627928560040998197513991114320525170171014237422581421067400468933423301776928750231702719100560354536406943705846022829320628026228639685774121807455525130357886293935183892710874739652023312699512730252824965166013182552152824608339389794391376549268351630948263772576255108857692729986180363935988148767748445577847711869656656145048408701088296320143976762446719688339453034608938637992887925721189964129760038654062572190380073095013052049542074460914947627339129483350867617576976908780964765603658264975334502867002738992599861355638344651404581113166897370419787887622687860321381791326719912505876641296785710337553847640657040488804933443647122539767915799754294648773508328290598895889328086204785197886533533303527858161316317389503604558021552314149627729857335579256124502954388488213526983967717421150693840796212942119443121420860258914636034533362465117844300866327528487110214285073508720614367230908688536720502501592474088278697274780950522976104257069306985900564557086724835390776358595129657567349395713314193800571926178457066192767315596612679928003362465536552996160435263781726466896104980429870225757264363851887612003628857653267845357366635681410521712084065168888003970816608865702193411764333104693364020026499431268066752747945719421928941241524228073810385563706516004058169050564651213934289499061645541613260833089392129158383361525706371737404496422363183500799483104189168730603179902140960650874430481197526676437541889963613745031206985731185508856610509568922131287470886975908475211511692648525403603148478709835438643110528383604106662534707223071481238371319256091306517273814608500509593993458405449833260101160107037384691849543594490305844030430541453033412329529136628701285031166923674086904811768459875193909259309446655495249219761475711949701848068738972763893824869640752111122078703015432141869669451615608386674306257273726221887716936225318251143434109132816819974100031307272232395239680322812440046016290114243191029290812624572401824833852725368495137291308809762033272165405791951539078386290972017110916848631280892307995299009510491556008815245905587333395243508032447253879919721227536876759554592245335277326771106441758812590058409212384016417589631948399196658253292571949878090467245250021633300557830351939505461260824919914500063815368892912675851632594185092754856486775050315339269339887178551681054847137789209608604976162619184471178266381447542287072285122345571182358007621503902495997543498595785735366753109971326156062363738328680618818024877425940935064833110848743103490288156946910648489771409975876068644368871859165593034946881951994669194832920139372643438425361180367950030696438279680897290740286760722560609638754472655539413048554288324782088211730025410096477197721184328626610170887639732272125371707371377146582513998005216078684660479163573168599728589953456686160098105424685219096416364511865292816605083244176128059350229418528728767525109612861013097405782222588535639964255896978447704573867616680923490379938529659489871118850982901589993844381440934624892794840140535313164055209839654471245480713497144801196168929270050328096109151259444172957061646808803719483293351525458727567714016810710385221824881838642261051947515884102866938441288839335145481798905402968372172795062952665735023819138656329376163646025056500907022620389989121474230028327662670049779128610657694604513914905913353165829995543436808930664388208043326141589860569832419670107462239371527362904198786560813724074079787656772424726495931590142891178790393217069683359735431597204284324859689261595270891301540642668542750596416496046087464018592188827071088392403284525358619005577522715790034497630338238828125135455874686185721237814712774980047046024817895989219965734616469786687499130485331328596684333113893361662731003140961148893524906340457184894193696170182734831513619001297605359605035016512566897009373361565323743113364571457165142194716907258916454784622258744746903896173771506502878445578489474016009533384296470163952974404841544078027569119090402408036453309365766541483379668236111690680072922185265939185033916231068633765953827747863048009026773983079845247866704187816006194224360540080723608626890224929273673797595995272542781170701453204328031810319603876768892137785007863438805828574886836640323031737957207733088501829001573166076750128207899347171304952612371022968520606249811306864039983070790094273794694222682466575265498165599056418088041235264164301622314913828885234616724655694181198932638180168356488928461375849771299632625781246433609420117041754392951735980573772560839169459244503742997264347933374756478704427287320020645772975819172548982743527987974871320639246779476145198271628773229099841109574256729912927881868712635635016226019575498546694015266910058122331559757832241651950271877496450059209145671294828809555091622200816343637253881811415527451295048678880270769605861047210557887072683521057683035217930562128425515628559582609364676899946904597862111216487609579940841737625811887593974164106101558586754852217004965412112851924759373660171856448570053653178628986891417110545740795912241191607008630629905481333157625606736502229622955277874065273068351374182080021578274029686600541536613069916716649472496147610671170848125274177355463311508832201582214636380950600095517664961780812749816149665796446487469895542304302686142242524502376296412421870807510496415993218508134868572215095478469708837742328373531648662344649606534041236884757859211053000167587318889083917121883630151991034181893143179116836845805275766415478613374240533787420623455245470455807819045113332875513525732490796715849909335318533273097278306086733687227075888092405715421175642578825863359456894830001262254331547980760647754057596446441560369921497187246838128817581590165391881895470532357878105489382141373053974091501870674796978827553311539907740158380413156441599985963556025963599335290066181307588279410466270565240130753742583988855110863594522665373259309400972619751031412327846045483111008927414057223812076741864132956179404503260608949877097219596136422347541531601672611551988388525541306792054218912015337835947872661005006380888977260968463319723813110199049458409385490781464757920285267199478877040352797766350383833664336748839533506423940327501024770527755080131256094512770226641293073785871132499027466704602518508284815007731579152773963315265977247861195909680810614320215710112695345126562239918559602598525163436145047200699615137168233002043895631329734198420863295596494162764354856434328653091974869061059044967976039493670642661359169094634897087626693285663106133868509770855903713682645879224504298429606741139146859060666211154350522018525512795505529071537410471918919661423622175491209374464601435550483829941322243197926046223119748523561331326617178042582070870659230734086395046692834467659620432785952266573268247252939864999592854464573805904980717778078638796008531071016572756814073473182729546949819695391152971710317890081794267936669180910615536439207071487290088758192415122211427924169277011917991543106106218836121359706585402305809211152509406483437771361063052380652113373238050907964673008630017329563195401658240545115302571470919161247059440310468661529024320903772112983530404406348837776942337455269640861003673837729212141268834867485909347438495955122609572936061980193331624611825848235630675658859349765573234093383871709172011441700957331030823657641122039893537255048529064437567210912210135119669425757846951165909026484293457760514820058419550646603224540423074582799508659364236855525555701107655301314701362831207451156313264733066242545292396338457457115303059341909494378503707193206602023969329888700567250889358267853412240141964979487511195191114504974035200207577691383228740598137385405970606557955750871318270333780128869380845804063204172425129421479038117081507346475484279175135964591951708740461305402969227844944627219484920065113970482326154072053946169059615538345929425451240766492257334704774892828982770834284762034481985609814533491995692733293994109102726844134883592614216634819499641923699846201324157636217240182421920592032044959516927275301057757913121778382180278591169254000770407934217997807872687926622723742475705731255647288043428679030415270963411379033516428638540158410235302036842420102177752584864855345800268020842991385192888815014806125117307221482685806342332888014616730717742418270752160133387119989861874934695263576263866104168538480857325312409944158185493520083942049073136325166298255212885758844631935425935262046928994341306599103572588211235883482277377925789756856852069558222327457546058806138739190395919391576022825415981864225882451453070181028185046096395539499395757122535720443233586530068975933684455646284312025075832594329096031648305863836463177626314229134404255012343460303712499253583496971575785527110545915780649877166759533830733827537057897275966419307744470411713831860702871824927797037729803399677104564665779335564691264788674039608190101105775781041407887053303374406895147570003477329808724662650770973947098920131938486801873222382019846450895888873209760787551065880051604042899886242869437911213952260350520985279385101362200360878746275295595797466959595542430757138973565207253598069484922118432277053669197817845233147015844899276462723173658052988608392626837618350171074672923846025790611395939464860851930480006040843210056382298196214896954379285543351859568652269517830116416169924076625111914377753249816702716293835857096418944014356098091708773321103376028033526008914607908337776579480204044634421733563081589633898209979568550437611110796328931334893266618566796133275608888379619022225230391653502957883944977853731158388499822463345898188729477584347785067624736699488925755545133689033961174630113167347064142519967155152059437725710237498203025537262412781333470632952985353112361885646029570561835914294112260669143734315660479752210787605121100034372865237193998110447399440033042770975064168618342833860125182028604750465824024009153539382054706234712943295720568064003082120918682816393088191343039529554547210901556153548919500673064685119216446385456891962961258583356413468318542342328285800575185187789337858250001220916343187276508612706891632564338120949058162744063491438518182811114464409377859708387233150579522986866127743712810903717849114177728709509187610264677062976033365227926416166714094462727876358471634565019182417282512593641397798533576660433266948635190342801054429373013058030845157077927926738542146977236515079343285334259108856832239068263034345752629866740980344327438030520250034445795895823813033477596992939276238847891641228466752691629855658636784294711153231453587694909933828534263917167213274487804217709137537269372043744429113676560858621593787285561662312729367400281107867892758990908605298440604699442057884358123775004259141041529208915286561336973513085222838144613724682785064191664975955109353120568973351995549399445960980018225819665789128241600727946752109661522309523009786785921965376479044507987483491691454124975807046919635863156936658354523568772133806028805060612173301325587331783160254348783210522316093943595617494555184836716242918639824924758083206389321786716534820418700878653594910271079313498876290090942734189958116472239426463656190801459845048057810393894332092728663929940855250267007063825652028941255608290156300366093609222509263220255503501676863368581034188021552547838771116438435259942566501339365211648824371377868561041432151999626014125572518410445865463718182647190457171878080537846347635715985013927901560509893931729033730243522891172166946300396085627589561405562429013922429786286064962670970721396108737468447751402063314583205323513842345998233781957456037346661224564841094188321396051052280222168378002441285135111869273268618862391676111901894279258058513409341777926204794121335386870271364589380532086991637354787670581422148622875708417440322463403130962207395865750759198331846945350794695058134944204664123812699440426937881928254900335959530707765342857792723776358039830676817882067837471670258061491997443674276017805167938720976225516719818370786463213718451855852372402419987745558322648750704709580110943055857166818320524519564553002201021476783850211592746572296990846817132622624254851751197602419472914709650445514650463608443801700141555920380559007274815212278546057287517050743442139621465523050428022786767949316139492970793236474875603182683256969559722590675942444384269155653010029013296891853053534754797503534405669885222303413976386680312333902745805004962870207891398000975708337552291305410105078271348176098297449179099145587839711938023080212704027071979375549219072202770976837699821497110637377073834208376953617995107931473692748410831596591588271418055123171695006641939466359403241172078680815642988056364323771257038639890541870347197941844349031332229022997458808812912356908619751326226435050616751446573471061797485858400075448812938839649148527661587418188241519578440632706921562125005469066701402614511912442348742037380075065355625748155293401391324170288928982251576185833983243817397880217360415005447799611965424098013197600038336991376212164469900756064415708450004392107300171457754898825758119467241851258655092646514773962248904970820695208614270150140481547559355998250602395363254279008360080809614740923015954658656998267994136257982315481529185194823806494585048612439570890546702295169870358366718308623448187424372413855909384910846452815812723066030989876572460774711677233858145847525946895795331953189088919205602012041643042353408482345821731534823983481384729885509865553037544818487684433737749060100002814758723211205124934088177791040375864058934124765199162730042360198659889362647772778807640331182919210003988284679323452306611002579067082252585031029985254942473755962393111858830889524880761682554865405661698376844481212776423674171462298294580791064126853102057181973404555340253604301141487972471728083647731159766360737680865107225483984174744928446981949293793848227178582747350659453745909638880842494646944729212245489482831834688969381389332054281790099723403210517762707250917470955048189599050275116937055982698346095275614950113612078783426511450654646926046187241092985231354140457961226304095153788595294847872376528331853263325108247700973451218266645584998821670985061006356296693690807858035773480847867641410725432659483559990840108165280086457723179605036524106384882842803863176735569671298456037826772870092846789414099759507161229127843588876071764475274571235812122013967882404167926901769760846702762051220535959834642899644307988577347259628566047442639496754479730365864420118978346734904942919934280533764395416040745367259157662812487141780353511697893954721614630039244365665561837759448700100832934703718610871895698765625694378418005736627268032799547145893084928275118927329806290641653121816011063765592423480007900540256594618028842349443073395659451522788899781505422245150970300490115915756640745874738360040762730693495053250798488736873900407020252541103298914860158037245843935091837672821533624621170359866045290770833142933232683544224180947580253677621999134219698115799908845595399914075136272564335391694284471070520936808285760197239362073324820279056647087653443880909002829018215585347069766194801242360398883316520842801246557583110820272452095592124296144322996607073097683153195225726942958230493527093704906303964521544994061688120308639700886275793680604257936088480519103816967891051291807137508231805365374449369367756823197468019220219383338407401433079841057255783692143902540926927436277138725873109084488233534659699031397147883204304715001899657688662238033612829928805748920251279706873978404906899524864301888100763954005372926529232601024019853652914860018884860007007676575360942411530580351799848150585259945841660428800564364724212759600193854259059112156211450252011528553356981059483423867704230773594790341311507676514525061429469055689301014822963432161156354034826802865142826038657926750170368971829482912696404597758480418713570207584746931804181935390929296008381717603323514385846195610272159982257951270976049467612669483595406721263737923096415011797633778384919686040113825960245181497209830419902852886533471203718429061288347305774862309468480708223181677726975362836868939265639049463395130290928996315643043570562952447720188697817847353721648266300586616389051979980369499516190869433831386823374584378190193237863723446098154791358188122166895326277616065145785037468877633087824589198219566745888984235539838711463447965059881161520191432597515139598047424837214291283599043693392737831432275865399710118849279398634393948203507437209302704740411094317471018105131236220157943257204058797823121905639534016211939640557339539097398894103033992870942927748935371314792862564371520871029933267295395129624754839104112908228356555870918525200138939639321554991362533343201021467941685230610532736210343982634108458578501118079664999933818504095529120717788291745747792817455291742107723419333035574807612839809599458243969012010724263418704573320249279706176443421423643216667643693182736007977273700517077391552478821277555620801174429931081876335096130820639340718838606749451532578778554701476368865139403598226052440822124563082737574931742620177555325018657986150555130710274844225553566164381446368639347914240867257333175710308615685211084388652894317129382657812006132494790773004803566395770406494149348064835774983419869501964947793291672437552815477975898240017064407467443970801637080848485676628320558516435735276306249624692029489726391192881111990063082545368424379151787983270049171552173200059119611100776852174778922582721929937103834448929441038454897274489033464776099009171371759279953843569054235993743349236672003019350550977605912901662935801352178048580711141841852441861292324877155819344911804156927733775809824649017063351808153583319093441349071367221401855293977107358529405734164450773473983760560166186137919300280054071686918591607990986471414523649460371961274260152436041906678909929871733257226555780008397375701537053680921699063853379013124889144387970754995979189865795233848422863731988295129572109981416425589408547392675782008176095584416840947384857741437583742136709349198102976087592641726681726988229404856155595197963908267725426135879497874971979272792691014046726717714095746796454174636888481809683928643947094775568551506332573195669236753681260122584403689925258547257148447716723245088473678177270607875702105743314563291551806151721994330827847836567670677893131191809005494273499215728129569317121578658808546951416197961715675804160396864274598719445234153303667268303329535202032483505951134750729476157817898638698683206161944113937035487361824010109341428515607482682227570268452514521237187409096973376710512584384898210329844676992046801219705676246157194771392426620957313117839062514339061450889408628078397603777834296149425321373849828306290131980961205463875907765994417007348994905043544893754416553464607586700752102064026452329012221255375248527420609187821210053218409850305614273174998586856780249072700575416288243265147329620225911719013300708027386122114275220045856910614083138393863164588270120339066346670913903975655229056958181682497185782518407439067579751510076517215618679626576639343606076758000247822326990070635898004030957524169939023868421031688758155749603061799670737099307184744632288715799604019941807548609376463695319454196561173246991843755067786272492190348163132840120998490329688741006001089225630157655637464436346613866527197659433994551180969936062801850995174352270381009005696087765069120890400978739928501721205576971858887093439128119681311743803082224774807229731787144864981002074743031243834119042892597960041121529586989848510091180777025183169318404871786408235701830864927029971323175218230932505858844961127465969475625819419503552235666215921155308872551448375038784715501174508140278265959759501381739666768639137180488032221914665776521401827789457080189004737988737433435132357370618436308242477329351356261592766859814883759446532582454070632783557816521135784455155847053662648961528048511995835828903395045371394681716181454612283501235382598880161786178948742817131293654403790498719871427962435123872581912537270725279431467595711247648069909556399582662153691481983750001000785724749260163897505045716221019810896504337640242543971916286928092441952368425405771451818716285063211634534356487670545943378878561418344287875269334227537544432863948515046610865043843880638319441912575488170677344900089247870591864898306824891362291304210007733356204724324324983921273821313295715961011671300774754979215329677067936588105784857187205018902196203280817789015277724239647450462825815541508040271926246319840551360879122585455524221436919382050055734215070406553358666867943763028414666173691634185702077370209453811281291525688817177693058426758764164570316795624111002801918683614975352059271999330051358390177164475025678236883258141005140762459235376480764158089628033835268349619107342891822419758673826836587495631361984711979395427864222886314784344540211010825320578429256409234016605090751570294496877269225922016974779024688306935977357446869115507841843184329374368797505162188432918687138974262624090114611513460892262881157356843182139547955634771116041174284482690266384571885314572283908963309126941573190381252345373847068464932105085571277672451787377670729932055930359509317020682617732875911230463083903240508841614185769500854016379722788403551643605999317814635977397451692242946448418308056945209886515771605644128994699932708288264515293728659619177510370672573706587221618222134525294349663691533204442026609303862915733594840279458538590510022092613681738784304528057709779495438410856848845615883038223622430824874873291841410142435293621977111208041451090761224186090951359119844115963414390039655022548236343791251261771570855211278758403591562827234554592818036252227400602482031828437159641411114390092186148363386747420382796245126225900299533266360709767341843636840212029730124807890276353681808444171301543555291382225281700323968378133168003797067737050736523063329104588850323314326331627965604941541521570740596252440685425810310324828253765014590283463520276017771329483917832583207797186701265923439765754874592432596758925674159449935416506282065961246252022300148139224562053379154106186897370958156031296769981100490681098793923646514685442921875108301944292274284089190283067515338345937082089391976983510798007434373219795360832658297546141860250103294943528544819699903323973540075862439779946120816009889326239162930271190822840603025542638008558081603438771369261444782064660367697436601104763908340802091267664130095384658064140532175434692379054356066831444797931089105294358799594540954185664000349944505146564689728835286155202711079208567885004445880682875512372981106967557425304356206835678755902928538959277535343110727754376042741285099378052908610462542203138247189100293094938940732865234293312988976205004048855593812694680380720844895671829157287498640255161562080813854694795377902170319694815921962610835200536186986748098372933874760634086867918338993269021224746066011486912921384116642431776002349056024926921919901485301648295660613726185217397895150474485503680319838128135291156821646185949650464396697020986075943851177334244471605185670056254882364931267949617353954878017942938472759630824599314243561015993522317110839549988113906197780839892271160508008361891916841971254313026058895819733043526542085450990313876060617466356584273723886463649469388074860727699578173112816653281953980551712558663615147607125462612143424148065156751856165585456380888998009963251691140359077812045536255135296214511603535395813518678277027972043706798104186876086744155559386248727783087905874185863971198977127309112737349339646643515592010915727929487419633301530092794573614516094659548195549709860580797514996280807886523838324910100247452724686963289816524420790892109701001692083971926949811516601757277095718749827657923367257587180424097075840039048558324909896501000926638582076310224662338968312058376859647206323869717673224704598324648497822159469128525027340315594975727055318554950845675522675638913519813620143100266482046295731293777467100192077155350841261841292005585850069556344772649389237451756328991859471575021313416983256578767319608290447783612131093801573610819633839368468586628482652594994185104822928495415494016874835335371709152829409500529530049971741399144425691023769661379087695212160304567684558491110839949696781783250981792160284663231952772236058493806237876178678444247275401652726997050326519681433400269385843930132991459986255483828063834295123449586477023535238100699286687255721591978666333081317086186902626431154398040948279436262853844019823816269853764751283357864074776221301913616400598291943491287355891977504316355894908425035488973551945987327656543318482667911030464698881922206143700216938737550604451583388407158646393905517939284387005345329408222025391394593861857913135564089417725925520988457419330459666753560300886219657261314824698547397647919471723615615455761688250100591272263681685567377912703740448557358298216290092622027796455051890171336906224785691257275574714702184922403807288010900998577496742785696240376515676218436077282905858960788309370165925596955948529390486965214697738067784009265196606043128160685753004541731184947328532698873370621922169741962421947570995155967711728705524559763723207564264860755965485874008188907025825182635711660083377927013658309187260680692185802400354650752991387584672067000545776973554032485168819825366434185084131053728963270480656728831371825580869758770672420361350527931745026900577222539800478527847364202007834388833759864638397607780644685408203128751889286857997608532099957344874738189927584933690168434195486263707688854775505009771628624399424762399393473125044285682260140054362814383148718311986202831068136639436177002405770363714559470779552149881599247274970012060862870919984487361318890657486801667280180332387865627297214494689283756157623075357643413321302576611976594925218127538653604160373589133441916554949456993630827056613518930262306020749372034963226912316839598551031621498703054243549880262141208096178658926664469193134918296660398964798634909210783395059454278862026864728407566663566496723364524098340006804582022936656666717053919759494128899445802397127913136581175149459972350844848101140650971595878297877019135763997776837390869430298503612378081347258523537699217030052361012133268775190459183934048998602335065940156209773590657211167580135009060494337716810120701271246574269399648748507775275853546849973775620815232380407128175963633699762138572199429262714341429458356683440446891538483645062071975001884689178229554607433730753110451204626477642741228242979183657599503421267483096317321851417591760280535068709218276251018756864488999537219030943354181794140525298124005229465368847642994394409726960986211758903073442451755508589479218024476959958874420110043392697966575598419546155481577380797637792244435389620249173768709135185133610724692621112008977531032469832629227723585377636084138673295883741572112075874786121004063540022997963440527917119381395668396651521660479864912884660928492683656708353208073529701417882897313398532643481412436768444828933752104774298121777638711631492034933767504407231650754620261738628311085999309667175446538050451195689347274413604542495846874927850092139177377145480067431170110909854746679631500206269112082968868137107434457300187889810245067298709678844344791213326160215573477990167625536568346850608600004927149948045044933460187438486298229805121815069703607979182331706960768778313688819706829306954790037268477339958184707028593212532771678836017747053111861443799813576143593110541215686494621586003603352992744606357436018404854217643932587030151011243035496879486685262814701573820290121100995290952582009109479047018337578675515912739560291255506957292096561397106635824982903359470917258566694770357828975033077105317896423963997600320126302538874951165690148225330191967879838638701353751916204918098773356484121549549838513962201713507334747414372047567081876034071793892175790003023838752731358814042600147494171305349027850100610362008886543298307952481303877006145225990945609532910306823937190489074425281757127236759989746147222048914383332925726619347261469133501586352317471692231843862200469594870351977524199611700817147278696059053075758762186221875777085942569317075571639601174605173193409132112490954513621704932220790052682524186527639935516018495086429829856031782292910842399792338343081491636975362094657581617683621316180422187518972339494845431042709025019487080881441500162176675938409871710521261283213223076547156990674088849443265379646495605610098455465613906836440027048300227280022073175534757308710752602246364903495302331133705362671003645577443838611682412237757080540052542536873097969466668375208391425209832549055861316789328357086326502110390993783865196554470839919715071935717135214524837579671212875705357608994807529077015604063903763182087567727887932154587125537623073549550096885696376976915161459629513138174540319194796508600497350104329427356665051817684422542870111540586035381070217089445216728208835476434882008258930230340047589994736978625730829325318589318181324241232204432975590187114965136428436177583569515702464629994113050265563261506229600895641625042017988787993999163291903797722906292425184981921995391208980632444340589559493467169351939117751934614715782739789642679324946223445589617856318249171363444037737390422704670598155332115330240186075543286609484103306562383985030690822429859581478848060540533308268370232634484197606131067963951955379052021385602756930405654978049472910174983886961535446347490276208466316610597894496275859236640066903566888175136038606719542441086856226299190329606143945970982750540056346223020296284848905105319310186922017697700119068759323537133058924174753345370031941990349556380377042830813643662134051062872113211488230362870186694298259986828297418737473702095692712627075791466319159229502100973577515771796813862174340827917977346270619608524705785425993183674169933267217161453949512941871507007200411664388177984281095619746004991754024217592222605985069595881710202893477115616159461510628785606855578145998402543640356906014842194797661115389434712419721322645124791868638543893776355183751325330321461065243518091755084100331972055662827151329804835391734143261536766208251648747015186645262077802118258432359412092034490896722967580256213650839942646739806595894082298811237077182400682450838256637911023427528960468359781597557220678821861596135351655934575738537596050923850534670340682090138151615842359794301903098575532946627172278683251730080999614788050224259937139490968110114354508900235476005905585586745993522397562925295720963445691826292764541474394872381336175557058950844880321728079800425046535805538909398418147460110427562703137179254288338959746283678254177646201591830686789346560620207393627121633578038946778518171359812895232330689246662630406401277951610277957143299560453785562310158193049147836409797290381843536275647027509292265969309206794948487911211490400218841193870645967721793668761608589239729359257034814396270403252631768888376942302039862304864350545473918832465902536476777944015960511319185142252204614776518242160626768693238155602211580985978113578631676261732718501188038723185434798663575860454457722336541962579583662453137089765571548671419842174625103688121337766992013769509241079373959005070264584697651979356387040223456908847329129530402865986746801150568211902069538967451811426399178241237127574088447217910466446651016262235620106276188106515957973680537506794544568778118078411525406940043931956868236992531559745220188571250090869746719476223397693488381782283557531809233819161807906592357731618257193838019510093891743117221894485257043301551757208304578002282255743161307832066864999330960877338574056747625396718097091791154167501683862767675583952897377559496194279592221911292317012096058883689241917033514368219843628899588819520677929223471134615430245501907388702334203323287231257796567568511453313422966795721243469464018650086302976021494554462786097547004622328886341760048765494941378750078901895668506844318494567357225154065576382901490669526926872127361182611686748095149783657467153233579650003774851996370887847510364719890702083135806702963071468437487929997461123303769717751792344581419373237304395043235680954291142317170788920134403552266932443670640082250033963655234145681742986369828881281907495164969916352694654701653575867684993372125025871161216775760794234873105496213997408834145733891025625515880290366230276433467227810470819575719892593549555561916173968917107225016162012027425634245284071418540989751062175103465065333576253838951952653425532417865039241041148307956886552731929141057020987456195100611598626532863852739437270905818686497438677602627457903240130279423720082152337175354918692329346962624774996346214516538458897877467716039403870264155504880828418588584955281289050296856120439828745517250692356084935149188212559020757992775114910368517979337858171020635650866347327155277261330363350767834711441449341400412751780795047401031378678372493273982395381013090031268513111935983823360369070515892667986061484394909936236049510009413837989399006073357939231636120696588141609160553447591595381193265157941032714340289139233349045687806402501376411796862795916641609106593903803828001549261842195580587758666960952398401107069656156396141582632892056173289355026114116906002630386563142530544485143575876231817910343798319060703926945819202420536412591247797088473195328902068039392279831882387406691587096616409350744007363998337682309653753993788220386979550575899540173030324032077819590393942747695981491609373623523091342056936097207982872978059974174525186140949781395149859354906672993716893592000744937131873796837752654530876439401697357127490412285296208190131012083515631913541550472241136775712729104909565455636806708575428123019429300596424036599099690163089183549626727646945287343133617812351480182443742726001388494047506339546345107314146850290559303681345821384415029918864381877403055314796932932599677218423383740965735571939373970017394221158096556592300051390353293447883228704848904040993108369652723358164814999657488132958871514682113384127359424087601609219125230769252176988030865652983719102753465531074819881071691581328482021549691133424904137639792698415297640825532437624838822071150395614870192670811909486611019938688186892533086816728198649068074429728059349521886303979628907494160352137492582033547179862777672162645435709855447362940347989735293768867061505812855932893957440414070252702530382494038367698518164861159400468396891222338716394524245731726690666012532709738881525340811622274306089469552920190390361082265837691437543469282660629216936634431812285457578046906240207633699823828663686639619159103898219823102997398282798538230835578403129023176420603844073977937175841687720983180847432627103027831626033871061179506908849038179666239854132962698510526089386988512573378996230869951632046657899304451729671207036296446620523362691535930598644964173889269164497021129335875973986127643935103415710378128175878813495665144359703344160534978835577443786111243009977582759121460921669437444601437762767079989871165373088543991766803177325657399818147102808739730416579231529702749586879575146219157404882905909937599458018974170484025253853767965757655375474432788412028242412143854822303311770194971974253481407045586307382257509321696721492737268171835043924756444797772929252675716087970901818412828549134075576616514597595353458777155431111159804345099122674933573155542228812762648812042321355440382239767181830097628755721849615568891168032037778887961388447732526159565507486517318477050659651771912428585728573856687624035014804753718012461288604747714094976908638734630084161988005764914586146438459470427390546260270312263393461516145616612467175649078699353787536806585443808929749312650911811039953203313698987761450982997523057563339956848459702048669763839536813901022295456892280315073255540993169494747878497574019697567001796430819982586931590827643090371304428730117645673373443428992074234259139632267979321034044958823643313107153031116345633680199469968366493499129666982598801293157904822315322513185833814006393717195728258918343990782957806220528410140151498381134310192651489336534372216594129131126854801702620274613752368035049932252992874299516741770118010084061034138269602645093287791773814081198363130236448362409406178609399846254446143329979113702254359573794428262770697200233470130371033781814823078618321615091775686208452612005338014752826773857564212012148725456611091063340550586393422484910743887292159059579665975373453634704551499718508387232916797775939339325791324926023125821582673111140460498172201065088142891512659725931806301473926140940816276693470752442158034516813367588753604132045808401293100623472300088184633155730761014046890904614294084732063920675495605029218277246033994072437988474169953426915605501231472746152900398455452424447061344345155310627563303233678822328446307776938527623044998243330808106748019538190990655471228888972400767069808079778009037311337811499268910575626818739571195865171981032829362441932214170300004963459265728126062277190241236470573240888405136693268719883043106846423591664141448000923372650432998321321078872707977579565973831197569822521647801379698783645443229299190082748069157113367404317009029551689267731970004362040620486707650680004087600735053814479080038052091093717476815492108324750296065003195961600861420316951266276284346865373144881278752948052327534821508667824533045997596005013109636878809747334737707408106246945308740039640336548148209752063347415004292929809114251194842432549659724938586744723151619144977118046916011612491520354096156876104827343023566471702482248147453631077008226041337024876027119446883965542988616554471304305542952304229509805161335597488601054933511582140772013838966911154360254004654327294054782159085450551286647549157608074832564119496871059550836256874608357406977512554209656342640486230279067609549338442859689488464921233079871938254679150860431175837059202808104527996349155847394657804632474227207538962815070749856928340525509102359791937964739087855766532392574204130501780084962885487764420538649496667608869786230562359602610654691834155157612789340213382092675770890846087877682574225981589837797065315394148501117632221330859667320396312671455700747312415289047423453968727790773981218016800186325177076374543004847630954632615626511180749917477898008708514218873610123867136055764975727714361350277350701736112809440186532303291575873735614205715211926111558022007321920983854756575006379177411557861741694383530434443170503817251006759110987657194561754348083154875698722976241361292365640709438819525855294278929615505373017091650955329693422614600119444279191589447936734107583273782815124691379060849816450571372987478184056190195914865036232474356729543603756861627868912648081637373655953791443322620328827971811236182446673227435943544638136330804696880571548394980496640793300731639300072554901745169668402515679432016446065338332060283546413190292634247204029691478529170112902418412540136495978596153268718544700400647637596727155079935462171921158845937495223968149574316262433505033464669482808255762948134155682437428818155221601262494577117014103224884746749929358964975642688909534432510695066308815315224760006125644022991447856048063966767324649962356742700137075725373846716618063608280149384133267322459967125065490820197379635103665520481754745226522588173354313908114202114021349865692440214278448105580440075332086911184139812533731750337583416552403160606231811633196699278538969146388011330584288678686084225397661713001440913683032690848916071063047759530188039643435074216846241579936549353492116974460822923565596350171391158886722264920636533668953089400340965115279040847374223333044699065034979001372652290326179489008603910166862346948344270671134336163416037728711995914490623388272990013512749247247855615084314916345541617364039326801847029885212898260680402913165577944235407172197514956996862379333180875975647207612277299086126327052045959980427343166915946990807791513905584628325144010501237126486772889508864346314542939836435912084007460090708745772578499288976502956470875091515039626976771715286148654009810944768485140258588068611138370883736643369429449192186433537277135803456454377178233728084349698767069955265977407400807007139895415267668151010943998994341468254390645269942615977552333007249287397305438255159319931213802421898887518808312130418100308416395229133833954606207289045025402201988599089947186577401379572956536946271248229815070221351887746450196634517743116811023220622280047801805251739142653386717716235336499448885472597881807629625264504831639414503461518282527605277002262558147049982985371220413596833325655293215046115498907389743653038365956856022599224169725622128577374088102051928930545530936614926760078510780769564443376897464854190952654739113344547487265926137471294500138566807673993170299811221816323764227120313673897698693582298958798859088816698329920174102499958386313329789486644819690610542880775535488718492622542488815286873039469785454106245443880066529385057516067088576857884733210171589924210622519484890499266431773662117866611308160957395195797052234215818104517746053373814977878352134684770715631593827806578310232987099662991590463799700266910505528857643972992001307702092353839145691332204731578779406827203045827675245510775039054634372282662811166169047934722992893802060146960607170197079132637905156681075721811688520111927276493428566251888609743591368383346477908756632664407577792793969306368470295964057877300261635305324956153689433089160611154407732233262693536428456319551595728948912747426117563917355299244909591377719808317157921178292289902998523520336918797471502074091262349576154821021154634160490434141324253677877530004625067305377306560428657126738324290997494279312431201730085114829735294954274580269942928108925324850313890093724056992825473895022940265435858014874799020706093131035054849370388928372322441186222270196897391351459623518657214345891441703679003847891118984757469150458328037271790320946119347872830961466555616564601016437870415802048163511148942174649398691998762997689695529413872196144377670563230123760913283805726332464479632000827119787361687088006216780250015677974666405435016181041004138184231256955929597223857253212048317090885817924598449699793862008374110038663251142871189120864360238891888508846252701019784476870128314409713037254644941353113511033074376542124090949632565321156602555781598586208713885278086193069862267789830452509000678675370340147528841523848561772881738914399407292365460170807482397132709872494959760044729622617997027203536409092262463080915618091319482710549830018868949458584383007215970782943235690661698864162607154514625688764133160303599261996103409825711535238922243342771237966441940576956111875141629578972756024461004191501415567279858457911164176768833351547436341330147542309273928756669995579534318315477033110407879252831421389479797539596995052962336176240224838135783040767406012731526325832108858918164515614229651609589226036548400396545600893326748380882173554493563131061658604782153759331166171737076535223112276460092512760138900587886476871787428418113221800115904582554584029671306195632890240295290605561846546914558309945809016961401306046108031458636955255765547681757798221165293882599225553870991897449641223875239948552183075509935300403358385452773824562413441284886708040024350420065609670674370732412878046875457600142690641712311612644204599500585782637877562521527755673570558800036918826441027226793685697976036272988877409757138900445747663958674290343688747722473057666887860549249803820579740905373404950909872920552524471405300249403483738175085580659178353268450992008882475282329119466266429608574247084015614656148834640523228278623661082135958590252584924468323909672647319227405153651986692171296718349882399833230503081120870934682021878649357647460015681522706954862403133406364450212561254422965335215922782015694681543144704465451363104333921583960782558850154589635536950299549620491377659529752812555977537097465076935032511915347586334421903931585528063223293757051540709290566688127572604777419261987627203158955899072660691463921202237633095148291507606503191632630235001371425347155444355075338007459391403617397230386817138428049159230797575939983825667105095004905935271146929702604356899968456115841374407701782776586129188324311086936931330599417867287940150838908720755517983213740496790649382541146599471414875989919201212540839941751202939476765658152308143555256992952852600752086204847689796761732952485073224553518721951151098225051824175538089836131489211564398785271966586515946549968379557564752908083398992743973418398618747929656736438299715373145954026965588271698871085694625404026975835926085436131822726782913895114005495090333482216882701860531684212996532393546338289059503961856772255073774612102320100033121778287817362215380634868561159123024966964810915110083048458053501147833550468907468581605202789174849845338198549291349361312057540917405140246869604472093318179811428581185571604978501359732226700099779603050945506797551161593222232617983332886471832664013002533207029983102634569302757979768550725082447423364744782264738530245496900178762650647910405406916293474519504886957815314916725597680311118129900476703127914645338866031557832843604433792716198597757374321382184645667014257438002222374443042650031512049271839599643663097113643785674614488344654281097556558286685295714023538639041518607968072174251373110326483111773762140593120334854719846657471228278334355776948922708986598155611389765074470374665054173618398106246260094385443362236115625031605887573176779708708646178025493649080398451228571706406315954492694757961274308808610760052752679222237961827885521871871627056247364450567103758777322556732713809194967960766439324935076987740856909982904242882287376494537390243315681268917240035981680881818280820994171356869013192417571785535522557487175347393360092971405383544437860134243563484576288351059824737806396107010802902758428564443305559181645265945292291993976595297719877254148255055023973117525878479864242895740651366439082742219726943595141900861793554021169914330516487807902304937173406313193446411730886266895952224155878433020691795276773706700341226278978900982127326392150787856182616402970248794774261392695603678906266810033666920066832071960404036141266149246589416608274184015755324259217826152267942194931054855779445941304227314360517351557413483947696403785509181602794503607893541781668100808649990669625461985629539090827636126809211975282441303420196535296994867934118385164451000458658776827598078838701242175399144618991998070335061215810537512002443709235313969153009447820158829306947635282822450025633551115442937904149003603301158079502861389892036368527111719031568194528368389864906434457358506170792239466832925860388475112489179645850225280875817563502975684967020761983311237721008901233612312491752867368916058135382572610150477136475892081564444742222408929788572836055497563047715928639977934248739111254556250665800436802410603144657830803554434269663286820128486186357308046122270569186361410517339062812280772411812026252597556722670923496639516769940538077722953578723864738970847054291030810398306440226460673820019785476545923553976180626927534994910165678162786314573021727451171246704516486952104379531345348115502832617610448862545899333458694259386118278601188758351037078814810753115148588525689884025733768764902318567819679780358914413160591905808709918867860340680380666140086665876426649753936303533956591916064895716781836602208825831940558648856677819905219247282571165786123209835030618212881152453739518921046860046231625781274220785163979545482581540182135536797327773393065410924613859831034610326418281518217138591469620976179795989009143625787700112227880206568768501691446060959040037582216694557226777142825870379649984161575454552205903207946030922420234803929452336769440946223121362546809976918355139249544246971005471851564186437140223072489017797637481857064717026377384828160168029559260774938931227278872765705326201793005558165139282362181559107873030525180992759231095112962795709206606982181122745708239055263698798690529187596478044781670071940129820820864389600621243943425473660278596658839361626483509580360455034244229861705143800190974044493660035473696005039404567941484442252910552109564374207687342310872370021166349590788674507607933997271362063321949402018593197853495014934378411879947683145754567473424051584514651558575947797643478072957509568071336177449763680827746230386475640173393181218759073935288413858178393358887105470443460557178167754371558343330781174849045859105710677993533946342050226881911063079115243277089879395260182261386518961817646579588274657687669668935691054433944984687736039474241320931700541184061371998214613855546976440290893499176914485400859463727574591205756920894993419084811983901034090125691468191871416804429685254892706515410759647680418046631659839905079535218108354991759829802721596224815629305609072490378154781128246592698817564505080145005468126643862447970435189759347067810012885146446649246790829021510930073663313606511725267408139365638684035799957479103771376589460772075132110264426443264781738433384131059824132103795493507013993280917705573764582580409780589093362553207869872867053662430602082369905522970782823246493519265279894368428265307978237068076585319133213306738264956175477785858173725342279012500394415050916842215404500775850178797604355471234430069199868544485867228782547167718649412232211979465180093548129181229773879407478365777425299343026747712147048357505880735366658364888225666260310424609741663640078605824098824713160216942880824312775682759855460359542483909113093910895868868817430252047558558041664525056565896715570625605814256664412256103493522564787630664144872201587229811169916286311196232751281532846624210801593760240088671513626426262244409409262995278658794457447814117508275726047999579168552859491809251115217949933719253530785578521004293408226413698643595047495072911865620197836457660459235768617249112091847850599227396316517918050016082570778792268494610431920942188463361773684925998721061265187076229255099184216613412235499808852574005191771046356263745531227691769458481078168095312181454135713932228846809420763073746254373811679722139371164185010825465696648022445785990076767688201440799503339183298353671034675437812158688834001845977458089114669806039032267425200878985871502639426774788686407102042004914870171993528247998785706279442052025390779931966442729698424529114314977859062863568468472042776745934429522933669050861119962681708251808950588309592000943725185536368437960359259131528044722069588409864814057986567058968183485550169842211697364798116915542950098996621151345893441359467214276662448634485294404532921435849080792654597176918750309322713089575849573293080102427535617724376921963439313377285114456916869843228245036546952360667369868444728330745450313222505368310911845907309009116460732075471520961957439093255047274931638511639590655149658408798686901775525684264273793562381644162528382020658590222147785472146060049543813985089654349480102995437062468676551121766225720996605222017883045291971073205239840789383093656117698823132312082087550577661831018159564270944334978586196214003643237429527667064401636690725915963092892218114287652267587990827586438918596733210002587915397668866532619794809353662267438313759728627479169789195937089271200089483117858756533208724793622755311947786829861589907674948480006713586393759444462279166471821917235572822464620958477135467962480929835844853665123828380405550122117777594998930514378552588232287288167946096594479614540733703832786368344662190783133096648985290995972216237904717582372963810858921874864692569713919842245533307648805836365618083068148403879852758664485620167662283315357585671810096767932842606648648425446077872092911024624985711186027560392616355691714393806610114695118498874007121212691174361782119444960381249273711736374305825203783509316247688610540988524258541361963531429234166254919635724477640336843753620111772852675316578120069950121073763432475724394121194542222462048078873800859616891835847406842858731523188037814805077154160677183251402461381390197617763082335619527591520780182922759677759422537595149741203855785731461024794517619506978468479621590328855609629783770022294331585987620483654020978374582803338098901206175959748448056817957901534815987872109732799581628408178730152618529632809659826568044315715878577031087706046959568525714464192634541564973639933805693315013609540330051951821973812219348972678547750612506808930596498469841979968346684023067663158164990160314691349780396043233716905075592190959157443025010717730888086075583192841043439198920336357310981531691639843228330817672824289883746168726218390166902372487398887982237995146168555875588676301345794420385669982216146671658950304284330342668872575074581967653898700457595089048164382793888236623461556585811731087060836619122289864757732857798740374450224461088069821003523490713826104227680866133403197807553729056323152290270422017677493228335303515954500067640217573957836622797348598152148445079886820762425425935644633292395643509426987106267424700492767106199589431806222790814160672115042441428038164238426841239313087440717678923382621200270339205842685222579089842288470803421622839510925856940590650159348387369469183595131320415880534964389735466548911893616747200148855390350834860487995774650374424814754649291449133673772468700198843525841071380519531697516575834316828714829708426265026624303515607781591129994200262353092868222427033400706355320855335667333533911852254964407429778744398983330093306303244294717349795175155171073505759407068117402251456576767246332866345757276583245115349994015550739925745887391117598827181270907960277290423811353945974602332346558359312103157118955259629403654304903381633051633573163125004773135118176543321265370895109344449643990957862115535647253031990584734194127723997771325779627710586679599994968539568954218254815455097388401664355951372512763311289731461143719207923288656087905222384666309342891542905809859449482030623355204653993849250552291725371903953241999434710895488986935403179103669993486221390963459166501438247193440552174979661631223689750311048297741980817922385301795764740981494621156959414756608339050476896394721506596531664178563850074105251802826554308387038842166573359189750323882466567462397287610012007765554441486959136729875984604262276837732035626763582474566962109340441883727356485554340787193934523836956699625948146169755242947433069301681153069946005599002892838555655174525849102617998751447160262905709547274969847291224385685815145665345865172536824979250144686385850228487883724884026532201940606781733534872781543303040465736158697154310978350686741530882511547960869772247014215990130283560812574865728225639333811630933717161280899224492403732550010175613465336544319023570344255398912835533051845989778239967525313532858196600446095820895396427270277172427325685242057714508780978709927461486581916238884287520958589254338398185759299716968891547153541135572208345320829579751522951869904015069969890498132580694839511340047030910559375665672119943458874682042759021711961497620168341711274552669858122301169485337725958178442581918002557323730550532463560619086080601912392924465147985255493496126057440919781336410814603641285668809595995721709720826567965431142417824571427067953045675363854068095937574515771913206429932838324901956985313467227449961197566859344766309327885487239481907321436182236449619166024290339517113416626678793737768247826021897932312556078356333704621334987249219558355150914272764730883975389060315189490763157222260954026684020234589521946867205363104707254789612603099662660360362195342004418153976845180495658989956023745758116901935532880573225991660045879159379697646271469950081990864277864824964034695833886929830149444062196429815682403203005908958637635716689954126047902716009218526483645552526632203525881868114769417708113891872889271603889821138683000717123137941481624886982043435066878833596086692041245119485751732891575928720925252222323316568024378093331622363519682206629592549203611237590490790530809463029508910349804278543764053283426114692099044336993573472751438208664582057728961063476731732716534210289889769592037277060766814967606178968842578399152191996387999632633107073592284486190563696329566457387815307095536000443602302046946818961231916631696568017498311610981158441900162778273902635130083659912679394799001777739123930107366128287276874481797996091988626777453568874859262677817759663550469777654883592490795251551380545223278150982420399065670367809265343127145676704458295702448483894594092273074580434158634758291053754391655439978980759622292994386764344295490348318646722132512616188407798160169128217911373808010911778028297206496955238589294174019438980227130796059094822650384615905379207684824183356371767216618703991796408107555670903087986799896344415387564655872951108801573244044655172232617503051142233382827571695116919503404257344998388157563526595785267518974869343336473585382638960122231752762774142114129481423630253635743768694600650272427011546518873139380343075529675607470402054675546844788030002946075255030733441649203427474560231736597316972780636616734195449076566368228208789032756813333789971651142574478566607023440389938708098034008083153396430828723938231533356918784845242225845502670977989186831133307739017198070819258199147999171603264333394939404111400635495373251261245061001084510888337461770883300093071480373186150464737703554376182972237710087151600648191927564267241180685844807622951795749423877037874821738836382465140523767248205420251588249082962002497996513402589224803975993516338664313182892132955440609133497712382705481031095117676695912579682077498706828871276332911761045036199485226197627764726849998510380768286485899641117468366388038656450779884557308746572036012931340348536048293608597044598516896554576786785138590475134735072399988523846587592947623720475660015051988256159916734505860725019461462571052733498976098176479788717428422135781589597036242704255302414634296036727685965262713679272839250794955452025671182172857161356664950032024622943992929120804594928949475641372268773836975333529861013908397231387294862674516043265972461428837289205708220924245929143635776874440910544283846246474108118768170896724852890806992510609445393764119151565548720150668072014217978530164672431076076661225586343096429454481835849609342820719120657940518303320023428135256302924467571633133533825897263254147392427374512529480117556752531066670520718874623822736506599205393467850129197422275710868488948386683755234367344438276382635339605187913983726919931780104728499733379975056905060435847172507347640611707365254482751288731651352828421146565995390416567909042126997934738825750682736563244749943772351045027150896667137628241321841996960328403108726867991582156909340729883940369552237798713657009652323966511112322680241736652988365811293886129721219876377365858603014465727554951539298602326717643017051900699764856790307173677695773510323367643969105838925238544300724840997812730186100445075488482967884876627029213958598227599684816576919126078035194594236391121947121899993178318801880440195802056138111419818629051320083018280508128322154697347843469359651332686054216464788315501431869779246596695144877949010734642887656927435880063886856958559328853967377546911845071803646821416799829569920358366348140478035661742690504477786955416423425221585480787028175328713508074428141275545919400688299539729867371707952170200508741159170858334829551524411884799553577354572107329856047833799606627446049230258291682302170345833814399382070288095674834335677603960937724322812708756459015182315767505448197037349750150766148306528281814032616940023298974658961099362155086044115922159460769192069333092650596545469853692628940740492850581046979736831151172326118338457663704652101082089069730161732979273231577679636535816353344371274205538664921494483469216075738244151695424592840932929669312499205600945838540941228271803875737325711902091233720727745210973321598753933472723896805232817685650445280130608273702411488997161521159855680895559744664344834612972851678237838434102684596170610660652466579225946212183003007133103621883050924437915857309373289019132401883380135264509585689259440071248324402022939885980152394393116304530176447403396745576907161750750165548153205450755423996460407056712751741776344404797052192133815119027703713873501072643418296099903824693004223063599789277143021369312264603084487921748463246218611605942308746949716427106151307037086901738296361520846805068589819262466208884893592945428378058903638907216412615607300966676567178592778044346044207253337252583015282382972784748080900263698845364331987475114788315385002803163782762243162253002043215882272792074893812195905302319150518145005205958058535649443490400694429526042041910662926609529747909700220175211787922243319543557262460077338738013892653072497760904773610267203945600670227132333585864307362759985011750825014903396759559035237585533384216239172790149282715284208275004937548002763110433088480137583501110417403683486415510258648402771013054198464448788163738883714541249305320236143242551021254904761760731278151224274793563688763468357964625540188102160904250646110267645839180121465907347262525764433038469055449498805973102607586295836366576682358765667278419710818042934844121992288571299832902742054750069255054580134764286735170659964775562084064991833950414450573867645318191725268508102657144557384464868646615645645644723220649021674972078674786414633234007449536961548286073510124680208527002795427438194776756928236400686261789383027378234052762728985492375313667854950666789815620199809773389646562014851870058902040560936033653635555828412028087698304518274639289283520169087622244955033503624512053799310008013792221785461795542874930074473391183935203147901657981497268717002192933367900100666358345626470976782392678324768504372110014731018058033150807904384693062393227728601452846815915797241718184013940205292114591344222707619473021882578296510133558735793862189816959436676214115790374537643020219735404979788875451218663366598257618542917966743868394071017170332401349375402388179941334533121988133797028589851806877063771288015011074493905914326435663671587481695632523910822068956273418354424528472653037138436606593203733287193720038591032391906858731642176994603257219172014562248005547935678225917392521130561088701828291109121707596091654800461799073794460748980605320586485878258265942696384484380459778062541890510429990750316151389545171575318353395418859125660251241661243385671092885189142973348597670800710920712964829210672451693510198569081318443864261508120121802546208727894636432959582883428071660138939705457474303649445262949466902253219342705373764412877256982132415524703881699644919576537712905960648170386730071186213922911550806564690441827894022576123192593180498967892973298497244222875473008207824462340355094794737365583663358974432781498012020740421921926377878619073854139561027106602577864395825907495805190697204226074521999813968668635784825257564082038976229785589019632339288094603443016888755609926478715328625402190163779312642751956771826668036317478763080333058540146941366898217561268104033217318486558275643148871209522336716317992065885382882239124621644563883569265425769763266579749059002082518866664182030461754145200865831233578706332041692215615607055445506359454642411873487979605454058583144101030570522637942524926973907537352630211375756607425019446163277161311553628315163608413889642772506553797332526328038492682550514935433934244179154247616797593036826097518676889572513866340667733416887283309774373766402108188573479425657008391928231190601361405000209261266569574950120170121456587159522932953933055250522954044498021026187446659562835240016968161161619032080486828420549674213512884156345121892424100771986374209248819095352708371083535832878225745823052749229435511470661773549089450830546075529123155902553486054228640481555367505742462317562055132348880830157613142870606470410978664791372856577960158836038046027843876675082658347149399108332361590626477589719603293998401557796642767207924742955180659560740880094674731687029569627796716199966701731917746221558712417185354404031400868412137610635898805750419127744327132430639872489106476021199527529904592586839503701145319620988211504667235461346103415166404868074809903478867245911995244449849999858105517477851502235697124635007471809655213033430223411374659404939594457384464070976029114786419209422127858373872184186145030201489655544597203368922614256712072985604825656643969709669684830082162296689356405586902736620594744346255993366200053517917099159080154192968686809731347967693206758375769516653779672025231878422270634711882500482743849835642259812766366043291540609566568347276859326500577123828868127859696414381365501345100479532025668565324312163853479532071133781194586125206479725960293999145528481567705732652711128482818409874506699102741420199773539887466902886608279991304529485575053735944703997531448491856103393025066527675367708209512363179046903300286578690455693140673490895272191328181006774965840940746348868215438254544610193632275900248422005167815788891278578916674744108468844184280832069560421500138656684979475230849840236443832250789418315956656397643214222335559346974577991952796886518410161547712226373103349014983741224371755724186980490494093777137150457619772203290124754028127452974224919752643535733997223292187081884414862760133924996500635329084910252955804337753904691042766211580453465408109540315026563278113468575538416950583336214519655623487083699214102350131148488464392619283196429687742234947760610471441883378104533854305674830781100037753498593154226510826191314891000519419325899515034667376069334637362553166323318420198612377011535883978664215540764842038874315555557020717964437544839330970602415622274562926397952544558675987598562275825535016004136778467179977571179142962284581255735508825301469484758133093895791674382430276582041410721434986690963119182336613455287323501307379439873701321477465876568592741340152600756656091196650281207338256173020670224507872712013221554620471391675291643994584524663411230278578506347971956284688180756883260139078670536048677759994233101099341196012192953015542332572073302676340301357418119933141953835627365984146037071598728840824849289246960056098587817181291890479085397205673546062504452614391029568168260766288209508728074701099061711061150940889186056628695839571678077253095292803547269756327965755770963022474319761850900278015414140221999305759571140238017802724954302814735091532789683380615579289192397309161868679280847974049176175156309790987614238139107170100187390009840745496330525865176889905539259152726149909837035979259804345185836954663706081846225409514771846076248997122748654167251757940090937020988546472367788572535970275761483626312720741851927514680338730775145055938153755738134480219249953438928946447443977252684754601729610903837838128417187610409200494143242606406984023323023051581482235484967356146977600549592224164884443894748159920034060239841955157865151530619313489209745252009368282257143530082205006145883918635056079258080471179366938786243857380890925376151670618437133370781150891291044336508396068927787538076632461320322259353636913282665152745256598516884176696628441884619443849073581005098264089145351142117404083774878924295707527622639949914072490605579479874424537146703243076295167520733388218626947942006639356792049470466659266276500468249884643654847630556700007818311182511649248722687447379279210735447198624182073753989748558238417097581534194617728683102436898450225081229741785421514409616379729068283048449365202165061702594189208948917173935913990525843100655901716626000038546182357880554034295156979611094929401920671320855095084977550994228811114983320713372767994867769595281672820069844098292879365675952247507118573558834374876907991737709434321709587506324684911430826864494496918272610395043728363127343789621734677250804906152195637497819455478867193098843796799567775349736183785675201904395140481723686190949603344704930290287402187486701048320747676213687497989394700453861009752335686376221294052461308784477364663273484013762679517104746146246977361925614718106407135743534354368507578536559294349011491500510252537784126022690668189688247837681262823352760768391277648991372493700975099014710405229408983422801143714710572485692606922470953947971187379472240557148220676978374272615816679107976254524456343344874263643180814754703681654688841662747724710608427349987254753239870407379902579442888941675322107027924551202117837076329449700949653277502629302838428710843995005384416257897996645729357959518559623126413027765541447434148482788175430934597281366881610127322715931777486541883304022281207223833911781378499018895219717235534073882315526761032521138860342397972793774545289569718651983198259936619523411139733896569545748015345693870356327196808668189946551677465448424107908927462904903937843773408230438811013018632336571661558912471025832717211575373094194556334293128916267018748896267045761112896566354322937993845303559674748988832746596349967792437771402399006991422832941234247283581833780116568455702575892434036142756940302549068195048878183035295665973561190458452741972239933839545849487916077652800225566808972235574722573764254191454710780259143520463551253790102131868233172477479100884173279766467645067823324726315407160552832485358397117720874317553815900649056083813976876879349479313269662767213652024345355325719961045462024937517693466460517299466596348827849821458950771402527640445813132927436305350228832884387342358743306655196945992557595805994604721570486947545425562585201530673454406447091261768067117112514558063343656027709421813169219037893578781624547098255094668330924830784211380633041931014914837592392991910651432514704701512295997379369664136549440081273254123852023100660922943766015293541670221401474691226280913145524265254433118954859531212546033583748818959188035731956914315487826203439183272850964326556553070980610530449397361419194231433269548258351716561481469359796623231649936972824627830235255215122890035908644240963780340495139905695055359372743918604781377105531565805565406131619759531658041009494960560962893939512744440241203890608489335931639949172667560113157139991560862868973155167280417995620566422142365053009262779748246845409168643401714261775521158980686342281354828153434084068923076678180758867541482674031957622708737083594627671362603101815316748033152888356801481106754977835417979701986149153600497178393304358225417490585873503033206908770274505962886946063187181141286016367838318864669814987597178920420105269750735345400905236584314390522046304006967001635204389634885762653237066443737151373735461180755140304984867979155039801952885671597224835258178326012993420744055653747732914944180634337143667806359498286782740110657989168276987748664808876550736469440981794701658221842759066130498622190439742020385425588855982636411240923074788015808597344525589273409170144930281580353167310512871625283349026684699823625750018141956221700461543342659506325267412714977557208307201098695455836720690234891656693152162709537798571250187885397283748568112899292295493994804618514660331287876024520853424805569477758358794725863636481424330672282019343277229832781814205203755346578145692996704061187456794862478995871490566014557811769119377997376178449037030393165780939588919608368647504554019773039018979581815219761808198503711571932809950996462672428100347961703964689949764327671301639179841304213143812438704548257453491010248649457312749366086466252840341061761271755671430150519964710838767026173471724502004416415362193270447007590770476131366743456337256933843250553942418955142612582510050994456734115367863559058584170426614238710912567647315474993124505098130618153980127293383672686611100822168719107725581951524351028843834862945553685534101607395200550567986128927784440046857808765997862839563671242635231246272420803733386412705954863208788882951811184580068190988591148606294461963456814289291347285092229320082671092673849667423163551461277444145035369050235281612230482828763685736745424564846163922196270060340049126125772467721212276940551809592840787523795266748208985781133468455948650995681904405458389421104827739936112690288615903312059076561208308543299552058158762639091530480947020612523564431917842628117822052111137165168718860536359601333690085635170350181327692884417023126774915613023428949294868093572656030231670271176956994905178106970752233675274382188662980972476102339512667790540896263770852987281025972103969153679476817789285546346555612625248644470740606526309979132205988283579645622532440924692052202964485357959296544414445491865329641070255682972956297972820885691020644065185747128900681990810623868391903298019199211597992992708188379934037495416665870161676215410315557682471327465552843566871354553162088620704442430203576749904905620392668086617767581747149071276393844112011104780118356460372665218498286894130584455811016102543320448485607780364358705820698249830608300944470370720625253196543229756680635971712819166526104444834538594077898186542609002674659088551594462237814240155420046398518103008215258276937873493003763387124013496273013228853830900904414225076419585749246144558158570821366731904441821916794316954474730003746248848868771741919791005960054524686365729876469070857359476093596265611967167290220283958676801703890002483683229005641963426121340997601075273756491934649610053493850167241217090798210125838245239261895366389637420444917831582287298872488619470349021830279674402830708100106919373011289111731611792652124147540438371934883962241308625784362334461327817939795598354364601850353649253459204889292160490541941146180121862810225631032083516206980571496869708655531195346474978915888868892064904587370098674881142558683617404118926125900039874032548780033676768609882417007325255119813012983113028381265799857805181811858573379588491163948708004543025547565956028107586553726966027251412174410595505317251037024697442603207634463863127369305009663754652343916099960879324088994104227438348646109524492331129364455484069107294158333728516985858114092195127918164114624043825991978263006680017024573641921526950573646190645413813704922175136976127279660532452110617182271102360388815062805704979796967814615619326674057843953316704542119999243061464642534479160236591518702815265566277598121884877198316399436555850865454046133681771095666914988551338413003828795678591306457953983067987663208978617978640619159907721178397178792009313158201757490707420015198835449308217504138766076381545651788891087660508797049475407075556008061598440479217684209955711212394218023321002562594107378281423926969619007379077579225436079902073151291240129549400864125637283495817110646769186853014076933225837771488034303891473756869508569122964584936852583785840104959626367392497065849215773071054094159094882954549708486303888848154938811699376667396847673284845648196085332167501012790681767514868432632096014480086340072278121211735717739314457718903791115867220627706721477352156334919954914226368605867172980722248811954296380755803319531097623980378846635463348204304405471603788553795099839710235418036845201665788853347911471389457059700013224134926142898691555558015423498799559874387349415199005490653297723916914119024160853062152403878817419312400405750783522355908531675100580834014619127093931028930724754115949420082652591995094803241760007305294352834942135574721010195160669243625171645232691915863839083333989974410665791660980132672136466109132038309609562171148300246717640442801969544649655953324790351633667848628174574513143230311103094642589138608338585485612122933048325997109307171514995358419335238490315604857941374433199606587227496189377890102483102087803707232938415326458857035494707188833285712442753083957307143730548191175486372029508312405201432412202720764127811218594300036580768871954159197498960062762440869042284079832882643238712529978134273323672910704512965646752479578517550353888684361605260410054873826303432937868823355379191823592582827262570694344654035275100349463213948617665021332387054719187539865704817023364283988509566639379967778792638358198338517733461832172195570804946523934648482529392892482291145070166560045655228370067766890112020647341605045046924039942743707908240704846798279537303304651816600663360660289183437306504452794932087246018591459025942159621229284699593911546974306019529714117242162229758890911552841319438817298748027169583332256148437496934865329550946665623425191427402553123821373849415724018968039675724855791349905308967519970930036246619675189468669884468866106627677422973455949218086835323766507652308760219016182308988752715796066868661721536758926169073021151951055529948491035671002564783617531418595383538988212736231442520439459264581892782264357874510661231867243665108206776872986451551793221132747010100038279242339326433581483662265069721589100151676982702664097944122791770039993247940558549691142344497745430070347708745132434542998235684073466392372904483861270479411975603057613720245395691021095592139525720784176645364060771294141949016317961242971807047819345554418277963185508652471272193756527099200382472063119212459256856470326298270582780840615107543641930027226789716981852699479510538051515373889237376768879627819369789173481093657067276301959706240499098788755705016460553733551867698501356693369950680862220303969397977360107062012126488929033493211584702058405144148194501737695703298322433925953457564639759953758096308284162668183591951591969723817600278749463147160448193907875083305273917216052651425724887140271625108530640262073891313273842894220866051859878878582345207920699851651970407633810934961422478856439509375036243937089335455768357627815752409099488431546945040728924707216695016822324035572604839287381855711024325285239671717015136742515094892362164882551701254991788322112668518735801078499290480596738013803123320830446602540337031829817798795867966840328213485047314172308930689597738245125608676500982414764848854183324471589412761998027649953372705813851169183285646041774614508293352988133933885365269215665465947986721148702276629769624239794114512960434327585324994468995591904991123973048723060189651070858333450628303303841722587403852182322763368937036067085597832145424005227641533549989893330963069028377866209805401006566926078734765866302071347515514067071028053364164314346093795798691307808379790690782392959494335058437060405494243673041159952496787367764352313542957771935218872618036627232907494675274081231457900516966782183606983555397260960417989238801387969010091539682946748111819176133661695499517955536000301047273044758056397593617047315117826968523710715380283363838075487673682036150994796034389904002636264212658007921733107261961920287173356644985469023934736857876277400606781976558086606669286759922511358672324351325110819078127706825513143098827884494711746474889780664900374604925454603207052311677596662758464970812188588038137901596509169196540290046784146486424191310275277695768370441369709848458039047156460974488193533179803787072979612826340630514618997807369178993235495163640539316960180953781534545488947183407921132349566752496114345266725726817002900137471875283844400245707312722572892607992096711074041239305844986446215679201651243205743505044820852660713710034504976992089719218744470136644495864523546119865720341186074647088482671528793250283079616902591813086892816231561352447632912541692166384756083960803667381543459389252349620456015952732661866137556846441221712784237288128621276707911812138335053134552062125680403058633756261231976665382174896204967100965231332834916171170662607148832524050840520152749441850610617334862661732792337294851564216872551317124446182185288153075430372642741071761236483689117180730045581995320154422989454629605357300978866408554003691645541265366346801462851560176279690595928279929618071252860137118478500119770183987223173471647793205515225305874670757164603460663291328215535636193751964202887960674181859238548922001385197545116692636100596603838617706196014758174388126235996811905641603069715016476377009496181200760933767400553333224938561507299577720350479296126204539722129361797312850775778285547128641426776854788174177457280375330925640283182902560371933330604435776786806683621465630611587172616366506617623064102283490715790409017909936387127805370869972170912802026114807057944807964610023249363910451068732417215118128171896739827845694987847159751090994976725558740545740841911126421077975551318471386284361327702295171571352725921836785812827470127599357974480144055432257479171335141255877530538114681513605957775075572700310566611653046759617614080793400586760418670310320652522819004099277975674029194269710348806673712292681844953810761469921631768990156366361700844420949690395240835646559790364252014689814216862725249626454116821428285730305459118851837039261920563640020748640805992205592398933807485032909949926504318154157066108562283965016906012938565920091402233274744027095656600139434923795545951830614002743630688668603178394616339250113330320002899542213534026232860348938048944725581984644219989321586342785201494133332044558155129369916912322576073951849820764319560187750439416533949652655765094694452225084066618288975463775033857650416426954099131998344998631127955158286285304818878222800536727829870980217962037905263958342331259679331071969486933084274592793385668101383653816543440833668747688636421692302593708682738746240438066215896031404783665517384398198770363290865649336140588720373083651521245216021136836597664255624534615984190231356164297710506560226554619885105006611651045456498583988701570745136218530887971361259908988658261844959882212110893940684353750503299942608933717135339056706860728654340794550720918362750272495830042378170894313806909337546570317779341596296642944831060052105224842964995129595342740528074773385430253386346110194940206998587258911240767613235884796320085744002428752662001724981416762136229240364505916981153776963255315112921385871046970329080634625801840787571656792610412708157284254324076091257728958502595409442269587915095764594580475173149425143519151533462434709269498287939881147166006333094618764161173997717822373758258100028240301124979651519887676757000578482911865818108588177704722545204272010225493959542261535252061965446273073564414616936973764053011256828069793647174994849587484415669292566314576032593269671459852537487014418999085433733303504348210287801312151106293739230123868238298507476382675856818582484069682740702348570386929597026748677351346264711350127256498122881773807452850886721964661701886834393649817857315891620383896673207523322316852132949607162682592715966614339886528337114163280693320097436987243519915600220133699439720511861270415985352478261761319563913583661053915889437778108321908995122089136420568380746110458403637648912839860295319757342153632152608483146885041316804826538313374251041482938329519252723107907376480427707270447710834499784049473775086818947229623824403453694999711568200827164060947009916544418075936517787347684298141455536069655872161664762600720888349289685038840026019001328081483682893354986877083134424286991376342897978296402396382920980533835363348409469559636706516555530194133409386362234261474276916164894258791792336569720508873710003516789168075316077030984661018417855961234574847784960071491179681705181234751145233389941554967635518517766585807515813113147035580973666515356781138541237697345023777815766019711455226204442165573432168308832794295639316710194785313408866499188707933770998735667120895034605983425835875131630158527409508384667320086183708275444109032698833971430134643662012619344352401875924080372750584725281877033105511039263118257508819064774553760145576329063743514819715923346873091743093647771226174733877469317780702533466741824542225896210077903193757383128418432705593473229646044720502656007355034332411973068072339466026572509922331129647446292866719598935082347165864002839299751019924557457690302895315840498020065468904977836808769334811876926246795866978941369602284608519837200371092132019844284742249063150956000173955701656894837655212959406712461153297337193310081859814232625871220243258180986927170918472911667853184805183830185542097066512485236847726107056140474188019332664955529540543780033210691696752166378396167696194551173169233658130344693641593738492859946008918040324597277523708417506341892252342732010716762165638163624703549906212895571532781054401232086315382560875904538586820486006024268949913604925390389886562957842704185285403511063091859526499889902141692972597306520324988108967825585324577923381033255791610943996118075306056288239092345461462266371645444828085136088887448212467046940408943506261540353864068149764453082901860279434950516872051068972745386667611701666356069317909093553574113104410473736772365811032026037770486946049955122717900076810515053253623522880221835722869665684809167473720859507054557106254960175426275773044110493831850932295583467370610697747010301749409922058474686978122119731343180974769736795332091138406853321787273631276303615661346085947581748838091321142337993835848285299670953066847670441750091839640105058651061125852052057281835185287368082393407405885017239265690129068737898838043980126032387056760782479069698397329087571783301778737844267446910196442487334983181891458265993168834497427961754305710343936615035232265997609232178109582900499545054756294035791877823735342768703135268249986854116292162750304562862120428371282296154185961617835294233347494740289438097360145724189750035507177035692894663278467014712326571036519685953711140659967304485486064668638558120195213407989506978428668553350551949326483966364261981560647348783289789778349791778039065607312841851385152353169430801215010362152729837545485376896484575133958863101266735747616995544710624334934441865396744017301609898783471567006838927007954883367032220736498680119097949988909949758788122958183127331905534380841684062812160766922262629902505170963515330493449212696682229598459152946862953438862550578089609867574420433248722928482085836810628885460900066108122278182359306663178680779504127745371380610155078495120712643067044844103057050663718385724211769288546123311792049657280436401318760460680660386038508784378793794968384249942510736397935608170845927202658449905523835716419054109858061370991467399718482641522518899719394197929065538980104658773239798207565858692724785333219776789821542938697733774794012883871700179372174935178962112798002381036575701885499560367729763857051256289448208082880245061054027504653687461148578614679912572134914424929546110895440972437213222143878388807161460602804293827373157004031677944069636472035334256624910621348101488711921932873316038247927512139508742365806969377304791576247587656853228120076473200683093353059061786150540447241260113354836314107724116114929166771900512267120232949689346854384921596876391962644964323057185703758924027741328546820850391544894431183667672811143889454564876080000674426855799431246516714499530212855662680042021085107055408161765437310578186577038984743695154980060960200452146020219363522373322542204531919169248604274206290165542538786790958027559805109919709282940113804722170060502324095981913067961050201554659916942767921096910238430042109902393474826648697461388420358864840028396448926992957661063038840146352515332801885329151999184445243261633307504689107611449017323126401792777863498451076619542804138545356056683984720552991229609183101839574661849702665853058361669613856120222353827248859766705353477377191475408453098160655737781347016578026989013048804416069270374461351007982965902856621492568854204575180250394648864821945987023671404331796202543795234228209227445643679931216244465104508031170095628410166698907309478115428243177228733066193357582029805491089961164098404198758465637909300081542391762677854361874966051861502064915105456330130793306830706192502507165911868895321934699504230553398544857483929977408047281763894568719295078227842990978115277601132340366609562974530764459560891729115989940460776911912698638656061840225847648548106136888367070855983430833915545045076677903732774271048905039270282392817926201958689718944400970474511586490458224472100473131870273941524783834048452395279171324201071120105066701980304332878102314888025379274881176711984166082704735460166575932341308787023904249044043618700748837904207258904226598610229399522407975154459741817184675334133968968988475827034995663490601426288094621557109082379183193238903376065769846338263220085307809508680895832299140859000592589745124913493051269845312816371465518678150468716518532171633845081712461557039760114279296712015437337525778381081991096687506474533446677247293696166490185540344877592489959699563741047921189294500823093135362867786839487031944258664937081775593649792773197731249259388079161910062060793406827412371441879909929690607746613715039409547324251401303015511313070357559415177892255267568625457443067389650205008094886671124456522472105191844780654419250654904839196972096257443149720975153105391106733774640020796944440486935771230616681456900040154762181218097813488789413678089718299525294275691226319063716192488048565788393968856210775698886439976108680426123096536370553717627798106511607338236496071016840071807084189676051103573192532779436405478882948669909478218258065142319228589887010514623215217267345803994910569180570976931730252822267395789386878700681388556471776484156242766727809496151901850605604545037404383173239699401815492981380518773396395659024483128502497167872184859610549131898306302865137888084021739514994875701106840665575491967513841321561870401153720283723294996642458716376519746268975423762768561409257056410755479425179745704609414255131145441448927009357112261363244021423057883272683361157414549705395991595847552116449819422377635003874815563371975413067708686076423833673580410767867892703742660762236868199023237861829597264422887314661013128149172932656618790803744312270387214738849825092191217970132624681342905129627615707756121993453096981716259026536611379108212500686599530841844256058547571522494340663271282979841387998225781028027908303967205262376391809269476283413976848648201548011771325517561176936479082778823059157657172423940628828323124147519083209890011523806711229906843428877324078641808480094014466920069028965684885504882227059561520641165107592326653440663273963325277202926579448767485845821160650177442727074879879848901465841585660904187455999075394065057392035049981787401963366832639245105260928044610949499751735314731087653418839421400315074412582825293714298697136275023056651154677307309647819284747974562309427084897715036701207070859768817807019166566634206572322977790872747707044554388546201980397400695062234861887465760098593317348842378261425110051694691220863416464724230139374208712184457242675192758285635288129380599219713409373021925482715943267470227872460465648583428010828901879344791648037112452356737688125727637106564279473065698703940403606521880659117894014471789470363765245457338472712179262010675591930714372787427155037216677170672086450934467508768812910424730998940826336885379099411051980876669764213754040041917659213835628859586757762109202744232576752562332236354177150391421166338606494373430594503817468394679464703772165639041430010681857532086536553663725858211975481269763659247657899894296923603717541282301256480871022086131982959995408004342476837895679049594669581482115753096690239602582877948728799830909187020365530021136139918176032956270498285943122212810752881632782465617403356054798179591664386888806652889669967995710720505228521624435095502268276463057721613261181883298477656227576814247400509332325899524109163574342336914170031770164907617426143435076132281489150756320642248363735772227905416288115398076386580385701510484534990615199157713937881983153337278242644276265384555457541457253499315112569264567627219458971681411548598445958827440154946045244809136831479255469344105642724437192549112910382605908531953802925395475323836083382545477816729803655616636556482172691791577343599499193326198026023593858679566394689291215137599600092330472543829158657897313978295038600089004668554227412235474457981628210848268176212093084396704543850194038753399587119637039709754014895589392419129283158398346294305038278020524461737384324950452050699527904742175828732279367185821472862073997047603608947712876532035103858525155060073685922302187833407263930900421489034785939409507412551114079742549222187461634237944876566688928591323596287259769914209426285304283142867780747512817989650965238932550750912218188820440081869398555507441077954010341938358235713138472107849924346892119016384402917631627166485451817381582598559816213692366983424928026258788929221188903508317169582811583891607187134862028585282648989755423893725041977670786964076391949461534758280618337982689093820534619521523648033274573985410422714009979353724157901791405884869192398740068533687851859359132751337249074078715034565457400455752393465990911364915796095999488925884774353620689864901508170407119215660993324165600643015165080097418574930394820446681671755736655611469733494816222348235758634691960957851404998600608766865072024474005704845625046190927778315154954161556083630420692051514424767692657733825420743381063345378166902629013259771109775234759479922433949293853235161264858685954191105098457682438396194732304594618305395364228601397744426859579208055835985508309570271512478328825768331777551101620849563740272075715179673381460559086733971107722285329194158825693915930696378040243283220387422600638964044950233163687514986896320991608646712097350113350874085115222008630907391940234609765336575232030844021982107013721834738161903709885368047957372836511063640803585554720287234004658020548394758986165122259553193559797747654921181774514079597402971321811284937751933768676969836507479119572116290680456086416090729883590829431404970002404842218884111800865204729012146253835351215946045974088271552013960695571554126180346650366097559871737100062089189631697574597971139082267510098985795266785371229000597276326822259850965857181719305800941497675729656325517877893740561512220478600620808239134009077985131406436692462982613709675795186561681079304436216146746597436845455226186657947584934139141418694273579079992806413698295179675806891878252272998448479152173208429389810475762339919247785616563635210974901806649610210465807362163967678781818695669263145339332254282841097242822600665706855392968182163104122923971537718044114197322591064630133137470072950214521835967420056917883966603822214320371369780292426884755074912951302347916193047727299934123445786511132535138782864786321106945731284344060621410175920344024066199052530775814992673742231064329827598055965603406497099744985566689221373321472111240563003209992356596261168666317259316391295222553936085387047014085529770438412472000164865834359469750758054647265053010692854956713293081636298261691080161437842490085373118441118374553092609235285186638903001168922054687705214949902270128414084227140572139370406206746564385760984219507586836842063024011952763868528892301227213781676022487557983590203658768707361261205551912653027540130634068659409520435160675780128620843971831482675876651196167018952945595662185503560889313821238513507503907502399613251389137218566482281556764028877402791640654438768034462629526298126358805176649799948487707305141663733412545763415506602634885666257378963028470344924013084573263865908369575520162696777112949911367662892828256040133738774362722758227278725006407233435542823453091173611378306062296278479580916108519445417832414302823390505503303230065876192890009477024033333329051177406070947284312803603425849663598891882655598970580164761483180789487437809674243049396442125387304751566666157960563359881505011101707920553354532509227911152017632989994634980590058115473965587715157456552237610456331744357033740923788032334209279934464192359086787297199091349518763204108752056302590685142509906539863394162024017214127458016847587055410722702549668723518223366855558756289880299490669029938735593943986294494806793172818980796634489334860437557935474992616779607825025414108889542194190175296523372161407054632361368137573679006163836200998118913476312459747686239210286763353892596463366274235454073983606608813409944270052890749058983177386513413940327057150561338042416098391021997799998199329551408550047574968525052400833448856166629096517377363538944607162683281678695284508142613005539810045905784207298597637139942580158281675385592504802701987374690163935586684597739580781671116334806271165022447788182774328926626560497282460789124558789136231491073071773400853713058437560168518562469569199770365766382461407494702790312032962321965189496379395345794121167871721451540686891341989733105434963297577899240797197352251145404083367215682833347600439749572069977930943648230097019889646927498006348963629930672324592013205960115518492607708901604587422173610583801770153327029586674192497905086676610134795396272895334449382137573674355583738121903047160864369089162561428097437333329632841791903439009125581645037351388616948619196168147111738037694173157833306545691233906011835606090558880442387844707196422182505211053582457512932116564377494673761632830158319581097700781343589675758518141719579682147276327407629539535193755268691203487502628188477873086466569490303031381115821949410709022503864109662269677624309042648276129231818866347491722613035002874661587506677768831728114821147152496301777432216321214349819437545665731616661965050553227037068478471802056331397549075723143136895979244137741640568733078390770836498809076492676773779427063825966608807339318612924527900007821127413543322442549956450547675458393618074454286848711328364917442966515995477201212383539660273540051827506013048234625504537106772037894064445670452145399638974652238782984844363550228578081140250198841648757790823689063007961278369949727170820184651823138245254554065060189601162333051065704707134290684920444036932464238261108743972985150362535396638042239935649107639083900047295280250263418266555309720837640445392973692513806964460113262592153727924165661790158648383248955009442924715708465347907008627028076521231803449707899212658900249819634066116920440649242373536600760535638237411463633775306547009776959507734827150481433777761762745771527948298940433367438650619752296660324735999975190083907020517640078691123527121332236899271628762737369075416311962939931426507392244963346221568955843456613107262037188747907894041650304957178516870505815648260746146827079926310689583143812100003217276182123764946330374091293053412474248959348635233260741731179844548849860174186162222603653871255332518857236563645658502070685697625816054671222568253563937486359878365440920591431836673674754857121092554124903448528420541722196456192469948129796021931940568455990036371137197498581429209555156085862260599103168542407167378819118548109749925720611632347263404774989159627430964446270819869882200264582163126920371822443355239955313487374780490646290242247402759783396165911205124133298593393856188620880970086271636242143032170409434607957387729716866772439620115333558508593870399191372749744458991729667343835147755462111600927247278481907973695229893432455744587857718673801020818924008907164831904439020517244312930875306213847986884916350913519300903087566166487915821181081743998013853558088906084616080768316153043567147862327054284955876748249076381509492867761570083023221351518628541174611820082199694238867111895998604821774086814410776965288261306948577454608062258125633246810949043322074466755603952394636960640396646406561219110752159726907222370171015005400962497880511495286600726344359003840193225826787485856107190456951065503942131273950070510182711279595147605887270508176617765080143753350330835565881357554823690797974572484880336300777388022616521259328897328641443381829579558860466238518450109249462391553700227267056785103973295209043157314150063849608752205694924690367393847036670404864668744737493884544970933261403276653208905709679102627487718093645213027793970100493832326428856894133531180715213770354475381996079883828924928728321501616966446086896876559883564301026399694987982083389703937054158194587212316940289174368645749554237786134113352530791302509661192103551459234793854483771437999530377704365312043357269687718538286390992582294578117730757146707641740307894510947239793921036267773733122238747331160035959896828244412016902752507554587803598402137177230463269174621957488322385575928423627114981611542031215927423177527758765253289423821017066745319474635863447657042619872599487525123935215914711147117686085895876852574275825957537754139940363964362738878053086440888522798158284736835335662359183337996581775281029554007721828600995081211601893356215315513483522061669216817163672860193941559578609146658475549735207866837792871015239023855294935854008086440340053624122148269858975980395458166047820566212337659567202098368801866641760577634459638402898948887859314606961382596970039860562574245768459379217688026187988981235358984789069259080595899224218885044598311965039078569517187010376209939521560852381070733316945187835257575247705025018682720301818825074396379479320311117226591241313086660010362384169229970873495952706394778135657154849106752521031682871394423409581974422739652736675431191498378727089149317012674245388512124136975815969971443791407466331564755903585132685102625375608382342803264618510473413786832967267213450861268781516237161363460258302809154059254114355571442614452577002517762175687691393604925641934086098474754298279794275561672280637445159322567204554332848116660695980071499600956268830190417511976139858287288773752623608807286632514511012214969343836172938187020945734094658837686324611947218778730929322951630369894283687301903678260234342938689213705492898853481426941411644140979214236898882031044206051508366267792885847558942291222036292523243749318132539477484454466026793044821119105769081216603663315118185102978860923337655198169988549465810644274286786449917630472017852807992046745010876366403407357952229441318703576928643670644195457290864502611542871197751808130905910952395574384566754318421989037294101249307883258542777256320193870381712419603794163886714684544386796509419373876722425358421941836883259323992914544280361885204188197365149948616160883113903081103031563846090842587152996729189447518912867055337200734159790093860368802201397872587602734105918500237850050890236741532126254011419811972543136787377974014923189484441558984749807460148946806960891863092596343361498724953205126124325625561526304057066841238874886926676363459377636778502969343970300766147699528780466068267639044682149605819163081764871121110031015867796616877314641731576236015402451402774773235983040041363383638033037228225217534520963149346677971013112007031696441558586032830401143226935409226720882260320465803983973389336886495916676658017945535303557305673815057290841300727536895009233881848556306209990985605518598127827413685569016842730464406379004397903330060940917454589495551608380616434839528395885863975925748112791676828784594733343140105897384556956709566845456407984424844441240507159879011070680833841981415393280928685725155049017748986809570963388667822439672983902991983011979352608432202441350941154795292202986953000998560217574885815267823410296675975041239119919845506934003139396863658898585477188643799955628204307866466690517292901681269659035279658574542510998170934405150597971148979574036009972010444176452934168567323469061755596659331277954822146024210988534367481993509968250290181055927257890192708367049160597734352351614649847605228774927182764405019476849896849900322306298612526276549552791921989163484981907332188648268510566268383100931479986612602331380627600382198967741459374721596854527703267743358159516628131412983865313427669338958945400937204994113757918410316508001230061521122220897917322240711422641947827167641042424984469099759977631045093907209381943139457394325503999662626040488286810225314541195873296508550389587425196239904854273948845601119642185630596888116414232776656958337183738622874197332673497875222243518811913327129879080668771610852843678012745477354858226085872156427626602861427190286691579475400763062513555837108709305153792600866831082370761492896782832108672709292571436909508810181242615255755565114065773566191486938488875713475314278930601057156391089707446753013091391325155020458200458202721727531218000054936386390439122696703932253540940202451296638700300345362538784769993245398559333946994509557885578549917293721676805050740042484396108419828064764723774868621621812011078297143052940818120603115560928651208158390040169828730586487385210900744629130668943048172225660926890120670722355805711597770463912066852207301566531054470089784818351973260876807960506423744559580989047596521886430229612729038768768603843527009211913035834705037565470889973754394943856570871794853248620853619210520430358600663378519716467145319455621666860344848940043547806278786654970041489792718753985263434136004467217218990307478660035072284448826782271344594730614520319274332260013109492218460759273935743332975800918918248468337959559136180984133891113447657746882172895781341118015403265041340471346299464883043896554370966109942796050451540544581281121979443118988250667442593052728721448337588998356974315497038153047679623630106626935716269277062201763528989458896610713951175513981536359702106152726856470192137724210982071386234174836221805937882171843501583072028879143508270147427146631748130417964349183325634320357047477365430584768478121777287868680751037298103915804774749183231079148216199534473162164607405218498066192441166887551969896121973648564156373098942601029553670053825671368300828553233672724515651352584427992748197222168413365178205753042652358350087861560184565702356032744886963797183041641150221330403384582593240773707448990729165704046917196540257696463943118414223874132450456220858366775099077821990581660919075990947353515433460359754866586794480801137593292884076780463071897240804195833859055016628636786448990745255134358328227994563216282951774559300327011257795508880194739479949327532233650008495713231236565450173266465880124986915213671864809730687631111040705144974776807721711924360842275712348067335993311055878297250553064549990399781012163148986905875881904178016905371775653208992395234257822194367866896042132631749178928934925598708112033217428282242130095390247293522270684738845631106873732870817865154290762328437246336711582999013221735004108123371250358734473531762475020610677635379755954489924336047666149008403110780638819790519674891140352606233586001272883310227048789820865471698898952935857986711177630549648947295287956570705065913541029486871941918895608565716486259316677807749159721560584696423806130782257802560950458803694955178513870348437117085920899104677270190058838794065114063591897808858002846323179593379587945914012868072193519460231218603963574963511995241017414918031620212789988071957535495661096972620763038649188288288136277969230091295928845781773148722430558796602582809876343631423988711636437548149813205864131694165281787223526924363365963736365329707843843010942980494301859794994710945691729631606697984102210989177143505246912502622867094686672791476150488225375084428522119814058550278352764231295394036556970901120485400046720152117150138893677824754160846278165847944239361380967168135327326935201069493321817940931586386316810930866699375540361761781157260582064336009598446074825264907458103773514706186469653563235462301635084665778955645031662255432843609852996737974258392052563102204488645074630817497760470115500988089041074892251148682484528100184821653094201819497988124272392085920704777746200441787868795902592219304262100650134554971610299825852216347226745044130986280201010374955519603828230399659855543108722239444614728419016402102677053355975134517040358575550487062537480577707986806288989900107239897711056918811242837349775556875635328214224247325872305269359979622596035115283945552889931109790027754422486600313336060476708733718397491521443879371746373629448061510694650282271788057457557015301472582697047936204559828531861066076573804802124631588633780611204974604776406925829371123506220921147890498929138716060089079948048623798254393696569132781953404771203457736780769646058082892702114999214915703417491588665323032091260656221758235086830628189049938018215796370075403244373357189224528956798452396164103844138587017709180729498648289522983810288119900701207212592429924075719674441158161771806017471091907432807227471096606919724462563647198567560579898923755974332781235501977935546333086837768063429582873876248536828927569277036060513475230949136770943080571460798447355419793487937063861384377931204832786877509488670654849052199131177894529651152199872578691737436412313399058566178607966029794829436165926450414772588972438265129944116662504186199670048622370190974481312089351209680270233154453312413143379647315516863545538596398552407212498991173348473213692805066462129290064613889284691737894696235008004415137207811908158122434209747447380023125010341013034938439891136944814053527753579707251616391199118626010359217286898899406960240623376542736826430208094089828840923248199372992820065618885408641662790671116942455556473914098468898718305168360763211336810678787476386271664959832953196317755934731949421318914284817564557233378392734069324686007432167020757029973916968706511975268644041985988686685188864712164539512179610452666571843262707732768899708032507336818960656927499076505267325019938346974566668279322303916068468002884379151343863867239418387201547576873279425219390658596716778116994008590233375994836744571775708459666288603917490418647587242359052540095430644584786069841897391311336340573934915446717344641465316936289190767369128119781164546546267342849090530900039907556647266183274966715036299791960826042508199824995487708625859044230734888889126636809869480746980455837049000216413029221987404078471764694229248276371127683616480966086117015758865339724688733073599404462807893926533840817974104638075504599812524828411000150874696752178870305976207376843956615947880083200658846872192065858072853741156197271958585062818815912761228741312539866236131590957581709241196110617679432103796764629461473159877323405512489291280416060612850583515622167614028418045875584768044825256346529445944253184118672484671439759544006375090061131262437392326670874304340066852856973703935695700036229544054516371059067366652880015120133546172867512356826694100412100408874459338097940791695141495546796983575330202779566197878069136114981622158944779516117402366168441838716768957353527986635251324736710879589832398967656802613541295060348175887209854543291280458064539246066779043623045889725060240218634093428776838440894349900464025033611270849683547940240645865802158189098776203106134197329062133721589160249856268327336596477996910578281341735650741210709515441392955944018711677129339339120301281268661566651596006770709188183436568564567421693362894944541205047845092106632720317020946023228630196176780218824436578408616068713662902976697681398167820526160284464448226106825190875000235344700707562544022968033455767146554373674330577454541894193101554149974154957019586645696658466882367798139557551449268293183545994759402041628337384183594489957565710312647557414893408406342450176313813408230290818915113419555370333216682850849372707112845605662175470900763138478471006951821547407592892052982894762086795572962230589388160849887460372018573299294615210446540831117481457964098601335683260204482086855342842033543056029174134735292268553788126090444879851625539543801038212987235273545015159919147177649787781650606240737823041185886903564504612617716252400557133592518568476370668039931252127040421561484470454026599866177821379789671215388102522484248642297523106002427098623990942791507436564867657589441465850695184109025752634850607289608594432660689685300169177543593754795053887310935339060240839114805055791481058504426973700407747863821551072769489852589630780542374694289711842887048997894960971217238587409406100781534325546610571144720069425046388198495747599626997585753878033015177428667865724564780842305887900510035139957332949026493524768771353382297478145588808131198285449011887524837284734985675987144922197117784205914934882097193952924165793775336325661297947247360681715810146242414721834676672806151835539125145064084964113099082215326876130925557477084510024987865565133917855928004175689624797512337677799307272051051646836253550742185510221753406306275669988711348574402792445317858540332118537394593329488340546792340747569935019234085108514023922987729153965606022839909817279365020257908615353833941893221218700971173139162022632051644978572207262688643028839489060783613088638925526623032008192997336051648131248010641103105606054703279526265326708142650138876202827874705978266320860542771211102337213445429782286119490960766743967699326906231873745360780619545983094078276766526623999869711909046670200614980131905129162258409644488505149309371216907287496142775129121328622658860129688876262830951297031761001280418698571090946892781632034732788648403378037948299850458378260608675193340248560736224935630909927809863564239957054168486189323947121985388629072030512197859840164014757016565016038191795461238059756897941352485417186070524270215770376862677408445185715556815535691277540840345006569786799875306746547124923249875647481588555969490586916584486570342680115693522535524669813944655175507587593505938173787661367855305708838321062195331840502969054092087904390536783564947315158044800217797228800442860852371286802308134313895479112040435063192631300163261642304503524812986542232679997154359067238876045611877914751086448621384671880494386027745248240849122579869162622390032103397093577995161474902619472294535033626097295151117992202075166365389619938045050635356041630363651729773583235645003507991107553368396553386597790571434888444860625886610546419578210213281021793573260338535806275408778923582861246377862922001051427964265689861299013955597799485344043624535176700187757700515543625289583742746505793828809263109313527150994374112471745907487071152335360432816290576124093037260648370563206867692670851958541471243386674900636429281603556322190406212978265549328031441515651805022302861475707791629233866950186072685892721695142253452938941637250160736098134230759991947688185211086293138737206284176012190439515496626638026643746439605853989444612269803769258267942270928994776898818919968856280513015649077433499782441465809507416514150579937358762734098318273287188091763957463019308663647577769662249749844754712285472434665913750688558542212903061555510637173943948435951926303507361663924135908022800661050458806528985849382502571363164144940352770010212215198954493237589649351992986610072772304835458091110494665280349259441192588386343879101809376727932305483742301363224730769126545877628493961343063934364295894211731962284074213056031719213949939561179155823301707185172454120092856424495498411988004008458212716210996544519873131518813893511973460911284628328834505752245513921792224984972779835488270481245880019187378440954619521124071758959309650099930378653436115036031992051622582330675385035929071651829389683849348173487263049531039128850984566259960675940377995360035058779185190569442577815636027641098608060097252056902194577159005334462591570225113851122081743638392523912721841739028652045226411308483685802816406859780941947791402800654029859160241592071498804531120996837019052137195864538050715775343509406545288179247817119122033057955180894868771259375529510960646800616743886264641680025776563228128605781503433496351434593781747486930450762290270322456923248366616532100156781416777811211686929791267802084517564124806028332973588399102767511438693772814101855262426980208076550695231879464193556553810881664221039421638716615026142424293482552021316028552851089909317288775621155084749352052439502973807010251429113997362063861198648156079092383655837801658600600293555768370005272878468181772905424589184662621953594297717395114180178671340993325471831612209187093923214375349447662420759612868778893354010302028748581357845668780083893410905032512003562966041501356265217848983591484675462849870052713097194434637666753415205359131041222515064893693833112871837770578344822975700974269320600489668244300802676390912824113006267084184651202339446485644124492433948980002881678608499729421261197940094965313297464789682773459866473529221022290978630342752241397504421637846940661747524611962998457755590292199199656538256731252390724376312803155817365720487115192814226186745412969548431244212164099034150196648516560179231165641475886615917153993551128168836104117012695854478036478550865428183852511924677677860435375806173310667209426732748968892301629226727400217069551282225545319793919412226924623476336148726892504680688946963647262646124222167171485588375733157368025952202531667476307162849990080184737260134614217907596947562366865784684917399483268636488372660982115645935773803758106485473006737393540502330464245846539701515845720522704236926894162447344323227948893822421813068883165450093068391326956243985611667621804933410821790044344527635449418769941494326023164619403677358210454248299240351603577777623967171465372286875534915653572650748199966810005390332040708693185467603161284038704031800631465323761378021321512320612400863036141243137251266349899206268860522182841857131215417094909404170265236688484975601422044839742443275799314399680542246993446448144880355024978890069684968292293593526174524234832430351780554147420851761199634749295809235690644250922572081095213240099802957457889522083124905065299342454128816929598066826494750943902872868878265249030187262805427430707249499530017436273067689408639393423234006817986979366827048319462882048607365174121699642796486863633202982892857119095703215945621452908642690176264852313982170436339619831632154559980491254945600288064805876294791070581466728582160218012688763945309555583119748075094510388421604574292936363858203477458922157406589751855105975518402644013515852187294457378054318882760291026184243139434644270422301087808392678523323217515810297352304478726686337488950459405598293822043926955152120284546887317917211167661608954962903841751786176136668844176048488349695283257106230216508406915819178093735680776509013975637255591590799326515367896112411199841319376148940460811667057057734646382014847873050910832216597078673397354039453905896497452036086184644292501912969923848364810538787382596135022836996735019123729350688857193439079777388773081072800940810518554929154856317359219427426199887675128495980037195517508850136701837444190219083524346011371333049754022333835749494876826935438480685538904622292898776008161670979735940962981571112461762750808715415498809358159242552589263451917573282018987324520011716313597009895237316103470295683596633056099602359962600438645412780542710639785884134881632134523213278071322673723200620905350054226643323375477699267717016009705651394388016892162237123899085464203684790503674193948260302451638332755499753761145264998689584275234047344976182714729025362453379400661850676695582227148220635566225343782484374748327675184110711522337519019743691650337413647194833519044728746999543635650271511901266638815761191104904894494410683459066230922428984974152401585632047682720481666500282197405795487802089884833325691088693519236592020069591469917949785110740849597161375594332605358792368258425235135122447373432668555485832909793501161051302729953844517624315563405644487711797211821535039435852418207067983554352884695425855181167470696403676119276873799239566273933283805451215144704355719741394978916781792038811005242040743503391809851129971550725802755535827568551095307288984559087740387727065275196511961703365615193492769747441508911044926332000542195819418456218531296415467750780314393123182892062768704017777768457425655529155162286768358474161730337670731318107334410372983894205952099608497215883213744639532011222043251091029490386258231284706050342051452978626056894637364465851584931015750336712598894498796604830638971720070956339531236047920533570635080994828916136406814994850396921162816455789237387974052313808358730531388480357203291659977676994218679445597360559696446046488026869375009450730932936219696232395964577466020188112264138640352404134906182098769068487818614411833564566154479098361275835478403869180769517123057342417638179096257560977960579949270542583084049013760754957517892688990220279714961191919150188522735915502067900890752894131990613261883948894894508631947565367966699661467062370365043563309566306966663684627349097347681653156196025000496135210497490387569773243398916754348230656911007661930268154563529669652130447340352969418052166387999285468656341424837111172459659962582873390684133631449464317009855787529097553072958704539177659480168779541116160384191962977835155843556914185601705034426519617052741946662283269991057849731468261849499793679714551378343740426995654151064088501279796929457158114762585458288111427448845532860916147435697038523519291020524196839265266681799413445596475898812208005931186102190776578976586354283492741405700302707899989663359471191013641429988412963673595819053615761066605609175759374552331431656190647978307298847469440797241224069338158888746943185239723647775197302313377674589811617978582559437034150400350013903985685470917598257581775394185293713268125979974621014173451180078746692518953527443950080799715653532583163799769105849255540549765829554718174187411275757708333389595448545163183912471769464466578424390914283840756581230232391565662852464359523629037697750393899619181642458326458164796932154497471665584822844291207177357540589172422878696558500707524707254450972516554593438743624108236251752500864756575241902125307718979888725779525282460095658576438143907116123865939681996641888319784060675740472248058218357092877520658016021948383542167444660549835729245272681837227268452547638619366560279230890725508409507974872148857251574512649808998588570957186820029021336920145141575805909777950528849076179509080248623093207571988521819101252156698541446729028466252677902004122312035968102842443884827006034291463545519301168142272593378523555870987484343856399485270014554982159522126263412102297862725773211452658193827114208574295570082780780321755999976840425632542330320640726013127895023187345534407100212973115321166329090427767507892119037429880593249400974697493852343019208055134327331159018033091014990510008018484893640481942476589886562307824847260518858081939339974158272465462852273515021015333471102423999205828216491623450369652493188837716882316242065441570194702184648843869228095216009203223542566706955971540488038824921564993165857978338556414046357919436004065821413623467106008497263040312744725291717656253966763706345905204781684780695709102109697831766408757455047725039169084887581019930181169096502515936383005411255584486832777496128480076261810198379318355504659089075999071246327675103696813821308993617742774389138509487445397685715095110544115094049226299189517702883916808634649661354342419653957504042256853011405852965481192524635881377201056311216035685486027363442167557856355978243837133481809160052607945971749342441037151225993247178208511879519565849864740345633797576971700090239703330412947055548584194651092258473080878329951610380424520818687518497377269155270168897622463424176705351280335728884541737729494981520463511083974029244561750802987365365714356494089988078829014373342255375459599224856539666280483917328315603189726350785335670093188673184454223134626401609495642218742293319056700377731223693555384124954751798227342221943188663080561472392107603597284824026410335049360248146157849062922212481100671292040228021123578091282963166992540579025877880910148321648870052680032579986454962918233060222446173895551439395779440919160766549235819067101181635638826927508227247443342545443961433329145967646517229186632612505628980192194218920438334275201919159982677963128288926366232695637191194690635717567824038299928509326869948173204495809297127863165044159901827167447677654971414212509301333611262501163175923217278433674661940093789732868733891375668381965545513805314645029804010187985564574457525029446226494128615226189159262052077368273076388141121891818382322692411507577952224984339840617603534461637788662904171299546994100214170393106042795182542230718399150658448292384192299847813562502635963035638925188649071659623673077048079892316433942551769509394818465658792540501936256139987097689524326271406714460932239788897857949584427317810223183463250465662620384726877632001724800816494971051068069514528934532590218766777468486770241772757590247816518297131988120921211200924167931291943166826529979011502498269391403578280172186461255448105313667494828246735399646754982227116636908432041622528279041947773328399595480558687423008454888160548625453983679861316683531072376865469027567168386451025104996959469203216884967769566056757708581207952976765348777469872477689746541475788405310726435586484501607103708502741096211922135119496934692944292181866701727104550791562412443965590087423831472675064572592022731457423150878535885968807742322572831873852323395557082551559551101723069137895410031199121364415361995862383013185439662664346346396537795335569909067981938501142515021928822055766384833655674714610296206087240580689296792651941225382501008153462809910760971833701897001807193276794989760446293395000263651218600298698837737991590189988540253261842671634274614566431384770420640619470103298104178178712579047492837754387111995678598145832169668874762174771060560441446908022649711735738456261294678709705674044293483146393440920458713696925296852189819429259248525616413236977336441916626218612795156971805902221593629075874229828289082215088371562675886019426568709548152816055307499963509148459905442701328909433259710178042933902159515854606677394167227643532530689006217655686165211442342421123344640697415539318814018484457183182513414431706006937798754837269346934791093456340603066185830409440467499272476613181635414669708464136603151226261468238839028291067222342951431390247911872943703200824950486264382859225932535279041023942120709066703465696196765102158668621761381075364406558510244215079913194038751812457702196100905595989735357823528391577258421031665431614885588782905897104999967221002629388744827414219647414737792498186801117803116777584339037602743777120727633371059427646529094704327497070814147824102558335632488603692876919426154647300824732964031823209385928065107394601820324109641854024576748286668827604343731682828715673969978127320217694992270795308292384875438123621973319523896023374353043301947318526310521767871272540190641731613412822226130578662187573063390618977411529035057908716987354629349659615159354432095732641029758910062104990174913977655212853853880335301191793910373923375661251185458396147050585146127371712893697823237685709421140807026862355815050083960185509373706975438811637919822039104262491357275626249916588708427019880379238788797877575437412067336102725604363594329434419107775367229629595220168014910027219564740690788234081748661161177316626089045464635540112565870344518738941873572934216280212088736715697967664430785639821242154656090173078617916146199326910024197534635119754259507537205721489501492709842440699595978476015800762065087227312063378413127017264907908229786126935939593287607576619550134467824171155604744449235322258541743273340307301417299355487172293977673187200433062146860634155057526039806622556162647638460017240414529061637082426235075986965680951539269786639945244157848995744378292059092646226150269138169594074415576041318914997064037478382078334426738249618676838456063700793147391148978603815669478995858015156215074581527206566048716483547470399092726579477013061635442607363113730622869615201461674055666427871808273063031852671436101265400244365964910720012837717188411564050845451841986946991265842843549773217308532784088950562447769196415994759334139473031083077560454453835568245687896795705012778946919299674386641344269785236629263825848986691320794039430365818932667373184693344261051934456531425156264765567027075207562553188109626075851551589137262302261214974235750310270888313177695676162070691887813907952123916688508329236402097258999408982623205066338808433244401565911699295987918788233596898987754505527566788488745376722083731420852015664964203188330316389943840603336897446228030861692249329888113685516644132499825968020850127935779299751647995097995089745108640601748901507742222644916797201831951950402812425919338783917104261109836655129377024729097874880183785503170139841011406166619045396496800132562247867744516723743367171040254304049178886432650274698110937116051772482276331379678647678712213657787327774451079844458770295251795694118681969101518540509164700975965293909181151001195147316381653431874234774564417552497600043831473635830019595868932222818978794340064176011606522970571951457401745776938475350757616625639912562275252891288351054125322688853159422268530016006065012710358155161828996847437598412002983322697770084095262853916892306958252791593509379016515731177754423085322469833723096869449545960995735798504966396869637215767458519719088319654364838424005687266101524432909737330128925713278652749438140048107300566103380528339559179955878875871407204889662792970787292172726099052432691381122709675762214998151904752911801089321870459098990153380044077690761385559482210634467719474995842551825304583527014386908448951687428422811949192311835011671049184714918718992915735471850034091567541384764016732275781664830710520253049029181818409649369888808147190742522319256356775736856084405377579783575797467210984708053598513055599841574475863699847138617252451998712551844922063788307629437127527408101340921901267224121847107509272491177953172253558356535900163624720606373512689342351650431612141432443648342933024999878196931509043322982248981333882498838034753095097325185678457198717409813311148819436884076832918850356348018330702648525865429665684484703376135847174585275256841065001906056959359008272061228929083076596655707335011646927533396095480371478390152125797938839962814750586865122755345428472394012823482246977962992469902217534156365096121103767572828755882779790665153097380700838154385225583972831576471266314025465246079454081379449690171384735405390595886087241132359640950283830746270491377626576435141062986781933640510951117183504521673256070992993989767273814908315667435004711847732653658271742759628094012634381909400388211333320640265930623462596778989235472063171662561530880083281187983593589055580201753628847811360632717507527106912446357507916393975456896766950368558410250182614842808403073197069813146663792376603649755487644071177758474793197321583659901101102090994883012985899152321376127946465482774939086074640328171955111425422121610096939428629966678324786878377631187869895390723990046143725273469252938250172011307882519567743681912777738228264799377289972690425482718006371074559895589460664116493000736687625824180059992679617602340636587198735221440228688647152537319212948466245570216844157375627085433628585164688563484953726415238700346901462718950616511861124529821181491193935850574133586237338203893102320252938669437645691582564499765727885359936172849408479733890583977166822643235579268728307561296124359803709793620796064658107687909491003488129009283953703010285416244079819287347869407174868019654994667006423360346025911375014845400556915926441895803728012950689141848531656813748568758954108569463009740759568383983788535464901361122195529658694086583928305570325837604936212293410638100162630595871381285037635341751530643823462010258095600977976918458648332967543046397964582854339307596945266229439946668257851540139473117410922150603768771361614463992800612216773912847894291564118102829830219772446261130861738409189686375758662592563752036687723646314462388911412843042296717152645324190881561435709796105890056219100750666360863703362748416592487251776574332031044035513971538299778509717312963360118014077135206151585170764170514721118416599761678454575805270511268089480711124378718842858457977414117603725813469537890806488822240317234111957528451974554710215333367568179953610605075420408181225940357963170502154619277111180977402147786177806928133495094758507571594567021756301352908606777752059494437932132262685244688765467564186429974127399789664633072437377223170599683153992336917650753411069140657315682962081431718036845779972802384805178435498009356302830051772704774815417246432063001509060558343772233281860679266658956674691100464182021757685211903416394645731078788467566599997374458562579075153911282344746400565031262517429898315191594136546664446840575407581970033876736184946876883925952524230609383091182237233264146359999450115983430958796810125837177431588423453320865530198547671392450699568258063519436144242673969292086661994269131315956126661905903860443919476384579779445603050020526851404467643939361151841046277266751560178101007998443370376785975423238787691525951426526185765647683918143831559506880307393409566114059958012213365388038781789490513402977515809093390395716072507830248183273468293113718977628295659385703356758736160957705961774906307077000548112567590393130154338706849508518601463118728849448860873543866661901845521272367947827323268799862794060051003275089757932481516921872852882676325866966747628577494221856205747300757241765486468900752813265923373171342361775628415953167706441164066758902136889653626938435543267336679841923411878074211506566559687055385378822429099550140250942666279632003936009827421610149210598952470624923677719901960158107739855330381885121359612867741981349662742402241785930743939050040975518322850709722015009837599564271021677580530520695618827178156589605276847082506568197821002001338307875427540145471908763207398343568396152273365098990193850488815302481985886389497169977543487773993480495128606821360466648786310989194255057225995741902018650946583316121869343112892275246107214252499976238987721185097021477943816812446862919812582373387687063186077605709475279024932389131458029591659276748066554390541063906924139391333606923538957178179711648161125465606494064621263215668739023209134771842447246048317103557316825490708390057333113350911491861907966447423556747744566009130388790173439887729050376539086400606999285401452747397622466713908949930647706013334052084109313936522200923856377962825796399318337262847832153042556779118311019907615632813101527492353659914959321342667376215142376294704772822514893187028894326027194566822517529841178375493424764287687197426546996566299050770232238118406412190157408662497903737269874131441305709112953890105048491146293119418957265823178028605059233466835462448822514758378803568554870312046699039912125399648744513568421501416083319882236320101358918354925005691048999597571144556477491946404190485652654969610828983084712263263792727368979837084160470521134371470613595468647132150649147496708297127262236385678478471381323546788390907860206220222208586667750114912008095855684757840180580450432414644229920755620501972948866830443654683697284790013696417250992082851039594192180924972212157738258016396485185762853206461028605785698825970872790358245774389150658866104806340722712495987946528385502198738034430100518289613000552006540737912097890826278096156541327538272229604286472114778451435857507557036974939512190852874298441357778536788432191371676905603346194367539150476294016631442326528438962781045208040733343917241921564265715882634792691492791056951663329147613265074179172308659546502925706345579590870991713512096121246350828936038119215085979419081922439841887993429442434021881944287783161087617404543497145706959002989123943069702582251970110162869762055734952848563814795605424013472909393060903137263185881276498720760974053663934010478913835022069165304650303559224781450362991321493848807890716435279337781424909022960685440465797077673521043370979587122241580213044640157246037594430501919222380750806437881026626847044617021364543911192969313843215305448219125615872596809053737536196545227518744259523630651611740478785696454655164311438839387035596356276084119747785920363136210633012467182469141053060704870090778862837919236406886212666172008843859457272790535205675924816774957042597297904574089428914380653177078456910187943661342611595932702424482586910668040468240915469530153466055139289279247007259914897882300314740916253700305971715430079187093154777464522829439110152919040926278957626265913846052197543965262114789465891891806600701578236661566203818222808297472911228725682149449432563014326319135306513151897323751883571203460042337485685274874252877789824849458042528128161881073566484983520866823162129324547107018775558063626961260177301907226114190423061653651186817934647244011280963195884344010272832458013717870664437756370852694793500496142099850057397135874731397915854885890714986098060636985158646005081240725670967855492530565480784457758489173086270617905218635399303802839850958573697469293118548193641600151227898744979648020660679073618081550562046190933891419688164794834809388258101440405836829656768136344133609865753441876403919706503888035692473973778727673873155419651512833393474988648703174717643291624022285790103090859212055739821837463489876109025815223816782127095705705434327339710252825873426605143823397639785668431341768075299969518979905090187896389432877059626507407837358865467307151962801508577205305000119910417548620631464478985631951354910359738090214620142410492777516951724143107987528805780794496740939057269968782398724341441031765653441067537849604244723341279824328906474591093647708309388832059137147929630135119284126784462924393084322833524912345999368828374194269405174546348396511946794059203372191705450677004262114276606889069893717719523391424176251553477902105144047059882307255652312120222511531298251682079321866360650694339138806005675735926981887673557914778701876870226359190984196961339632920544235748590623688884756405836339154819557529637866662084426321702827902184643335518489151217337239665531060064329785635370020412747116622104670951200250395709479003218899176346313667720578047749669535323092715762084306287557544749630795689849728471705562113461642437346040792214662762192881183596121756489938018162598128870901171252381483407068360326957605567378931577242145444067037297894840136528737550723034876068615841828272956769903065882426009634121427467188376535491971875142024089161505378048507731452904685359881028971016111151430441868604768897299200456156240813584766912451369931800581890072430094143057680330123715386974505606186286445178795061719699479849123727511829796158627863636697284865492126103660423833066651099065958125007247834158630866309855816845931294677613350183172100564128439276325032508003933965020320833406631188327443532538862188957839086168811927039553669701403453397027355097449031709191232880817357182896872327518988214458498529312549832150688842091376084732207533204101343848278222675526286920369409982544692426920222753705432263542760884508244053049728271599928241523728464118811243232960163313245433535348475511026198808966225814199817102950306676561453942326661023749033296114778359072508966763178904664284668756306058443056163847733302399830902308323184753567857045894724024579160053552835729725823430169159826829001281626041601162282448967344831584430258593880572857094910809430065055848346346574552423564709828346248748857984187065558414753899451974092747935285707838258273505067422090454666521066561079028101628928103681623772253894150105834788766632943295530404839585436826909199352379126608522594776430200715350049709006264085095079354919630277112982846891236735146988619775022957560141872052292702839762286003612225858537750353285202961880051950793285034296979404156724376566648226158083044317045721892502631513843464817592286107155712408089457394907504484708164161653589314444419617579736988570681526613457034247474994078162302754513340571576463905447121990014455793201385798902511124782516283314446665826502756190584892588793205307248168225780206817348306869287429573756143249497940548462397083259879525022878556551418900585786675413440037330907308606711147963883985249613870419239593274065654750369294972160353431776273339167101811431584015264534761091246952838296431398255979552845052106201379584613832492332405575822976355022863700172658828052296269025888686617159137308464740739885955810898775487772514617029907983612007048683753226278499394581969482485030313050746687871406424337935754979808610626295500866364085621018300047719442945149325309673287427947945720221920062941971659823114232219464809974903456989129490477493422795436423402631134055543195359167879654884802469725221947177472152850394483043352457016251761809366044139964171755718735728213057480865338710278225963381632347096594047146000401023431716164759585521806856575153378042798630640674331032113386018051755129165403562841577858674400864464978598196836217722177177394163701287774966952902575006337191348493850210498284564326204919342025693420554437506110966231390032496755205798228254220022517295544914377852429012800805829251791706003292565853885495968637551842142640519341855511108931556680261372280915839484876900907542205061429665413857775580373666871535181467725813305671077656731174759209090953967324597035993785667351772760770904735260734792403818171509130855770865230750453630529249831462294917660618822964426788090926229401100274781848596534192522135581400954312985719484612079896764218517419320359821550831815268029553627516408936702300683427603104802638222424097788878172922152741629629939079894230811096106254121082014604047003959833245277453201795971769423274903913367580501603405295304880838238218135871240384440816510571902256168717244094616589249473541051579374578422317071032819236402234212058737762399919180950071946345729732527085119391734515100576114528209295857298320684550638741281306926344942236279744530219908494880643196866342919572520879053047436771909766451193477506172606151603228387130544748047924312564380149324177063198804586024204854683167997882556742838708954907903543126535282255159106512304269453564306431026789109589180980100338377336229474591081432925334783521417618104476557286728981608967372664970668268621966794220714586609405081620989123470846643987418475337431000115647204114459476296417296955224655726342208044095422733747258313233347736549197217487600188406712528538106855294018103883601048380889220365605818396824399098946967927420702398281893966103350280269693904207906362458607671549026353446177120885253664800054853104862296882575320510832158990898538914717312532359889699116550147598519410718954502891670396414788020576163446882185631789072478740526066137208423540431761584446663334375652193649894657377690308308554635539252538582164450132504148725828099789734429081161603754622650606834342759217439769703659299292815211758980503218744589777194114916859650835454342549343547245199536507138820079816334351966256744428574409632264827086363139359619986776806940311170569237482364646691950222105963034677657883209232558013777309119840221950049458255318182183617101495203975593228360264541730621441465455032286700453065278299027445610248048714844937263228087598995820758296420729069248129775454298144821374036342151092456929017297797022364688903624089805944554078538619954741841744689265338921797891171284901400214874779030498473113811834313708950606415096097476348421187909927107664518498867700405376048733369249861695361769028833019496536915779570968700102770995904829495912071479977454170475190894038348518804773877790253165123218393947141061129212994520340624432891662712650740312622476199425745154067532100999649019338491836346745027354988973698842258186302076097492627448478395254923450604798993692317508214018394034306231283130258295211442242988495265713557005121533973306112656082316256362825832064886262986142626550116513622866703008234243185151734578058920313792317920460703081764840576344034949096757943152835058464343700061518210430336555442967499839287014795673881810884989079020922989438261023660903374637703039005874667428666283440065618462526174575211260587796701425848725502523425952326687690299944289682467351891312523257133334776092172316333895368019436755020453668552295044289920172426906924127587245350973118034437622848488327831663421753694956437352086037551945689108055813234541655936422528934686794187251434052389064231113884790773299275581723813684268999032617251688731797310925368710768316536099675731142025715325647346249144928121116862045421076621805020185629785227253563301375605803239395809850507227901204731585495689474458173385110665297103784327859598276747193833057276843668522191864530727470755043812486202436834540628650128109418434380412278507800512714483166124133246013829529613834791441711966993284903597109987310908119194906969717610622907044540440235249923245935939377650152860214317616339084342036799327976060151439928062597723611912159038505414395145311241283693632017156367683141915993548054075539185215234703148571357027583681421706719625169371417457158841086928287585763215721638795172215596092502878327420636126652197846013377242963361784285005164384333553078495460557773328961694129675890047616265221977189003269210179316545561045776132130059711858114802345575209738107086114991717217911856131448408082416675865790316128547838104444859603704108434545537298216999614745718062476563819291132128613395888081222884237746739639323773785609927222599255908576142575916474949932698529982725875649316830410893976700306015227210730281747511870630877743903626337442739648795771350962038271547838207571167271327242597498620851025989210126879765504828349832653857369051662586003215869315558944119902160303893730508848608418110172967606181651809599107583202163376411942999352836397567821354794980469332903806678098489143310690439725425861381125081493141642751741714239505838520257128164187286858044061563218140483854865673453386312543871167195875276146516623665396152540921983479164149245913727337481261541241376570463212081139160466869098632930065114664754662216543977757096999551933437969026808117021157877427664060945291372859456465842412939823626250355432428665517525132179780262749145884591951233616846841776569434874725828968447625916733799751976447613545313227151708921853192112082867923306133552757741633117050352106143026567292629095414085842462305486795151331341980020019799304771484209535604697223322473491088062356385744834215818156023877496618372779639058029265801137476069892645762567574391617712092221368716826909235811750166272776736232193358660751924226359028160394319488239926751090732085644063613509617367573457389144610605692774717943156572174869910185994528797930763109086639904027476670257223678254120200394546534746675089310178936687639261335870871257550394716550769238791176963307116968543790792490915912483641601203734230941428760213553385903523640841766468246579852736727832706962857833338466855767077118498831127448022666467703550835546682609691695025781074881134543716802909066778716931674297609117041487692631576184156721307485676786090564710129182889115192577289775079278975702381198272167148607571450894206284189821520640894068926970283300899597897112048262612399707767662577983500705436257677889211088635230892038420890900703622329990640432325143171297103075653800445673382556173306740881486864787767533562370951603438962135334426244262009959866372033685803443308225513698569899840079336783685785379716967689734589340154360273160128925862778471297493205814431436121178214735731205115171838780850547834828635542648933470483186069361515276448138776308594255826230311767128959730297701961351204274356042135144910260340775797464859179412429239213384142721264204546846205616687797141175580167758621308011342738615107498147896057469391743237452921267246842544439827064535019892072050837923686200414858314876791308119688441096976760963785391160682264935778348739577086795448236628021878054484528030386306651087106614329414120328293236051882216742141340374959321321100514813456682057331852080335597706762755305826154469810694629302893574616450763191431684119048072999565913756341795560792648342831812511179044579227848371630083922402551322068387680669614080396618527730547914188203959248851205583323479981045328756985177083809292046878803619048763881729543901333850697294305117518134022380179967938823052308158228567471558701720096659194352226333233520520808150392199503389380468408488306471086417674799636825755192911639840687047831159794389959859935978765813816958001225479417225659116536787876914097576432578541305834805535332533193330065559259649040917632600098138842023543070243991843141785307974758119628986453618053379798242368260556992503411054109769979191643802589311418696060367928681510313044398419814674982279663158476822621768637596907923187094947131465618183528590258294607577102066820309315846385666417409097973591722241947884158119465142417741907069175293005123460548396868877178905144907746368879185986842347858426214726798241165426083053969955249383032177259366836113681645520681239041272353507313859853474717775903622091731514760322402067265543798174693603801135649593564766143056590094117437129114063343563007370319515185947847531717624801462983571563653807711727657329227924120007169474251793909555509896015656553402788576867851852676399885297965169682919596480140352328478347290763887167615159113276060353131568605557063813811890572761276978279540358182767695682074747932527475102038912585354712903572528549511224156904083940964746333473547613631505290283639517865176414325147126092738429319257000411424428007448880779341107766291316306613602539531865946567174245999296134368054573463486778779829463826025933617500284046049939059228957383183063740103664188039731762951794766124125490147415503586575315747161532193503261756024999105086060833460768250265911898115173110635551420117465161488925815825652441146924221095414613665847428642186443527699182540848965038340964603323299553413252861027868165146508767528855322654981585080099398304108613572710273186974592095377174489165662019952701206998334148376617362743704768719715845482769376664707067320902816158865040512914402091686627351356686324464044441278561810020846063125536553105031750239353527674917786981529784599337293943941454215462477165429006685549756584449172746792502759440206729556347133277334210146669878774037671221873007139177882934235253447592905325070391938170873404335622822672107173298059881895533888592038503444210877441934148028044317450605912820079317143582048457300975860204859111917784503669979448583437165010980900167689612923000582812964915191227745465548790361671455949196417975929860879149104484369332917607573405465397579364531321941309414524767983405123542934348994874626688182803131685490532126078228609381450793298636829555110613251276359050164942099344529799423468748175245300266552349306893033755302679495908919114771398771014118619895720786002295295076299496377037059623927571853508958729400613842883042669749692083008807924098692065357635663501736126901190730019471632579151127863243497295034429543228022219128241658240812038823370118896583435736243682610725933369309886732883032508654765016097231382912050514295662859054098881607335536619488067038642534900356323813138835965577965303968407699171675455372574447507285862879516676521861282896914314264547855183123089401505268295829583951741892511800761047063794220289570942384251430827678461932332476666610027709021649653370587349816993375801520420196542245263274720694809181588580075695830251557139594982889806395734016651943164447358870442831760270404725322205495456990436898630069791994553677543039770991671426076016321731386736455329300651251840059238544668218491723630506612633033937259481935634464120855306392141859287465743914899043257096914791603392277784462985340417924643894987606194999164651859797786745875774206963859859437379240675896891069331658776781561273896479592836780291509625539703157536846179689570645110020259036551209402665572892247771898983071301687845057390771659017040759094252116702741648902226160089696666582376399773007860523641637881999112558031022793120608311740234827786838181021181240245274198279579802111552743366807009739060033689913422395930870992044740166220517306612797078898913048498429785525163763787442960630090862028445184317498370647173173114030411013838197902790163007989805091518943270639082061311697059648213369992965041893038970095601576097744540975461917368674266797217285147830543539261789865290278137563926396349408512089999711076206026110447294560708248095546646341275877090891066975147251702819870910544957412753217305973730794479678910417862439128757234676829398457601428260780727553848787467489384479182236923797093065971252120878003145665557282679346231743207650104992588441979927199735771609223106545380776359416842338703911216714325369681046288312860890813320106180283149217534818648355798766073215584868701032640271379078075409884070737766208295709907211974001712063634025914251742474826767856901755503899796282299190080795072796936634662677564324848313973079538942139161713970205153498300227034666051233055940722173327068122589757986714074530506856015826631886374686222444521746415660681122669718041478303560875169950259099192894194765459443145432748793007143941045832559714855986594977015636594975497327226029483116382882391599531106083553983028235885159877654928055465260903846665618213891720027084101629845765215754597718110893742408673679700268054675459881837911025766085431049478185215657126542079463203402392961626850114028566117780797954126673890523668794088624793350984062095087981804408078234490193515317880467984784986327591370125660229417656416235763414191305655445664932144087497937994867373417204908663192310647560798893694677693357995072684208409922222088641156981563021809737662732894839004415420445235234871289481539019164694351013016660789731042417015812439619218512576833178423651958382672482042462946102498093480514000759053884455449665741385525161288337427231478581570239451014456543672642304357014555422909609239572078977794984222672742743872138455845701374447125350582217980480106639419552432257095543939205546973580022290282950484400608222108282689341104799491875128552551944865901872508715871410271867443603067448910672089667654007680408985825286879737253107849005013519040736366150143646617570497731228048129159057816578721736189527805297890215746731946644297122209552647332693762519806045727754504910820803371274190644736530065364367117512718126366055560825145973268156408463061582593071509089347831455163365243688632380300785951397188603002213483409696265818672894685824531621526933372848921998557662128874989152358409225033821127960128950676613053026946381614935046289340743882741443135268482147881345398014347730635684329133671795338942130732784943786309574179812163107496160466985176512184647599870572547323953001077185298923453808175558671585816641389794611210246095324275731312529663310915041169559855379223098926687260300232137361097021981374447442409984626651127952037084312745632132421392316764174051575266053539151828247876178253684526374300887731187989013116203584124442386016027201056704932871798276566659558226445780781350564994184354262076826360615589090976849918194206528569449367394026616620824660908890959600475854083532285573704591690150861740833290056204908030580509314096945686108956457200125193029292161480342045406965157307165414639116804440137186118437472353613350154370591065106010076786649345982524519706111194540659094169208686837434918913299784085863361456342741285841291958932639922909638456542555673877663276279309486187600710620894046236706248545318261995218979926173764670877412509281400275802809292046326358618560107962964349057636060358595279533705030263508943866490520040439084332371585620867260668678726278604902848484036287301124439482015029824574716874624557484976888676178372605970583127178338056778367753350492718693861404648643392609328841216866380436448530298817990797741939195821418513360320501540995140666772017499336866416171089440753755943110044026950084187621005153405602179604972562276895246882857851042931810372768042847633642719286253858494180632788204342914305838570403751448841648097908774526447182666617576897349371202851038349624773222132645885977313607509837938718866124348255444516330444026999974840108221333142013876853588187257603556608612687761489906308831881475926260174290593305889603084356201261413794507595511465472676661700388606038094828231103742072486708358011528204050430512134495083859583634990853990234226415282091300555853807714627338912862834437566177402274604588099180285249518292961307378681350277706879400096983964624949841964947197246173806962092255027401091631390566865323845330774110746049856727543009130325091378491340659348061652914606852282169750894299169596848130914472346818630728181341832932968042768458211478457010443364170565338115234319591039281309491075784531684648673567035082505162311425129455804845478759133748334357606182422170745908211829648741171843796230283777716190945131062872578274102758745803920584226581013386215965932161323547499861744619649876647792792017783624211372841350072931644673975413608498317113962922663040746844830296410963346043299996078382773607721033682471144510385435655510511787238759217816453563620743471648191290158588377986292647055895830678166547409664601716870258212195237911294059490840665744752189638442307667646661029369614401639137091025897285796230318617278633250564879554788821455458797325899155626728526657592836578146872857618344803472240219196807192583933454383859735071425167983503263864699349429356583820558114003258155647852429365933201595905401827798395269681095327788168695159795745742419245996087156127476571367938653588817075320846730925350712120105351293929499992116380498318153138398822579278388744412815620595138565573729921380378960610261849544040026142740967140661964022183985559880842382979170718482219239812636722540890370022650672062689514236579503824751434921681053719564828208764123456849447456497163398582910761603730671309202843589521735355653296361068929384154981368371044363628491629336589893905041177869186605738218239691715708457786401679284044126192338865209793469506241646485107460311331362282709096494747268388944197539101070989446557445937274616000323417233178259211538835306269077861664717197637772057042900436077468384807615694592703935580178728139677318970421540399710377268638359040656949819606572758044332945358491937010355719881886846999359878301098849886643037545254967699393929212330029564847458879890966864602263278126799924153461603218711546463125307992366281085695749408797412628535486035772834502176892152502377242292133995892801282014938945812423283387448611630634171058408567101726858303848323619284716282261700011885912226168853749121783852511260506992731480036037211318055705984068593109364407114606120506573894156880610058020990541271062565188550944076917416928935603796350341073153548572021714724831762482497917316738506921814650638885032031820681765469308350566872864245099926167455147052007181026692331519920038124468814371995427902936753094247135554648073350725755869179305824106635798265120980622862739593882248948305207319451734068019616627188742430860145212175731155813608763439332343460498426572079431174557940316035449936840214858368015604348191375294746343369434034517908495487321029926822915201000514576384972121301243821983907832945715115598523460300034975461963577355923079291235908105445118136965250444385145360942318061805510184202004243758132502849206459108622438714222967897816392625310817381417247869929567710453780019823718896385904496330005839143830233549287985917061605469659588598890799915168292146016821678117395904215637927723526198163695867572991717903751321796094433366524288429981502120607754998584880041768782789849384329515540968286758905083600109475161791370763941881129199500355553443583803455806141457992906975405397036916152791041742812908895101361763911986460302855688265557820481114152454073196322440235928760348659791969536050424946853491548219434201592394023284612911483729382521461347858708665503683010368719510107410932768693160941030838119963470987679271129895989772183187975563831415183603321027741864522263392271644572144910920218964250605798079825155399066547670058613762788091658060993887277841439173739027025974917863304255810568116218949923112322165840853890699484367943962344803735611133227479326214509507290576032873868707899127949604159021775227713419453535494855760857398094138890090151334323962747679508716603063623642490295903045833560763344030400397732736772130238703327143088157061355533059910668795055163419462680213846746154984826824600235127280795684628178989030843292774840677303089890129680936590100658774850818792031882955991409553270528282749744834264678439712582539430415956442574655979672584317919097030641361323339292866575291812206888172057449594271062117680076045500782290883037319477480028157004348616823906792408368612773765708021011704015162106516349889947500884274321165396631719683720397416397426933739275901866233970838894655008073165365416742680589116551533594683087419691347267149630487563760623373796370184194349270090445107854904208672704260697615311662528581075388846508628029608450995061928939913572970562406167670937275211299937804832367022248940873027663146330862186322362947859176750146961961180387064750050044108999160362816397013110524912739060539507310671153007101365961340485626396487968498094414419865242042336697906789012711845976649498439321795382329295077496133062187743901339720899331317660545445865873145540420983176142250865832691712872071214535489674933563843633651629633907972593828939173713492106682895249026005765182170585046452080612823326977063763201939122659653675629186181811586160753216589291483095546010591391397913140279195996312040465306706718183266268688834010182866927832470461394201649387509685527376447049516058242347326839184485087109366582716691020626620419206051439367299890615058047796398049565909122119792279455601562661007073384526103987511340806784774024476397987545709642255349383664412437767053571587750832745763196716712182278043820291315644439199580431480422690607487726360670385306957808559710208371927231888695274493999372426423564755337219328687027599706935195492724552291782639722702774633171289953376441924934421284769795054806841411613476524460801901713971032559683733543836992636371358605586911607413773675179856589333700507760120738182231178808719340776844504586581548378728880272284917113044501667488756600399925397908388050986223471488473762097192073568672808699633363009097293241829661980338834748469291394028795312418460539765414295572613380461613487806459227530462487781362249207000480697580824707304681761236256560886996408864025637747275374167329264725749564026870417501041603773081079501053593527297896735118770418189179650399811464047764537512948442425002150132400316108383242113368556157754240729443371616479506918097806619797028331842408844530682206205150626506114256471845794846662817037459223384253618674815149653447946315390148364755164136212733418302601612781910285703180981003662660680776729281247009245066422445701518500073219699698168353502568313334386529966110372461876724179274764774123340557505695814732529396566851118899598936396142682451601473986664975676383574184954457361344792287675801955107063890532000858983409374459073360716294843846658863978782357387036923498152639056005693713114953118870188505323351617284956746551097510315224808200255738844284377414376482760542681326669248187742759843776736166469022101741539349618588673370932227070133692349018928428045193646703407214555385741700175633554658074465549882715643009921729910511093431265187701773581714564650358827477405336696908572236221135241858536728402854393432265489700353970026872833864850935945300918456620962353549691007378859767371291419394136867102334727706166989795530039601891752117550743224528741920875299263443594027188486433483133142461503523326056182971035658871368643117334280105904133544934082705947297882584673079227795188126209079662380127596580373125111310167574183748681038768218419349949884005261025532257767533100662673560074152327909353556739248672757539369202947240087227319908827388614664635275185899034725075588759182306677048392679790246501785126791698705888088894903619150792134076030125773926466736207220874123175603290880693968049144307502370549550092597030431083388188330522040559126014474523573188893687822222454881333663280291656877223707712999540783736364705892509905946981199086052191964015515842855870674051124946030835312424974197773873948576291113453414873912284243547565566550663593849295371357489763317745970862370868334773013463747961822853131662438801323910209799106871672804224791530227428097889882273113598979470413283782793712951509005661174107778121468544618002873484822123784918544125087732465899956507947985133602696037645037591795264920427489263877428854010229803342700885324425342811446401368807484233041509797408117000700699261666888051603095974037526279163928862377380648872648984806470958899254471783624485149975829434834958837246348314556428544227762491294193518818918715293263482339881795130440512432372792147510384835054705230538329914036472345234449995416884445994756702394846485053762198882905328989699986839453431579111553550523650055225457675064783863664497866811597782224891524116231372310970072906745529182912076471926372609202163178547279573353703312781527587616383981013274236214428253581882400473179100010994822865883031390890007509697273662828178976206764465225099205184343521402172959432138551001715503577159160906140119634171869216908329608134244470111569367961692925300938734331429472946902321896412401837213473343473312337188867976874930973890169340356583017543019240988594138152761923080950471593451901067239870701338109880037396165837852867047447282013252768996349560990651027671953576125344424496053979450867239438029213319264629466433720005383743510070134730500474286883216460545125978510717171111716050366343674830173947755791645734302406466292168915536953192900898048518082751578224227767066546093296154852790094537448932013884880760631415905143511472847708728495346761273368018812020407652954127632583432294971404644573793954153241630046483933359854059070695820720389917559738398722150679687560519362041020081974757072205647642820939277169458165276458307891034552551357747368792500107305961379299972983667188933417529938762636131035963398513037282511575086099950338209599607129568108270609263037843161806618923187878399928358803370162952398374802573970398493965304952861482695094648738358981387699737392843108200262424695782144450704127386292886854048739903245944798431096351392990311217134984721566422426856371544308415027072033501133643087321166579821360058891377241571451851518482955055845446640801349790043134948808657096604365394007810293883567078631306198252943901754943414670916945010683272328120227537680716240209341231837702419521896343904965488300976043373037383930332915185431604393647372036268105454368274701597438371908652667741146177807770478735022150813887866917638496187673216598155333392059443183574994089670254569707474562500341064996846489047413143799026124994769858652443185975496247024538828254935762104470735591380216106075755046661676516582048936417401106732788133581461560319706367737294152307392299434713654984325045120910741075851164511711502473834146411339101312941775808082070626207633011835368938944363874322452702445356293575967942033145896228995373451455101963210380110910557467534724752455324250046541106603520818920117780525795860472910670626774086504297187564941705251320728312456730865489738536154889548041012889845024033643963533276125982270169833433819379971187861295743151646691557892454513772284662468155403218900934408386671564884670033447679601391336640786443985161581984580908718506135964100661597766687942426311406192763428995573366274041065703558275404235012383465663589234323561008273404439417042053771460305804181661974995505040213702714152248552147792737814906261372574549779421929399298681718486737454246867962313071719514946433330467076028729933791721003727482569122007160709004425486661724887773959633359657674230350811350287342542805092605699687399651843332348719901470741345885673380038092656948067354503594461246054094522033922358051168356022661157063042392155258107772182971492471276472794330118249655764485230565470849211045015996318484246677837853877796815615903935701846156386403843406463506614221888003278962758495569381684297069673107014870107593930990614247780315752995899899102634630262123310133618774384736029152411493139776423904193684757796696424942787496854443846938595308103815858477649305273605051021533859642236727735186586277156407670980831623856037204825458553674902306258986115991172038783419689254555282007055372283885681701038082279430245941221224043669944516714124162789845523880457125539044015391893810778758960097862665867302911876650896061293626175888685052575591468144917845479248581176724829766343447445551072416747265266068088749455960584660064194414068640493641896866030074484048026792981902385581256340722343316004488306777414973881334983743479319669769621091297661920426509617667842329123120574552538749890825836477295742847743137471808833692987869587959530164258456549760560457708752304535387202178486863505223507318262197840673704308061060902176875153654246314977020314477006513633648325062290446573318046753272318938312153648573502329738513535265248010181910446218850654065733500786358538016680787526758146653762986393029335662944943223535461118486342885405641596359826615733912338691307177337839646554596188451938094777917627299610715127631924994987909199540249945163792024615896113492821250581986162543948585804206825494729076271158044531029408609748664537182332097658726407624904374974140174530203699728026360315835761747000323224728149002442531763536212722154454461809307994963049469758762252168676031210478452801322143650296545801860338338693962933507467135421915138083489068197276072616568287493459240617443562511335075370023426169424234315998834356624005819693467174448964551162139868159979866033391828097493192321573393298562525184455314026910794594178491069479991909209729444329903113418965847823412121086742844225947335342682825266685437805486607118269657357155754960506531924962066924506182031739982947746023320582354865630668851675362720172686736342403060724839474536676554994408537909648039365387422520403056621445771594553613672088841592471170374383886183963655815390025476100568590893541194487288485696343781564307938554997960341185525463907885664906725511842013087421412480072204006495154396338824337243504316565759586272923189892067390650503614716198093493519291606408262367625122379259954994516471439355492259361742151424472287817127862348699001250036075239806809306607968293318827456475034764648378091769123505542309676651233918854376323732798752286538084244356884921431258843752450316309047426631710129211401859354187080304405790967565115852330585447822790821223357100192830334927836716209859896016682317035905953595165697452048683024311549543757992421812733597005496708167494598975001870512940971174426019431388352458098764604229137576703344297999806603591035070881098651026127638997194031346650244730093050112147491595213000137431560063825501486418855417974790066562806655611543129156825966067293254202871861960424015318207570937676003541911756856755530517372916868376389765347614459768563727947035393517718510225000269474321915206542117100820806722961545093346918655684498397714568729686041676969720749100318587404449188336156086822344317277058014293481541236990394337414794448851402238222170026876292322747528530663307265241421028067051062820116712448391212836710981571461511946413333803104782398650274191020122734956619958573442474141827002967121269243995512102972974468761495679897559094601403955687496292389165498397337392375837977250676435365791917595783048967739190028830081580975826394411475820955862175446844767525150037561327568354750353875685503572924834127723310311629271839149439504702309427735909362001717019898060738139637726974234161839085672284570662320431589939629836886603861508706227650631581263126842080451260762444437841079417117161267933636492977495503080309268879512115315675919082736884527916403126249469318520778149732286366084715445480746761045184648895836396997979354942515774944386516885268772816863491709607131536213971235745517631172513133384362746122806753003239369892717164971822931394006177592153991202304494717944123628505037362058920717588463102024383201732478048346800720762241479600516639364583035088973969585937054387977261936862991732350793057612282711298761431330475386240231719107934339969148398854386265509740663728744312740356917874076327113044986775677400232929385531401197821757247165485424309236980355864414473068564039551015901869062508175629649401356979809787292023275377739916315032160268415484535909298198866829989378079788556276079475179811814219005415926548573628987160199445183701804587172099420462967420402699439864792535779636563248669216784948131358943473336883175835325320547008768006972293950442129205862132075764218640637298268230767803624496341668702774681956769776451886602838999376516966061554455579291474456676665485588338225912335106380187828926580237477474035323185541433462789831170353479761302004711560937187665351300716941935538810427548389815499569698695806170739932275083180892276960057104568180229333180807766240042984840192133424780129418413728329001157164855983071239487629730647056108691022788049516956242674477111943009424723997912176544706760363902151412779732557963417308544572550338309126594156023558484802281258913513233907998742364788362160337284318234872861895611967621915879577917680828501980189981318388927845298333658309965554051573394900291315109176055463659527739618419677157613153180912319269509418742255942585323973965301722693348372027616255633191275560983101293301634444595464261960175355826768808184739972777809887607617163601539435909773468940128442593987853061137677311847044740653766852465434326865660635121739407078307384840844833955312772412538405540379917530932411174668853734937535378133865042035044437622975819851489903645863260732827391128618368295110580186406078803284646232258111611947195439691817301471059939438601061928413934820626331023570313576831090366105371785739891268015610118581281193512785343085860038120085630589257519653846310804241295943690262822273779091960700189688467022986396438587944727972900763501525600994126764227842337886408454254479514153579822028302780235418322750378981639144520225876488596247447544803221339913427508922413805522083911920613474671893765504506723536985231797145937733137404765904853973438766417329791829287980498666802714366694955751977386311792554127947764478533431542073318701896381013364309074169240323043026269415886804414986736122116445847383962719747614411425840007672911876622011190598380897649623056816536348764331969122951387508448579545375632431653064325693133761232941306368184388218478586562007906763574710202040467032841865129314006200438066443979182959442523720847127925988189067523954647158649346085237866862987729402751249055021892619376197133862294533646868312810588819536190016724609589437038557834068678014819103568098744970618892076748202264625458509170589254910209230006920078264693708351069941681361443098290706172694914152850805270163678811632812455445398663743776037349814314408050399448588975752687266564502983519600643080856300093114969829919609089822947079612058015900342378491691556079185294939070324475151060453919373098517530394173028191547802360630410611271350997472651441027584818528451773716845749816938135140555745125811576772698561998487810716316546058770175850348721770309265122336908298691262461000995155571548069788450872768920097934534553710439160625648380794390358375427695037055714971414154080610361054171469253065963932124179643195146259186458532764752489148574485543971777130532440117594412532251124044153163043982667421538017963198414985768209969322314424383334648526841152228676605772381658967691363356872200632614295297584660761912341428873069999486335910940859577679055279947989824664171529822512529805749683922821779612946976861231457776622743979668042639881436846518867935111543142773275779904774449793995460638954177326004489841367152960302724075281680796225926989768732184155134257829377700647860312233926814290103066378035218232497451288758662597851824251592281283249584395966496454212433674695288118910982354051948701874290202420920760357477258268111465052419111823261467063304664028585142569412921737170869447363118786447241307537140057469687163707811684602995596556919395719837233341567693979743962910104472156933399246498900492956158867875073812956640724880720549350311905761060548561179311947450414877763656060152364625011352776521047888671529265552998325871597027201411841398584224131090674580836124822675124192062551012154034467020939564555666789597880690950748600128091010850646129665103673319933586674503900986511290504548997155269124856205182067359229898656511585892249734626862464562203377678311074047571350643003442581309976804202793132077856448224195675066355089699698617046494786560105778737895102715739166986654848013446704399816742759763376770808149531802907259344954201354931451989566590428176327780458222604572560064523812726633564114061140397412298059051473590131760867986447071163324887093604140393718290186988171975592543193236716452412364104298826188027588963624340069641503749863723462346912458240804882238791350859746011543658156514965932857304997948659601719732859002376583358757814912340713952785615243580184833582066035123386987299203933697527499796416043220887345001894634471157979663928987918203582030018198989545294391608904918434289018061814235101765921718129262781830309351877049548171976573638011488228252486036532780507674008187043011210691218515237038685205627451636770720959853376994594210165372137152052218946110811285820561337842383243831198178344833970176907773096823729772384457724075493858765952738151168865685945535082846947087446538941791533489250948445870129718773805159047596039823679897716989117386694111166916901400105889473128649261339521314437410659414176113176814922395249478388565349940247299116965786236604628213916657714070755099858781996280433449306936101279220941383679482772357517609249289146356567861745027679711974771560599727098011356805570285878923488648152549988511410728865744153442074317778878873787064032832608177396182325181758132142321480441040476858684307298862082418026921921524890263289052282361798736354721847388861762478636046311153059185650086916433098927925684569532503245113611318318655541999988639226962571207176748852037328745508655931793644058479623658313029885765937972879351387576209273012097385053399358252615831918883587968137089449074064242980494118741130977862288910210020898369233015857380230852884808172767379003963322918315204630600222974684498496246845110502474976922219695144617161715408745001705717023733979433161995483184119218561056978371574678773470288993530512929814233087845318520717244632172712968068968641189006667072095558473128784573835269385708314161816310645385236315380852119360839489233198791202767215808209481564574935452784358344521947403989203199420088026318204037159262573067619219231437364004627548316758362977643141437580693935860086659294832539570292420141130526387011576290955226739524826975842768074564927609090305837799366753297801937345123644969615542451161811363784336563104752441860091093026388210396619018215336978002088301329665928383093032230513358725656909659248258270830478169060285726428870826253339041802545091569540544112301373592157303305777568132387692669854825836387193907357882892053603665872143976094313349094559741519311099863986584893444673960284266847289046842967974849289127341036111163989508569232947007980933095585874723379768709431423791074618782709001839205351431649898619596193877978028190005584405063678730194382733430732750283369370731082038488752574452220633136583299028718768319674364540011605903552030966546914237610024721065953996427797668546237010382223525700798993543823130304278847569698801671770588184496581885593991307899214395698910451412516047403789854253982060065248196907498547946319750179355043906360287008575724102234612263101708530136979780068449907117454946308761889556821925225099846700178806842168908123624600222077775047459712017126293067167816680710549778351919199165532825948777937625115891689811469633277252040287141006405871853445985777479536780343070904098610007340546616743984224101606269389047697920987910862423579498742484839859242390196614623673495954837734199467182700522547984062750203224415152134852670460478420525287020643116613765893418356273342994175310159812579935966571396372496918272762470522707947728729666483126221868117072905851625981873881656839622188078751174897304486960037756905731409015184378509549466840963416985515987186024212150379078355663888049403476405169113128405595741228774265572474241326086213420728086302750002700450100823111690324500707926162833107567462458063353007848437915497019106791925700067993781792399544454170300382142257660623226675670325837672967582088847017625344673917244906758984694731903722159724315501146291330555614001105372743768151383786825940835029185932684075810613429030887874623253207669655005967828651393810144140432070438629972482397772525624283082668915734052158982677903513557448138483721765649540898175431678708238444611975784429681178526799036473453480130507062475909857986929955866496347966744730666710091665764122580337052360251273480034397025930134904355226874717337079274123021307226504045351154803066774717196522963204527891055934939054301295263040089167801550678262749580204697818864326384826343981067023965073750787101717786820975782498546886359766457424835559293941331944100252408761624909282731036899529677716230188798761530278848047554934562599010462593005514759695036400462948770626259311436483412897167584834862017739681744212164051204255776637684618726487367209852266076087904349672265404240110679430035659545984813639227786156837453465720613513628182056625030335902493244916456058823818620730303904948368868944659955722315543512917423463235372436364582557852328718123625177303034377932977813226939691527898848267258776919528828372663070212015063046463171776884937096155779310247447871016183684056242872210729430259341215719094035797622275018494103493262476373901257234819036324761022191267433845374677534468035811062446491908661130680541987670301261295646223205418058010040726291011437413869911844955339597049908831827728017421926097797943856486468314968025283574261703339838205584281166354845645018438781079052303807155969763774347488066598729730683427810832382324517688371233518456834023025971579181396005719258882723187485484764995864066623767535388162355192158681446051112257497550129056278614965133441349874122287238540007877085245436549651164664314096823538400357474745176872037443478777693206342100150992722896094699678177922855268163680176152501014678719881770012007918607082588507304208294775840359844316544210628475154071000854624083034777745074752846523311770697223321866436270610571602762345064275405684969796992802569320260165561408836712448561138580977046779503835825343389248453931805634416819787796501635309280507383485675956634064807167100725587216584914159847174498881354715937025494215073674360791254983342664406779961720898012807806036698330773158216472112507034889083627940511932923367729105655660366281165691603487375785400339662156691545519736712615801361733796515001700660822328682743120484747207529023408268754571442006670858747369249155896476393410562637480808633855389464890109032329262841400804891257502750490701011036218589809586799085052607953619523292089342141494410189191818787673790713690088940151435254748477862635326516425413469314655831530673571465379324097415381271125986850823878684890356330468494930862407638403770421922409063993593506331431327937168775919399530028844589384153696954498296473402612031343219375125233823403121303667336601871175166275897071702441256853334132510970382415970198253154676567625111846111788676039218040951772126428201732756272972251242077219381924038268670015309369322939870793996325085686677717137987092665801121000447507223241387728652628022860416888452838831619081912403226063089150226298943548432826782707056537474589513961054117223679256685513648909396629750732984103987807192885604343895776270099677899715697508317063788967096001268485732316742435697655506431526233580503824346868758467007943425327590820709438169938685098258562438796468908435390460708971476616659328675273420247289290232703910621950880537614897912136450241613915563283938920711436991827864247667697522719485180975319708714296385800083266488696993541135944734685622619320794789233257691804152065193829359470734362104600948451161459665480542048986433869359618289759982658050323165186268418907831838035980362350689055729294115474614058361961712539191931487488389468836880876478619113982005011763451047455655435374632721847187806040188952732723093945746898297294489470091527587424764700221113564052390347616616265064326394015663675486048610976004078039721265615003406014232393455971663958124728023175666925237869056799935966030383086861814353829757121666109962908942234395785997049282064639119125028105370881091616962082071535167791441978437652906498871412073457357879548462850957786006300032865326303395384013261459499985016164296241769250203388281539177708648276121634581691505486791838032711427540447185920497967464136660799062740393597980599252042057852295960690974621753097490468559418470011471129446154046512966555184499654216313415259238529246306953740150970518465963493926588219368563554880469867603091250514805705005841049379211196280453216989781784647677379195546270599015898116590373033699935838938413352728652873059660846921727648691161950736092869207406856468894787997675510943849394352491112077530751203851730917108914358540032872996368812999136430416488513017303450835715789716428310514971969986286444997242535074887160454726788372433642204378167751473757979103686463900432292147620503777232106436757979081511352000101814908954433225373083530266955612482078726626171218633669440705641254547497353914213522291220463107479913382445830077370699472781235881929208477597941092025000122366872930480692368055466699754537218777464371953444983761366737501695246762266021923895703989065626665832104496785785623025765997353553343633270884246176352489825449649563558983923822497680517621666834796963794683911526594252255869014180948003176125973433572756670052055747006828952132041412483375697661298313823474304029113512635658766729392428255689054638769094260781622295894691917469919661331596041476663617689480696246668566164850210284808504166405028502270361112145928120825190302784932479681647659684243412655154727156793464867463806936033441179683125345805616463134902358073860687920831640609070512961269775529577821373645679998852009614929692343785755464363244073278193678878682168471990025152253885684611362432382823925705790039230352492649414274411604090639707114802042299345921693074149349348474944302405163383819725523636181718714991857154507128179514405192663754527204748243650469173621297316662722454124407442591913713491647841331339027963586057632644926078591787178157057840282802456657717768871305818114609407966413268416982345935510616747151235870427195076345738887488993102516619911057644853939293021206129651736519476608180806085099854540183290699555797063861513830651186664337642985571828608581875618219871073356652093680744955337183815106508333425567008304976149160679227024807046461128015193533908297779871864673908386483928944153567995009088590717615509470538390707999331554540764250665767226726468597373278536053956735941283716225743266990096970128398536958772066953429800553911398009198580636974935007161305630717194804958897686787628949100556977440334901304967819521682595463015741659442813929161880371942310767364466533229265593867709278314509239043538461710160991389616404630797126042934254669952996277895858835919297667244823638417619084152730878079734324892072181577496273914970579844243301374589952144090639504265553254460561470917441847551349832563037996573231348589730190689857019071678729147121133539596454909933045335772048486838856066977225482034261219512642176910502496798957282463537905943461775328975948022365405776379648954821344648155010232324429386382028393511762111392001059881226642706323888027336943759383281489409697100412902539450729534582966718817720224548990079073145467878865540280428151729179517352595636089729247702603274952741898248542704957466045155922080937897726318456236856337985624947229260551089049406590891950549767807264912024139075074338050611338392539018082856336015303852888743002979595700951258633091249167412488107416739534239265528591879866793800573537938116045062551689793204472550897766712309583637873203531789264847889963575011107785291087837197670589039278946552263408305565355073865467433307170466418594950637777044323086309160195154985098666035332669147104151206636307554032085259386703636298115426640574442810317024933579524026091840754829522914306874639729963535443231789326819773069665784651898116354021285849575193417297398777965509498276252965124590998512993141982429928929005057331098296105254151231139995001134569701168469090081930954763357026634073805469571360470267181544230479800845162034157168515292881153723449671929567756017851910976343296903206048358226728914023431657836953413994057846148867820533980400377766852227694100013386575594592348512150989246634318503756279195948815736977381001774561115969407491932132346888617717611945737033210521991861828568305903225629136073166419714456630844110354293637308918305548471585996401934933239709409995905158718579480842366819926744107130426544111057047655723200808980260621676701857527544332437898443074359299570306093610196374122757436235882294650713381868198029156182270604775330152106342392970701304413759627287714420433747395462625077628101390986991580679801845471442658364515472651156662024807469601958422446545859143732205809116667666140016906659934876220513037732700629427124907122966975489674442540916795685348641345324994460958121737140018507364841499637624754713236749237897783192820694042744662092019512235752499632360993070090669973678722877322030095615528711700539905928335982927606289433106637538162538163112073201147471744847922472463283258027827254137030589609432021174878962894868523225043768349442021442639268505992642645486462357638965542511400879507833897374080799369674326959564595608918209962609547536996430991030587608191229405978195361169386978748467079518648407063389989143737257497101048258174494198723415714347354936087763996693434214715784456991088272611661519329909322906513785423951275228152199507180314670108326784041990439240534235285413709129616596699351895018321735039710104154765511372095200614329545710025275922386892056150909952649260194296650934513794020017376657837804329081666287490505224884150172229841361522064706906721503944252693798061634055451436536350191088277043505048411468272627845636909988966926675510086076962526326917305525424203647010899618638896587671701271936798533876470764775278803163214621167914211171016001137994838220105220412131313794509880572779604972545133965506742651649760466415898999513161217359562079755376097857842449729313363727066815205219437576508126353166479884749270426948511226666818803056152438498857901043271383156381426507151435324492125541740604499082523065631349904279401875438794296787933576399845835321328083108071226009450990626628015080176902180027570414599008310080297930424508466318832390558053039392322028116986513849617106665998644804474758013024473229827657636969298839696022157481867115783278669946129015344356925761349379653868850951702159048034855755506136501327431228980056507334979681666067240275034191612467272334129293102716727462314956561327826386470650060327817849843242956944154991703279687090859756657679119716954300350406385126256464872017494626824005039821376031549975566431269309205484111370556723267665028550212928525344396047193859958500437271555869558071929561543933263930289158580266384973096723018586212135892556990201067398188007582783337415995171403418285394675341728406827799917244049632895927231653824046270718693550482664206676414845800000629573292359588144994622580820662799302215900353744118317756266914245987504576116749662800756333156983125573559248536581539247456294138330338347913946362843051097692052234234830727543811545736822578141224270669114282712021459157277594847882092452335774396881448648388073575368306459658304434635577405658201916347360943182314593583246822655804399924884939615135665064870916855134688974755292815189664366518401547734361579705315259419107882563674836702000927505638779437355307990065729514869989217746556689366136498596639810133499827072398063265025425311035554126525429785952216235810612990972461986074609390720251301285460947236782724666020921031085607668119199252649399824142433654306702537258692410341417860050095237475055676317652308615178561774430320381996658788311627419092516449499884080524798271287910367252043832967730817186614441874058919233621560212961049327150796548236770860045140654162835617032725895716793763765879194998823538751523243594835981923847008924787222341526202599856885925753948945464466214982139449537059084089474437942978414406285460991846806929017896361671746435569800687607937114270889045740572927862857621081548725829746804396204206772081480165887157859206684740314198639334407344485434215640458855758652324114534092375444102632891608325679854405531059445494674430419890736129996687114999890587584642580432081704530535961518541052928141531033567277924591520822922429912399156684466369725914698629636633703496384740253818548826282897154523757172011470356422553606900790508972954822575754240883153467440098890262761667851679309728008108093480909367355869621826866883285038580371937123000106419791713770397103998479900788171971361327381965114467770484920596933245372161173889153287871581373014801568032076867001248039507526130394840067992213402200266001835089532538739852901345820945724814263272348838670047216430369222947482493280445374821114093093280525231986571950340042048932352363257446732695055552107387225979106458501099122567487119383991262384789003292385168732777434337355398658544061756267056253080556125741461123436455727725704879480964986459494938532651627212588060973832102356394422766313677850857271602639769234175178951983994419235133136865794997689988685030064106599972383377670704986650868736224183839447597246965701574904567340184961934650604343142332318385206558875178339295575794675395931975003302496426063115671767220504057915483616192599884509989234948825315205265648131091708689451743772595899237199809842414922081286607371888860623058447709450410547189893295936476745993097219532603592061390504164161739681269347836057179319733725801001961974975478135029574152945221514924510015125970156352398333432649055108835196875976283943142702488505183210979203983924329597224214710430761505024997464180364908786709309142328248652414635973715760192558873342948666507670196834972298009969119606126715712789390209269008625723676747810742273854520428166669811382339288518535763427138788156205054172212855002276700764576876401674749856037972843267704282478125992941046303098718789698481295002247271262764755940531481497078429026471229512660730743378520619009963443330153128611653702743261365663789495806773928921036179037654766267491723730109045007733184787551071361609623632827505468875972351468426473624966880485915376742286065440554190809345475702288779734501138851169574286740757929698474255222903877480040238862565954745112426406482287718309584041071902946350272894323742413768206932989092229036182252770724978945602587505117469053808651679996397065631155699706856781641073010197435107510424272891145337733416110145700519819018636715367242199144821973799432464643947431816073441526642649863316674333178456279579910075723019979421384648332577156743477154461661606099981523172691401203835136923951963866031567942939952923058812101617184267395865485019248239996988821611246742950984317478841545878408831996662976420936597520529001285950398838376677227623971204196036585997039782716060527689519685087805269982294289154606901845761194859920961055227187365821360562123984909810158811018863533797177974340474330506511104544644185591253569796091827945915691074360781689528473021581865975690659762204782940788675594379391278048815665479930889129751233192329114542460086303153758076929462286985737313847188581534775238611370775501179480616851703743465830894683814557799625418226224247216732415459306817889020491705377531260946305453775917287253110717641980992264087260850963939428713418207129431475817103505464941049028047175046667846035712944325205298109777846230137649106400542186795827745008645307443311737155398000642920658545835325221638193192111134994823334676851905784736340109874446156789038800016633151254588081473170752620811251084193863161878595256073105893848310672665188351628577956766985423049530431322168241599790881264236641618917163153970828310648059565471013514925104308297904130350622871047233309527894384996615923431252202101735445995234460767439816607803946483548498121841020140789831524355579840248275131413098188701096238829794250987651657841111768417734510525490175918885209275960140725254053195877867220163664750987174920057593351685575874147623674008084037006175127913185636114204513685862817328956571417999574790174263589146739181545631359068090479905818802239267761708716227705384756075491050614016867608570496936216330141197678254834572871988259462003552546628510934751512138636294106241643761003008552082707347429750438494018472554450504206505291998227106460550138895671202507774109998980869685582420809610249981781647751997201570470620521388559181920007857308274735783588549594719240534380882622194322690810727729942390375012043395414317598104072540175153350925601733171102588304904779742705961142912862594762956280587729216602972572991425308671049363173742721435732567844259838722872998128619786278357709526330204115271667500628335457889087509786474895261513450304759189900000410554022007542273094055509102306568466312098975203044170483002250975522117901968210356226138796601982031290716432040549756244604841591173358938211341010722870785496438662460116071688799746473775383193557725628913450751110514147181240768441960848250412984881988822048388629228750864688885171267199077493388631663134078545461716638068191739396952464315216672242558446196549628755209079485952069793335006289942794600965612654067867896824298335924787210787784932816302566416788533486058713186046911991376025527882897705418297615766196685354228401066714232488748480452216156654214409484075051195577480690786109596769909004653556432167213075147743643636650126680646376062873640177767129467963960296441847242240179023431819352439466704760344790780689216424814188403912240753429943905581348383975907412140829294011310870783990018088143811018182945514263495065559231127800966080865055055227467937363545843088428363396762239841814409512763135141745410075122889497411298320256840633089221147661200939940681068186842577681542030777827573959506930724919690202068577223859182928519543070344644696796589529059509408792099511404883619774254199236480493283030215817831963346697813993654232555283910272587810942588781074896132627532295082410302433702975745108154767484077239326363643356317359581473959268823055216373352169284569522059389942883730859723239194454323487404963339374427267669504675615675297542866569736215547580842453082708137724609415954798802682860097008646043297274502347390810980490730414979953139501980176788747398037364677744797883362879140628661982619050730384444521825678303843442710590138390976291592555221311470470029399861778517900965455968860417523444698589119207022774596393771662748687953891530935860664835493346661017834775287260074920114192078002399500276518682616152559365030973762931455436022006229391378379285085262784709630399479841881706316514405266190321121318133171438715161892411431793241651732138220172813157344584155709646778255406119979230690216289536743854443469735398282068472399734018128347772082654493465636022542131529434027057901995053780958866110228889381382506888118763557802494180382571960790541653160833704465036834002121489289458490214979760756097104076147094711668465235354554787715454348518034902264713406875187475818889189216458483052660397063749680589769830894987142326809608488649366962208768839772943446634386655668700770853735911736834574071508694248987620475456517297585940185827833372697291462640624796059989571708846766424421539650776344696043529224526915185375332688929829969710422935852917817590704056051416609302848953795405576140940637723115898971176995244029116601669898900821477044030948094124896637052225056549451737476239478946902973547546375571078643318584398761974259378313984965324443509164242464246394475696322486920357888671627758414787992205811562556713515840206377266789166424156612967249444971498960544729485292054303466921260014379245360847667899428942350712581947210710400184423893837674717578109762590468848556308876669226770883714052924904516617705739089218171208218622901922848287103062442700534129806867070790085095657763530551678967431975824248677408773048503996036645880626175866875723380895370701743139157090735840918309988349183938231249245761904528789408053771680121263068714889600170258203587078021436120505012755204959201530631469635208894247263078211608549327298754857766779184707972380636524169326429432135271806701185801067285246939699322582641263429395768337258721991332995296792183663233638522729166583812275882754740958737366749920623030495986632681472674462860404398512884272610755635329510114735068606107536314477514051323326211282240991302739572004728993286169671943074170461048142642372135021482595940703169506104809814729043169163638463021558445643414956883999618081461774708285907301029402460503168380334803655172595923049548680994854127344892994560895242713131170102729341884306283645896092343652244142144329524633915656446405475012347781992724099654692154614992577683584532099988921131985006037113201075137850243407296584545302654202643925728294060200603219807864213769023780551045477676425339312654157973529064632080166142408037471267238439134792043016358706317545942791876262796646252767387562239014169240570770201992532993499647623246833900967630248288531037547808809447834787662642584675668037354347912162683976327219650234404808368501142119997181836974318489650891579259744402137865964593734625391041359500697946262944360267482080804607245239821120384655229355320460997690914012564950639028961806699538294496033673057202971760360872333076921002143420901428973691568645883729367141722991860488647221951953843369454665762699025570741597737926659218401506442377186848586256826746474196803158697644482951232761802836355911993127934073469432872970630734670483912170299733258332178884693946373947367817921343673299137878318052698705127246372802974153734071325397738177510897392219630521652369082280651666228325118361924179026411486872821187989931059778050772847880949133265388872201561900121224385527180721577113388616880447143995112545656968969689421012413831543570263383267405940067289403221915457195325301668483310917648941851563602946225483886667653306330640483844674732463732736377706800972448118261315488399018031402042765700130405058388582438943364196223192058390359551645362640852677877845930410608578729858138059254428239958353744205012928213885130697195404991822120839671451682497835672832746996293662681874196285285146269801991659613777865371783599193916060969510237250467236750088476758588727075225010035293404113491504602802743513086998395534226779570880321856899986657952598503321496335421490189828718435215667896883137735479237707577376718860637102245577443400389015655585623351564289489305683758472676426317330421185439125414599892055513742692599376517505913474630598680037882039242495126193995998561320069999814466239492833219590559857132439453242762107838675145051944444912470547264656499591800252455074766338286649572502911669023474353538055572041301909937706362499652904468225629506242549530076635195671034739693976520022691853353553451603459893132119095868038375753196275813490456923567171540658641848633825515842164769581995318286820099505633710382624365187631250178421452637841155367239319186565223957057145186055265580238917410174486367446172546550873536482231912135416192056166167018168062876347061816755974334629383128855574302613002740518596456671003290644779688719686379379188562414484519237878092365809904683734360031273671608536015025770906077818280052716779901370341830370484464868318728488538662483019588021161344833376945914922149309509673909888497554070558402798670318195769065917877680750196418957330078083741085688277570619744113727660653421893078997235434168539457271562872347058404877086509436225146888158828050275122572720138746588471709231287225292906876873386136845549536465058036811432492668542284002993952712108152691150298250492185617530742365404911302854639456465780726773104970504962123784192637297699467571221265432194250973310839984918449296809606846751376194833325248419579117211107763323871378743020532443187064432542750431544749819436665028798539490827657119638651631029974102061607577529269301520408072337125200647211077718240477763710508670789020525600325567506135116443447543946893691420929131882587508231186223498464009242572615668096653330639132163348246158687038533200040769861799107715039160252557284900663140686346429425727434206744596677986640204994655257252199414493977255130561647240187718791142025268611987104488720222295596665869847689874544044154729149089502787073771271090968811764349906952995834296587358666254452973612055677282546626766569047368292887385535033576890845652461502701335250583100771610833169413137759706811674895403368337685226587151450235929907641496849487737897779226141064435615032628934916471959982295634334623677800991827299072711228603954230527598834070599250423952173231764098901613379287325901791743498005683309273794565730675929769172783514579726143079401261563596464094841435709928212820033284142189106248003174883204148482509048385495488951438382192130532271215542911171730233151596737581766985892601975558089773308183232210926777971463248660470446528964382655324527357898348539733426503702078875080510320205635161265517402718497880365818953332349450848595167110487000089452034374095551727589229513034657103253131044887245710375414737389051648879978470607674741621887086609326841283305376823102287159596280197575385942265427523557444680397738483545327564195497943621114231548559244763921024659824301593102208017852213179490870058803784289008014340737645622488977227513910508838410540019697358999259634368527211490119963107457727713312029392352638704333592413158987847958238674382888922975924368462702078220888162260892614739764709876097928333192637889630686280852751597641363051426704455864170541549746205939126643975590677630609741989748791770743077474725113664552973745967675851138440414894736690916421481694237640395703847202990436606582830770241885626949993207025431085953482043357421191175703062207533454623380918550314539387847044107149292298144396508714250001501107756470430233965401860835075817586652097280976300052193122691368316326072662149351479497882642782515841142553009849669907897843153669778007974077324455133797222423939491317195358236586629341527687637706632260234978781257560006092305423063732666535587387406992871541121919367463405647778861807937705004463700959597181418229020597418274377391200381440209726047439137876328234902700332649265859286491478066867846036807031007615627962336011292410705011307239409910759745089513263133632030394071701995016162329672576322927642942354538468171071652876632019963408375664832755212513121302471640084716559779955706664823893226261970984624038081533870917464739296312814006687048830388125781848930304141696167370625302539702097568423358361828123873369491181524204029872216424210003940689846462226149396085337775010179308848052561547607622414516559883876588941635385010372785826776168234665401386327387752721792377144572131170921685800552771672874207522864102230762671340713007060333356105427691213268302043490452696735468887064029980080560023629439720643720042052915557439357308798290804590886017433924361104669927793465081145359237001914947891246913685777010988406178185646141880387318385626975034116570980959265834730547192817603981104576959000897712927531046576560224079531367202338485239067352007186703253168304979132317503778562374913512922675045276424227442769528695378808685194692241260675047977311936962802386803810204863525226345920411547725853920012341666350539690195514419436534861555898210899603023243479007629628032561483246870841445060472829579107758383206801486820474314983197248752519017904414226089718732461803215785877921450885926278848133702958949457629014952512222400937681286584139619735761081540632333567322748692928664993745102987722287919108741560651250661594852949870523980808700485575734388878659709201645907651937594509132168064099922584916575266287544053812902301244305889218281319688882678566076254240845550664161711712711732466723445264512152115267430760375888829784474281037790403832197432776288083317679342016523620974536491287917146468658937957151415034541599953929008822483688745076336226413194336954844200743237746350349577760259687378997113867267535292420559308618302687848050032226577561004832739225257759282592892332063365912607521253806019332314007976126489128282022191964859993825330767239062441482612058813372451885422480031767476740110658541342829899002494069666064272930889766252723268707372518265204205432251158697714021016651964165360969713555525001367079511483677743383691917906325829881077834606397711710940002805086192667301258539588438189885999987309944114159232843740722723866206824754722212862647529951303808913721227120897637121683485208143560578454731795443452694460806948171610206262989149485895517234380365571084668370720136235377463666494951258370959377741981824730018876923354224871729787113614894819339105128319340299148110654339361174643218824163003639414191320970813951099626625700955130955580904518190204657949933372735781800421482871799722301064342535496885986519357041707399085589503425588608042460588077699625645855280567057197179961267528263528328160609360874384212632534125789981982118210183476851521374842605290750790000784375545998909391567188095777296225015088069889746127130121580914987788362597362448756191427350522621337714931130379928136304406217214605105416932539905204319341331693731408806642523421580851963394959182449091422558597664777293946948918684024369545600699882594648246055656409779929792659608690812440871746008479045330320502610392676391601193080811580132061211805000717589922980181411292115292429733741677629960237751234559354584383897242402089018595093951619308294320934860842585812332047483828283113583114607816403697360938235972282387234324622787072555403729092984423262420650890706111681261261052309281217338945344690416274668445686491907509502429872135091394865054175329918303949145646201823483270229074835138524863002136256620521655991983490085268864105223424592481384583855984550085917103031236957821739342554752111700923450695064770581400258142348532053279335587014806847239203918596239145392784496982992849999476744973321446322036896975288259993346502366312900662649632259652359780615856310313375713468865866820106224677918438365863174544278034790863834903138815984779045633485800701433081918456331898792952510154088047379199747805800990274647645513012278318348861550359905598288371169859877725989997074948952870320595249252551129506022976653450074183314886371073463686714263924613714418821279965982977418266787058207424531962852790487981413329691674505146962360494433552058722555036704172570434508101996434567364197808321467890439649796489825683663051018603873234203252866598771203697740114073842986552859652795222748914827765147520623821802883669933118884024590709018049606998118333534057727535191923412826278322992588458655639153901659816706105944622377978514102819989967426776416764599739332038623419702690747714249707812713667736376210045114006722145274894194296483596245413017388898825358780969555843751571702220663059914659832884377072554941639758696339533238394269216373454460210669018678165973602845092396087166534516908693049046844311338156767939271565595850240442909709806638598976097947691512354003451652441137534106901304382469497506958806139482063892682293798425018768134280889110347622208265904285798553607732179041154479742375546602833683364881513914387324567327711959586338383837064248539246203671948502905976157212230411885423574241436742665461313776615575418012087017909826013435738802948548715318684461824110921131202474821193903977830512385880633478127688664800695908487494020260854708880565340680374133459661840420330974744506808330424890379113022072766987901747716221613023283392717315962937023548093771638056071806639505048035505549463214849424277069644920382811725285241790597039918661981829768653777458196144283116293322159095989348316720492633501392333166476441545933255028533061193134279488883242265877289273138694587444516041469794897670324150704497693425629755639185989878580855940827470891990486082624913245130503840902769876164802514900887482479170018570081112571452776332359025454523765276854960195773172908398285986786259259736032314501955289130665081698929062304586220697539257483361489153114776002920169637868152682485056402033414697910387353571602691310887573190102465988660097825938230732222642605227093960077465195503521827190410456123861307555980987154324522392607828318852513806841057282127093181252552349784483261197944174926535599901683603474946660087864097452624014866396675892578489082600409406043097713712437779360855245791173617714184494620244104339436077102192176373630943701058002575169341949042931729125696484087274485633060308599389552577677879610494683178255353523272515983867001056470547958527248087665954073048634322909352821361949790781092554474402538919465892580965572100161335523068192914003839573510180967512721396853677345271895302051926006397753686697712589873061863375009735615730797791566465744594768484918574453848098509637289839384138305694307484415910132750859205300704745543675228508560523273300408644475349874765623102857790974104104435719296138578540867219569821956194448048696279924181620195719949965958272122640145404445101196809937511385729038012251262194652984390086522801336337880865149017783103953790705746878038432504009363462987261733908928462718880649994010141823905276700567935547829116734120936003326154264483590121761354165734256281722351130756781318253292315110586545274108777790513828945065997813002112521577037479412472346839022329974719779288520648101360055868311175566378647556947850117143220240203677827683459734512150657074430522691711093154471595374882431707805010238886243626670454403330609177256039519933896422382088276304259522253666192451775158277261163614163854090643533068949572201807258713390715341181471690328587342930165575583448696507905562704969414614926233543660559959566820571222983522519471224811342552173122969971001376575612249784796883212247738654481003652296207353427299925477720116770534825613504287101915713114962446104518030070037122428964909930251296012320776788774636457714695328669482327053221723784129618239800364749491778589427819600907609272265363022212072270394588290950811559204901741423675083398710934998407995649644184540050402140491102355496742930117327282279276332990344987141495352162500496089435186468392855140819471807189585771567872392081871013885921314389612714546458047571133415254980425977779852336161156088435745871563387121774401097710699058409395790644554193470566623512822999786613178052947505558577969347685564474587693369568672413568602136801207311697083159775931779032482016785078847349186395000196042997869724068915575414704251169003311935598879541575654097232650747278082630932639139154702163263576341995963803269034177511163481070986793163343484032982671863125882985379543793649410197204029185897531050396242023778558493592549900467923237726625330658169094713803756267606423651033858976318239745302953031410585285358701245494753231906635799483109117707071930972338227151879699355128310359017713652983779382779709793545996012032206072704410351877219566008693915259469343249752541698514659676116695562405517267349001529651359732477271588309755095248960267716154422381262921631659371410232407027801135320915505672120550790724293041442626909134141410684279658362500765282918716150033407657017211147620659321238249531222542297594989197550985717987781647109171673197156410966415589196699656281751723384375452954008891528505951340174806879909617582312418197576820243061479004316191629862502989830237258816933296742184239255233576690338895235942234351009386655383427415276848879175164937689856265495441845432903508369980922387529942027852686669618430009362955161473849772586188534968286267226049518929274313287092194352354569157351609141011952691042312464128598841039381826322620745493346248710617955323005641941039859636902191664065400570336792760745820800864397504113877149298590861934362556246526506688256185412514903070435151884220716745194525045012004567529894951685919273031551195403022100581663599369556469904204612900724538452157059943528076052783586150257515170926745449882643713790931054659186416834700845061355481634830163883996498582614418596789606182319544614991169089612386535756614903249260146206731630411831902490274191798205694619192421155270835899500595954977980480826283694428363073113781903056014218603605537423456475126342534925623964990649083491545725414860416471806454099957450853188395650085892288152110456761278109005149540615611299350436260865733848607548908833155133928346820786850711517881835364739075115054160578490197369725555465839304082168056439509930583842493442551806856860312427135395131641728960592814816828610679983389799214824898960400340948993201749027949413267657811502349990910000195367962929643475752806652884062497216616472925645820564710806044972069776407144722569628150142488308986238889474317563729965172866034246432529644634595565704083820488049787356722437836591164618954367728258657343215197278256747064164120952417975669722601337572237769283237789953776975541131769132297620306715901001086936358194959069337612544618648736087337713705963853189638552742721099319518391734758282214102492595460694870874775754599222036246455542881051921041279112705023867482642961534151215795594058821725604213751460082798410127486374338573913223027324543760007035057025500924637952281525912455205559344783153874588131179048018872041049260804436150597904987148410492107315634077583637321787613319752320469181989701474698965325150288354168499366341234531488062808353893801228523249070373033077811450721651164352562205592419244225560952246157087926632693640714026077211767674053951536316264334336230702860096752719904646247521787533898851430068917928298067799386605919379766058430559542902664476617593699642605380541176681857153077819500081851446481079632726335690695739804829315374034765240980010522374508624606620317872094322191978373322489475959347325757023810405423178070167688427404138406953087806292172682731020253050659593272620008575650933545449042482938102300472213062209146901912280660680603671672460001052650210778708802428376262230165134896763803176770756233102538491515534191635377911216834033044544238048913192901501545258841504426926562022269594384976673591358778471508294929476511195236396904319941506655271525940470763985538143207599125899451514860001835104980843305332817471741614590903746090737790244887758264430893238146811555936742811126511935702931670156100972363321675551775376162685179549695306032261041688869126074365419706242254845795931585524686693278752130346031930479404289391213339064417663172480016734092943854108111702870246948331521109441959779867714503919966934234328642591347504372753702484096236679613484968998189177023572378193631373969344236167423177620771056062348347852868242171111770642748195817355546907028731659433810203399490433963733714181023253812205794283078271310294036868747975597291298927122545673421342397481976941540646394461377723922923870863710617575312990151102564792384894879040897342494966390479303209350841400649328944141631952784743835395530296043706710520450155024624075285624508561618788926804187023085011635036952782319514837638764972089794693222450714973802389452935357165958344355735274345604224620387366746251834777811092340195095519191578655464323797237503775999909835112045674514123377603349460555659508834269273320165762417080908125922696253840481899928049594729321120096718680191458796985739168410771727164197450089520688929279926398980069018146386686287085615046292836759809507328927352608539021129203651332836545322084296171475241553470880820028669098165623643279375042464079461096025087602539324400034101570571421944609876136784668952108101650898406156228567675010820738754691250720120343803374615176048076176145623655703096169686511667651864727503360480440677407430996927741175163484979099604233713262751064698724814883141442043833636634945547959308783705382917958793128321780369505622321274659700234059676050781668771775806405993639106322942043566336205410172820179382596195330730065041770170488267010162943642565220667324219554409524618165740694838895839950464298462802274634045319480299990517710606594470208291713062735653746499291165650710349881537344196389599057787300422162749116464589107497250837527588838411523183962760351198604830692922452087041681171805004727163918060935427360882972902444022162691036632990066069499574644815709009661232884030101812504841567863812273909617832757453890414591556117490045003566585747800212385803226220527470596121869993027588923359575658867689214500954440437300934502584843732320287595155698983609820408382007455365872852237178713017426843180040222600528474362687567367902622976520103521466190322529629413162530057902032715319243868737454000430122691007026433186867464883466167787153675179953237756394033142031327057355191876674913209567841729543573393603870125317452453853839080679237439845002535390862600945839481365371904427398626464164245230414313850720280970561792539555579170255538404204620888982966257639063498116572234865621927247839494585000115795181878783450681614340407463619587468100980363490155812347375835357327959085655975683639934972096568307008502502690832274882609371727828271818456734374776208425336080105826037722006725866482731841860963934144494142799255268304344757673562177107683185438025388234985972980468982579730998762579237720102480071360125741921346996548400361617985564546388819771556607864385295725433321340649648273684867871572769554194840234166056933269674299476134182542091051795522370872822957049490158260488968325898457972258920104623717995762755018836155750205401345658691278841551527158505665403233853788773782693745687085884567260319855787593497124087634247102919491571988553764525312596405882089996960875393850324932340315507389468949574171977252159744957739368894508643193472336851985409811562548877433636303548477604870016760774517416359322447906103371975037247058882579546061048225815374394484981281253075344885005814709904562323981176824266868296355180138743881614592094047097053418054026161253958941892313435686386052945492572191514667539549179498564726360433327117835019170669178299918986797927796428181006429133890246747550467396123286208081667680293293853150921895978606631968880799574941879879000938936558491059089712264359001671388621356624770314429514064136475232340696932872529135611491503131110808880808512045436713132941059093844663469152617399305113167977653169838275498314622065526533749854296336907001205631442769661798483648534814403159322551610955303587121325999341973376326426263254209608937907416392151667572417272263391578897423476131336168302186528445042946104862921784644159147248605890124369656968851661095715916302754621322801423852050331890327345002879611797889584637445507051374031760428859246298743674280960099621468588140848457648390267339925801652935491214239381358941140268706505593300953979644636339801362853975410071470830644214633508651817959462480469774859159710406775274865807933963544213282736802957046470881138809176306766524221303295703680700708926410693717663240204769749125841979744431348142696361605965625973467537865182110114033047221316220418134847517752745087038086503509845182366435784586905233819718237969850229476563734162691032354556647531719329643589918669281921051849496489916711898889852203311227607050790357209359527718487563379657090972944802463872301813545349476639320563815735136858938709474343794276711489034788441950502989750478856633352615345738466959890832834702234679071159989029231240866937477644812851240773072706096795397763733425703909802433941999166823760238257991901937478336876132809790596889316386653115851568017111713446805007579464857447662488452051886709692144994452945545848213506436466407266887104543801820245151284736779409521814760129931683973949487237605998419743967805319067854650440782069323970983557010094864738464077605422294932950206564028009990797333991028415876403452549562753418284781934227376803936963734737741082022554131155162393958121217870910737559955257982714469805786367452666189127849973660945445390674864292309865440480935960739636587453259133159617116811361952333278390677946022862322599039834951749728558005133138499089248739821947048274056714781356771548632490360112656392987442899651749186164724938253967645118324245522784953888184284250885153009898905087791104343020154505987115834034054247084424012229920930657261570127678631158855490298965335117812176293624358166597071340918326565192570699089258457896743048996378726569789282472963620538618027618726185895615340048875639164028187363372006709816420274185031074396450524566753855652575874558098630286226078759314792264928886924786851984492879397809109204474035604995333498254648523998956050648520841372688494640392549212992047544322575696662184386353160880100746948476747995290798943337349255036633928306164373272416795929119509074472807453590663517619447696098742080787121370193352534659666690185671874934623619874962216779783400526889035613516940283827583594205102974786066722725648121857011026238957459707654492244132920253216810167074575142776606437607739985032316818284504011600403093390657570159501815449494546464061788474812122514241466363256572286225085589298226808282299433116957943630492718780590814493297215557082369656991435777718479313579281527965787865486184075991770229477034259449709614894985377466818287860842436605196246048551794316426761154890720942918540125678612584177746587518686673636038108227412652665572639038550656792853257611680913305523278392121306655648488015392492236677026515016154521290666865149437869236516726402327926954986460491119744904590619915503993645352084802728030665685711958187049846023816619254115878186262631642087002043810701322982909200320751567421413834825339122908625762077934631055565438806047003001424869232388994226401180739501584161225434803137498938275159722683824234042813208181902705008102886214060137501819073703398013060261224240377060499650749549416168384983942804351869209139708489251616157843669276997303020160291292617278318221281041208203151981033010370609090316656392296875102367001968677469788346142166587423053972134832520916917410999202357102613811686545935147064429519757366998552393884422260286698130443652548644455788276043948275198009466978822492541631436594348671718574049861132199541303650652782157456987300379948677812725379698138549529698398088741027892539108240453551500383347805669826307055049845381400442229151970646912358362975825470021317483081327723108186727357718598614342263063586647925157997714865274754816095746954976413065134704201455363781378647661336560485146072464654700719855676307733222176463664635868839747891796308372099881740867907578694795423175207964571817209036666671060633829064616855641553728154886670925831416645275999269568714290541775285433919388511007855848596674780336969622923172258052688158113117997376326488562997169233277862629987861323466842664623142676131003114917572296003373889652965773926562412249442203504990169582120693945740944406179849149688010830138541332638482733918916457841286036361385323711277420732873509363499633919032292854924641839031238937403340789285548494787162315613489835685697531981444012701064873923568072172162847558944123596260119756200680389763754263278734529483839275291854639453148486242317054124982636345027534529584498388574574337766320691575336227709269816338789000249202620721585716206131071208913804132406526853431974093339141775658167925979581338505538464799741534657438837162723111790490641547939888283152356724207087488210711786371220320476576689408854568191588601866865062147462930076099158719612338073183601206383454341907115602209522603986922460368653291246436908209909582400811520569065716347265162942018411929628084952991070446223455437710112409037450039415217934359471254727929599293544085766864562025368577689694290958454375435589274963767721675643990704980075775200437968514287425591719277273173028374304212412631693756881567964752794966364653347678102633113659092759531328593338292540143495735149525187300029854595491507394499216014489793526246567858716062098025901710808647027570267087199525790476936445617253292217500491733428769797622443305707337655713410003642918047169161572992310061215832604056250558357680497899608127570025633150031106204135828151159453705198426015286434329110858879291686976849353966856175626508775137643708232135373075016074104281749176765119237996062983979298955658444472515125836583809366311719696280050917786417315931060038497880145733955650987948223429027681873968496566650279858782311508477308164418233888146307097569845480281038769851911387020807375774152187702726879787939864940933064691770825320181699548152709252451151439059060982836558330802615875670683827488978536203764566651319829558805460417534475165263551516564029234944726467821462842133658097371459719328394939725377134435251978516971988804790612710575602473903217581702368291217828212958950102494387107758563387108929933908129075447985887629584712482717094760126924411112298527692273472535892489575533006938534170826095339276147396259216833725776573721578894982692698300444183674084199242418909326883705640903470368443247860247866712527900008258716156389412708799487484328423287720864530980069264036899244708518423649894472183277859291857087131078201951384895429720733602368465371182441766597514435564240532456452310390814100730930997793713522171426812528059380691340979927557095960681231855301742344008831410679000261482465037552758604779765380022978316122987116713318737307344230111390225807629477331638428283888026273514113049034416263287619791081748961644920721288093835864423669518305619838007534991022147288699227575816666962882547870232352276525907047353933417068670857151677876231709874909607093602299624875422801816594022848140553045695745136351108062819616105998817150724692592273600625274362474156618103503510287353469756830385022150998703993094824992270579543790382950503009714727230816566918598176544105349508814284381621335671696881851252359026209212876972910079072728579141208275960663326821911542920740414660031063292378808295140395438448803350039946496788154657757531205134166103682205678469083941557201632482758854598356098171123259828912672811406815278594712529568094084675932091120576574575076271945252125845804994488678997678728580546895798195552134046707869280188047344670095110840783220535863142565145855904089889286359506730109757345874170081992849545589440257480848770163736324388381310905055617072596393592814610222660911843144576595955517705624560060439241139190009333497551519465670771979826957370876903507598295650152108298237318274608808117838169998733608260579750093208645851489346808219293665101722562971990865824663980704355524788986590296892303535125759017847245141971803741585465945840703414228693932530796750556430768786699685758161272525915506831841893586511556867084374558450680796917199224440792569268344852142453548163441887945035071009545143721431443067356282186117884295118222334117611902574913529805065829291706661929103036973969909305076679181713432134406672410538841015859214203990198156631394924403149831621860371992895477133605297109224450667521194326804218493381526684786377212195814082482551154760723521678710811389251203433383927856347615871655849927476858273245867958637236357515989611088101709082909926913940643801556694815693442036088818115010692707733434782374663714883098779264802106384694171894756869017723210689790708251980223719644893850138501817733836332009648796192581128360615289676266188336653015480922692236249695650343271714854938011159062533645396220646790174017615937248286878997579694899870620069487352004775183479603105928012035863947428425230926802553784855621389353805266094374744211723643635504026809461190855019215435246357392023597428795046348390669336621086041314670216604437037683470058670250654804529314069584575993906098694343060988613865372108235045792754057973636401630866154396481504390948226980780851854753746802419347971144047433873681379343734527525637451808500255203037585027458931408892568610730368636314109470771859731423327785113370334629719284961880787085708226168751877817415123931910207211560030862141760861052515630752932335859444172206070054623374153550364336057945819293871222298126803200811747186092610540538183687823997253201818366896081675914703038105426273836637955278825469953920824109795092820263362883893059308479754706735406106546108987409668276104499108032798297213742092033796875754201948912433477898178631821172445557358723728680988371516850196091617499373676625636965892448770038795563583905986365573371812989825625599158308184445275089544621613318957044673342789706490948497963194662925789053151487117367933529153312756234856121617445245763204032775081036588818554942105517809671569836972995291603243208625302971674681689942704504379279899011422674120415716800864124957573101950440163409839301480275696124187601997985768375818599507299090074310363794813112894002442397746025734123439234822349282471802674126096157968952341004866973954635529220799618693667997531107110877645299776636564479400432200393109011703657978137131347182531547425753038526909909290738145632135668257461765626822449117456459509267655896157431273156131197880978777415986751687217693262334720977782087589805099292503094697371597096126713161688595018906538018922062986841349419174070098684536936722544143448127902633606511850201114151495223897160698054315626525790921136252338258301422073930112707629341014244124320639495009773023165039343448179055205646602932634170529143985828298130554849073656791914104999166515406527454555956719506646602053523023746037603395973106642540107233696571625253394521322552912021671244706865076850144049317980701394701560087843207419688110988797230039519785902029586733653164265447200376898075269556281279688086818446829557244058153075324702375931858569153570042650297991786063264664681182407246938594688124840196538093823705801954875799951297372034806208215866803322868440695227342985580748755095385092691665143770011277599982208332001608661029907733518856030084250881899512578024643342742163949921610180944239475140387271132202325925868812844577648254129315385130889783798143241498756007549723778162949922942259615779621305679580679218914713186147029579560846854051143829073979586894424107588326924457794524728829457683113258271768674635556565717625254959319134415608299569852141664454006802815403831199320291047108170562226239843421980468869384873788040369339777739860044709028614237674716751209499963312203599913675044763774875906883839045607566678832529522731911582510758168220386714861967718869139714134299495954470680930920839303126147544037790039743665228600516926574682615443083329626425663479121495827243470701122762994807812508582132450573631795926504144983613402819881208695423336020130762996060866816792554128849994777219980725207269341628804193688751943642682036761067905055898982456420325856470322124723931526234867845328085789971809969486207333381669200263591832052102463409949054242519860666959766574223585630353142284958291528969155377181820925685440254775005465425497315642822836330394868358337494899175174463013799851041653132115107642067789049407591880163515231649751195239741576500527655588659092285935947910495326938290785768926536491679856619961638704401453226167827923344299474637368014272622274221833380475851426054692636447669508561768995337497927239558027673029729999634199653117146229770693922221303981260650022169579799820458546764587457040686897584231308593984116298347849030331709158116846512086659914682371582026382298842933383363289692371316741442498308924167118954306126170822315784246293891611679564539089724052460157176803744422337973935445896369646885816027099669369572882869019597334531845017353704114451088251253270006080184390611649477680161548790371459313453660695542406474151975208663396986449202754835607836115214706554604973334142990148984847703460312329071269751738084727190365751924754186134039067494531138709669069388222913325143648116515333270699558369740462724031326650758802414601189897241293561748784702050707690915619837968458926291706223548225301295409625393047610333990703950745768102989992818392662247673722888328794874308623946288568687975631612495374913938335682993756648071728065421784468334690807795305718479095215659019255974526574960195956773921642587463277334155529001870504645100605198024662666368489871601828605480804032518339178211668427405453083034985206913821790396738571151283530975729975112804881420689304721114199246510431281756708092604879980709803353639847413177014338882736710765259573523354451174363158318249862516414435042904780397678210520372160417589409092076099656676731855436857994590974799551857457293009996037295001244006984365129872693362738235977474504522601181512525693633060204633464264672445942641509963558364700586274394783092506955885678137293914226745176278814624173856428709218872962660210582090320994619119634976406602430161459170377839833874743833719695239123543815178902008039248598694393805182733822366945460746750051843377122223172992321629850413769776177538906629776608649776524035819521828449608856942054303675242543463820375222969966183321576006970315862320710997433806382668376955272073755925043743081857084379824782245105878772432629943227506311517750799562125068282329627601870427675698960213992683555990190053042753716240047322612942138196180098173096229616070741284247510393311791905756270133241317524299513674616424874827339490068467785352994582877591203120149010547031611897725155165930433755493911173491676209846486582224044997784385826756269045020069278298008970329891691541234272210036145661026555228621848718229744926696926905156657499422377056219134963914609150156339318416275305315885985016950026011544400373878645372678468986067717064638537507288975843227409554260484324956757621557026432224361324754517014257506975361684452993639211363421173741260852502644035335258908031843988846931881529048560326390183857985371960264827053898378764781360368186149947748846974603736038202775815634384729455491539879207904234431106419641917809373326535483815145922022398810493281663230684629241032112663435594081069983528438391990321976565436079736287996428662460615614517017727813082899767062877934702725367479423200291488583938854888376519015094134016144882902173997602900736770878711777056474729570937533720914171704271216146403430509229862281585088367979616916633392361123563460478155425489290334267682347761255629980654249027173564766260724342990589877292319141421937023817182952789829441862095598579575604978229632037544897259875469776170374218196304272587267386829941413315183959222199281037650017485009502589910728311739476512227023011977488996071966145125947680511475478722592865532072890010923222210754004892315000467907351989144713226372020411753269873665854638104023956481405615137739403039921314388453368742821647252489963874344064056980209525136959750667362555816553025402227576934186610739583868490808948476001984051487934139654654390247663845459661766399388693460941826838185933422817526374607895308228714295984384382246833215437574939158758811449204815148128937215584368061249305455364121481556240351330661393648159740971093216426023446913832653934773872875551435547458740819661602530794927554286837645961985548866961168420885282051305800274514921640549182786334411083586447833455910902705243441901101757687156759400253185786017906273606030291989635567963520265996570616672409304142285199069577868755425205150595025188356819219990493263147013149633262525143007552894578599287508855493271330553318293385599210893281807866725804669442450090432318802285553236797906382783239869455851484191680908579978005236439135585411670027360934284980602758995651055967764118281908718523091139777441716074062132032720664565582298344958929243322453031071245196064399715056693184479699679496078319788567577183702670224543253309370207749820807807292444147666290659159593643018784745065145461325913547279248333395147202883473837493197279352578913809993641740000330259932630559581900147596920849512893852800987241185245554609146599415256177483940360822948036495430782169104845057543039962495453057879828073015446473414617854792737922496650874967002893554850511658119745297672532825629879883981960502550441348512103407405452867764156331124501297808086285441325108631481150974296901711049173162766630488470752437301192451919285142139658109076235120509550665721359275010714937783451528700242716805651485636982009232201487509913021830844824885197689535421824905991186927217898654368058307485464736005144872785537477776987722807112367939613401129588964170728179289254321567469566852493335959689509804981623143827852590770198557574729964416470045053570846741631803467818585595801327240634945774594641754667348196502758224516152650358603791015004574121173772796994788007638116168116855570254878935137433668719892181073482777278273601980456157225636381226471162405935938843491896375955202018385653312686605164407047373661509938042624176218414719971351017644844879683743972738902018574770505560308659952057411642277621708632014556327049694836569017396698182919611219372231379465327762187463850358967286054783461692334376900384020435483336115245348515163748017359148541646747373077451413021212360383154202146679371788293584519403805453368249956662615684263636637089966136118576917078858880789714642601111298107127832871908777351887448907942624158409549667544219906944776480200633109269237221645521769653771485862989790236939219067568000898125109154007298108335462106317058939251124083548511522788342224480961546879776675206799642119978965961222540033092585224250844407077485726050502651706000183155946625358737335515718711513891389371612536045270132014038727112568678604596278483694097311669614165221629200531740742088189198828257802333930971905226931451295447759740488622498319673734230652401646821912511666947040236781461780132001215541468158809523361887591481299785292342606715717112262280739524623225570317893465151026342469032286553748883476991167461665718346315137181975634471220964497471509459175667029873570248301582360563899378724741691084539587714389394484441395302027573999765441576133211580651760078828826488685397324960865453571852806540710043530384598744088273498890335798900934251733332304886418779726699062495754460187885488517159587961526621125869276678682070710220428740322191024959412661058728866908251412086807887169448189942444611405682978989656419393573257752595968469854356789868580465891296286669106646126464171530227753256203749135797467479252790321437285417369329237284861783876803059653686957288924450442621358318870196527866999671380167046750332440824412024653881676253563088663524259810116442034554304306823654613831532818248626705299094848865458499177081264731901224390333942452242560218555977010314613396529197108798606555130867127696314058576366731687790536790277693455584579761775626476787103958586405969650830533327950725421291467593843370709912807562607419625858737470294160720697418918731831780420344243292326536314493795290721855638085521646057347568892487238470347090284203235879634444624518850905991004317519779217917720923112463935450209426453282664411508698291861073334612479297391372519619554632342593527174664998130099270142135897663298721229861710594742556178721547090715680973044701106406141731258137857780028434442591684019625287719477523177683358417033476421293281847498910849065568455709064680460616053145325097117964635981821345880916252855182821702036020646994413915092961565590438630368370037308287556226227766482436012154424863987220069100917522004877267022642300497768022335696781033722549357505094491540030185199699418346735587700854341543369520368940861317467855044765792876962294513219720551277631566104471994329341643353259555453541812558337572241969525115833776823204795048128228775871310000937759726653634903903160571015591401710486258155196362408324813589810587521621912632878971028336586307396105607307464025467902926190499140374723520438560799055937189601043750117671482310404247440216745477616305452688381608616616915030436052429843070816191556509996188398424912106569473825948845322090722745201825359211033833759764854758844390918190958003832298098189896199053789167105671145979822220497200532028324108619674356375333580238000600337496035032417341287265595814441001774225265582410215838569651766385857119288985125632673671762359111715820037334179578979749416721244986606921426233769153105950766172525388810759120839530535184407505436551086470267409751699414571962658318575537000978243533171518918269725865146900721826670223990858611481184653014446305406344782406400196827050949078652393582850777405009195972896975041266999367891881904639309031424415571772221901619078221670316175364393061239464932400434477975213202656736419861295460802831338289491539408460736122616727412161017883701814206579971070475041705047703629842450928257056714133988734809374956341505598235915567361867331657461142919718869857664613333758958876548949067315558761203297398599824954359454560683700744703522962516603270118388292463505789424153861419242728505165564506193856964313902163873432866895969440992400563727127860604518980778126931993905347610593127725183953355651208531799359777595600102937963589967451867246711002127685435142836345383574378659002276570113047896870531593978979646862571776751718788166877835590004774647424789578098012724696840504490696961198673455249341411584093574756095341483896470244350537416072681696990293956046341848506261854250938710257698845246899868108185662673964508021507559566890019717894386128182192055065333365288006865075591901371415271701849580690246970877550302949459438067684660833445913662921922146543402844053668368633079039977319423227451237506969797919511906469464932993080327353183933167446049811079567115338623677201596432238383287494543482511516424453097381215872512588120951088534487549057637401956960344925855291649264522501051899201332742495175006373036113939016678531462288821676815165303423841269957307803460640597502518204828956091964612684077441528201697160627646409909180032903266599055535980703080880318243275787517026294069350115621086671017879430892472420547227105931099914072058373171761637174178105428131122282730825339328803309626984833953297574778621493592567760524968225558750218491100925670595424830034024582328884562147475618720676874524190342006869519699482590520746380389780612365641404671870857740631473543589398070420889881920459086365227440699490903516901370105024196464851369803915803264981632607486860214397481809616286548944122512555302156015449283455102872373709839109978683043308589087003554802098428568137696389826309105209773862659991948194816807610934105533117687512146977548455220441798605238931781552727997209396623512912260555162175341763654172870735094603220974721124718860180476736409440748153090490901339035150631004912851600731287556532942710948607158130270128494271435655013488507444234536210657002981347947777506548817798887729636403838333716777808935655013747213803524731188985090819308928813459693529003472385764048212039018064772423998413812653553353736356983369292193532705209872226602829557886440077020763864535800859048112636029696938448668287743115766967837911070742579576418878832903921943811793421647158527194869210712897770815558765415588737918275649142117373469741712473912416000302797531139368714591421523707114767662621578202381310679485598754059076528125802177143919994488300211770228838449118831678026703739637753986552891015175192987823234177583798779932646958327982248219665769785370932321005626327419163947010460283929325169993976299467779717467713823148994124549181283485284798068493170198473708213005821626173900694909966325271449517123137575208917601667551290545919206153221089438308457361172043695699757626398155972975508474787389545892262633256229179279778843263525365598061318834347671607462382807378619204975484006055830602636546524879103701760868281604652348228796158001894468779230476911419580428727563767854203726202759974543606163069596431851946015114738344869513962497203978512662298722729257840930852737727061454508434494148966877773901956424236426146574955297871706286490471307353145297154306422336045749318858520183762596500319584623776560917358579559892514891484347719490352422094384851834990667255004080715963100369798505788635359417828347068645525839009041984152034918351541910175927603411469169509830040725784502327896877423113859289722590822417072532965519701562970110599117213229170861732264303489754608131068956651967996188181582981628652775592849156410270923994415778808482404877985981090178692824685575047811992888818153359969974459026816413160309023411819184802775936320995982818315287804664454816148370116306696168964739620238727037512854759225447384730947031912647268390464100663251907673010303137091705796584740538647747946288080570803093295375778482005460216412752154817675463529714289093269260398545171294180741413481035873426061667265837538857961266235371646165555789187759539085660546713031438129440802708080527460642249009655646676546304285715912859872486259989157239033430950716308439899660254355216299931526256649676574304542476101849498098472699614168513624462484406952644136445150953447771901010173021799185609316993293235521641104671769752801544445940309355636024371460760366534182583950158928606556406606702047084706564852055150852927981108905397333384687020508925237435695035453717282765227919871940121648957821676931640510803990243391188155867716459289870240254212805166908456625396888999340873238638621631219227793596335150074969015140057418455989592701769173653280778552623433401176554733641546649135070408573892138697559640264304843260883275875250539307194912284422887161892576669931640093612556463522945232202488625239394358407441783936281284763371162945451453072281390137177787169201251178136833047411574708974540860351238257853857846811940588906159035074991185458895269157115649575061969968283873354573524391284533061918004078731935484385125256554295452726521877444268897068307105924510383592892384889149529775901088985272974965689530915162690271502588153770616532233650821933285623972199845055454628546692283417865877740912163189912931937934057782303896647036441460576831364067652840935199464268466536330270966333326404419182794293855076050602861260816394933658725678326962794775850884466917386992893917874924499233061227249863786421122999247593137428315401556232211691364484687188611321540226268993026028372279860467632330548872598633680582361299561786279419840143293751859415434664240579594800880272609898174051342335759293085282084033546741306694753938229507920569825849611408509252114624423660009949714787255319768595228837898373850869554204298259966175470719014522004729259149227936737456150454062425812334261870963045603757145672171191581150861211125599657117020441250981640002340641827324565604271311819072993604296618661801896301990854823180900676083714903387887856353464272462670092036274707085503533118886931419136708475903531120206508868409994764829118894698730222871204815310674972172801895029912399345863483777880509684049007895385508968322698113526836467520328280362885723580344516272874253206227533602247019944512333450553117809195549148325210632460806749773803351143631819027552797085824381529073813610041134714247963647309889369734594720709803187084137933297295073543023751289366154661505467093947563326452925431430730644377241376171299601829199044891939264073185900017471266613333380088700074640645557518788084258235548343060310407548820639792882663715184804623487502381858119087680497517296648210028902813476220943907287526404985016204808461094426353803796850172600988714134542113985876218828317029622956281736365451150567063899944265164747315936831158447841717090029544333721595154275133598478979575152396542093236477874767670038816593761470497516462017055144905096525456949579511855708294958037341898586969240307583134265495418888111331829278421252347484604726565577794376276539570498496278241607632611485907318797696345451776650633481934599031469036613676836261930885678466540254075186991996009050779393587825648028365052675971656295313006154787396087815210776687308535912630989158273234166421630505915906819366588291287689446806337859833347358442546116959275928959695045221510084420587138567713970409185007315132672484242726790429440362498080628177308905977885058806215996996630348870973241425360784904198591803473471961831248048152020799430824458986149657481618776511128983594869393705897501175633233499613569825244600351472040819316614534002926236253882502748180475228988526175359228295035782980589479941044654351288564867274757298835894182904653430934756058493233772424724147992726757991200726288294485352820221007540594596351853055916085502536277473572307853472178145151372308971926570664028537448912738226346804869925757299852311438882422494593768264208289463875925873206362234163292141448665095375951071088601359691991861619677964084894576906183771099643747139043776163319228499049264875463790130357926764591103354919598481403443483693077486410166134160911738342612704038169983829238271929334048144547909596485528174230969211171674648691814102639533258284928766719388375196814726029553245514468475810510737992546145703738922075120255401842580699753955034761582016943946359049595859008366890298873995717256880404581098467143489273397785629313523267190511866185504844145123834573277867090198525173620090007069366507036118504324899047551816048417599317266246893378102293786690939657221217591981205815880507770304466798393047616746329435781795759979199924194701948278347956050128175627753399042027387821439769033190196860708594805687725000918485639980986051026959102456463852617225043658565390596128236370884610409166879300504769453112152943299265353260564102631629036686667980041511445429150841285200186468579430237671060266550422374308919054738476614894756848459215523895731629777807940995801356092257881107528218107637244821703370374220642910763059884009352942985670893580043619164602476835078179310627317259555210221786048997940627172730505001020874221124031266790951184864529352060907280549741522614002230815303461429394339821358798978240324683052259530973682071741136408312671644500355419016989615227619543186549406366997468677743274536560061673401951002186366820382610102156073602238882601306242245689077229967231491897489929193589940641481677201233659963310109706103943372263766972029633011406053406278500192387807139918732775270025137465191452172258363199128630605235756629552203000963265012196936317102880111760655154856145538394853552653702064915918044243964535626093694324115080110214969278464688748476942202818598266190823551139919948917821124782775568648689375298658937827942329739369907533564369638596235746289263772358828743575625488757287560967816146044258573654470368737286115468246018734535541108763974023945902442475355564700479286302157632596577684410189623347551388095208279399013407867928969764701414738720630429592358406282861290498270313139426268470605282312092380637030873958206103698058087185162692794382161501696158825420478714270173733276654656578646402120281819271587725473477242106906428277187359566550987750647900018693121547148872108998148352971960931612802862548152393047612680459469113262209098289249986167222375309344433540701088955537767313180950075801672782797645576389889150789806404685808739532526942082281130692384914780026376228059072054112249325636042503398323805958571487700326912769511866773917407668284622798615115827001035926716821218772834640843505971448559750971213049177589110594557654234683484549694863613697218053711115442212775174855255564446050981169040254714255682227969475136277172485795689494298004851389845685916549918627433563913713651984598343708690505202039751399948303585238420144483487261343293836200183659477771274545020322505862728985511624518336965977546966592015228613395031288997182642817363226879652506799849268520698152108601316886777906544598118028096141029741420498372153463854397486349500851419143413495858185627962211799083579442515444812733776601367921529471455540749488936814391406400258628590652268589478314284349705884357039515193001727488848885824833877719583426042237562949790222914597837915955133214648629902844764264591759943773558529287494455579324531337268733647288547403506070312359210723706069000598706536450247356387729233131949159458837960589032703407854999156485927607309213128954959396924270042242788788809468912778817670053114649286137996014228821973845059175546616840969863783999853475664376795629465190240591429693449215931497121403953814986915180972695938703297178415317078400113516976980816277999490860367214611724531705349578999458576261162769756470440158209309520952181436493082265504221294116160144192778292525821694654073096064550811443829849280652057256693565843027207859705744207312344739676826383472045603408389398456230792590026356882980890427082604749193430679662034116366370616082140104977611816619904888783858499181401429967788374571007732834686535348803783328964010031725843921199847801911184285714700658224586538753220158150262529196736543356395885296431593643412921997064729493044126417211849858837437039653982401868773287590816894899820329937264416085256749813035984363055427771969217534294758145995683038556976329391875650981842093465517048687780782882752619976218492701225389205451361341031245006394138684368626125304141445219332476260951935495305426051510034256028535142792352193963235655520079929227268848310040156182511448063894175988747580121249736296896811455793271316658735724096071007877246713095379445145223681571219360333183156915492985268879657176569151092440888200113476599000556211886246801314570619483734979076079273770977519678079908069197527870330508160303842455102072074277409176814084849711524626308987812103742995010196363288705612131557116055224072608514651439397234348463172534582001819461611917128021870638990489016124708387578192781121343042110637709333554122825351627891827628984542759486436397758680086491574377297448842240973709952267626250373099813567252480219637653347657761616175312324063040229502186750494544707775198061261020617085154372580957368308087548959185709274881525750322031201554643692358703477082355003576891206746948650537666720139328660174595004227642777999429000058050570469249918858059905325880371039437818545244622784228946317202262417194578621588148744685527968782867685566495158763892961171724497702005028528664439137648576609749934456220824769849947552533584396082118754585460166464464908323947078957321393533909929470687826117923072919358325533789371334603480365607446218915854953193266656451227613089605821981812273796898071267918929625513741294725271416406183836565258218352706957092759137048017486972666364544298496403319216623267487351700203610874164533045166498152743878851158227049669617840604836012902709228305549939844239328725264854815602318732522103754987395146444641521756214807370236767496295748396052046765322084011985388015199653702319322811802046735427402377756779525116239843940819539276591332643666970291902086575831463715281503305467583319621169884746042373815228249282434575327307962625093623105426625671281730727861473448674801175343189025943420721219933036916396011020260409454423985936620131329078823769253853329725509212123780209304802654854152491188669597824240702699917128768613345097145266055558635544894344703681671767866709830289189290692789881237394682507002446980595665109723922188187839723113098094539713934080516472022704327218782877416050613566037573230024722930133586486950244134690839954008540065749262850042513896987168469560372395582038741502557844163518369006403608226192505788353098946944743967450230111169478643625529320891915461888053874619748865990188175754226060940653601320354577039832158654453651907871156562842749131541369790444178130493347280230873490158064412364516792602612018536527368288003744713017591192881511606019208078270136926406602104242847434803394525949337402601824652943034522069751302727381972034476250641559714660823144975937024131662823816429329320881694013414864156921055251738663803365196802675193163636157200480029091868230270045426973702690492216036827491262797049591999766201391927027684027992303047314284747779659901033889255473034818454974741190653700587072857113170244775392853387320990332437945626433339350329516933759202267144039917936177231794124232977656158139510925181046762461563284480232167779296152730680920521286840322642678796393966685023244449680176620913954285049687111763606072688037977804131814672201176283537283876851795947696865223295788236988057736170026702910735127702876381822847538843268605387739523626104915110702505067629020293609894503193829257934803230706376688394622115082992973792078489670807837204170858455139790582532836247596472948530965565536431730247370758244505815748772453943921749095911465035829644150774572100953297481079981012812989026860324522782078822544016443563257181410686605804592063785226083623110787711565208562813099396355902277563382920071164885567385310258695980887625455397665574642479455107341102395037473710952667796489921170768803478058236747574220742071228962115384878531038474421402319855498406275764686716861372518911548451334472440263871578473029916448988146183868076754971230999202188548166865731005446970542355623247803459563932086133983837176771768601214955301938921863473799377133690032342841321131994777768594441410685803358013780533804836450569873052215703637209742481161074745937913644221528277694648564676057299106031834825899515554130919966631546219716958819325922004304203497194524115210300632254835341465399012243568282490940553038327807975507206579470365917334472496499096846680359833867549633720175925397495855127974606368485433779676060929629370960633444011953506846779633904446726055056964650716654752464329583264019625275842547219231525711432029509640917704243269568988251370520088394759296821901098038301634927753033655655055520870613003402045204805705425972548953443960333017745038027916505614609688158220523371846890609256435404442593797288677493663196800212332931008023343814400187877415619876002014536686663498765079183252106838811289274786204573872721260409169079476105016698294083344372501856971332389570766388609211043894125292456773000243030218775502330703018799710239113720505135442356233672711395303537778583461292890891107284903421454571268816049326238099616047050389262907800502729250490852452962331273218698400991305538807562896513068883391170208773189281299495004262995805999104662786103388025213506442802223830115308506220285586065770118312711619689780590728524421769809489958730086047238699993093468649621368788546500834140571607723875260498810717069538474068385675412353856328664001549037463137566848414931091547140511513661483749618366998189412343495198607163488447644272451053785637893147374452977738863977480473364769517346446861412643830290987055546495067975145026540108245034592942329753756650879860868696553282766824215926580893238515353974875810482378469128292264853665283949530206409681526124513139243555063186683012389788186848695920435685208180816172111032341262439566128830193924610820356896538516652403428790799456618511044458066690795376460775217564702209493114621702360223792410259093825994840427660692710066598481261956343659805941972691345306973417954737030965718772818408131924618080346908119415328231954129236819431877652723721958028352142447633594615643634193673475888331806331578942086817572883579095598920213942076582112077338175936366565685806697069839061210219129597690272934978723837495126132259798861202409692085106260277175934452604076857192067984684931681922061007065438877733295011404459140434631397412918191218390909590079508871057073496454937305775713202375744094205629190956074055392370641819813893914071389705683387247724023955849189763710433983509924766502448167016782480505457671486262793738932975770022727152276158716104646927460504450422654792029963037187710511597682495257482917163151226231448187877255301024076577731396993555289470898400177026375430347999978831112909770364354162336084967691286044335631849221300552585955454775490715775698549193593692204110193578411253123842044278711299228050859109010004537765685288318803264610945121592236034237372062035464063694279787912070354461960785667296718808115820753586497977913320420502200163188407787637576047001491066938447623539344232842759644927659905380909704019416353309396830559138517258251722746593958771221784376045159801604726292235214861884032088200927640652799063980475495538453182539620138904989348402075058626426636090825359386995932730526213238740113798310240382119227630076469935575628487455653477064920670558220273990253443875557477542891275884651823168602749748785943991854394936378577402607032848324355768078808469574915704220187122323048901514963673865724690863307799005080504320307073719105215942733031228403645743377164640668732364764629364632772028407769646498869755964209882844868242818240409860316275227506196010598126215561953864396263302333461641537800957359304381809362902418978585608555690372699012871741575980636577104634454270304835613802341224748353372468050435331260562095913322003818767249596242510851486117866163263915493698996406212280382069824346967502240657094346876896539707271726833705712320430956775184398659803543100670644440342880606830560050915447626159985703024816445979969139166157075662739415251369786187752281135217945615888874548058451440976581214992476688097118156349333719355872850031424659134508409958600558876844209186964009077801923120291666064874119979370868173988138141467918430995325713761851492734992176749322243208397848618510635581625980110766213117259511415238790229651935844329971371577768958922273287468055063473755270200906372081559015245082302644876136966709106723239741316762029007137456389271391391896362390304746174537129678286025474667003578997302858284217675653724856727006470295924470122889453070298756088090808222630923190769819930537808357017809521011532351899134529649909819419543626773869568362637856543081493928526229233552790209559160207872982838905338060494892050098307217148717800770491102303856801962342809888206501516334586181443142936234335036123047901290942883130482489330577770055435930487508699827553448566898192143919325026750850016983504686712529920535335476017615020313708772635365096675688452052146789560816085249062842813489772494856853624207531384071370132793031333911244186943452830038540943676718596262364124692799066246061858822377504648758171402300015941873924233207827453151591021225403880450109647325562116637576095323236820993912987767080775974552127536851753399915095176349501591594445021705924001817164237167278788096197182786093129264237644891213161396478552687160513499256779043533165375661653913383283499633324464488554967063130124164415414511435214865578797789701507005805104744131599600438844856766593699245237892867025074768460872075501241477605098894176158909394583947481933566130933904988268135499608516066894854101265950706976299631640886921378928742569632961419432535273053886451175554242344757461970138273919381575600273816224525090301179227543058430527931672553274816874970786225493696644753376100775736267078129252342535129425760332590120753372197259479013436837966056554680743372218538894274552204174623299325805617031367143062735233954645463283971454552699667332550476363628637630345300796521054871339850071822490187090781766616213213440884186891629198647601606723865621502326370728118179554993616586823449777635339699020324154758815643007352570489252999230772649624197736099775471696561384171977574270238332343608181369537118135639184722437164143738856560383540691670523072652323032996826555556827720353010065715918318353181377811823280638857649834424942652669300347615328030814258603595250838197531829583983255346272771681672565934172137695902133389205709801251573424702738882159641017998897828355721772311451947492393568017746390388842051215516741180231466358790061762641179996158831749192887604893940252003873918012585975004244438170541505326543444918715890058511053750933614173536917366663185250580063424767350837841503582918772609548022821113709073556210087923376628495102675894132903324273505177652250776519498939584584939460918599579840227214141417509709004390767006563094024146209249252764211356888707347071555786235537592687709625533772613260535496433502137804734874559559418632420545654850133906278861692974585474404231639063743424703779942629030939898451892621970646509975659341237442781565021240669332217779529053007374367796979661169230453526302865490059838324800747637938636769210177220475127715742801681187893629869332533528206616006359928909917707596346482174859455284285154162389257970460549857533874182358519656745831512043257001337498398239347408713442238697120829358266298791709042209931870997599834913648133673909938309045688620592359427038479639166887935029635367237324438695361297988698186774215135756776364172745147376473887485769556916970090958783924312600295199883920560220540989752403481226510955313434077065525749139540452158617370654819018990438277727236359591826733900625123634759207725561549189304122854395333759809483694002082379632544103974408444414531405697759453260712738198585587621483008190130527457563409178413552803808231345165729206242601404915561877770227373849606088856130836368615759252700051835047857744138922605942042185628752144814167693739210439538705784352623650226082389059300778561058151877159508449667861704661419266838426051877150031370858122340763160633096585589306813842935361847436206534858994795346069543047214457623964687167734023335143245562951073024191348439153252587665714726822682703003879538767508532748752325364252913592422213572728478286712591956249162318665070028476057321030940483525097155290450179233251232399457400157418869901817888487941340925174781682114222809170541760801380486934467824840952269676779902801023674412682281720787547613040323538749126302644665578161858508783390332577862776348226234918365679258215653680233122737209027092974158468437831264841321882285421248460528692344459339262830736899103127365683313360003900970550141283716557541147642154162053003087662403293819146486002117392496693727174103024905472907203381398619550121496155131387615834173701288901468805066514700566622041396231078094125798555755979342894765326760412604232830164720375426713880266189312325926981521301815711917070647090455475595183277840234007063162742953163908435141577092155792204425582290391512129255958591495173668437742928129007609571904791894610270966521186773371740683708501864803959755920419070922408864348235135993226022142159545023905594153584662100909553316450474481433562231113007729017235440468452162730564966590592291971790790863087650189984931648291150248959322330961094765205905301547184067671099106996460217370322260428474383167843882055488257466509837444335108810344446299560722325355193191988416367563077207465429909183831764548910084296544175703717877888607608103208822367274362875437888919929892794696581896972327110254458615364206926392656706480953301469501110121998223490058315859618332866664102974557329104921602208939709185341313729583028107676033731822812843286335203705333122684638140151975207074585474671703228925651463887771591700311541294028223161756038946434566145566167538501631066970320279997315336391275644762967523266132861782281188315984229934555028454077973117829972847960495616209445435139749359301485876684321823544025934709611861749215348958445915631634016547400450422263542377093946992698339691086901382336141942322132143897172966158380411598178037038804933960007528595521355255770950686318508869547662960561819396851366298586706810869406473285844903844173009593109184372416829469182228265238348649487693393718965778747367873001509659618305095426646121730519294629921802736587848927446336127524218484374398907641254900263152365753985078573184704273973475609972861952569042514763003121678337925114165622172303065341032382295958120812889573436057684128804292893203246006640892370056513591717997531573959552578069132677898424274469607406937499913640367794076351738717032973505006679551687534869768892985582106308914483291444893098294812167305285103505273559082634766170038066023855044727077425542794167948183545753497931833409826972169599082112776098197941071730897567538427648316315561224963886868091210171583427991220275751623246584162115283511108665330331729787667825301776681271673875565472025658809591043409592672278687280631592408362097561578787048384952763463829112724116838827619540111321564889578558426559074597774505687443894693480403043999773224335462353590570353459877343460714684845625104266804769178485692787578037025131518439976785009701433716027152836998718447786862716141253176608699343700584721457925713226559687775150590502886667923228933187061770934268462274354213958215689255466627690238769421600193896592772719414299178322612461536939354085753354403822067180874407679276293509653355860507106892783928303647322673243672183508155668215436059434499295538772960059479459842896974020244494939499335446487478265809207107666563474955367193289731441461516473718923296017801373465051100171135708755696222541196216889539656100584260490263636786050777045420067043376337369072063449370453546450131659047097751602626325798427430424645563379518369125729303687368396640575802621309848348001171473914542763270492344295719991877067212600601769013708140415665460137459328830047892336519192415750839563673696326030652513855655748865087808744603308059459270394011282127793973265491008559715995045660522713198546219896789403000644249653720758047533739281765747122549670886953749038726772212329630266519405859286768140079926826688124356684112732555732825458650001791868382207989202239960371826856414750340154431278379461564326007369200190249371233506762565149146464409571129115368286586019682098924064097471263831361977907705183217890872029985626255974360186274705607236797526990285596083813343047271742987113671426682589160517129395716536912295682327958604362844687498343202784318637784759260010273898860683238438871094117522111560110457486294302064613309090759798927176271877260974388755375920327782361955163247461985689725234004964933566653056679324848803618399099460172633459190869746877203233167757061169422293767836527127390143525462392385349762022661392767890320225906757303088642842962607243280400445573496859017484441049286052262766642205707140874236329270308197551006510379185227429169622728017719400333678789026681542710036115556174559730606487209308401027558234502509364906332968002484903413418405816985427305086695604296701674010125989022478966421513066802680558125440928879526277669989397675392022583170886864254377799470116956942683269143510153923464111221948796816577426323169481825269657591695978828007698632159794622861175252083021778559370832364319950155870669020245951820171403887537691732929357025539426520482481376818122422554945810115996986132997859629168344954742022234696430552226805497132249530398282634414297273299892492501715926826509496819661848820506538224708729939495160408214535645845170936895761552501626343313593029989498872469547938785790632151814890898062966482668274489846561758971463538798778415960376277012519051503278878929516543022773876977063046104101336694019015875946277177379084603591446766038744140221675462819120056259041765332472826609662504347282786335175078470298676891298527188240522376101491358568836279194164766710392232208430915713660169700061215802129822811265687857364319507180545571650331628925539990920219729598605331187329790092252046234562759397655936869325533731054871487541318442743796765177069615485641610541892907515655965838457682873469599526247441059950274065395961074920421586061958652882138718971033125476695051373293028467352588594925132508826974940342022855758958726147839883286128834341544842731084822740041199801100690291806051422140858824304038957239872602307469903210887542683406039599869771157987933996630033119710134103401909990008845100109050710479774096971674379820137439966142656336885346268108056961992283883105553410681371778953092490133734781574330355722610981782469098323164792330555177502622521290564056623938753026385275596700752664549751119864413026917685759590926134659686158570124087716597167389792234321083779383126612780279942780418113387313440394043001392041585036183232820871178622022822741482444917791904792194349874614768718307757018614697397422319721733128948655090319497263299291065591048769322984863876577851410264820430031893620840733861730761607040399223020993541535132554847680442139311422030623995234956247538441605027305488236108216299730761519802393117810748975449838523607198179249267536954530025413075793822750548203157642418598488683353603093800718964008697795025500291658869446727244236573350815339999423072636153219361734258701215211600867036328467070122507683517364248996923592239943059069573367989163633096057599795184000144291864224599854499085955692562773242381064664207050111163496607561661450907065808423728243701794110021477828285585254311902890495775852502478416351357615843973688700534583805459937193787573335452374594144325111019411028904139951285125826367840540349209958034799139062376622712962188240143428143984774797144187128305070002612084496839631041158237001066304258781879876129808664997577056969421048786950456590665476138414603105427515440555553181613791325280361384218655135782631650541759931311673388878866376357410424996478424589145507930825103024787255884418115882665957067914696211193435204455133288568938522124317820496949278242276896430317937198119111018302335487580625855800820228424691590682464879408818244613643480566829551726106355422001372051193017983090465245849979237151685288939396202779779223405247610270186587572659919415458023553340311585590174574038455687668758158301562396483401244397625872057134515563513107538296023755809347743257121641095838722904837585176156962696451142538630069668404471346188412416156382287049288833257995551943178537840682793314234407723048426280842174975383464093962781267749043580381795663213719022474236668315567677239339618121562694708473157180642375900820757728599531083722219754461434666434196483132521330728907865597593324305075404910136707590135690959230312886538667593130099023134268183444949423156369374297780124361096680544963198350054871286392925904585990432931676987471921729578331924927201312743392066372253337844628951099655873593431701250078087208232143440869580637583232406002463540002192579825985281662500380736769438615600640111376681779509094498800083875561165888361170530801304218665858701740121649873484543678836924064345000437283894725408862080470646400650856676787628911190401935558250230187493066988951367749662654116339056909659195693871830987624359554451390817126919774812168443708833730386612663353365844097726314420989167519376604787231891889707910477903686652466134042134797156050124757184579678184059976211059217446963827759883017504600134116650981815745762416594771058220098943067310836513090597621674667871966662883294871224517239424362785183608099702559028126292363942652466869074074907404502914580737936186169686328030146014181117674956468681736947428792047557614382112349211707873466796996247039399655752517641266925333019510067755607887506522856656470379982831719508377329855539884261377907850915974348666390520024252946010053547359646791089270842553954314961691746838388962898563835140136826183524154855066486984017856239834620419741392917700136153109274799844665199836859411886706827033810913607693374468910635616114436858681243048730141830399411780613550668987763356504086871079747395174160449089453480648217946496362571851439162519374234369145729131632719844724750362961680944214672283466224427290812876063008330698333157103340594647729276020351719872768880547024130064743703598249784244986279603248604516876761698843951579548604118458134106078584077948437293693426639254035592179409738854643783383382436661357215391489782409971999600441308540170475877394948693810006049714270546318525256380626772685462105430515798980704581188944163435940355907221100169555862443923983795770664349201695597234633030757896117706002791409007280384137844354329736740295939129083570224210599174567341011010613765242575382690934410476075530912114400226848895931805051043214714127278595089348966822426096000067820731092184470213397640966100769271896817527448563449952303466611038473200551355088422481992676698233460506532764943163571138528997898317151659788075275267073553899969863205980442520354750331973904260159718467986362958303736991469769553972789254452785625822757607347309705100161359507655727855757062210945160758284685358081506814577728929901702240257373109972771149847042870856904684245636534423568367455170366379720688976915631899046216810845490404612201686836771716439567606881496971060037658701689310166910839324871688092541006081097228856072523303954359671238573764061519205233118324595602076415384278971968536626101017460434579001723166920737409316908161674573242180503648009370842410018867886733080668990168304461745897620236841677605457358267033440383226033020890848586208514725638681681377493858692532641178304553004035976122389620485058059895129366961832673697138980341205663668907081341530094514302826485675797083708705806517073003687808329785967875888123060365902134068738247745650603430078803329971898636393854678676787684478305981985232184852703129581276830164163103845269759610887519932740476714003419120754072644026004135433844366290702015657735161200317763051228826839427960598170220485453069888037408763447861591328705853036386729310089603638232287428444229172426032066582444927832453456586264894081017833182938739574168021744845681724121747199507857123579609996512942332756486159652582867879932381286497054646249731053047682996890085297304617646970532830996846687825367986162374647545925480436538088719509361500328958112413033097301251851865323471004172694033667343008815770963408861801863987879479773964380912930270552303071696256666720856467927424417583288301711458394138824113455227810411756372947299727002471566126066772519352798615291997338738794181361202032048611766747205234589802480957645708344331260934718595848790680184663725835146253339314733138282675628118006679702562062236795147348870401331097636526594440054699102180978604405497569602518837807434116715222992236437956845139640583579896419282064297108234791113280012268029075006166703236028892008601839850202290663427841551712250979750412872913271747422288704226839655197493130377889737285295520921002209917683400815368037473688276417330220093220604095207951725905925504172827056246578677104149714216153404486394051361533313960352904055750497526612896518410573703863028126132342160815302283131493046304645212149107293512988706765907606620693433323168054153067712010948578209366735262133517840204013660321904523218396306099236540192020688847695418837083952418367603751795709024424711083764680394720739672230156080394173576943793161764298198133738857977691674846150272680438548056927668149933853166415180424640424465976799595372966261994251782403478754394089816171126220767487572313542978596665019239639088523605090062405233673173486543487251899832221531367834145875457135982142318641326623022406558867634481886822747998799105133603726714269430762540464096104478397239176592815497937656998007864852399233589669218387015825596463251779142731770799969594996807805736835559178702896792693002167304375653610643908891028810126484335886289414303793264642910471390839643741050938191621353001309767449493989486637908263036223024113897108234112537769109973197818800104717700226425087618592796674614864526407469104984123396862253180437844893055862745306726065150442346363445571647919024695651053518222369366714375366049838817303215642890908752573218319976433920033666111258432501414551971545002612659114493684947250051741697690891317983099779789167836790408860181950555793338225134549689786531876990603863822634448956172767815747789013868713430698187662117860117900274432091180261191847570904559078656114824947269693434852966760993919995972198707975738206607257547342037780671816529446723135092722493358035403622937696425100104117356984470606304471956704692515247642052609620858253895392400719230948429643774790545278734136017950721550894784735076560755882666206172680699160857614459750281123397195565363798160978526496883781599164667146895516728513122027699877840549818278225089000619995497255774452497582814792015400741507354268198900265051833696928472587745228069476765027767587190438934382220968628158407994177402229331398979311493266482379863735005588576809383027017853949463291532015170310443851484217804094090979034585467262927687405469587552519066237949445139769104059031923857948741352529685605765299154484727820763496376325691308974201951697195487686246826087609619105822191394276785373177925936936814521525191999452499077255936036227636492229645705346391268331518295661227009105188351132782582242294551061048782208802394600361587127610797612411322610279135372641032623052880426607990648140001917380977034504126154321690846677189695519785767394665727358726576937715813566966784070991947072340362278044640856992654894991205714055605719674036849014025124064663959289859196294539854811990577582636936427797851910831541169244348081388473497702588872996722822224829926033350528770933825517776580488173117772831580642330633523719476633941172850509816316798229003133756684357335194586620298376870023391841487065398012162090647888367103354861811934067746769874576576356020101109063239129968808553235281877545625931461282066097960997087679379311879283685718544965497818082691277783505729535060272608361221993169572893109497615717087427928178495389154679434868157168615054106218189829329175694661321553252047001178564592128209242435015819566846979331728618606244406127346607372836869051163492063268778187283784386814683867081562865942444419525622530347566676061904344834883262614069834594444748499105338957038165380082222134546937743834197222552981352301353881132062541706334513066480915355774119683997026983053497561752457883434274472038279408697362874746826423776864854758129229016673177466211933629590614438266172901241952301584411280549194097202175373909584014873644800997958288289359098148095523789911293464112693897234528883722709994177844564495752422384218056561697462986524699507279440095857996698812628195292213768384038836918180847671172769878560895422614345652098753974360294027685820166382789852267569271761635872590247932153445587829123282647267661774644600061955473369969134797474676326275403334148104563317976989709386302506856646605297595515101887111468717496839905546926859432071825488089585777038001022862931460998487557706250987019363129415818844960549107536451027804308171564039638569043928879405931914885497047086556496670779677462930048404293662898454734386316221088590652341230175331084589826347775488462877303370055447200386959388047168083435710136057306108278340871295750764006675329219427046376947740503113442365291661367295974301537185135381435233795485103544506890667880642637273162534826044193730618193055084292239201433393191413723843217568332718286981028397990427704638756344489499891976814323773622705580095175174739199640919045171094124720217692731446306226262149027350136985843957101148214697321933568008378831289723177351523742198549608801854334146492856438571229934652144108618092617503752340591754916436085533021500626899487184882896554267461459302811218623107556800890112632344453484831913183876447454420021231158691275857357050452362421758538176265428031422739804620088979100312056056492805436549648888872738078515694315730374646283303697727464760352673919407429480728415780096664812709669638404521899418209647640275848992260182648032744954088935459995589677854219546642227684608794240603818783999140176029023443804974076379196307471461862434316254959015568637958775540296009049989041483215861094902753107818702660108433919372495094199516337140959378155680068195240551691939535764975031943580215192906160386669337670595250971510124128489278452468341802482052960575226818191791084792607645835324043744889284109821263172063856396287417088434004796791945065085708471274735891568688775210365699293182434583593954646811797520448172554237573311212005987554761628701372770725690422481186142722658620120881636907564921885266536923530269416215267003181425892112349889239097116134304077344003088861273673086693179580604091061402804315628944944903541941153307238908064727864272431906213856954519847378510678144893789526235666285391233643341951726148016863797807657996865084289945907168310170700620133317222930181297693150875443532837788547343643792796393442479684177722092984998793645787780028087157075311543317911039197382845185749303225684877041050720329190268458855101820348811039331717355960714296656223773520147444660336377961803289016001726992975918132701220686675689597857964389379442408030254356934301485444902090821082933815674423516203501099672594648223304419738328417243607220145983040834021177309279945388797386632265264280334243555735079469722973084489058908565595910099929282563698368576641320324194727577730983787722780185536251803114169772709682316705052167415692955092991627420776481373853055086622708795224404177547319389322268606392936371639805472346143681019774609341868657729273961672423170921636323669166120643916042315547356369087431004391736375071388527420067440557859950499505328144490238648941381076500921737557084073593089390885990758084361631912735203185876780850321794638557367420408915301148512655506429037547678983940907721687008147458773176612287747353976872695707249270495502000383889473079226891647434460152075739669354328105619905695993988142212969875074084935300933275082553902795753162977411297218155635559062613694580434924915989667579141361110749540984665739418079824223001917398696029477729875528546489259258262166044495883074727639580176330976592923369386964563225373478942545582768588209153681720858139527456912749535728562173170289979184195316202581043238193502456343394615361713042824318925107352835075590697522103283742000442663559695107841994104267819349997642262133863507997329017598087812874206974461740482837001093741440358699409433513954223543212249059357786589332217788734443725042412997971955638107161498374070498632393168902802071642354160849311397428209458615746285480352451599817653152634804544010387296374298103962992135214495493067001155222108048160181138293969249874327254309889027389655459305138682032311953033881671395582400933495612501128085912103978522396727995447511649975320035400485218061846411413025866197437186284022917392314594342199174320295374853116779179289407904765389947787660851053190724996281165096942850896324988914063610304108947346820710192161749857001317934494821003106650963352017847431994435024335830715812930791791507829100129414142401719935637543193317888491603403174382959465720345911497233089095830406827075264820079565422332586050997084355091822271235463282587042881482386264832712374587318704460586063979864919648748490310112639655654237024494971547158535110113332707090586876951370340993906938630520195563038642454379153267818944788228242612359891358891664927391124131492232016882565075449493718494123019315123012954453733131002554667020394384698298953705173929315094294874661758741350158503832960800413264388587564718696412806214492313298759917978019200680922214975421388422022735439433059370862785610056947405456333407171763765489371928810618124910558236392448568756557204515586533574831210537138676315959179874456563388379095073392629710741197414869916538194398712097122320945552786438758615592996642358431820169713326720748004279125660072540559017165203221074504084074420814269670112844070147062853295471505723597137781828377450957908567768372861909371973129254639639427451271445237791619512821472707909926189053630484125810654486224639637587552086929706527883046434353164548634414550058359555486194094725080356085242967525431257436530916691241138213602103292520564875854615364698410636741135550317486470853296725914825564264302647823456173015039085787032116389632501086056884265005505225548363265649304332067983111240556377894796415144950053952139260711508393070034944949463282979635552263302531876400853304878671935538668221052175815151465250695627418846046792436204247466625177637403708380370371001439764066830566761494640079918088664687013972133401061474947278932799809418089884817122788315034262949796485160342522231260144920601228181521581198241025398898148146092168341553914192636748254547023591836011868942206285889299992070261150052621875820231538213402352810498880688578254818601184181470900856906147969545795713548983962932416525973267280844003174632001109861581929042014568545995371382291278867135777708274900144351152843127434305606238281993781900664743750312168051436835635085790292466675358126488622052538508790633223485159358831252947411192180067024065958707433040713620376748509832000345836766841722989370115901152903940375032853699969898579569109984818245312373616063517375145338732328888329619839625807987262031852320115327112392971167684096385446494535942309903840748509090246757746193044055860675609113661449516063697753990504101098151653258748095212985061004951081498152345465508433917385354518576355263219678062649522693144790721249952764462108314941839557890710868900254734837572885956523647715165473405444933111886835093368948995610137346312598249519075826030479237719505450698722531522426878167871773636179349588158962764470336854380855842396035485526406650351362399888671745548540866830402955886464649029413520852273640953645387072735420926023814566870982041312602903658561439712309193348041298100144736596913744094662593317651447919040780158735468720989282936535988659793055376484316297698065584201966597895312800602644882951211089012134849309533422865007859513352447271208311366561133145671412987713110606855490628299596585446264076454432928200495181511777185936397374321821606672138090865359288012304423088332120265762958338291907411203612548580990671023097984637082105920331771051298896997484809535921155068600805616071618171702157709661509331271076493176527709771206955108522820332144510717023921198343044770713176511782301037075698532451449853346313704874675484677287284702083651568688297721436796642553739014093688764238828932698225684628267403730009897809394120751848776386946157484204559671855676282944874716415928553197941445466655908190637020130595375255163495285441300983586187778567491111701914050562803190733464661709967943720270058711874358943011133207693532285750326770088817821431467542438766450303253926120035100601557936691889534591307283084800336990137845892029420217871760106253775001224732241932558915846285241134467635763892279474322840697789035191903052452551856568183783036088541544306482835731371499947517402555932767106301017792258287097518107582544073857535642851449439624796592943042317590793323804888007445964993191364315414953927587833037219153788633760978369150522890614160565235526650671522690288736800687586259546603728499635332718624302251373192270626655419911921876503469407613532491852874392549472203963526263742665499970524124973936535998711262216853052480896079106403222482556576111804101566687536097531964517087342606640018941060700278005983938100593885655871047118880083388547857098168640849204987558818963975646528323220791135911177857323178220183021632843381657025332307930005514688661205152217160998823731054606708217490645346515172173580970795589357572325767725020763854884948644759186607394333036343231853738156357304808956069288381870062813373283479466026711749516691128658853387967716823888113427720716371859750854102656316313928376416069516198897589281474555416955932420155679686298009348040263749586668959427372883082533278605991634732608109882065486539597562095100739142387908049270448043495294361627057229568468826495946686890841845797149292392819952914018992251890690997561659380741316547728352008590499695388113798843869207330102601866564986771933611212861580702261556069777999746158234821630254703056514594990818482968665072241048977332028801209687572401033895170430124663886422299337376538491802329052072001318993929999191051847884781032110254273168521392575225093586886918352182819862311372401652765250856445763771831784020826567167876936618669928647815314553830847909792022855516206675696533455900472433022019210646283572229323785919427331268839484080121766011007488129504499415677363138457454713311619354738375003697743180255070533534755330160802598600903175652979611057111351611885568392959206555651778067295469292584281904800297107165289775291631255295737132841421635758361413410001371407073604253135711111142278026242483547164415552485369167185830697641904291947322502341457060976010348627194368074456240296422946174821839361131287242538941180260366251640003988565197765080168297048966360840199203363227445813866165783924907636743136717586921937085078849205376152207455985916594930530711104016721336190310052819901733590700167174508386285776100810421918249016281719317482705981946729716777049625373233519889158785875376432514447442026901781340274481701299041159364226242806197653429374703919245684002499435443831618966142391158609217445595766732825679598836591489276192125355959317756118955005465782563799080371163895411118812487360501383816871155128173537645960234640654839752957624905096502206500611994334476731590426319278961228837317101323896455232254385853918043271056663974824212704780905330387387780985269945197809027657059111667349797190591044826206329472999622170264127935855856378212996155193127816074189807381390693830879406370376163937871265633473427941238761129234251504943072645422939426291223056602246766975496841756214385667106624624677686909525823601923244794807717730728716332576079535499711076587163250637650263232654076642115411334929592186875843901599745646373677909985734695906841068516305324392609105150163671177884537480169284972164368362532249955794022175334901451196966466046411495275087044407027820640409196321451871955814101113798228203983298280553149709984864948079004749731301684451929446436409011904783344666792626614653490542170867856450917201815468917646994627568081987466299834586848836240884141647096061784399756686911999847311672284301471048421588563577265556257364791819591680441326232586315679454668016587169215473593881782178414985494722342022769526783814266322584947601236289622270524664950244980488445213872406912371638184246676017092390941304326046054307940742343780193275305143092351971883645927295276613092970301484851460768301724131757941303940708177038833896448081526957091842481045832322096088197590763891634235679122689247527351859197118447610341105717207757518532478430333087965773076632900029185446117510896701716965855481081403426285738700848734748685303581217658367880078102084140519117042709426555027481294793673282617687468311221351905287919891269924914899235001417729718900420492810913499976707526355047560941190908172084306631741764254663331222475680938717027102005554444004524427747263744081221696086221957644017385985006437177775090598184923510435978015601445761543700539170622256404963046956533398045307732773089650671897598192303927879079333022849364649364770113965831070869908061486862499243188044933665068296825273202143820034980952983810265071720415958973522683770313225149218582683788140270658979258703216792430337117526008761831379942955431704824847016163926672688993735060281730436459824652430257713654034031224000881646815007183673123510060965530807599735727847993195783501165128764949251303386473506229270865299928071564050703301135952611425260344769999622027865750818617781416213367581852485445478191742432800625593417599099894226171660299421644095828887112498136630017220260737238938003117418779643040045191219797755899079403499525081453324275984107752872550284684065959449805227297792771752723631207435192812291359826265602565002745788400570030861610681849620810435518638080973839256683286434255650641875376203866718649499544644247776898846106978603142974332748434382734368341700415924123173153614201681902352478252438248055188519047422937397909969388614311963326983767930844471657121261520494937277927744338487672235592165580173000651909363164357844035506139765932251141555588752215086610518407161828809238935462748550375545338827822223401038325245879939410083689270746662316990663505430760341874268586085078793239304407070934917054525339392048727849306609138118545594945287282217250379705208779961176371119414151702547100648390799935480071631077564411350679699437988541080100532057988243262386306684190720956307842641921808166030666191219697189220512947565235645685905139495566275779247858104553632331160072617464079122067929342549496028520242717049788485612156611239820454637305374009188213581886792639148091033360993079578168554651100896640743644784944408059437253202351127081222725812516257211460992202305526788203452681373161306635476138880169789984864440498401945655109304524196040702248406805086069443854903026399837869430793797100600899332406012834573570093237497552822389280975404745706197417310804327142699236742174188635651610112271091678911211696715554399336103821793643351646572199295659707777062422169055554085078182731994839536780568638432255757688929187501240194911907812466047838761857463182596939716383383638751038570859475682370732239261027683328950933525212196884686867005403341453236868729355259485192750548637582380646349018290055904579499544280843701422283457099807907043523148498003700220349487778050358873778767047444361362443998585064386449798650675219441705907664238396599617518679787232005245751912332634476747594340174061178077735919022229090318765109841884633590991158472668720844501070104728229847027681648390456784421827962918915804737874870357257844390398348873198163706716195226412806943411887785339425048525963703486129163679191382826521472574635140181364270197456447800148970502175557285393693704560649095443622273571868046292777895790181508577361777969682926298079365974883082812336563900403058802163924611062619716552308740271525924659761061337496334563274567401438704621616054903989757911734594102741579832880990600774311521902581811703407080175176644372141513699228165104648790031221401026611619988720687927938405841601282346538404530063396683784057309309883631708627973535378536196947999156595859184519935041911647960566418454673503736263416347498728786156509317185456886267580785502853928897701338730514713264483508666925525465709347611226499921472802264151845489686660042574071102452745384831471077659627088483466820396667671739880584392704281423008634281417523068448411857776082702398631495500266111171224675726923558354564191399778456800945587592788022817796079801222311413058970508517593001045578840542820400049951120982062516409027755290418408623131392563439944939712461379003576325312418836067782358634838561358780373954484919020325627120587184684395544307712911268441180680424951601500997849773684276771608676090848769969065506681864146798151724263852488079253465058238396553347260249809782949734501838372884429788059911213024434231186537619489789902335805694594774087194686694880821857653574525533923959153151458421586026256850280117515952580507386339972700600333947227484315687961325962758753544949269446597740940104093323188038093908644811348512527983235905144824013327978959733388303904362263085302675311723242407226428219303697246753200361891430919934037141673137953233383289720485710278696162627712372774924647301608212986478760870625005672648311994503333227472659666937278580380193219227025769914513449901458927013014939505806043875680360455008394956443025500906700286881499957119564741521238961206420690967102316630033568404231004405551622903186958016802569830475339096047268935340080536347812562451676649195633549249774008689832935038316186172739445818465986483841318447527711925968086731965388542904891655277072201780665176177067389892011163621680220445170557223717589655697448177428089031525223343539610818523738199205897218220121538063963907214430909093306224987380019833419755038835869546934323939531054112534089824530501217390390677707902495496855510701771542646629244255543577731259858750312280727641634755830943266293125873245308311262876021616047715579951186737159534686180365004763838918552563159486669395935827771672453573436198125809048811337643735594489755861156874895295736596358244595101846183233352073746425175326199342022526721018856091963904409557696562490463173020290427117138179512965585333320288424674208473957201538607086204369924667630428532977898634502428712128591597713547445954314022138496902896099679553023972286740695668040540695207027046405819155085498558435529070870436820988683338212912832862499832418057663381342271175711939509246318855233976602201748611845504832420193065691365113407015217488475715353006065338719814403991856129366786791484202918563861177164962635881586583910998398303635067710212881585274707707568688896277615344611350613666968894115235739817131124894713261366118961567160889712133465533914528405384039310045607162806708101855014030299220230647575169181134100783516203038035716601964640857065391388653541020308444209274829791180560826268162540651972441324002001049372953281013249596271173278046440576740313234966916946686950553940694096088151331414038664856150866618572882811260684537280052846794003305555743541721262794468368736385429704724428111672982623649124672507796854955187034280371329649325163787628099858646811894380433406554766789120569123287847544391095444166264991668945323194296827614121435738548481432838062878017600921617610990714285141250653739290847990676965209226748918847148740903536789902241507004824365068029900447098509749989210289781929764008476644618468447410742557446239023717497002541770162927503993949773925373696036239212774976380266968091902032567830743037253236242815591750275384845741961954170485012067195967326108452926459835862351301489538463441904131567916143885804873971746721741883664044532415308109883123071920877620320219618086740574347117809018348163602284984353493699542481239922397067085229948324165662994819250864695553505376462397428158258948104339757015038877250957145110931226880509252112432064537762187389135751921781818130973880142309785263412330354847042785492313417655756415145752142945426050966045670403514525155695308841215251306527798493145314917022173483106089447584173183267004936706694964461823376992407532887927515960551664872093752968695462983193278546656326428237361274371521661431665547917763025639170145458926232611684369200683877025892167995591786947474975420672515914080116629333748561250888790316629750129885136506643878450381631944666827560871195496629692097465722215587771334137084264218427645167980963456879570993936524684887978439640412797328669617381453985974029745236316539819050259599331214319262819172992502255163536499784232838227223617341812035757756244499704473376793438751842672707005419859989065243275325345057565298661024891551571498567511662345702652744214288229995568571730204056707916656804241521528704488166095433132304511550127150957895351806272225321014566343657390490647566928526741067355923964850693854756488114479107604961978087939951009490924447936005302661885723542149957322035364103446636548498443910963605610316018387122885088907403587926642067862144399556474812667882903626944673023221983707220852558028064535254948917693584802314285421997619430917213411647846817532208999848088930643023117637148082297395308964537581225899591679111758933157798133747029053859745575929309400190780440204004882537852548183844743922277085029987099065782023906556403815363578508151862753387426632441779444676848321176946490734869373252151961685750765548165531380474680758196723358068752762990606147227498502287951035669638505410867258872386780901342468456158840284479186879512097573795908776494669805158028702838737235887878022670708786682045693863489119992735569188557491540643213259480353099016152995613556744776829198744982845381315565794424501645945843935213687174112322961282073767990086754283271306633532894073292404341699329117582503621960439353401310036224515859641654587660151606969061470898641988117223109405087728943323303615727899271835260231200911808146918156139528658824347298454365474139826084293662840451326622208261988609950482658465849061020328426059599271435035649378128451738786463238648303810282976002956787899938644497145365259696386753261221395109351338437171164735317267911499900410863704987674473594581387827667817948883792556055210370693978115984279724211734254960383599825297720602254187408010266855134518636256489884610973300486846829243225436063080195327786550840355612876799573861300426254530652342183503509051591156803480425703281336628893079412899527641066619249514544684734613684491435653394785390627563998172400158123374198556945883530775220813263391897417969184700315722071569046709361191466824819807907372265595977990569526404728446527211805222334569665640333455001263864422321107868495665730103278674404846617153539249070108891517114064179898963163400417583236196754537866294032317481077095127247285416267343636433608648318006309443761081316704145009361256687777623464954497339868420622489219649297795433555007771487855138776402167437071529706742877424005055078175316379455919929244665410957531640780636769341577042970352457816420358079411928595442433470220443423652992026476197015375067244927026999007628040246028728648810675868866140708922115106205056883449046616251242594470222282654541293499308026504131994855498416090505568377588866050967913812787181307042654314753121969721008806570451148318246186639956617525423623862206682757453837834909068245362066708616294551595511996513120088374436102922526835880914708337191871501575220289542070606568210350463004368525382353864451291677116584797189591348569109464316517740421338372829806731319354627347887610925428701084449874323405579813817274453476463147464058403156685402139780997796388402813913467865998017437409033297246765792166481942000859861112485314329799705161209676921181465408791021736511583713291356181947482273864307143482055392380628336751511628665874493313415473574633188551379199174797031194465814058988729260565438187553559274572205139575150817840103960057227417040575062942062293669145402361291388592274331395264931559657330084389893973579255604620285931162751193487852973174132148891281209894725775304377669167206031824112853284660150370440363118145812036594756600258019777261970899747229422772794674708629310922940149671751846091809919878274453128385702286527585607552959499273071618725163870150115869189838950368208778851292852396600229328218788333993444304329761028993530319131135931001722221857018993308533358826119684132908898608135898359381557356117528612088787573736119268184412732946871197741871111438178746235465319896235319834530802085380958849805735425922872384306259333907642836940798573198993892322371343593445127599436555181425172469730570980574699661969367120290864581385873415438644190815588089450508018949847539543783550389993523940958045562820072370946788877597744768343417950381083658367073656582100673626868479288940201594088029996330799672103024687917006932285956784557491141343759067556173979652551630610805252783656521990000068414113732256795148747185967220984579346020027253277050426793323223817165232575603556721371550031129053597850195403500026911514626789447787072057136466521935529380046357938778014901804750030903351682986229874447695309523550025522327006148614815236706767517376189379166706607058031419295964938809076825235386594175874354828353546527853497162396894930681147892361522217443069807416391967899772998045044415785967141093517867963278936734084613371083167902720601411136300331243119392614517307023099135303214624989989274689344419677195559526358011839306399573122302587769633157572748326425799900668867074087620781518837484196739355997167824485416470793450328829458961612852419703607632442809876549513702454132799312741398483297005923621980423627597728232141342355430159729125575714998467610943853617093059959338482991994010494640140044806687750720482439891497827499722573473734476260455002336679705410012961741395996472428612973102558019017783680761652313166524221807069776496317700711987075731144096201685841015530714607055318739035332887135345360507173557335536477512219553096014843546906709351121675847065074627268885611496691629297022500826920592479976190271369136173648449039424137932288404548772661472939276499186029622943890477321174581005561977228779342853308540226007426348996246842420823978668389771510068167364255044364265594658399141266743201511800156642227272087417057925115723692815566702828432518279460612169913333354267449375536354975405262724334479926563670478969229959350158629126597427462691590839759458798516847227219672353964805412827018480704882086470639649259058065324636805348843971935115622707700327494463200935536573151830875004500964209671711947239980641962299490494377743019001621098735710039283266471226668786584523420950348424188759467740779909676157262492486806496587535321658274148338545863070455379869354694611873948357354161740656096755588133842942112333138416336217548162840440789699377841659324086713440120706590990017754449020928308286761736753705077606458780487033352763867547521388031303153441149207845245682939448084386414472192529239316242121972472868589855593578465853450370103246099463724852301493837876102768475916982620782144621952930376297720195880174433016430968177765447588255051916821469849447939677300071945954946530270092736898172614923304601330546013106085296747762244308236885934449437287645722503128446719295077913737717366532421657138094695919345338783063955440732554548369079492517189746759302038034433323635936418957403649088448888609875132247249313057596486869055391275609357345787801370626623286588111746289431052847952274661294619007777674464804320690566921304482432185909645971883731134517463182878902651008860621559715277956934408149799214530105177880241780821911841416329638615420766344329732711468654881338566139425483988448292442243255381694321339798194300809544746334321008049343262648348624826035199125430360333468511219767462383230790604713557387054146616508184865216690538731737466517215833001613506703143665760872429188172006851177201016113652678190823694695866935340905937384322915642870787776564332284940075122620593667759227950478323809304846660061551272972493833718207678678440079633765499378232553054622691920012237795263444183892913749033136174814894688638090102340263366195050482758657227340255736697200205362372371133436538350201739780677422872755545876256484496681814599906574774963067481181117815101018127559700115080740096118050264047795300294325814209158560310233063400630996057745781360194375998544249314767854059380357721840007046784073588911529417710869028783679542081909649408535409056425277854920963969909002081221539635753862953554654060660286739847708955831798464655867539458691353314466117652858089574642488927266013277351453137275152746419278571640201040114474673828539563397983062559909987648174948831359471502521023587101751506759234694109428330969114055273272465439494120293829045932200660454265339019619138826124157033005437141860582521442948080639022157692571467920387892097273000010224126396947521935520071784668036769524736197119701077062145386660144256647558618505550260138994780942733245943091737987910150336486489556079992161843110039077548913962243164894939338913215561608401850219743321046165990763337992118171835134201664550091102003188536530810568584158560468960319167584748319443681852336820457865747155314057553351658415408424959413365602488051770251883075052399979991568913887882587666460637016986433172981522549589451729000759410144397474852205482750060379182831138836661827274136549829346117467399512530070381188709107086305886055029540436365389327310873868685161841224518870024533460304832052384756018592311075633304536096523933316887321047017420098551716684166522914942593237553181175672612560807389201415568074623423386571277122055810630692682704088821091153813701821909593664758817401378753880628720591725918395322407695088814890877074640653646912691175762443389139294726549597169103940666304798721902591891974315292431600261682657498178251136933202819553424880903422837348048780902232104203053100740821249429965246773209771760614245721135558338171443207806984417914238859297796482330466446702001037555035825163575676082791016416005089065541021052460187520233309193080399967813217849231934911034650552241156746146811376589100986071112668443214628529740807402280925755653934644128577176326214749265621374385284501703653112528090675178544203339204491544482957882005764297686182660724456503623145484798066607976969934026725297795659445920641396169049594360906883021413605283760540721667275839737427233390485089062318219810632362694439802200198248895562308857634311298681794203735121497401678267165981816464658902616406135910733867245893606300242336051596142219584966577085419971287675320540612868733177567509046039252873337754407851962365566682212013140784297758489601737163840906804494823748695053449214041140807776676381787721110206509333310402364593112217210712136628491722875899136636565670095582056514258236066825836491714691535579693929621905969888195575122915284780955780287556510332054640896373075435098622002060261691336690812644680508996914002949151416805642349747092244081503718734895767850865212782712093907431795342619629583319509465488309327407029304419016079574111023658191664733960596161954270831703057076832432194631997177705175091351653576543001067809522336551877532000641271088550068982005594256743572574158484140640644692458836747610434831560747982066992771312964828104430599752013648882256919794607545640939247919379363773442092990435270070077828648679871863533538514333133813103963254525957839418956227787334319692361912324589986651831325037255709398759131397038772267554844703992903169514738177512552106701326615042170237754383329329065647154877377205473672353148229767730935864068497644943159144224514860427350986276198069933269920778634775178538324379665088176870851330030631411648200069623111341868132495492421807818458983528905456005984128125048837067235483928475582915783302499551503733143606362203210940201490410626267763326611619264146549516024543096681986265110759360066995189860763362388299620912802562921141944872697611049843137893968098505215114966164004289946585863309603088746166253450873147881976819362683761045425710287557052999573963474124429635883769757820309720271006653720221199194025767564879366964130511513047425726146002984606238770919492470427877471878087074788674409945638424944371868149064499282852846729544732043571055068789286976249852197453686241228448260244318255112515593018254596764747423521825351489056928170538025001266010151338808267124180290626181929710019502049608525068171366797991094653114546535033576475475501794059978463669416137899366558883623735038639746310625031415206635157275942725896681569925471361086876776454093932381686687054616345054197104175418770556885539427218392671283600350802034259417360873025628525287796301489392251591571721322300477373339005772061404723130308645426276970980059685156359894476603115189541786131868149652762276368225709112848854486975923919707252335157061808629823553584369894485074151969623165942388176857205826937605097615606658882404880970347656742837206894737481147500888343346714362952838428177059837062154687367165906760853720233510725668468869852913326168506661737466843580800826495592444549219772071849216436013878597319962642075428252518060527271900065960849943237085978642312096755756124410478665052180619217785199565194179863753987344606340652368354339242644437280388532099437239638088568723715598020232335350935644932599630917412457687943178349729726934542754229955012687250875949063407537959593666005083301924624054383676054980003816993570111417104141698551527372310202190107792126608737491763988513891482216617892710896693639497024744833774787763049354432976250999479834799437351047369475035053613588606423929940918734005630098973069320197583168351909317237057843565809907813284327507956211346031781203436996936072117749409971260095881167560538845009614487787278659907957536683462215996548107283591045294819812677363503731325777575562777989060252775825008758056281071041345864877938213525821452058102221470114644743586203031651976159095851487645471284598177914245339808965371331939414951896501200448526623995246541269701254622117298758694737533606466951528116193940395631921510500410894745690445636032957787160963737123531887827574240679202578924769069012501743530194899548738943607774005341365307616655014891042963539107428505574775789459992439061134187566452292447729482880125502528341863482776719447715985810232493241932099325997629442446213684350643431893575955504563743570959781444215995369469214338498411278358261773314926568584440547699055554266489507480933911358242752475834621947389273216781962650603524150095226245043638855357560744341710211697043306595918201488916601684605730611362740193844062342994835929223818662180647035721177237291001742356266896650948044383252494587209178343211436432179186325436950083624302344956397788621998630904321843017399384122563660601649325772580550921190876237553013871377637617660238524500550111906801564945989969991939355229987011874182967350178665195969015701635936087681698631562660860968672154330576776499724637901291214496811856925107006765845212142943012049911616481172874103431780068808747693716051660752734031755595309046250151235265998980558460331212312643205135636052279204592304055052180720866124989303694867320711939521063838511029293274843785562647012093606162966668311253993421517972130619714482350569606054641879362152086125141527606592199913508492453118724497947597992287770424355544077946994387949030722788857243930407399980002798579061551607128823871790498430612678601721878246965434510110777805459425493335290302576532244436691027352357657226493921041611221389857814141759375197467646571353777632024943517060210487165204926441322769045662343032960308865296875847203956968395557546208531500623609571488815924812258158715525888096340438121720651340130996329854044660709833212252011772277524088727059803626802857371799911206602677778860245581710500685808287663972416831868906744952893098706805397842005414016550194743969196414953495783590283123425533854219511032700350565249227772309969860656764171363804930325976730554367370890521596338464689576591336967927257309677186350486131811784153777819827928646468825892739382942652298071937055237337539292637451744975329750268822648130757634443071575878659838278467419228569612535869524142302322211445284611215647549864908673581712409600732247666704182453786331285509705779116365081351224937675577483896088254693307418591411647917415685416701333237895977276269666942371464660700163200739640094383510956141368321185237151089256393320815781894048766522197759463119885491304362021564467579268358177553489873528505698691964254106038694587730410542470247227060847085743559056276806581903589365076323289668421226095137767413707294026628447521827296796196669270420721264976676440830698326364353195530301575032318099889332062348593896509741357859073586591351659586993911601833059589593115818472261767296234650167277619986293970145761384404503783687363036455752879998827627913858397056552480974311004628249407375960272541504305736975891856118406437149222976849983831601505290603433801670913035223141549964465111206221859994441509373136410203786093843242785101697293326513883472828467761902045148076200448392521019977315602276822138142846607557507921300403098515021591328291573528842122415307618259135657709774039149038800457953351411619663512295958934568694932031682461628701853357654652867549819167052352038174673450233839625634126413058254143599210276470846939120731662332510183595074864415789824920266785453192853697093304357668714667544071822062932794258020795094645702077868642768156962420575248911825819850435750670346141116293544708970271001950133844670999765646297053892287845312430711669082523685125592219626026581855514098532605154032835927531775652432314969083797270905815282592651047861798801031087137897783757076652982915520894207773222194927185399119867566224746618916432076166945537741756616491310950071580752795633383378803721501308733433126061598708759755930022047659537636191932632931873248696831953686173452020515408049401244918248481294467746447747960055113691763888886590205211679700407118883959142884449977632350041697796679252293498815438070989479798650007936613936737972165201091649987510637743274753119188242039988233612299550914185059419541624480427589384471750635010898559684125281126118928919942110222444133464575479155121367543344207477481167702751799400099292478008704023102796105069560831603770361847071616236703415990805807805884648165910555961201776644396804508388654303838679979402462839427510276660010645326619610977478307792360208703808501533735088059873363039216458962133876239582571013223000373447099874525311172919893167473002804171294908441447611680536899221020313752012440387428591379834697946256715245248803018379954760874081754331052000366170537051474388624722073409232467551972985621130199693851948877385531611554244633836721413942065945533263836820323654023427218749416196914719635902785751613810546399900603430608511995576516750816431717601333214995195590133160261452380964359724935274617032134934668813012119030941132799983695369408771747376283250450628145622847545837972676133495728377434414748626755270629110368149583768594939468381505820622338317470333366406748703526063351246670247423992481301087117137440419399034232350016620255638724362186052890425470040267444860859016431769253250419905150325566078384287217259874346465335411896015326006385670966167275991316868851543653861716504200968497744075972101875146599686200702615735561624614432418714049375168182408031614355821822630043640531513046488604050983945931743491424517608074459004824761330323312831497042570312758138909243142531054697424886933441865546116396647212372425322912723612963005583515861393149440205859556878939448146753330058665910253052494762940708273080387556120545302512507998282192804291830810785697236196455495438989320906805534418575940073056270048880816703561014587359376845320327040218923710726166863397954198259924308532739142787853065463375260111944120775679881830547155608314847292669488613949523775813532602025345140365285139125704323498049777868362579716598228621675115376927369898464253369759993668246364833118970947904190294093453306999504557417425092079170506607084548939075339977553940560059734291419254734181787072560190587533091323151916924524436380742710391481547307258024395618468393994642503941523267014145181723732882550870168789378601676769130627982454032098823394237291336159141627707111739472383925325827651662575112028743705070267369753241841073173828165653165460250516762484845456564994659748657300299814756882790081607031882305186198398805856924857242211890792931794811228106230594251519590518083187976576497839299326303738959465717258660967947677587343124215064677751187825281697432296686439802534808911883879572356066103069420764072325238390432815302808244557885095392521825382080908706505329381386897484216901466205831477019323760064515695847391278784570089273660318702083254297569862175062803738119633820456730294255511105028614780706378905448250179473628528451491566801595714366613669274937580006266518423814387080511740290860261199828187260452689762914842534727385776710966409956243570753733804666315227265558011318330461794689162871819889060985207366322512350320406016022833088372996175406515180725831505635294804394764557411675487517272111330710240318578609871256614058379697195425376405986250131917202371058108351924366053648038973887858693552870818696768222346223245533133706569800766523055078341291170748997965147427104578959284861069794648417493325437788108719631435988670598957749550723586159674425367698282491007832230226118289337897890942175196252733214924417571679429167325764780780326795995018011773145896726089811277512674167305155092770938354807474384656301437390024419522169000821848977983916148465689089657165917761536191538364031376892418255157487206811467627369917415930798745161392982824003594502205101796539788949325409389928975784539492411056019268148496059161720461230879340145374546693172442463361328762037420702176889559639477558031405527688854364958623006332692928941480351113797827506074385740489902811073091574500372620216872815668624665231106034553191167656569339586596057951412682529877812852204838493347158218404748629283602604659787356416226156801638309744547600867272910635527491339960385501441417100690555740860515949702201798882369836535491450770515337873504335578917836134274229057438456137817995920469752342759094121497924473772513710587615661311029382273874719161652588862548909406894975816360100656437159865117145796568874548686534553751841502969085555150340278694638091242646083585500688256237290065957197436958913950343546306702308325326966652412647406219936673251064383770441759282038420903872015503545991501194176691772653291783094898500235943977990865100195822863231296145292639542181817179474612305059666607934779847189211107719982930611610904417251431637871534582717876352839388473847487002731973415906126051104895091922012935923673911751737166105625915176043141125428354922075508711035814597306653408443244611279791314829784610126449776168300710353356829163180452406161307155275274262259920304248376672341476625490109879075041634178376126745554176657585648846797928816702043059343845720382300556277137224684529562419728309060338987926796306271564394997555926686103967255558713598210963598916195347419472497190365540272498574435660561471897110483337312270603477888403224179936392904023598900720673331353594219370625374152697681012569830495375068946456227141103658135578432598960655802299240924786786009688047298449151647483928098240546073856517923697700676725064252181035346915029829539298943660568100093567218428169223435084524037125601721339196156180844890682136090685150600154689738859466837479883932870747505041140253078638268292763451780748985177420593742497775511402611796971597521672873247702191445907633540822340829288136044621159921838455455903758224077859867735644677615799898874746675094956839843576983291600170510492541962341447371506001435934962870063794429420486050273484911019502756508077871508170658427067321135273119011426156680870324176573778366041702736638257110684795802978221104896544282816312945586071580623536761135192634771807347415662333591369699195006658022334528892138214263669810266529271971283264408697888089177226677768930153326638503890654305693237977364057392094047915485425891288781686375977647909658016794288481032546471751731968076099129280333058736143663387774407592726217026336096885786420834080099912288620532736092510380779892778153320626464277821325748939759396103699717216884539238915277638537157781223511511609866261139360713279803154454254221763501125293172939051135201499613956390135508875436356218820926892064261527152042975352390460847045612257483628421099423783993951214956868109493061568335493878929113881901842364647601375387360991068002205878458034687093660536938045202764366242810501631327469395857879558077563105972342200085648836098419226843274658883642724650117939330150446198980854736354261634549258945017414020273760101767853132507426364622280522759149194135051963156751232682510472021838983055256934611916297205968833750749294033614356626944161332760222584612054155663758538290029734944220450021078741896980380212539849956119865605417252383752761912366891711233711631099814868028761855946382778206604891165039697592110069925127220054993662543871499577866431840039114755863420328182718905898320427542359637126366046259740385072494329941382321201458526445106561308896413506088025722201633282854717139469121035615300241575438556766894937038064259603370254348998871470626136763048311157533435857628133781200992516373561789671882973242209568587160262340151020444461442415189465422788015183300748250470659950610415270270225382496253822788249257043159885358520238693091828294199311629523624820786022582234534034883246971069766751200540576470236982562058393817685596360886171570029820361215772107485914856087039764300428546373436844686985082518224038833257773946763266142244233941553768062060511886818146220008507225276952635200179919088918906952293618576568955257976316456275856865030740037231820801555650776905281464395161689309415347305926522986021667373317810244476960158800089844132345802325451340627344831015857384313329937428210775057583042188111312756169785587586208829153264713267483063163427884422943036300136196076427669697770677427108712473501004468611290831906276845586380324748861936308803267974170233177248630563368921574955671606049578385684350341496888897772224177223109367096379023578275396615162343241618937789945525063170032849827284145184993423806206984660841253917967056187679048906277904534443914586573040053201306893698205134864484202076122166553951624615452463988206489851969043532502862265602953167726603497696297118822720478652230644096025302775447104925832366961857577565111076152952027029283179713087690941206576940654017269268647838169404828550598606845556304683149123859702537411994580340390310424164904097224049287774745312565999832603710772789585770505528883016123031538909310286048814008586334179993080969210164736276343502850335828634730306885621864093215609006346974402384400695125887605820314183352973490302288039385345954647890810405797870369224136485886742375836390639198578511614601527543868499520952766619133526096029510565532487170906680134461503801705520229051586850220868073284539236680921565566579188135397446408523743859276066103362434368123098585971813155861351765077146539298379102482673804938185077638197135509180922520414880132373676565654267193780165514787432341806795302106637392253630954321236156096233505816406986454662579399022906800359560522268867295752888966898813914613850918483134286533089289740530500697218171933364857307991536343300769366691473842653401583738990370241646713979227878042195054291681203076531843568960203869702583254536463382865505192086424219498215700027254735140300645923605277159573672542709120648482762721179843858617428057432463574873001857904888141755562705295346276210289563819276552413253628045954846137041969439708031749655762860400369712784051366829284064038211551784134520934618769798089559315592050839586120669076804972850581303850901806720707202482391265671553964111482278761076998762615233506629870451686734727791837600193760056926171283721885848001736491983914836849870385661979105093461335394029642606153845736954989001082408043469168849074852130578778822942229295560944263547647496471481448752402833230070103071100658043168537337452621661169654692888583506214131579900274638741199715564927540078920890635076521258335756687506690939057211495976708015281741270065467212853194834734607848654021148347992801290863113324339851932675674663481931112894557949267194245552324032223412245233749802664678962313908997954160024340301814976584619757714250682071987447204707041351899685071135403487471346017091355031639215865883670792145422267850787832214612940317760996866051664788969799328498105541218358095751335525197231734898211144721546840118125834033916109516735073370319877761441664030952178355134559593818113507888036485474247759204808517898311965136382249127121662027999555253020870764722593505097469823645073085802804453032601122775941480265356202119447316593046872395422193972017601197933656727220890401506359415473380039597361588193639294643936631312288021883047666062505391387432939525786683252787360173396704032428678182004239360116220902075709525514486714948268934011755860058023363146366592907532833935964420420358686176322746003005455592338944103848350982646856381909545119725279448010654630506191899276662140644507453923549845065103987054634436559170439345098486461886423255503900960676145732942464910157625003381007581997151106376270925162458266771192401084530121411454456971394467684665047262096770030051606074635684166612509414104065982189028772392690441519666314372616175349627049455724842404401702498383125614565693843580708272049493216031394520469280660671335071218616624252669380028664026217931703889016229623829942733671266049257690179889279630763534099845676974693184368381176450236075993685291390675565779100210963166774322216603216724598047043325918321774540242988173394925129748523801062620737193464452108296130838107626124392370705854427031156654784165894018043830827575006137667614847680069720874397065815569083284923949649180540033045242292620706067777978630854618527644845383086770126822969876046198791857064246856123371800663359498544425071467654683547432379511362685326764671412655730998129715213532915387472395537680838975723519575151073056851773326351180390002379156607824999514660242538033017113943637172656548307576984279851446647349339743098692597523924880057188107736197114653345450846888121655451881283470685954837515756853111764333313701702722894118821190301219382809649756175811835630358693564251006017484640662872573674677409215490366643813535062085575886569395304345900081546619515609779397478313254136056918754994851097091814193653656965238258743970905730916551755038440312864177537685041672541030237603915331970389073307365799329826931347286593365183616316046276130108978577436559426524994259068266137159838087985713452329916240638651727376846732462936661085197306161823266803117758979020344883362976578379516892012749609577780621432335978020451027551710147355068444873932425585807407518260157332715804137169983294837068766494036841012772425307151920774795831288243843863309618082781191129715973282491937676451180176348814661593270979528558242913730773920308358083213779819700708524749900361130197807868191606083364061970068253171666558310480047033932412740653886541755522335871177708013289979341313050758295115422353083807988333133416643203517981743976230089996893737112353594324893867761465968364060518299993229748341109022386297616802123498515450874799294844931843792038606111667027336853561692192688304684732572181008214701786462256368392724961562913085142853338271196587184727712039831139804850288708959380740459566773242614788937973914860608100578574347237681905628347604274230886852118676676552428361274859133158265086336399902930130482965906876279880202337639772387412664011321753622230511444202628250133154927561103672833625701380435733494109804075497091918149629845756473464728292035893301592662496025545722311513273617465700682748718280325393104123131403980897373966755876455380915564659845502586680916964903080365359517954969848164660723729640088515403459856411354346753317172223471461533223176809088106436166845275770542675151174571489232358215790292656756760679116541058217644024249568815582476349518998995400111011404643678755266421787797382599512928296942861159637385284304664881903567275273876578459427121162747197747042036058550917197349028528322090066611353648269754021342084392625813790595754298171746758973096169567063129994688014942619547061311662155679259126549569320734664539464494359075326130327600950910315832452646413514156782245172354315480536010053508896410993784313852826691801019021978183243188699168854439602676418630242244587558655483814032799039087793515963464339835526346259478828404906337072545577858413112426387712418871022510396454443930104515384393899067043775195212552683936469997782825263064327417420992787557981221808335420327907475118834096447861637322171904994516237584600742574118300667120531281219196488955252570880196194936884753928017045049353176444485807847882450929125428953751483776236567754204105959550263373589022815752600633650055423790139803594773489833352131248010650187505591630366541083542187445218875733887315828912141225782365630726769358829134678615849960484263709687993818634769845592440225973663718005163932117081389994958679993515077836867014786603181873734903078100183792062321701380282329336747695982111458706628480535997060565356508778788317674153177595317211991264741232227628696493421755788803831658685327112055466099592401654463046955165323171992638161918758114939102636773117692222005131514553222712702582216322914917396244854867292695501993249536948846551063748521533639615059962148843960527961194095164573536615933706288737993726498788132735274651548217920079614030925023086521910242928487356004686268810227746856377840307824104412674100163740354908688866547090018478059469774305731540438798855071010000947130801126603931216042513403945377842108022304178529626608695625062824490284875447751651877303870487546768854252755791258290309262265123012891960865397588743883546026871380241324952212149916108964676303346693322133978176285472553085354808150471428940985772030969486491469701273015909774294240444576228648552805577973799124334694675733234478287018770253740195996718205350134573808567867636683086312087985156932122202904265190000615782455650463013361782205881134168906578357614201990138370851588794824304796492904085085801686474361604515467967428952991806954501088531915919209640487572714481563650616711903252016890599324435014320993057525435662851064203071289541458853308862497207757544663339711866452777585362996291426950061824393476501905026324213155733231620376153669282152865619610050514569272634884190602121054075359215708407654348909885192354760463414410692709836026008209358303509898319389947682446683952364542265030856814293559933835352447988652130260469726803499295011056698429376774475811440299823114928252969688624397479032421457332211294599255951970755119956886951214538644535276929884175880689822846424889066444619707127148523756882950460908454631305158519761672722104343892439952771910741679670089417039400027471853553729959476975082746148703006799619768755907850863304797015932580253835595817460224203781542907831874496132149018235181079639978105105230328564317071709198065000524490971173070486367874576497739951923461493790585643749829870140105934988330673298599835210142833219423330813269875248321068477911517535982192371913962028608239964822593836948408200888776388664286805347175273093546049778364313837265004041980222077384366608302903974580487676264175557177138124459092492407012403472678184170501311147323683474683170686709667721870915797369957276078101669815856771117027785970158371149637527293037367374659679440880595770765670305123806167758486581451861672611331832102234620993733112824410586325845683764267316714045673042566159847199990702106380187714844039617605161997472781399527928554813735694382338776209998148048026390504176604045413294692505272959495453428693394095880763234511632231697234441914156895938157268002161755980675229692809677108893493505028044897493003816234276358182486500539579612431886140707037142927870990116331219945983517180134113574819273147057925205107335111423429763035368198928080021778116610268495226483902340913382144288239618300545215530589680970152085043065796339912654414249989019749583077630550961401846754004749297584450930721915941994448144235971678112688259085668117913806910124366044069847576118880260184556532706639244112257721951626888134371787472599001995185387784106828132351156409991922063312658454775684452180252460514366164874971181663004009988045141383026157428053790280482734738946029725552542401086191577079250462795457839493606569485037659909535988311423487948834020795178985340331919638099024574672274140188044770328547238186532700947831634728563277204414890952434974562280737054931675332457527197179122515944458488011690797198991624660839760785597327462321447297450105523625256221278927741029912129133260648770924929503638581975287403140901838803565290890495782325993833411971819088029133003564699305416094662634682460314568185740717577452407103214414822988274582658674285678142043209584513639286889786635366125972771655365564050966620702375196221230589028726691339577095620615852875921507514320578434601402714321576232001862291614894571773433416396585460809498215257777933865100566037449762434166862656754284083986224818332315205327497602878075465885756462538249899830429501297149713377365847867993541144871930473279661483458340425193564208415575177577354934374834617182061457545374598388818845293635039261337243290903340643313397242697899973981630708314543139322014386425406392070808899418765579569204913489082395246995133017781193711739096164130466361786855011130126899994401730127736596949396311978191410924945463878779649639494731042434369739581721246178744649385583285016159034519817109227779959711864884331575157868192863557059426811205159237142904253147905824688327180939205160658682778692082011809542694909368465475539409106806215610775175939271077154045783315755045613722217438985417894623805642281656562727748291417093738202300659722228050435612129409313595427712898094040363353065682008723729482898403965484747871967518840175838125864214589133691057325989297963338326869151086810890423093640830629105196760066188786273942320870891940869520340856487424859571901471350977217103084547382958152716072183435694537085172472158932417499161374235377488548883888682785960548213144515381388652461622456192812836313824769334802390075783919239516805278409182441926393338117905585878583427762663171569716614260650973514930379671250797377069567811336010589470601456790703184240174747257364358059480845456620875684424431061014587687009947833191794692701090857929072258924540987193155957338291203394239696393855864270574419908553002485709851529422545807095018964669791505161348391771079695434295655243133681207736755576091717228753059443626609835164650871903649648059539632751554818303666938631056439832987313925371013274474936798917822396298833507001266916093883835680910556535940868159891084519819059253357675642414592807515948934102965533276929529401994932795282692798219650718827329408768105070669602858842469869626398449868613462757746765800727813626150033112041605170991036251957784487224187943463443782762773924927864235956224262776545756176987590122744997900022849402237047901113789488558090343800991692097212378931066255388997304045443085828951664261737420288434703225752162825450753955542233194827601682760641673232774132916232543388084857310812456184668607603529356882377813875333246642233545210279820067939094384489352175520003736673191240818437666417111921635279782550335965802628399073045914224568338381537380814992605711193605701460081567607439811444122020988154902216281804900303046518640986201903061062102696703837841445364405578317162701176858747824521794746035205190926997419981145005946588662695176760066037605752540812605804693213244908621603186297521965325444407432183682612854658781100399638032722284081263264713409550030912905572772162692828539680277303802249233696489706273204505605509929035658067979489894513447383454872704539101222695956421325672782296096043798552599581675219398885667482546562327197002038758447013001447940000273970252895611274880199291061379584442955554843233036285599683807077182110838673308931834185666231460080577163238689490117853573241216165103408332692701749840815707705073515857185024907342506762472391426191361209723729082250456831384716967826278032383655753306968644432658498198865253489162196754033902874963504221450126918622943903737593496268381589868196291406379989898789375571989046826045407099091015893520183373861377640686072257607188873619211747518177444620690368447043408393714698444231182673206759252380093127795849767723629427269179359688073267564287482925335221202657671006168020029769571814925700388917513376472209652178862279779268904866000721133507290947191066035508288403779519176992320279218876966008761274575522874920030579771911032826051943012864542216537744897208916270604923451030106595670636994658494389570615145705626320924844334782340589683102431969553912053899419461722795397761912329724725873964440667401057381039532249847350809570598603170789740538345175133946469414170009857152211588342932639494165703931833671819572042590011713017865911675689462207604027633955022166530892670456483851223747304490151514946867129042346547001363140822882770976389082057281025694725247207473467816036578459026931430402902524084396573909425112656080161884321914375516494887134236397044553803614839982121703354608984950714022017944168807236164586902473853061100422114555761965634759399812897163600764469157060155613372053461545309045998918373791853924497041509799171661652813424904820199522695660415154797012553186163503465452264753956673719769577957374273249278326002868067680582969250154684294137210782001782200294162541111053112579213245074316714534455894001338450509554659331377432445695575337977873825222746655266584645241438198068582558330167480801768995246756341672393883660187889010677439936942644895165301552930004468858591438802165185085337213170424114709518453024038701842587335328770564478572309008083153827154218885601459511188030944491288461234905710965645128693094395831113823784733461733011195024663155209447427010447303547752708493295213798301267842535191469219932941546823762191281169740127990381651689808328267618678957781054355398759204520852565962972087609889053925576320488778718190786279068028670475215508346734233713687909864848352093675540234296061522958507236960655339743366130126181155167023951471626946271491552810690177905356480489217853693329642167519029969509766306094156116814737678896787849219288604256011267861178471797291229987499211342087533943116284448835719970694031993409943320766796399737076266607018975184232675160600418520403126767418539445725914178461826330008527060734709739736045747275129969919820074197605978323066484756452847563625367119160914768241411846012785795514353176091191611171080682495029217773836527998761523410509864736907090829692353918147998777395954071169331639249600174235409814838352619410607772759023561484541251419638981238154530660556535945672914570475772571655224342915005828007441001481311881169994852084534574600157826955375227879553308209302265661374832056784066276844683370666426984058972359372494639160269054140525716868930413415746216504142114756182767965820712242891524673282113479972455236828355731202792651182687239754248391472385016598524342462128944547292804492481193790588333633879898601225469334627652564636981499298670652527327474377511859167431050555660204420222580765474255740101946325882022951988238487573072432210682799816695813537164498041147795055116232968034420403947927014566021335824608639695645163616508100564397927681278433229811673189948714785569472092304671117667029739724417715494004356186682289550576198510112320265284256390816656959165871164828764887555403712534951041538616340255265366854812112211990566619402053950909590354852714565846711513248121430741160726431633072316108387000001165650210334377649648295627755746466022126547884629472920375259977499628433485157956662884254993375981885544528613024170887916088257124341035576342406443075175967914888306830733186096104947451177577205889945562731591953735709729860928963186571620506920018771942580821099432111170661896981943754543945414218983510086349741924524434159314929443793641342935018837450773811719829265218501770763151660793213008788585627944487178428669634508649926027637026202475751917259118374337184322634314524494497393988009675735721577208058249189545909162974643907397427817985611494157513258382723809981399159965170450085763843245080587833212898130496103477603351620238886891821756257890245624969798873241546726268390989835703315883314926238258011418882930204193494510907348376021918820850037644201199633411047190152987304701320376516326662756946176392591129620016953432543633774027033005847117171843670564315870095125687377679021988383565744773158469837892205525871341842537012185233087550412265452288475305677631480953426248221750171433941727945572786317057849839249217958774231424989340638606118937417833862432805460696103882627187346977917317002962849479741115251159319447568044949457608415293406494332031504717970141831022576913361894475866179193363347500882291304953655417227633279453192615516340231647015171447009369124230374346353199261295533342494639803765776331600451950736138984601772901989699321140646235028853390897193532863406814875437497417964051032110262280625133124480142736994889879301721354284602324204527837462065356722242411630455201423513084577864060773020987889745821083654433072626926274194978530781680604628195457260135261768450507062611421988000085785372495236989462203848566936763458177629655582566265746551594678938704231544467687512766168457645589531489599472828092825320825222942203510574125978720875235992643046760658754732445625065355031880648752351889563199425446458484342271756994286408951821883826905719547045388008373468377027798408024285752142286172703203126834152767967655373937983623179400062241336751547243082499735013593000143166769159024337088296452751082398683017397693848529803946906285222353924770980943382505328710368927563718106704855675118237838436882382691073649512424761790277146241782845953646921976218163090476301028409977083307638573969539839741678663179947409420034976730239798745715539460209930468997374301802614352257069957049411445203103772171623957003452574403273052690623146601898408055769281723493479990629796834146751148204886102514625493408052943735983520726919664964588004687614818703583487232364150803013606224614892088910759091020378059912165895799241595582680016290079835482319768731260138515523486021030780069152992338301808647931015870613446451990998724148451686193575930599725486151395971100895514497350642344540966561715313466834981595199027697035100602900842477950890814808469032522486569882535005706175315684411905595418681227327547193235209192662301920386577300421243892166700072995523866797418364858420907187110310139985330188992994295493588881030934317472897749190827773037947802720221311410534425239516285312160109400006856362882598398969429884805211887126765691636426535867159581363011208645831197777984701815653838858528429974828482917600199527852608341835839464483545527212033466964672877277128145685668041932297094071086702165438547887233237415651258159190618979840110021556855668398480136315666247423252067997576791430351912222185906050922409172552644916553809608393993319643410418195813436753923566584380409313768647836419682480306564855797595457377463835283223828535959029072896037470745351072953019583795277002889800551171954689705413568387392775211775575083073320601723061199485422508483163145053202569079153356791224587887810155246903397034481101101910417736478163155052656359582783136205883073913884101137368694926427591327879311857395114042552140093230560593660123949779045731408039908451654411593333904877250752721473099855616272774608875083645613167733013780756329614499846995684825052614880781499488031294909668056246224061457095485241402325868983882187814187893835406965594535269705401305328141723433996752796390554675816848177897935980696455559690976201267585630613951168783362647248025059107575816993018658751087240899591613941857143829104128446262470030546870874543566203122733591724890256020389642017683628673727784609516350062596661361195613803018230389326847504286797726023426614546688887380300510406508624932025791961000126928173418605244167712129798368378508819701945358223941552465012913033270248284691465907695465049324681290890851564583890386102886753699628276804352427198336572841822794141279192064055417270373519754021317716952393931035894237194524208470594018431147692532035833926481238000291674836469578702131463282567686167042702694978654076103344012170799310501738274852314678919961561966258252859343766962303964578510280938972953658474935374635370166858129864479270456911640796646071373798514445766946260225491929106869140140218820640506016503208806646712186587746925854968009508553661342062999512743991791396429320688417800694186869023607112766814554575638036303949853697318888261036768715985016719893854920609151636985915725462064244129822968894916043772838289394667350919421519346868309249251742415285183414397533706824810195089567605428087799793581712391996176589017860926866449224152430740072814473694111258467113569840061542219472437483870929491525140091473154583774224219018709307930534914714786209299634002794343816686048268290974462307605929690110156802647813318395203577888804447196167402324831573128701037820706040106539073540229553305982244055386055647292789918628613679842290831749997525451160173349474359811900775621969966240920555046274060368936618259367391228614224462727591310701141432424873020882508608385461109982836370190113906366762207457430802784731782149995043218235477910763880801774698332912708282432736273260024086107337174544609068180146689681979258727706693703725681837525998714943635204720885645683596152617773143798340409493000523677245759227373882770950744691703894328058690086471369707655428565926758629445383002493530443432503693431970541866171916360231207079846346947543669810990149185811245966385508388729018941247443364052323149124072349377467854084895633651093909502026598893082370972169301479668476983940349920232104783777688792028577727155837105513033424342040989627436495359249593612517234685341231043702273602400540583874787725029114658214631781255068246558447494168965729641277864310038013077453962462321060005941382229108350021325582247537845926782520751282025417966323340708728295306188513779245407363760927339116611188119729392192328476302842359066680337041988462246072488314303630663267998028642886468283391906215648302919380222230203762744612981771715453603078800223866559189662527703612402470142335262568777008291806267769284526205927208473920578204901691644120389957519771511658274071761893334633974163005334358377824125676225694594800351319723414111662184651963309601016149418469248000677006760548820667394512768186481793904204619754644006574031223242063431065259543663369554272217836816014062890464330346618245659715135602733293089047624471300805872211770670385324469389456196616483201685266519754460027894356076057938671052740072920045420672078304184454410841201502159878139914967611266811115200372539505877804687418405260930743476369321459472221807975133397154096700712901093729314545818863517608771518605127910403889740886198950934694730934985758353032647833130788067049030288319657094184829843844003448939362927077855200300021835466304114509811438023501757949974019177308452515911664124379667186873553258711398976018221188201269851091265616184515375872616503304877948288678818523877659236660881625431018872163152810300949068280519551092687603806906946256493940378307518098429603559786090253598968135538205331328537339168883701625565703570668972363510947698836464108345958505642722649485846427141152694109640549093876655745346559995885199025478667750384893852612016854798825022939687318940500746859221656101992269659395652538893259391408682411575346230491872371524252613653999932670437636078951266768833401969701490612439787226027743834078146322532319807206944563776966738593979156723309204186328224032427626064622186292277309386192123765171537438273431419415613042810535790699110210326207315540406022101199568155839635108008942263044484186915185503759651272286573427090091184076162708534864056792696679587228168924623117113405646200746588517444035375099876533060163288672370102038086181624305657609599967717259541512128639634044070045949883471178871372820960605102798905978072594004653709263351032031504786148994246283798253731675265453111067380434838683478884581660887876063884041305755553621039882140746369479334647851946407900560554644655735341026955895707420966114821569174208513951207163144101977817120819034773523618375992571246255238548029598820066778101606307361356603946465476708279963106201693305524710383179998922297711128548405011782274064699900778331604060058252230590301253594698395363706015665273379770466586627756360517117993432465772854674172516300516065334657676523287857116431476481485466614162231134137487648259366681553314899831050195466445753288749521611048720883545294814827767212668763326435779160618946465685981396468588187416780998608762270112280932488352294029044877835267578234475013511517181063320238544839380800960554280801003659431437271694886605640084769820383698345713608044782129543188202421863047610933700201257889501000609343361376511862069707532662914638867139130634419594989428538008012111811917744338749509393423521072805786356032734838265872520421681650318997536851190552634678900941711511639652575601492261312408716396484287340754193176769193628674012801087448836339459453400926644128288578589757576655019240818873798585604443406496696529725237643634343018699448406444764578001012642417623171556842871825822803376581353015272770347627390507706857759699250389803947782135803437315637072957374874793185395259132042242100273591424385511391813092105758733062888320483695190327387272086981976791815534643115700547098578691287731348784643278277232220064876690249943582193539392537190205904888437258461427255250174549720106531286205990333283072948682457706856867742001995264701162266218835382897661931076789327886777172944615849930822748437966902341868811838065535304324374512871583425155246073421652167865784934902364236137938210880938161763838587019778523090550712438416473386435067299693101523236379019050342279289519474402175299612826745157514868839672211940384026662655771256824588712155000816523862753695715588890879196743765791608392869050601539175892457926951307846510411211900145964096421256841725717736536701726093343881140073795094920859230030216892031606108778757701505677002550134302979430280213422919625438062021996612720486719838875062453809204805695010349597416648698949369530706345488755622832008806253205917305083245863870164079527284837378465628154717264477860527911424441478979041761359195495774325920022922738507519881047421549477016364003748846921002144327476580001000750734008069055794751232051945694373042605302972486369732331667179140315867794647203929389932808434704987442220895777918959520303749835148203336675452137895100581782842053498770792003389435192106911168368926125054814922410412062384338458200309390451344869458889245451640983366574873542714877884731828138430038462618759316389154407832436086019910215180317323190129580980122438936454487006355657648205074877088675874996057884347635904065426436341272263751471676916865399430271206158609052186036498416636251201037730764477002563103189138340728866245256126105280490530576087712913226816851326608380837154641112837530640416181263304891294764979911981887553632996047298389731249372848988911803524273721674290889088830285577611230262091909962665295395802350292143811664686791038802114028912436329255898435526297765506424116917721149255146829822239532567695459798225594148879590204336184732943333610473359858769601655195287147285389062137927477075390452341882823077420821981561778533549331670709659308896121594362328123704969297790186600832862007475968322412809347119276732299675825037448908500180408077091166222867985001969405261378475822005639089775519742721708563485465900093867062409698196774429595099026339624513025323996029829690532181577073842955426178786619224575237140652996326526452996369710766006360879695404021575651760198936883742357496204751938307255190700054971530283533665466044657049711615791615505281275185594227282609235031340364670237644759456720351265485505691924554261885112726185026269993501575644406024350769879697858556881340432485896098535421726058907016978313743329158085783575990144717146093360364903418862562962019782992803978727458088288402681261079868366295717222386344642552999969766500665950151895070838754855013547597706168718174737452275185567398694581123658630385996258414330710844421265160098593393220901562094944921652375161452503666760317651758328581267907405011204273385779866095005231791663850904968846448005469630007576585354633769542970743092914609870867065836488917552942046532645219944409080935153959555044597230627325092753332494628375876537275346099661934830177006402760953523948422911714700185259884892966470152697899488713975091338565035634557178460650719782624367819616263296892282785761090207583569504939280784961151722828297234755949147423625280852778231069444261524854557661091683166491653754456184340809756275173965000906683832546909906076394662340383422200045383124516613622442160302749120373648007822048934304675070544291437465480018472333721228549627372738253510739501894578673574464254057206820719842554867434810965877903707318300356907385162710128574536834483983224603073466759279027532088248932773531662897311935009419803228415963315582579827546449496922956852725182774326741538665129171632691318359676331662959421205431780718421536207555547586962250334019323576165139217147121476074759180157459088190570009378643293277189150830014728209029881511471853859970093578398109430300962555027357772490451506932827633564563737498769384995872163066152619929987320124839538572530116635083851347426741130236003130493127668619631862890033141509101086198166685627277033973649462936779507409934507868166957834931655964959785458018062411087934229090112557045742252226770316436828823487880294308683247194797136262983135269232064677994510688576148165725905496086383595053892820719221432669173447248309568696393834818654225006117978255395424580944939284904838539650983003273268896639928420810641116160360953302431182240345241036509992764977553685498454196583738736829965348670255604306035264162220163320410589979616393140920051661069561681573883394267874704672219847245287297480495788791239986734990947041818649251243122314215846893822922545801143799628547456330752602998550249776645916948062670841472985030115967205658249053028631348219777935570778672307813435676770418212718823838148839301088847256711919516663082767178002972345112769962601280080876367926817694046516251388101644886365558885353995964214359186672976759847675835772989512906982730335646559732378452013430669881970736588727127078524354123523135711434636949750975253774542705514690148991591998074853714755073782569105526375990871864553645963719653292968761195934193528268962886242311153335781188055745389908937199030360658782526377599773644788763836193713002550270700263417511715109628190616664087124989140972750276414137255165780209005798030237501379944951372548015783368179368681527801065852927983248591446696903422170045686238404780699305600762113059054815266153848636744084048283783443673935375698597965426584210998369713365407382348796338193979985460990323059302547618081478174712633631072429654920408875003809306681767040531866023664003510179712543876950302742566717121935554785512166721338233992248068125882106455771244608386703915509580605244892460952584556992709623419449781902909947023635082158956437547387302464718382511690121092576669859565498013070077452065991516722523454756978034259348383833105203454649906728268756089689880837735371356525865514318996854130085362424233905664613231035692635547022757917660964514714018629389141800230457076172141712659800872915090746675742344545133623015148364263245119913687380776045951708206202231661994661752951271652270079424648320210252033728169963735034910059474466052314457111497932718023976328167635735299329548322684748311840521335702212644633829912890911513403047592036086680658049323073222010260850781712228837347604683053364842283909574757830778098002858999041824191743833439373825162002763745797657466193996629956382887993458231695037530109922950058002369136609029609520028072083964837161030263211792093537901283323462277766948788661788940868403429084815678179108229397027994346259301338610974797185331839115048328614417589070435816379945908800421657385955389243483949759012522590016723170879163663777794310256772709403974684240723082635094258463031166347383756713902096224121493230077341492267141880325227277137858922582743397418566146709610905221082328322444922455507726550090324220392248212159541071170777481828111384414325439950464030402785326501708739807991743608741450591011506366529774313016491930055105406440484358032841233492006610662336355021912025102595243140828203469021639402971697520609239758209772447807074341396919927365764852182336420787553648083232589432454400049206753754316057048199641012437925160294283536437541891579282814791008472513655487702795615356222412593207219918977262384297350647022608046272999687709951312774731857377147158036370775786270835614607868298414283051210775952089873463943661769638266522814536480174410237062242066257839697753444873731977910265218631926120308261770188515464566638698971697244422806563722493312424715685394664981160125573819524659402740146381086579869548228728956544662913351884849461567746300071464703937816425974029198331019377451620161634373736238966670751356380825146246840653941029600877908607747020119035469344170228806617389463431761039694801190805314933034755352125669812119955086659069973219414364477915949327198055201497636519085594216687767409218820965509481450046194578960785485599417312913247738065336934960173498008985486109120017510140741200546343778364287835169329121775844234939898549840801259408139374251238173902807538047902774356005633126393388500451553278725626497037078191092783218063794823788050413229202155380237783338400352076595909855098226556585095807418652676322442029718266041415844321061488922432021239739160650505888806924710040089948431941565464796178394936805965173137336763518528920519484980572963188945035528457334754355843028023715948027466638458602484380012757634552225512222790902034166800693431765800081243901048214585565115403885944870151227590663633935292688836748816658391724186334827378188365139246560224383482308630759479457989785928609786077911556496300007053875306493169225658383241417141738619847962281829722032610657043180016367925429563410846056024437775872984627181200860154385528480760055926243307862191375376564400598024091578796265154077316945295411206563647487234718335845034598662819764672587970079126048712242821668856147873915691505695626862219684783779845344839773290169397571335434531049536267083063278834813134878715286376936123895153643649069355210294704240096112647053936538919796716340142776591439835160615983043654463561623983745418015599920350328890883621593551236063885453619974564065768579841251207107237961139173761222532721042521504249868322950098335791162069927014194433169713621713069282782870765944497908576981912614013733042945123521176690156127737529287888992156483711340568131970158963007680077278916156636105353414089625927682125463250454597149482420484701459877997804442955041110544455291887407233746472616532597256756020003562649021110294666525388513495507261693691812970993684359344970547155593190291054967390558975898042252467911555596346108433302105692579674307230819246963549279572939011060260613691487858471253049026367931234896042677042818022918874620786533064870044907618861717622573886711581950767911408320229184713438916266165549089474577634740515279468758995043641478916617126534557596004281229912888671001823013463770417867592976238456219263941595019570824405578416189735151005438941817975317435982095493569960457117069330253770468490062433739985048302523805366988940454006539069020487602061439205677151432651895386734429082403027014620804502793913557960053109895391815286201176140226656589490117097897781062711181561684668708709995467237361635741139007460423029240705050431340786569710421282708545066230915690038426423360211587180322999975771611510649970119852796977686292494445581079649517494125484119688908938680295527673776181738466242928743483478783646139213039899413927961495101927990038122641957825275617866034908000892914829970555293296213961458826471702836707802801283084389327826409266447901035765234621636563453594500503007933603901086043805145144871228624447147639973322841655338977073783820368450279586743361344785833996664652553482548746875357674525216238977869287050473909868272883892716542475689736875942272972717064249883269204255873844544074224669565453435719661301684635790788122792138436407003155597419044499978348173025067408025032766551562480900950319764192815874364788529805348708162351655256839125565022152606637735026453158764109100657454224102246328582607913187260726053229223219678516418767334675997711009529113535157384005916451373566958224272555318560092121507471231479944716950186671512593414769499126284427113125365053342415971496568104513967375922425996516148924227401690397191262515287264281557321011288458681970163291787450245971476716656005415259289157551083289089504247436516963845974673511906105566053285650159641378179425848898008629336853287959204898025334265967295325820806015689657578362744526980276841115898440029708289334029120703909485223892879461963157223343024819131689733848348780033722397347489112339082079160192485627993493316482266205572343923315601020342458000841133602783399541093708329392335099002982364306352074318445525126966068751626414925831871638629015996345615720785933621497808490493185895305467069482610203750659410691676717286561596192471363870662783016518767720630833118391489631610810297777737819676383252661569779936230824300205199836474196261579503998296378151857604340170935558391950896109314265935593496990318829745676763332335072161008168982192193189247574616089806676546301540261098076484516746961711375372084298934803035069845421534980163476733260536269207635120796637136569486233330326763683383229323037912217026916195892552033045190290527097048422260041522473182382826161761240553814300144198166523643649864125519113705583109097337608799511839040618301112146126783793083333164358048636182219740294205516170630988131143621194652039125102622715286544786219884904649870570514818140761629009703340318749698875282803505103041254124791601801154812977033225138950274825791056323249758593171383913693814473276539487746631353658139930035475918130045002668894006315586435866378788190773752610593774301022380520865778269380725061367340841296160075667975758901566672170836840303992649850111851998439812475564493673311450500624940377295112132539937161285635375058935021038913804088675509527388172344398962594004748902303531578664881854255819639501948702833857676952246271211440512122096291655646171418061125485753596830430906907117530414621290649596757167524145859864305692902069096068938072024269476304789198233715919042547843186917612330208772841266701215547156381423926652632264093234511476903333775048163230845402499510385710741004887916098798244931885222294469340161118678648764862927126904754167499615288670682542076981917734040595849469654044983787575696326137890535440292723790536964788643667161496141920818826510099619851899174616926413862534390760525154918510776108110446129967025787963395730824212936665324999631303190393443966159306188412513427466556965037995370362245176676382513925918837939578410884453786084946968850252556785232753574112133370424447673814121151998798562259354089907473143234729460723552206560699181630954011217780355231076619866079847775474715178294230844086730576546640571091128152089102224911770707042351840796914678435801024015303754465595938349204212018240088993070279797388013671038357195206112816458863770649825384842569073369780767057494544988958987388686790965489672818546666088869706429735144374655170979868678856328426775211340895790658076522002550596702154793452715440329853784322792570027692577125134416480453575665344343793687305463918151933826715181465084839508440466985983079113405734022475945705121104458104952664025179648555808559169579661342168146260692660388828014553201533460480414059930943753137707458879937595598725858603172219478557277621805475146561542963945069150938443476669419523202395821937922641215054131661345114918550120079757821630857853315941477583672647344759213013690181765722699794446933183481266130176698423836654388895155280488079558867040674797781707401921519193696486870650807837410583984878391240539899794236486040599868392641348464577421651855695793456171187632872874813416813083195100102746384209694266087449187971602434539054140713748294015446203039525918002164409069678000624640404782235541596702542862164947710827313170818946140477564622264186903397565050506965845140595084939596368416674108182781478403778121649730584209895109089107703631627100129881774999329103672428517458273251780759144377231569188656723733092702301424559006442241366754444016782482483953872102327451599687532697389394622443939461389367712384793978767615106944025906365970258999138418506071925975017952198794499329341977124318047057939065804362599418787444188814879835477846021406112219432033865738590724896533737198991827238574030160517671945249388412765314595307506943336349793281079806979963688666491855288533941414858112687978007389409266429995526976886547574569254533271695085549050107507282018150969819971480579788890510760867414692970320066029477291711540816304601347248875690148808616806059762648519086980105733261785847849309146230957874031026798300058247012054239076326453980418886612029537458220639142151694039270141155669147559496152011424360722871338781865432704156394943888430091872712733165274929241041054576311826107188597515959922560283148471100403220126322015228528498201917442152946236530424218649878614806368815867910324506846835488820045978242673007906839462352537910197987984287220251128577734108623983870084128178485221006489840337794191719341033586701246641929443827357709323261993745156153514322921956150590751704831410083587910960773682784949537435898597408718782215198649576215369172862551706381140743001124396364133877732012552817985898604626981483341444173169184275069372623197955904050498826425811214470838250179627613015873580957564137546695237456224106033935542987297198982243003628026846855859443017350389996953569091110385234711894470712434351703758114804098794124797764735166946050099056126156565841371426526126864852158712422213553368870890694643572909591954363515194730868824436590981330904733091225898736083190656485262128193421650458424968774292874871142837673433301305318828693096496711018602333970958700713165299955154266930064715021171226135659791888700040794679467424130917569398160168273691867416210855589413080064246109279032917931356720589472064662493267862955849255291712609073839922712162185427229625745189601075419666275986425447687674691808312482762751983678129177139819742818039811901615613082651486620436002902077583026570401932470959937698028561577761931112883074716747292931516336759418684574015028184273330216070915209062166827618550618221029408532456430585060222509713356786175537104811626457576135081042196395259304622927490291489390316854049885148519623714415295454309981490876449181190502602329199933358588617695135250354939947391134808809388635267645355463773119991432429603198863554769809187936222503715435420408863322051314756794224735135388152185724837312406837767224000019611417451106209597536162183346676889638128746902495539666310218575808461257930409088570263463029602673889368778298055262302336707499671319764571030770294940502208691259460443916104156935409844318171904071432473081404327290565846988538824731498153767530538268098069376070598143146619203611519621873029846776561213906698984714649681443573576903310599656190470125048530159449470244732380539644398305278203645214448669638664041983326101084109373631363926520713871554625564727108510204258901270857340927490845364385360966965887837697336809613301631130771200564673584258606652667232368189367585302977127659414849905546978245046563915979531085920859782682461739341618691786475902732917499694507914652558992382829230123372609428972833239605713999623111414484158083454675105174431734742858793072281416278643302644031723605255829595618412556595346347053008428684001141043910436663903509511180929852226022255319594695826923472590824303891487710447567208839100648381100635689574876358592754012442143517179109331395256099827307307071165277647968985105831100808196350344458623969111102344708164157409146127659793221738749542604104755660372483951236313651153148346646114474120762696379804967480771209131712687433258872858165899539616736076892600268871682652809118167650844602525131551045323211517845672397183736918909167775236091842615434990201730745825869203493509941003436980335696009947766084505694813713616829643188242782223415482014601328061235791981468635798273609095610324763208869298078125603497144749825460153962122085697797393200298424875239150240498556336635109977868185172918448069957818906979020503064097594790258731992421952495260376619418472848165853921721264911670292813886127530716265216587840460801308173041419585804678242610989272853851632984577333574397205118661118908214504874171927381385897291540652390262573010910892844162984352866717503115411952684611077487361039137372693402481661991819741859137781573032082081215914699403913111551637125354510661219029476674260817565262324897949170378010257635477021160678422168981676681827677980374817011820727374203359713285322944645188242779504963118304448866973764191318728867012173394728663710519747890935961715930499293052889594105175897546870940740207727451863125125395278102825251300468284027776685506530877901113296213672373351741587245542964846747406003057494116549738735015356522209509790480440764755694259526053738031364085472424988352039330660268717128595716593274426314417107093130570930015044939939871294338306115303622696928129347004374477616273167345011620364303469536790932104882790438679162796256863573120370892341837798260204336655568093945457788489849850184307912904902056498821136486305610790067527377594259094814630366878388941877075996769110648643803602842649197169149284780860828106304690836504982016615146983236414429969697523207025452528122574065615770893142460354751783305960040547051601586814958395235846855400214928174306277487845945970007472809026037764025383324876755605811385718752329807619064239171610657503954097803293045000358125621873755800387085346620036432503978312074233629467578310290430404031190072527800090415338950424362884339380146680353563085674076642899183663248374176345126175797079414271799141996971283465079610226431601904423412949115087945264682648620047662530951354211169951849630706016348456413990366857045572724976126810371209522676402856818887244037594970041142053919682276757022251573675918134023719151085476776569601193007925101989273108491251404573957830747541033719915724455307945341724292045413934058187292156841281682544867949106079890443360967291922210827905399655685521670972321759058485003973971254967464560427228415544445866027701702038765184801558544715116869068676377670335837521838074386960232877366846829567837304660069893009517791722156993278084815993740580233455989409324127538645805800982418029164439285146751484848199702720919665060340725323750447150518632053557004513117223842925030611693555889520303838703711444681382862493254809330293749178975643302788068322219825903527412016233100067457595360971215335891237646859995313245971252848509935284550716854500303384596091887947951252289974580014980424831741494319520028576441404323543431119633274908493577475634932119857185349858323348454645583105354950660250902059722273779328682491566033044942533079150068306907370985043268415689074291298189816166833067049233098201109756150596074494282785823481233534095985322096124353940400131183372017467033785118156377936853014580151391857812539180236712710191022101885740913046119013918471102977937612745334418615421395733469399398616053056773461511208807362360509154908070772764332320090825471745627334386159937307048486071464485338495518028458679305261708916680039073455040373674627777665074961618350501573862898998208024805171924274122644195247490506637321846905331007033019913474666874725922864601668425003686245082800830733740587010177945940185777864318312194807513504898529734581463511284695148732796041993754008476795766994361364760131916494407607196340769306564632562686975514598762461934072410411505150719754039498160629158901558352645726235592868563828548266920022550929340529484710429635889454843458502568367135850253917180169715911065455047261009738786450932864263107493598920427199698225102930884210699377842239892475239846118641279786592337229033310656192028897220384625849435693487373882073740899668033990381480256142481988522562839627375174842687517893558932824385954471211411549332237468724279831036152411431977702649678138964768557094171042198200009773920244291541182007349893615227079356889525361783641173304856226779163386285000101982255428856830532613092075018702577870097454366616901644309030607368399907998225547202463186120031334787363825779073613124232625365659670213506629305540941176523528807848751519035556579136738062704986697047580211136987493928370018267734108549148010986085175169136495381379406903355032898274193504413058852373337336726468851834889721464707616484492378801257375966811166515544610559636354993774077875757055349941886031881046738234183672510925614024187768276526487994450372659323959907450825300599998494201111486054100386795838197168902710036096314135252984897884316116798978719988590204826655514800939220546892866593970203487642931653960467560838467334955990780995320698770071654860814586284643907035760829469353263501444040016479673301743207693441716348522277182840915065345730239314703350407623345749458841996999640694185812102108559576387509503145111018615908985257930758684095020200140015787262370036807007721361670391229818019672337090650103236654834721035792084275933439995661173539562300146839692557831813811846134361317007600196838047070426727135767037927056409959378146715286246083198599610693029275664485323131074982316685226693059921524856162490836101404571839926979553009094298738527542122304479284314064694246213434676877924877877828135541944619686192323493440361674804422676372986051837673044763093516591364898765387513709918866745555611016146217407041024862748445045619571297514564579591164356371669065452628948308204761972306809532136174945341606994392253674734146157005728063431659724857544358392457457038547254544766200360521630648855119788327455873123350926876946280586312029401298628418510702220013530604912057420722241595790790546486086652249553604554491286274385649284375512295061697233250869804980662064709211330062678820924422402063986496314400217377547730124010753759940623596229586906080348798192668101728778621093260023730749536160782577208869589605231450614639930916886303722958729395167895522437789985361548314933798607803320842051069180372790665999842548427938346783379523688571673924377466916980253604844844334749538441224146405139130410639675490287301212642411211270666984657135624699171104119256510138020472284877592827996348827021937398694615414261916311654248880126832284481110827375811052747709867926241822172012980796697962829109663419275812702087029877170586154070459702105723260556445587511694463192284043116677152317167998684693406716405725959075821701010957951989785574219743682929412271008672782885849746090240795339263554828235369501067276883381850974069740454930166547158188211275292462720822851665111426799249146749087196573899648753573216664728189044775795747922040550593914923760232435472366519223859652852733052616438295634553607338811100472929693497416362320796952228163975656011926558222583206743617132127127210251155131014040567054971910336591849173657210500849335303033211296459043157653233042353575717777730484190417756264719569262847398581021929854257495602529881856173891968978054626902664050536920865435781043449736335465613370180041519559892312675165594607083415409139299941287996354302641781523807566267466317652797267416887179213094446810941267433314144464191551460914805287151383646545900480719512877395778026420443178779827027927811995661205141952619790152815009132933789815241920749741805555389261994024308331461270421032912616935796945641455731368059287023200104539735591392883350637532043439770406557288952353301893139904845297253830526751160762488196150908171567697815067244237536005421446905116302153814526461961568057000644799752551836205723907305128860189170782229635404565632518605882181124049178625415399473700563856312920223438677397249834378483124509969658550326854307898991330355362061716004838271771975550346029963148785314767308539482627763310207676382970420126260950707689341830943909865524293841250137019306858311707427441946479944555402034809203259573001921043205127423232700218915698642770770952323629020306062543627497292263901647355335060085099945316355265066545308824861894798309722325742080382639805301431563944391420684391850549583064981864275956389938969495916792128989696061916280624799954667843145311066025549180382565407404465663396471562108682762450302610241580878499935331304169154875476046900391661717310639245527643604134671744298250244880598396231493502577277639035451043147382037556460545749582555021284904616894124936797457448201102976730913361978787434392434283659193076318603763645723101412446014920444028585080328210850843872389993322174762487372953239597571835661028393251239022761363021522959523692679988375311763376972246925360066786687793971137670978723031319715677709857967258494294599526460951906976150629334399328364643863009216636756155477516863120385975430702050649970644972649166464400903326919401171390247497922927207734710920181758358948754103382854529702174275403591772033889019529916762539439716353878103794293466281145606117198981397274960107250206462951275981880842434676570834664078461400546549348773641860821203704318086430915844499770472779221468471765805458218178337942900291158595814141196692594193770739853634675074526363827147852838791369070815365165240897051923918081021851282394446514257261237909557425592172997509899080759680230267924468259068876510121984966832312754883954451728058428832329608099244969361016881401970563469322872945992099984730101563228465231102732451175943469069948442830763762858057245875559069618389360962604515973848666290802013986124106260170107509723607248267455401797528495270883888891515388217866702399601431713055113356297188106618754129578287898893987283827809624805757814838808751602266207416334253704016952164673761082005054478630131195650314046198474274802590691641061148598131867884594414162606853261274397879320800257506192544480705433042424209967256480786294924099632932187516855172572614434605336229921627305234281924677782292702521175092728418358987621174288190670202785079352046725247350755960475619906144669571306286615665184347031039289138573870131595188529474561127766684216885593945837728736171013170233425309216208778698376616777779086231751984511702488265538931188699770662778849622882177703553252728212292500449651563888245945907659713780703629366358379674842745634962762877998976206660949108664206250939539086860222719897194994382980780040489640988087646964905472566328886408626576847136297232618060490444413382397780932149283711671829585488535067418339825173178297653579649532909741688225006751436278771936593531242783929372591388350819253908085832394318605336829899513467099642800194363731163848615062955281343808836639933552360355698368343007300756891644573188807477767740324819164069853475289934347131613723905351273947338224036666185880218949898390353469169701669867932750306564868126029654109919765529330356015873974990827179198201565451257795639784378575628022063868743379972148149082204091056523781371064368197187709863284142095292045203278264963172358387130713440462328099993831292418102499772360905845826896887379340388233178236756612156412523213908257473372247048915069559138668676191060623724402078138254151984691724147522262412929755643046944408993225472518611939003979014375011238193474250663878494808192931851522114935694146619938176081643140778994045414616825163411229759850298041168053917935481771316584715079160889604362467141957498864090391029513200232483940004383386706139517701504483352387187685305497305684760740714455657133022192945635334106717894688293125090821486800856977494960221941296527003121538206371492508035629580348559097121674406855687154296144785688254405776964024028330032559559952826609263169749169601389866012818602673746423421084294082201211131667415832812706796815290440375749150141920854068386336765155716543663040816255377180350577056242300098106089228769387597364295918706708420289900179326192527194558887230072428709897902765247448638096684477649353467817525966012680292465239302367008105304864578399306463228051828271579953911867176145809639630884657415022451151572420736249569352028195764123482170793906585020101553474940737067034426113069743163990373505456687432483636229705669438914074059214246110781739295581131965905695602181813001066588298181146762654287919256563301668100694319613529609309319875629636402019149447800481311015665669080638879772271001706231802128211542564020973839029279103119930929018202408736514701680125693372130810073454907161070285578649574691117141098969219901103732402586995124509734667803065426603158010622364554724998863824122282043617704728312474500220983295177994347463806302690116503132920513260762928111961868979458835725973190360214012803389623575796498660381049905387250249555078456258446354916676467603657261928819741892778314857572591944397668723521247366700580185854598737938934661921321039527791386850539388697225845704846581822604483969038984966486052203066410055245637187128213604750120362899356400751741973088938365900247705588197351295547652455314988224071339772967112019098442934871777318348719429683830078510183851556575361805080368189659178888789907661952504700593897272594743142234721733462104749641151558698756590167172410694413147444304608903607036365584234702481950804812241639631831322845863374389889900805347598936406285192386026691951353674192042065081604006001668778820418628198241662678831498748953561103924877895157783682720695733258496802644326832531877805913828459836313737428201066334448546811875141567565363094030472395763601681758960130744943502230301343209486809765368780957321145492740332184690282188024465842995094599993794972675680734810806211770098950387510395804805234644957758823549893552988805566331995731749545778817034096535237575130653329643198211998602315529747139825435211713763848278149428435118064593529559665637220221653785003109922742772045734278832252359393814057411318272275743596841307160294204750033176689547706876314542890115001803937016677164391668042664087580348942389442864649428156446821572875441761911333486044864624954560920914654654333948594416099173772428535315172050078180855070766278775806105289767375195584308823890846203339707016226353331438034719792446657293645955678045852565267041386732607795894338162615432109680865510013152310593230992252384028153601899241692695795192171855882706842661484174627960332016232268452583544487938272465441216291471969999196690930910137262578240829189656118659334951927823637764772487466213638296138470323636571133041873154338516817849518632098916972616191926608890238250958691995063430234758954155942316651640559485573010937613417753527151526021997443584188707033963206471294390952182055440738232156556660398273097881265595330669697493887257472524749422924880908610578247763356500113972184805974232153827167285825104732933742192290408570253917488470499247157053268781465143400912774405563942770880099271270079231421829104012837970085903957264909729030014917525094918643517612436815786963139936364572145047314006072121440311649498400936927882379674212293701230906443613685189978797631688652003023788804855768260786306797157327298147836553639293989753226535711519825980848215893449238764793793220938982518160159743834942590676821436659631711297986324771325779778420554547421215525753357558167647378119280603414305510545693315364274308868238701576937602614256557186853578044982273908719126052972165924664115779913471326013987672086184681431768068978514716608046808592884764333783162961587316523391191194074419086705361784592154588084317106088267896060682279026493993947369200639884780532452880499601006052657458927314793414724201359176721920192735494806277353363521070712766921524665602605870808000276875727957678644055007667789714064798238690463128002795197047435907667348967035751836707603659063516232834280289504217364103186743958363652595864920187588931407987429914916248600825940329443101205236930532265831792631514440720912968392523098016988686269954271279206581688090373126575433622762219962936886207546247302783759542604084674560456546750247465230043854856602556078278990003733801363915149161415645941596644453170193056382102588438428953137819299105133426975741147274586697859248166110215005428771774715448481986067763641560340946769316091426464706583977624310882304241792107804001567055154102202743972782661491896915570912954255613493999659597391301201605629126469872410925306608030785635576207467050138289469138128241010227559193735333184057218847908888506928614862080768838562244508562209965924289348789154549096755848335818723275724224322434249811770808375158817645488942502509413941502650069073355915053731727468503399152317907885957029503159217278768255570338658148415092663121869238557509108127456352754218416106561726731985496706867539650694497751678655075019493187779373072323640401946712657327227428843206807911067721925090463209928633544208392922526057849753937459790271925161610883636250378050177259836142510202081839804841131414861052911177168397108859532506120770144995167210594430787978844655877223464123713257570247057341224599674562627308812262932788002543144012240578939972232021990398670590195350187098733557652470307764599253760491772620463552886855864069962982324147666841375340522809370471390377708519716565560484931438224293437947710864786415525105168221902973513786772939223583539666876497704993325231832944626597269128923133422243525715178931374394563468721829146633513612545586828736733785293064350323754065977476018946806046862604240035604057320484125077737594933378528359472857609930890546393006174827903474335597466067183915880793322736853133896632927126979985640560292219344460434569709766331234468946855999130246629949139938610900662099896021038272222428423812958139260375474825521399171012993575349544000839379446554855064978569900622732929597967347490673431535804131735548110451366949739281540795615532277632525369926082118547277167317432353654789030269534581489733132118111148838135832578980536790671206935593075653867262668823998559522555773800315015368040381891932751334174595680882797406957426937634824309883541208971507661038755147471235770305833112955976723910638305258396979943942792811765498156438487805299324809947552536164031220111102220631590444564540213681199188509096394281823084183417144605679415472111546668629690307783929575290147033923874141696376413747516207569639696330097677874243558329255724607830326637751083243019772318860610679564918812401395005234362289103521838340641640329290803447829775189846738804248087107895305490152686811337949662977580828897176230201585361891725606981421112778229495815482654533756187951680027746322002920761334953240065580655508091318946292434801211069542655379454028894693791214220078295600714040169071253406668945743789435360057699023309741015437350461037549936731846328999420730469192078732738779274267808787279005868232474989461224250668566919202849661105566814215046216871388947679792807691186210333049026724835834357929586086213687590690826161271252172107044768841884874405665728259830848320162127842630916404107200383366294730115134005638099887833679790005755554044705913404323963005552830756117976706137800695021073641219489706173030543933711898269722548632700048254011216599875528263351318625841308283220789423855347424776851363969258134753866453442696214189304601647941306859038771843906885871977496058963194905609908769489088882820821177510057863373705380716601466044610144081651355652235995686962707800343512499613383305512165836583673332514330230188271900388674201972455533175890868328382841764751063596001839523435593220944239314495514761526637554372899064909430521752180156721195005347679931218388947586145383317801367665025918171475358811752626391001519547754909273396666261146844465330905205446132219398919120825883549961635406604856643285649518381192703219856931242827345996413234941244074129943065533322728849474881866490245844071601478665954944377354963763954908484027427323305176986125693744446667102070295120885153154338684277571313179140027500766915573489744943704929803136440444506366560488639537962960216378156660220652520582087862219647887255616028561897692907677600348880316286024201597353301090623659873250453405675376300034655592119937163573623026918708994555583098036538637533770337335009627943691204055669421732330144641414457206586389201503612917925034621716508346786439629624285306348845097225545733658028789722325079537469144230510259440704620372403732026573689304031668687518508199474648207476277266766913916805375007035220549635490617797521626342998623408283282461163433420123950219170595009240610325470996536266063666810588856979786748396138129076589334340363277976384769907330190745638523847269202504712356631433318109928174424404803085393125707996795407457806197472361271814609529123141194106766586734182571925314959844380846839216481005781855874196972340393971980544225788649233713128551227451629853942016826298660359322206188623809002223496154190407342016783628745926230786315448122552874987243417372922991585509674256046893050506646981839882523941328480278668689304902884093108794015841779387021578317669736346088891652783899780021793697081648550883670227604874640043260077758259160042482573851949815326761723829615910923005241650695205798065211957015256509374922507734818656261436376045808148551446402445738226718986304294578955445228840560805008791940373162357113635961311558665137179468291147204915299943261247973261483473669677834418772981916234996337403099861436224691650662033602367102396649204695445076122625583075253182539439597854645793147442653052139572681416813518693513827505221732980345322286978032055712624169452277961899224758052900731143743037093591494332111648940765843482801195120553311052994162006250224973805970814788513030433485722489298488392136962672548466550021756935359003153257981228311708160167343542075836573692030908839264148474863747104556997703832172620414577295166851446090821629885617485206309031526746963022564522684935212655835331572606199590861031541929640233439444691339344345317059957784702990331652560810860835479344019718522830667095133817264705305325748503189093554196113317245817936842954282090109062345616366507185880378653344811631494931248196141295530663477125467255392787388419394233365217660737171403204598851178019685783180777439755393209933133479485282978625262649276507309529307813685824094396666210962053880368190489661475147629715187935850995064594831625740729097710534892558031118839753139804700977407595222684463784700289333404893438089054068655846175658291933024656673489512800804775361127923989380334645352453729305589347266751638465828190444585336590856611281328975155172122970236754953311887979325777858952067860150850879975895494650831556691845933542573070381513264492411098704260403524343513626007105245087978052169723285657096956242656375837446348240473690204511830343055370972696161302391911823287383120994194059689641803582390134696172499430936553321378027207091555029186186700124520458569260713671292615988024525526293377607654788266076848559794583479620285597683726503363567249585168714502281864060463761221566651855420982770637785517116477218337636544162064731930495920722929242292140537721607125400531761382923180307996609219320087286573724304587487149491064028282192962142055942468317867837940608294172078536131948163897738511273030860158276149259082813621128766518653504355959657206468357247923160868958696665127838130817684431838871874379944930609835467999028328719069228349597679335019159866185000039450929797544842360782275891234961567177145286568355420357949889698810583149313799539160284665582677759704390198898117472399688385552667931557085752309545065960507492522869021468173465907978984249206936379550012926164873147369413147501279771861098016124283258699810997723907469090803002139969559412667097619405017869430400076730386103319455189480909359329276087402425750321984714554435204647781903063654353624948415108591705392314057265252385143154349534648977732602246267257422262727543643502080612753920755826990811608817975780726310120271045579529310080752453746321219176220012643682588338543432867689536495845071893626340448655384386480071218772004038149638225929456603616816371306055559529416040222383189458907036841499565640945403915323095265209744132293844220419549759468973486562824102403760994199695898347197452705964242177847202368015149899682848574293716998354133560627284561944114117853839062531521329916844862177764781025061058704735570587065370651954549911887780387905796809671129971550081898657544902037882943589417034104049077681717568734225908808220350656537529171363532710435840028077269083790945300104783863505421688634081964261267421150236470777615585927580552899365574473293045747059153621106347911158859270882731344926062659836390911238995061919730452117120184389219928985034470086049390080281934070561958773960162587072742264394047358304943497575721899536710906028427919455637212447769862055839067520539139928321785628751575696723006303458126599955490254682429503503252962089032386341334611591079662587537087569946244996636087110904259813449647768368200045098859729823682485358301200451936326131595750581280484564366688144931358331735256898339855203877527100965742916776063406371346959982171347049364735208898877843725979061919390832545750562785079463290462519944982734230713751980181972968105272267003039186821751757811680505150066241888759922168354092461854321437876273029694695203358582829391956091252515679831531083481947107004367421170056862373423899009249632026562143571130253223234564910337702769678980701894657400970366354188840761226336440498448603534199296223886177761936014006977914589823618513060845559481569649332038969900991711508028368694700093149294363960175628042057411054554071901814394131513601054282044219257199692599325805275172935005358975268193766495519696652739305552293708634926016798034284989296414489595592515829762091484458172743542812917077826245808042392805645944668099065866975190999020653189441846947913171944908229322888533024116991165762329083961512778755678889544224007187646361008847930219195281958549546422554437510144857562887710387653790036688268708952321849436271866683980166966332426593289944210147113389974994081981943546535321753680285885934928437229775117000361178094711682561281820554468145578690721025209994706424631745089846501302566454282274916796778802159364249247727350706921131514913962495399065959000250331901776938982132343957426294997976162348209239728037941549734170133746099949102647888631389553247419542670501992049839826872670935627875576621758414781114324098816334805796048596800070218339327117881096074446223742453436439439549340252149511339340036166434002828969247938273168201174653981689329648935535139674335040936674370659535331685689354345110377815379988140646275284711590560269794115902972139055714353808258425107756486188955675112364358119201132648602593483346838568228834612139087764251817193973949533235758356316229410806794292830443284366513532170604217031818442887368961436172060188825528447282065881154002963401650304944082661276995677405769927062978496733003184907219119220887655571010847196000313152343329834819465253645450388171694767967557252094991367689428015775088148981935685492085642731220401593233727179748562275714871610724468036865991131066455857081003316727738831210187114710829054023711644583105538709098757245923837071540133082564291320532129071690708493486965641240795890860939092648208599203714225272337617983973544808190852720729354497558454771754277402928907669168610873036623061969305739981200403224278190965134617684559545770860182020222669563676937292917180262372565358748807804577751312015409786785131730650656086840815974130973809822933079789627587675292680609900308361783452076049620088932877785510822800556774710374614536329803083069754729362963305130603992188975303083569681330426694146903092378452032877847709701996486036013697087913928832196804447945891419707460413142817601692417257573140545141125379397361869000624871025814870341472793766409124518622665345910910850751783313727553787749139179116158575038871583286117323419391492749973338295420571883985269280045159397063797008724735990704283364738710757980288113779723869049720320291516972555768025612134315605489086618249446325258212468716490710020402127174763037410391406447315201956763629985145143832756936198850897076901890274834204154672993515223839354802609175388325894248659764411489443079328070216151941556670844396194471400931362564067957558528185314491852805550809444041014145267316311775316367747646238808498068802187218281012433293495601198620000226898328435536154228342216966060448872973020169969632975259351019206711321982300299658240516571545649502749720474770047811429699747203089884593285229485488704561835261164058173528781011836081429990460220163501255750281826452432761452361710177444956227948595270224461693400305147730638775590675994611149095495642098032730779549124483325713975646124711216786975686785488907168964620268030307243693618418379190083630287196129315141021212663123295656985246863910576806370166020636657341776877837129903653508940980745832258532848745289821546477374843724508829007821322033008565391596782218875363444877058898986537184610562583272451474719359646469231318648198679447316610411936468742125877672720552943164371219005051023238076667272482482232663956675709430724277711528630287376249029087956559173570303100283012282833136368153035720678431151030006260163013820772726758505508056944151354450192885291266554255807647883925895101862434407862475837459930032932613597700797821936327393686068782766715769644096476708605478918966268214964120268608585826693854141823196613000342564242187001463709773371213215440435186088622030038896726568207755041121966998368648730891514804422434761368414526898548188372842003076542921911046928757724024208736848842546463204606305304069620093441321511093325033595799602812463927637034288563717924805343588229115945110589653884463003620005837507703069971530439025384633851068710021875842395474068719766640063228163519967519393194688833042072974713867545915784818157336626643063966763617223840889993253945870041438992381273818761735962511187055195906250835965381958165794046494027663309454190318599537989354691743974425494555864110618771579067368701979173603528032804250955507331892670394124021358867082948996489335411848674600958503635016376918516010117692811575895383064176588380974964947154148416767299966783903078220319624851304610885965859091048866497583674953249358977279405002682006616780184895547207700812442364194166885546943461209285017412438315265698077582079662536536413092159191893969825885615529022246377510507934044353103230195634959222073263079561772326106955272806209077100479882928881202147915289921337589203172241867141467627457473713869409568145405411571944916088572554322253303012036599352203570742412137553884935283234776666172013684258664012968119813151014659321148515250126423768654545050252160498883396838013645447604407271351883048300892385274204386554529999173051110887585741228347454856976558466374158408657978064908110706705872469407534598356267046969709681073081878765988163041948091634084749878146466676991343496116611019618830054880814525671697509458812875272642835397598236763631356943038787393638925721147244146591429640469793200286576095432284907467968997236943858449929019833514647029462638839864201150319969081566808460426931332498752489947912374315249770786968289031046414845514576053160250298947790304544607435679435878645958622551188405165287826723595806549106173946037119129933174306708331843037912269722003283544898777343852200647769669790070010050309663168046681539455951953394121577885251757578143319628703304084499078263624042779934757144171130953545200892921900724535702229242971932654352858497837743504563190772099303795675751427334575720551788893988325440727197738815191608158538653842529167052132433588049959047438669758195922651850488452224886830098706602075263416283113138894091700347676203300873414736797518675408638525358492784989532346407113337561014316157411554741465045265051326966720204257773350942088940824966314813619774972346372581447650302215741284026152972257910676316906478745314757627083809308465281901786125778082230313026362081916784381850880172026219136216477063676551365751551122446376091205591750618998537430900774166313491397659771326627259309961207454682575961913305637639929013980845692169234349239748512856974891809734813890542736073561340114922787412625964252000966260125152423203916429789601362299018973944560713355035838082586990728128803430438303906453430719457678982819192600590592946163921576046082262551231982388726237893367559497498271023264873535322514396035342225474030320878939466121521716423633076775875352653682562682159164615033506267479579939967809994757465903749767486463259973222209063483328903626724864863407150164319507058554675175303718300700353885106400568073789302977138213096723886858983345017650765960871259765835391580455150658150922679713802207515573664664838104149600212138053901831027125818621609843489029217607818785854064268114261181997876396067912649483552926476600699291889877569251984792793482200121870221559046955529637574149010612427055576634431261250023064270846537988361696147839592004722047507577742814611401830630503198333225812352706741170558884517542161716263161969026993881437888040826273358756293701529319694823752390933658805671330551218909558713581981360773688106246953317726138665530253191666567565081038678026676205883449425654418732244320368422258042596310626289815756836985372945935441885488550795161341061600361824438382143313638898895492135406758218866969908237155312583446892956517967506467271013651239207850991355301894584879950194497868056842011920332024861867185806797154193232035642356344552521484932992138762118141790872016873501187802305710332664451450313945720830272333531611997624233825821971955260653317925827415144412351803885246084909175085997853159634754829475760104073788924206531406647461597930524216360088608762634799199985998626157653246538529072565537865547747005468983834860557202161748029316561925926496632227332605789622965690533425160541238903973035523078270857804612332068822894449803070632268431277377731030432427292831204396718906309888843775567309952019373657069419377385207022060235154191786749597138646655721405054379016686872142470768433035772829595159444575265495648641780859187890150121242973848936516436720304216450649824232980055799407529494191356327280774851919958083627055172868356652038542241582275610464812126850212192521893420580715680892568304523061866093008210152849322814378479163822590495981436643680947532154922091968108357986011274106053656626973431376020047453003385614256509715084492001039832172410889035623893391044285999426552905406270324139588219854816203156553016873189501884485614306152154053190091201383366648834372419144617107816937832334304776827478492753160406995149666483402825175321979015407408079434012049534559405093851654596294985176871687394569065765099716735802267938795562508410766769914584739134565216126301309616033280564635137657640919281394520715870970439577578658272405192195048861659630671449767821196664136470265777883455413124423426675473581587957892902016139197719167289693726191360337180576308956298337877928795664180748583389993361868612854304029992947447574693161066896763486599578696475988854899744108784073927448716899800968811410388663511685607170697484091000011426918414039567277664255424754310551467213062741635185778682974542924103152235509948247999895999721158725887223280473037588070908026078391449536450867756260700513204053899745505860433656503601756987711577116053565427395833614362351932975856970310571754759813238549948875841392488553767181177521703747717876825685191526251725885011160602673015607593195483463370222254371729183502876973144486081904386041879681909219830981406272632050778882228924585475430228130817366276785202734150344735703875803520843922968223118542462978268505339113142292932489075954840786303578718675743235285620117882012202775345205667680331849772462691072487672440704781529147827277835419109475339322664695687099043011964734779902937426365950189926615617814801817551930932587333921747410001207208165313428882642682289953357154882046236348875133439995723736400495729697963217595547952324545712531484712608053167307330554318029988555976577855340136425434681785692835195693236745040706534150876237759744876910303639430960169421472217439625803511589758911781160420582300388504432667083234124984272749043231324868236249545777781573847084212433304887558706390624698989619572761247772502255564683680432341010879857519749346536851191423474497075811710598632089619883329520176172488551304318789607065006212213007840264573752520938943914498529574030189259927076609623498676343077589838192164916074962221832056308993383767056911477470923894673953708395978565227262762682636902959837762644167740145715321038192730953109127921731616354980874046358296598317348509241239556536361166019404745855551072407094540809679400946278324989413765667967155491117230520413285821276884274241302460818262405554407043052636910098988927206691971592973749183055570576639305948137938079327345190792851340095542458392610305397035268423659510887537279962705292662826482624918873473393478163751243571106592644485442549898518535205160971842833542468682915863379418239503685332983060497669298919131662824561133125044016887150600498214557746373375316236441355988011944290779923104859176236689705849890308389364060645860528729748671643578168941033307637983684952851522987076849132168006691366853420506266194082683798538504636365973905442638589277267280355325775078777496730786579143163570930334306966120549034096593223066618738143005447332326214310332336105245331570512021478334245147875318036300033723715138979309348846691505817417102403323791927896057668220810848915613108946983970879419587530048954533353989629560616028095236159744488733780305864659853333968729712539086371339306561079936547192729263421389304727238628267730157190618997048329626890893361725941800047229691971659872693843006370204306688721464830014310335084342288573129765320644473769660147083115808806696890623192758039291409984851734297763710007552645262974918014715027306060562682597077896074717600694020193189214452686070839649596245647633876239627645649529471997370765712468492306180420275562436570761714966862282897006081249933456844631443220255937610045697833954950665656098628819176121904024427401589567670256135097017197841968081935328105688753158111696814438706020487159914735310959406882823003567954841603874789048080957602662790188564575927573886882180101775491967034896433010833158173978312041494421879075719246990203099849528815231876570931031783222074368392739508961926235105992610926427374257185162641438530488314798011283383535706573574708891297613383663415023159363844831300053975056967941293274944552769384673925624034080219838799479409477758287541101664370508352876340382796582452672572263722585461184549467048835502590800402132758848206907312567969600859213356114004027330890425487400668660440122393920710198617520579069027732532929486253915600612741078232303804478377969512037659418399534961792986587998210592931797759180757372961436906310243364957250245535095696244505893798254398995759488468681044353550323582277993371897694355082319812592994909257417203627332480707621957180218797954563816509410949936937819705959592518765817320613949761889578281238275004045754621663451468586591845386561430787708759863947354239512078649477351764084028350143702323720969539591821004261818844957429634756809742355075508704381642942440240821093293065299722833548960662135362990584639229178069375196823338627111072192611622872202534115517945390956746771332093102212894452451171820197925531239799421266936177010410262649284553390747008881492796981460064410320365400528434751651469033375185650086512855090823371815400103512975219192709849947232038680256484103030152058452954471932144401555780436464609917183386205131041649670033862888622605911404537198019549004357001020409246567690707536346991803840195934199780186135641822624833207718629113070299956783922379743641009256000683703695301374586143938420021145512042810621643271281817529107798194972941459571616564393634376890401829139816883179249437449153148309882929617882370780600356699914428269989539468253660575331835973099614885258003417878647455935808438641539547132846890711693511930512139742924726311640972763197939526267616837452455531797139390018176730382471514017296330129156837035193732784441471596584678045863333007406516951767898508304254091325150327055235797962718641935477878878167866025073391416853367639998310550243203438927531204378805505878613012517149399599812671227176931038479141526481119302619201464082213312720198770752565883511976737821259598008606851443737219932834205101929154681268189418478302525955000569671672521234706309452221713965009973154876340151683109975405473305838356394467234860819020365776956482269198465401524280237749028272042190650683398518107279602688385664868291819451086723278796923353101878256438739888101400757786118151994780622834711563683066621890356147086395126498994065032092343541162054039159778745106179019213408179453881210903835192734380565317544823771066249828483882979921963058802648403015672223422211585792254785816821459904299441193911165856400215714436127482884024232067078703291392922734222139678907721160198820866316601311596983597201715170593028833626628047129360099701939675659593732239714550742757520097326346498221916333354644608368352323060987870454584243929096815324756187018348399710507954688649440891286461464820715425492765704747457968197944642844626395371737357160050189198625876121406480405560841860073268458595232355287337571104404778356785326628640482195113284005588939299077620488577238080684436666239677863963882148381594020426940542790445409848296202286414052368351110776290484027897012698518565089146548083540611530712990680315300705712650517278363201236941862219924152784893274728399656453265557395256341065765260157511675165900338713750469296240886202179981482327364858667281141426497406138800974833262181135218877513381555960376617981644246005745482217779423440362408205138249136076605433598300456478557366293306778467842735837019048415043148841383778974475007047572614134421015851272461997473672695205480136591510741406049722558821745824066055818891857148105648794103776556258128271726538829961468127787737960017140757892390044021147987282159289114445257626509235479279052517888664046731888670013073195754565678552796719560205981708665726492501873002341261300393487957703670732413697990514162847283278038687798383533995102538585381520993038301492899993564321512358629256970077305476924170661636819630026313012716991379462991990387277604228534491770923587271546554421088625570323143773730940301702065700407045762304687378357523023059637192167573464177688909057484756634373488425846224420638479521217109247608495622042871578367766307615696456222267072560444085232857393785281372763916401683227533499975267369582807090316658383938193204778735358999404578511249456218001376467183238755588736234381134887244904795430607402423090267897701793759834869619709012768306302425853890282723767378784649561412535944059252459252696787898368839100026011456766798764170450988641640189745026007260692195637346455320944345294587165245296288602254969406389575507238352918131066899269044592237507669407418413449175607740121738983837720356622709845380304373669230460859714208213565682341489308886635450579593671441455433934892052150011222394586420726431567965728367652898943936139995695996935350773708048944942425964257894773071106668545292946524798769027752011506186411448324420347414450984192017512132369799669612719828470482246370789033272119130828194436969641629096718879112195594534551784084327731306884380969155047810980903029051867216456878275410934379333015456689511652100252913759438823254642743475090696880233849328520934421862652802897321322367684890133200820979841840485254920256596004432570996780772975081119949203505397374478476111845383499723758157901783537429206119527228372930401311566050616249175481348659490656068964536359014057405182763794489704869783659219554473003021318063120875372161033475248573722826619709740606798633998710040789000902650501936113845501887464853968349070218552417427255512519950938907830580559340704624826995401276907301259497436565942356765865980526128924476924116757211404718516530419931677522498323982138190768225172880421028187082695252621870167774129219535978192513474219052377587325135308261493608667404491611544099821231234077246879172113911508839514533992751114615147172165622280845427568380554032296980281163625068858673673341159302478893737567377474182591813210812248056959838475018491301006122748479701901639849768087571145448051015990523539611942987154502091969429621127320402243970983370906314183721831373630893909547423346537646727393198843738720124194569684592145882689497867796988895873083850855522280300787924569639433742663145879387017909650680791102280522853893970160484486694530334141646685845666007329852664982253102062210859414253195094741977378936391410803414358748393879748085932010258586164559341700949992357639081164198090284579404807879739956225589220186051819959920232123885495393813721267118566791501852982488104805980777668910186405117017159880485851129997220874369512408628525446473347350428940284335558121661985418951246552515698715691612679419345932350702114576593375150189021625553114947946425234788178496596834008368375279986883151442975624638541650253776559798407055852897527670797869636723743632460515796932419674099192485829958366317161577695890412654636945189079551254777217459260704346972208350096387162343440387019519476684978444813912283833936013581173041446429422077682492016236817537998966716936073182699319773446925233068565271712845350924690647225860704370797686281599884091265779209977816153397122334746264632846993649104234259353383184379420970514211555086186729892004795969960411107651870364851071278723187187477084823559407915689514815984892830126811386280632583990481301071112778134902972478534384600837529985605428311930404787236669512716061939184522713311601213460827788256833552146297184256271546371128112693719349105403156420833883197521263342716621984250837969981845404163151421243351611991596567415596737232678137596894803883113078109722591342709945039164701589951375017276237105498136677340804989992413574867244004178247491322841726442298783399880393911250141777213019126149532056801955649316391878290240049219850927235970952150974090896579143905111788234358931774558618379884458415474186186384560790093394136055586474571850154651636535287026709483727099404634564384503610138431821629849990502306623363360413064762122152590712788628274513917008418911541319888350941552761124342953755174886705899650707176514889417261082274301854521641996487630389629867810571611684928096569445658081250029592174850478303107838619788288333596622788062656703055750925637631425493040515850768130196640439825389217371059840831020981402885371243543638307737629281531609672517222633825326664433073494408130500819699289395070521881871253310648484876416819593275786802389959700023423124096819661706978102710145463932325899426205140755053507799879018344186829559531289332199659459288351727743726694857324634930778970189346464088301053655039503847005423297107638557132622192684734519843787391154198099779875051308557322168462628900659433454642375181312249134670492997041125526061253012879368822063052003606573525805138187154643703284787522247664588140926006199684203270765959118602971609991997324506223543563375773751532565857791776329453240333641137586996582506915106844084444545524816000435536534322223870647438034529241697969443826551057633970901613545762361144727131707187800324550602221718805899535354104737348674448481117325365864500062678414062498137691248063072202341479181765096592941841663159559029070232229666415541768969040015085630829029227185901734549786400209449444341562990268113857760250123964181094195018592462711480104614761736361173676131312275528041164879781090588525533949097798794198568943929814082216715168277508987880949870725205746932894069368448895186188545256625673498750031254945532187322667132374654663159675253865344563221982165843032148195645090185316085470795728280151640074826098002190527348952117421019014213797098329825932179591161711512700413660883515084954599354534956872122099664160789955489303588729446219509271881844848317105705635443421208906416426396437673123205648418973882882771263480921315826110331012723189539414821356480929494231297459664845354089733808756326027480202127341554316086102936179390812834988941383532792971447044256288515666659012377196877297619874948711863365905455362983122344682870729581093310695618539791985535089619642764595880121228424943112861183724550168863930095808855189618934415499433480646498135513246851965414192793002840801507243584681099443582937241687487365609655870106788074227437104407350769394410947675537134838971418322761102140315723246042401917376182725942966726319800404259137059029606953276511407783895189235983192392788050842473370548646984295579612590730757061677213212524043759151685423537720704500039766558596493930284204826484262207864496962769359170147215017618210900545329453672758551313969847581834857943330707580037835916191396773898885692200226730765596815866049987688312763474064201295211647719382976809162667985784722986641969608338451147698900895194613692100452019611213698606794425193409619715499507483455048585543676186538339746415382971050980895359015373281289585912787994664691646874216878075512488935410787393520777857370130702130148768657662760899014853028456471000820832787206163693086123874482477520513836709732981491109535790083513386266272829282496972977650269978193935170627924956491638816254385605390815872669991204266761660624505130970873941857337692853476662925907180460598749667480926824142835979369681034132726918563042486231126284294078371671835415889071035051138239449366352866220081310318803060730305828780081107322763468354651540240232400262979858116305622749099863284644347429944409712542154912511616680904414353415346898500688004793202908863168170680079860521494276854574334622618608147493713972716574954006840219468075056795783411495828795912822411391701122167374787841990008070168828443286608240247981560014339953156720385125661025984546760302179126625168331041465583702132417050949549103322103978353940008941758814693608617570187118065120313653711441608833422182647946472659628293853174611807679588470927596556196849334175712210623850471766658533397845667176227125253288433994187603370215709403693394758821067825669133143681936810077409065873510699766348196249321730655135563180415031061855143385740947846202423666156047519323313313932234466092284026102200950385983686024570790357545579889862030081191658406364523810667270487386167899110339818074148721413035521430348269399089960571273212703631125974776043014519409998698214152148794808046822415235327673434698765470068421996796901202245284710945053559365488016000232590996854594301844881363330443231061926961824354558841855033126751193024394575089006558277915443533186166371349312016807173660032257686577470745402640912592168799418993856296030324976638034535946170912618216657447420843197432811130824108730775031563076670558916994288726627285384080428920633770177551451665890326807280096279355104039441475041124834968480818148239826149928020435973921456021456320190063476569742266306314894969105865316788491561744036403462899996691153143903192280146778269427697427404655762666747594188368264270188511103863011539962683014709779384920975647916279915727070258474892781764950924451077015658686269951274693060015264230794749384239754651766988535571555511511514062078483926207280410002486048450774884703278006157303354563925843785647825422364467883964412029251084750029231482624749119834458178869293730654482345782062505047739420045134514744191469651387971527499581283735484532394458903386179344313828242112132200774650727300635452350051640633871906760008947744271954352027569076128726775887129067925421203275913145509108734562447589096760964179312397990810529374320142850437411140015124207449924071371199263045463481386490276681773129894138129705011744522673895751140090886320956411961397400709600516916848417426400455637840328984581000183153826969960008736099589962157577666462901491003837674513064482821380884429075576864745038791278390415537298209603674484327333184822017001796465627068034017320903825346725936187488130059869488862915964389911013567663252863060900090209301172702480190309439266948709625108274540878972307278291158218691861616942717871301653575438689070399562390613720134911183494522190012113450719096908982195045613431779676971709758417341819084031982881336996968938793156901423034659991345141423043046100969455046159579324893533870136784709779249356698813526165965272374207890797555963318527342730994412182712401687379735360621906414238954430786139730713855518176506518179351869153468708129347687920590140782464907360982368528753062739093442391712876785702680482581813377354170136802892308976619968854897212375679803857604553381068417912699313260670764464948216717219301504934523147805451529543549846050121997993845816238592854445223475137491858883747951549018884127008827868345184226696960934552587309079439556250952504857713518314127251253276218128379158539754622383707849514712410541786546643493100215496157482265461616214619923862226838797614422904660084357775204939181109769238652872048533319934025492749429785257895476410373409480434270702233334064267753907776798453477414441311968257615304890704992334662615586937610377220625214928317966537668359790902454727900721672582598680140244157291713117760603293715880273556815961652933038446442499239433148461099825463389591924535696370458450480317551386554935890545558280010534728538160677129818064103529720651581316457270543697287360307275634354072203256831723801370150000997082296229970809102457777357351941189324284373367569279615903717703839916137030999159122271941178309101694509857702756651483035736773383638230530494076434361313682886521799426875734409203148788229470001193702905697759234999454380390623157284050669556965736328326647681531696349951526854509934063605411629651237797126301196660355706337067597980506488098909262464606597012545976314832948533695270409522469777369572143138140038447940856705611759833012654011532393321646710649572614708270710109830609685618196372963420888514477821301118394051966613440001133750496950474836322551603199576053552144263527204316109040292571948503728703401740632245798535628570329315046008789558660162491319740781680085216266602773296211066978370442919970150790010794808392708208094209553827961844510203503398285140388795146247588859578688259493314389147745226807391280202766446180157278972835741929004928446155215912004996217445874960620178759589661448464693192814052128294601408830692451505714119484486600698761950014657159136426120773029242190631099383968043191755311227145852582677380215500035868511471430498595842420509560972379289608075654685596705193494339965990858062887651663105187266001151084924361202383899275625416961176468546933550152514111279314286553552287794892116270725429075027569219631434543974377713880872325566297456916952181306203560019894896404169259538679182988268984508762350894024367369069896910845982171292383268508818194738375762566947342978232611381972202068800922986100192227454019740895714127174105883565203400278086550361362933953424031294919175186431112709234052670256744695627914924634156594504877248564248318111925196594239281900748045119721042669917630546761712422221394506588102287429816115203023845518203810247319613647983019361907928689029957412226968396411435986800458522563591745099376571934223109787132337077016473444232250972246538987025838870578786784940499844155526136827760389847192885417454467833827647975417104217601587656226948304599911919186684512939368589330060562542594961165641417145349921438078495421923423403873523407364736721566040929196513538226728646571009166599805803106347285198825238343743487388958643883218454401358727342250441251554388891280926507688858407533078532273947212136488751364344894539648291368309874043057474402819203749401522989389230217586033158966473327566033222561984619410001784618363405806912889545698093916454249581309155797055383787575392514869855815740600930500321845262445132304841991574144104709489411376650157804156037365779228475139185970436306877335640109638733661592500009713916619960931876522295203514492363525609385579945474227234373696187774865644897052373080831631853903904262684759283816608658988524848601580631511856325589891823762526463181739412692664019138917672230731921490611150412705905658428739461065644075078986439310214822471517791098746493016603517054589160997165243724069256244478738314802025194453489387191593845733902644710057267596154698056048206715318727792139088150662814463526268822405831686429145753922226107495457021911265235617401108850612571067644626319901738898700697989244065107973015596111492837541669721787028692657702012139518873959335574151680259301431499078762832247320378756015410361644894849429332393363914031721365328555532599784335605604056195756480757060343642088698286092320022037840529530518298857538967163645661351869526767242622141391252401446548606575283290386647077318149132187073728461611844665372238304181277775795684117956740062614177580886059492076009011366782155869988577662897226220783217983903832837077663417236521541990526436482306937220821158905895795131200539145520953253300308091310899270460892231484296870496732551125799397635609234114619963264038849807810014023331776474411925565103037877587060260391156864354722702089272126313361046798736089453113504102989102971515470269782811182703636764638694689405589736084577131806215849829183266041074034831023401549596773777985218918435649076666330630709597643561671180412343780184246686893595452520249014973303776727271581277721607604107216289353536738920542381495064457924481157201414054214843726624134376393145641507819410517268551377392723402553262737478526199416084042460156308693824709756501980330675319181178023997292472681854275987520537632919728484967322818375988243016425222640479986097876564294333660976000487150941804170606361743500799125506719663656719662184094551251925827460770590613856305078630653268366171951600270547746523347984413324426481687986764371011295460409015637044160116285786625337420347294324460130127424208617134740598240177382814714222673112233941002739392769153677132178453839817185830101991127176896216563059139647377999552574524822277353391525044178538375502532890984193501895265173286156915320169078809842275285147268591756373543309619955362437745208103466260462900084217586672001806524099089695478607940452024478005861056824008729187484779585943321449629272626884263657824924844639424122029482957230864160223282585858245573186410271044467503381143587558343212803346804875871159644361734774358330616623716187653000460200739184386759174691180171115790183358195390265732779430115469293320491320556760442513452093886134793896193162447956377497819856570403077485889409199083074644484972133225948060843636692277062265472644901719945399829043422632763726761622764218273266884286861532975060666778449391922553989445174735575805201227543556047392893521552929123497639747968667443827311373037493384361889322372397789471708778881713521840162290913370430549246290410599122109053313111398585245942507978982374511902711621293968417245245562672488841973615496690076519363403008322915596454563826872526628125018662784362155503826917335303530751085703912827108457625407338087843464441082334546441542704801883408973651653616108532389427006373052635345782170588563794397750247576270652780553056167379331969778981052902012210884969319411711415551233396547912446281260565786677050203689067442454714914711571442954326901036504779639903370907557607523717929113951192212090972186206541981248822105100476546570007562946796891528828521315027280342561432458460609048740198756808018600642856234889772648974131901245396399938551397133178319242482682759573575344487563091972196410271491248128950758225723553208738579588265870740219988669224527822352586898122054513067728102288080888093146899750378941957623327808484412852728637779842349733704868562635637189861641052928560052392922332779900295142940307280519494732419170889084667559099337311739423416154211650317481216491379200624695362388378910005735127636484743147524883661953599550145295949860029621597963041147345113870747520136664744874064107122691217628860141121632981334169381596858399848435896446311701056862365031585825838114406704635354243451550637974211586904327831749884454139077043715416988185252974230213739411811310612523005546633360145136986990167466232149877170762625333143557697942308120741037703979341255982870782464003321573735857433072834861413929578121616492128397879299457938912546624675377576986401979181145326210768573117606933487902187421133791660459272925350686398054178016703422460635709121060209149080953219939977087088611529273432418526600746989576408338079057105703588896734593562915988090452372610803279995689329526507889745686761081771560581484756334512707483930114561998978445323120897258478662221289763690633249225653159247567419233358726012384437291825215686618356943095893294530318924090990144871787194005954736667026087217523907248933898957545581150698057047469617000245714329498522509749249588291051626070647192859412385960841626493741835140604468975111214498756574227711054627774470944656417436270491668719628321066242155576308018902263631650016478376352560376280831622433015331703260233093305646516637937013587326514589061589789148721213480830679801757088338237872403713623763768907195457927579765898794674315181946561361550487397558476741973573289855564730633927204707341856702848347166644143806985216393882720081005366546906579543494100630030220224693589112745715347677223015714537934336032415955915406910946566961855424127504146749674011000272099093535309685286826173630365832487736561063287207265064025387592878011991935364107718702971528190103454182785004816532279279589391744605326994471629779587431833533906727211714640697665339114804097218651344165179007249410699727921090962802141316681962785626683443761736559956261131210035769188585362182952932597964758786977374595174587723797266758508964187016462392539580783971768428230979200706266942097121344629641235644401505594879294905016179695507203694216416427799886763767941004490996560078018679658307371743288616647287350559604314388098305598292041285778221559714651236801018177131994741544804693942698901999446890539605844121268627204967928955304492381323121683525527991975817412436624953622685851141792648024699831221696928398736892111710908008715951030134799982769471302584930749461987349674704268008078870900186175453784165545638540485324061614039169341429758434294505156994817717074079542171073601617664922403435531591303106790920983751548287628557303414100289725016532073261833095762766705157592955253762021259229422718121783340751044529627734958751001527326930526172783625354279410156221682670030394717566776072827150016212757094036954858725913782825254767797983005134416572119173560546424966391504348951958127100246624745924628924795817528779320876467625010411994785745613997844605962140646931604825213912874929412665139675589908865695088249477311682748363768393964592951512304113208638817898932287096250305625254823625184871879930912804884942464121208237330205629236368138249277552809745551314558869429667281704573201081875555833375202784971590045411675469954361522885368615541583388246250808236921390801309953656887185834772137117226610465512728707204052237699882984620983478642790909395619210447396363581001602269266911556072510750814113952785670163113908361904655224307394742371036058654322439548534916253172478561259062020842244458188240246741263751707212629065095545711308817433263361172437826136399584754087689122758945403233681566266838511973399841362270375230298886183719111872481854751477484474060520749594206415893629222408969502819444229356082209869220213104465981195980925566638690021032063038247059401193251067486096710193409281124397705141223350868856199320240951506091456119648141971800060602964948394634754938099488782156487156138666104000402402834941161417026795531187873315193952219548115803796404593156437592656154351829126857907693504834040569488251242853020819372724223655886736576298903128296194511297016484998782201972797101243476484045165406096913866988957244885545837993763602023582275566253908500918131382452488928987610896019214969903078340446441599717657033615306306775620634702507591652125925705467322139010280249847801436193366981004204662416700954201259651761615757349421234277031472062944412230951074541562718669109972780174363515333731598742380752983656605040296242736543829176997067631439482312035835461690547730281206789888306753806758227246530314156824915052433137349022467700032804980075342213225679708126633540286070351370014407282499638679396968710519033204341721582902111981737479225333433371452781541984762298167433449202797028997520261255832735719909354412829727582323830397585500461326879211965472853638953116772673040269924026689039142586717511495085684059013429957794075754509372465118657450532364713402637105794218515240802140464551549694755927292215315186321682274020373700688134180932298227267341384721102189818961038885176833940894544353146074392579293250426670471741395578551079022769402126663352255311397050509699984100472814622999816553542377667644394854645026560206621794711964106940157513937646615708862658616999920534911223566635141120735662348693436528686149173562441684307080796011252833371698906565739285827445370525516070739048182630200823934474891534942242539195882854208144488927432410790104874691515169772469430353292305903069556083675140545172538168358133594502948431353607933502996229725405329492590961915763371694059544340288166523511702310027847746113721585109465191245725897402056928332208072329680519690634986732967635102978649279754422094985157595660143238974150228941624264659984996445560312617998070089983588533301535385065238926618643659502734048555767848966308103625027740885628212818039585783520407960036408421432672439116415221272564214620032385372573811758735197116488642877816865496301844121783329950487746205714970213951549439535444827099264504668677627661253294264439338882363864849792578238438362834488487710046001862791170571292663686568116384492921306516328348428470068393592076139445371675517227529187362076969317334115265911684791808977260702108396225122026911257311557082644962690688713902280262535724909320880105792447504453402501657843963003438828547166892107959115893943988032852647501580946704658480851734297468969194221610213803748324582285530256392710317370858211152405514020803864835536827858605929856764689309718581813574495959785437456561190367092380307607182113129927599633761075605327166667410815250234356816652126976772247021317084476984404425789041053414435772426070306583774819442077633140158844069831697007730165913451335102306621281036347719485520995092673366532842277757138506797788856609164594418141721894246397978720630670256109442536413411503097851262896081544500410553220624493294774475365731365180219137026321062210896719723039453897935261313071831328705577084992494490949836493728984655525205746088002089301895633769139997598503888543132917761292840301251391114482213240189519468656251243924325865532228742654904759005675325520908195254857742772467974297405129181265560145572626802820410278370637579304179903464229554872650987219532024620161061144192523339192029549530022984144812954895848588011165817588193406071422796558534631558882015585576238054085705938599432571054402238725001840853745671953712508474100651658402177481401725845284934294846226118068339424121822609850905313897522630833255242524890471263679077077394985822472546427990605791024993893161753130204338006815734674433836650550716440265197329349386147432002095144923699187221049471862062201531063521371307920242391141218474847705850233422026615368885556926942551439984217067954938747349295182092186238547264440687291788688754360824300618067710818003257570644357807370497592350447851405201376178844390474713407551868125054055800780948939976751107877005727880960815722515619928388176812966668920300351073886164499200298457562627335807401964094365431777000181515987303834157612272775136764733872354842357587455899411649557858779545376414499245599983816182848416410917973675190800193412685637579780568059158356562259369540514944635485145155117590780797877877928629743585541490878411999441375479461417486020051457088738831613966953876182811299339096326902301152967041015637824535817659447967680753815235624940919758610312409748397116646596434028218233568031507870007144848604039470151325947910475098678685284254975713431176549529732891980644370471600675527445534164367560477068186108132774982239936241840541655702036788565860248309388219986998046636492669785788504704689423979758078550758897432248620284525500139043014322938850955959735437869537932852995317996458118694185674412372727569651060200681416281600503680890936414561906857278553672147068015083101672006873774390149525224941909504363112787292677184354848677593467290046109124847935073859885781237142425621517226817884673514498525097190805808773280065963260803015096434001436849499659576424529881549617659426557427118633881676810008031262499959615495102250884207790856885575611153136727963110103635423392244937428986902697107065469711114014393297783791844827024614245228212080499709326091359430700161049657599295075520859292655788397996846585305190871736808416254342871965942181297432123878212289287709993483431745087698715176083084187356514628312229095660792106493606115901019032420435921199035452975219383665643098946866260870887747346091681177644180145287478992803122219066351477566211050568475404662871714010228404720625048821029672815472904785812584395328107210754023003379083147530913625128133754711858010172226600387980497874146192420902784714181443691711305380254060570690399927279075000165774581504348230053959677706649907764352808913257971706884134153492656170562708673656008946678430892681257620159976099669706771682749587595072717568399480856595334008277242730165303358180113190894380131506816471916993904143067219351484575545656716297998528432781877429809001769548325607724245945679885448971576810409896771220396571412345136580097141747297106583743596255138035560101792953950376064629860654668339920609364061149147077390391192124038852827233123994384315751317835846642383190666869631760845811586403753586564397457549439771605223697668056465722908048626125796935190224039995419933490163521858063257366528023194307583360680026591611424718014788133430913576675609594895197724127626843347236488985621356603349731471049893929409500711027653909551355885705445488037997407094763671250431930169316983675541426331217722586390086237711437475717819684624727590064261750379406963964234153852686186333748119831701136076673093986170834585187967822185498788728889804383679090599701056007000823791396109798000284160938033139368598440432307383108839697685201352515572684792403109885110995999539329590436928964710095548833439464932617970639555620076515506384774636852317511084183834717571736397821191116796181063441806278380774317456677992894221190611225664742748597024067662671640899788379138947571156919549452852540191128672349731462949668634515670373057665906195993355572481845060535432340140563244561133054964621534171738465587474057306324441306019122187034492661274909303355333474995447136097960837014761841771319063972843700837388402573033933907749246060758398351479073706627130316668914153838034116894744955403691206247169843539783147097229122613121403593578531323046726663809243697865303348499244113443218444826126995196565118320368330909529897692307163847784630931955346404829058055319637991922180732408198045026048285490449479397509536393377290554728254139300417374876889427946289927716594482482707343225013618709910122907342023505172206230896732105577921535636141447234772940842590022159071354237720973783097419640589244618831979103539422880920815467737816958038525636161576153805947464468275280106266135230042556443999857754339927423442821308608475064901244665595343664170315695378023101036877705734675390524907438623400269415643000626908247705304131759603907305923003518024459906069304442989407626064112089382006012018089651130517272884477923799089624185456943140985190402395382245841038127500282633761053086805873792323735378341510839817140271026870346867127752018992198868385229214363691983070120605771269848199502637064249369088744235515027801656640159241312984981691916015848211924912095859828871417055117039454709621560443335822661377080665621524998081462051491784913594618080714025376064959825581823597755464353585067080751550223608984224328730037841886731327663834010877164231749017971340346517625133078512488617828545224836079777566092968534373288321850136924154343522939993467370425459671280928243192164271887832309117189834187235198360230157474313262354739995843145323446566554385793093890647873704511175231177555399491726875877209103306624722325766159977332650089194277826067771542143608372157255297794141143987360002245085520589356108933285517997584915946471922982010125086975585265243284063753753266019390884473697508596249525132084133124000705005358220918332169947328765342845313524906396773086395980406050071280513819578836873619255457615269519340902054184883510066261879726272254197965488926364287353706123214359728615117048357802953498166516566885398181691931907234042959546967612162365454073262489281194280461465582755470551440183013816485375248129964066619477665395929648185429856313356094084454368009970707343598929571634111817752099846302834511449696505157745262196387846309372255913384609583502082006219691839104162072916353117559964896480193155241330850684357428094193135439764016205986769141569958155386961079071174766864682019748211644471373504292536650113926875974695259025769817386032904482962642676946396951366764271074277802472811063298996200336417982992132408820096237120596232832082414181663210911210607133206896227253050951416162774662773693531688227959027959455090096985814832725577152773825305142074370242865733485937600804212065942408775945904012112378200405271370047301810855007167231718392428392836242047468751600503376500732734112498663063438029702033423804932620457498092055965742044414953356226929319366379762004603966566170652991181650592632037508644754023844504334687930978969753663336151585466277594311623831531027306388722398135880717445068597835700186367299527740056036077372484476047056659938789755227742125818607751873046614728067103997357553552691607615897193407250398358161043119611962460955720094569484057452848104734392206349576584716957059480101629606249619852514792826434069029359595164452411167332712220109292499501537114569650840153556653639220506501249978268851092149483392971419398974256817766204224922794514664872986183076082785802985438020155709087523019366420384689844775190118906453015853453147300146322823044982708283805511564802360067787466058527553657465823499495873307992654493303943910021584146217656627143738131097841117928303414637125269837278717115252877764978010444603288713365077158590200329491051073478969869601176921141447520870164227935945785073647047807441204891010664516797150463209950244535602243407887057422357867251720866117289516111384477938802243572708511007668688664191064175719265127259122364386854156234114132653205281225456372262582904092278895614231799037628490984489075480692631995724253891047582583197847501075045861699667989398820659892036817576846021757871192290777570887562454581150459310576495720062622983541914441048896213920009131330839075118544714554822746584132817106301567339885508298022551488812644597894538084129318438061039263354264647414641727498725784087492985190274674797418042526467164901037902586531633338413773024557654380398201281675706765445085616711159230810920406092423227834396490872971524799630072956304176359363441980006254251334962317957908014977047642040079480907850453816651596427887409507655112944857766349541401843179942944642942605165463973525863890506694266340028718836396304977411427105484906937814592039755511187811097734965127907137002644710632455557423504439778039434675207810761092371030622006630675883682810319244237811304343999657231886285350550796420664946434235331450918342263006597876149396595406135254085775325001404348668756231260487361579373747252970044961493434623449771498579223189241349592498389487786756155489049951404197051497626973935718123052385503683925541032197890027452030623890915633844179434922996033239689660040810528158024808412982489057024018816529516574088872920574958008260693785282557416703704997924208491106082173083709431275420442430032958862713606293639560705641737817226183055958641192541383934542152715464317739784511548522965165951182575234661105753809725875886796605159223154694860408875060496152237148290070865701241928402102833022782275713513687240721767538698164965902788171924875418608041677290192731038780200872783919972931809968891522256454627920823466815800636059963019139264730618773880774167423970930262418950173530319901614601273687782949883611346176139133360962371007419722026076130042269971813975926246514653826721057483933060617103025187398360344223982762955823341592416162794090215687080386940113649465265353560687530547002909217503756164847623911558960063125238790087658419486221179252554420658709624204718333699975255105466477544750036205069803188693369904680490329284881811925270052067849582883320638457524220370802209699744677708794658687515323128002454998803688482295911343042758616428442539703482745616287270281208757399290917997858365905720851793163575478727272491582536230358421707154442871830933240613375226387863623021029417573157481429819661198857316673422051785920601024588848060382568232771192202454778909455658203381475564397540031775002717958935925743791826685374099648811234540590904078518855291377918459820638145221641179396461583369349208739008561605870642106066091375621041998060142499588344117445677211150434933674457543948634282595103517813882725118919667307552626554043337310789842164930071118069942964497966238316105067427766547623921542788486330647866383820980121883517261425543836519356958269204920877335068733287334527448155381117020545351954059100163159585302816524397782107875560157838018442512868188368816766341430741533970554253918246575165912089039148435280047656697087769189276025851009110750470269037669727507713921072369121929996121995215795859205580441936812191390591684475990561833411764920520955009000548570985693603772339302332622968717386741939643536118452767686160183314565589264375231639995105425059515058920836215202815979361557228885170273063572764955666495492507856474981208474845804617201687615600193808413509029143083204230832702310699861595339285568992042662079152335922236687324368851807041624247997254578393161253365931125047451631844063087390255511869790256695569951072150703627752583110026992503606417311997611691282074332161561897745774309672987221615073399946372632583154859521421550199556377709475089914884991288123340249064950855197427709472835667804084107566925698113692487659997988890277292035461406251092359118583680301801040845850675447390849538187331135263551163671195404504184211296295680998326465537889215936712500019837910807529667586993107829168280909456721954256311051769337859704441481224518424157892270643915508315389336224376661841808165452565934523637235456534285369815683797720527221942717388983681192880141084122330417278045382849064294849001502336320324582755720712943516443633491351802945983089866443144832659938349309296771111013234677144677493572242154541686929853711207902737918065060309106345601000993895544587145804025693334963845562549513137905146187895344464542402300532125375281777323430992433811745596785730725724565980033268297017761648233186592785804456262901479941043118222144689512657013243475624027124033582667689937059793068525942961435582895776929937688811113692714590504975877935966499979587328286107291757429864741033513374818144260813556703914230470873973320799374501141519705205075210583691047114397556721901741379422673082746331018102610043991003819140791537702191355576541699978886199849412573242039510018150530147676182482362452306725939635052273772112559724087516830722210118797920410775440194765666924185797212195425488151621561087840873534762702716867126869292304880828752457960782332416083906874577997419145870169129412833230731096216216234906283187119110737330683949907602801163872229327032016974014339310418765647317115717982290443544628998425834296840284568225036097922700494916395234902319448156941841826960197028191162138108323863252456271381400156751463914191954294203838782261004782033938273600595492518751788210769288326472224857512514678955181377025816000408831724379992343763615109541236791501314339369504445729979311805500576721887966795173161253311659813862428514516936048714828907109634292819805163362474063341680177090109405175666287724558386477357286419833518430257266982155680147992520310091515278649585674858783415763539681550645026490643034421839010540140947783122767230500915093671880426799116415480611454579446123173409502544752217840169159239717324954769816034913298514234974383067036779079878912901907629951163666192950331515586901322865941417779656910549336436691809376578825799059818178071686126535699701161005931259698111233368276905609321762344591327136564366345987613587676740732540126994761090983716862624881330028539035298057850035429242330665689195469165365390703032303448628509373784947238171375921608578095828663427185898205994217096828180796068202170893662915199917538265225742611461746516815576640683439825870577353589868120900327454382001865317346561964772959232821772929177473337530555128861057927476317107511588026482859710025800068875076578063061227879879239396048211820344595155425925884085722836119006348241520049199060451637656807938908582314363965832561012266645302205582055811380059230273664435380927131265251763051503619329003063029856475594147171103799127256704196559439868624997697030941306540082882050267243639156154616770661685615276268600639388830011476763913380650895853401981786011010587884780252877502071186556357969452913576367167490656203611283427424910229089429750724823086166878286570166243955167776275697251062079591283854827440456312275126290430821775507856486940231070296909423174721512021618190716960081614225357691947315097824850372824550033214546925086054100441725762203769028849813962904654593046439785385859660183854218101285423956994305321167843150813180145503817092855003791231847010120630049067179600167170592064507832239898761094362663846055972899378254972844516435329042263540722842621493582757018823825730578397429571762034708548796969023712643311371723149837474942174609129602567812747808611563037481889547168204786127703641328973478577118674063556073211396367256003773287639653541902302055129175514824436172151439520465432388872655938690752079731967052298943293172597337093552454046228285796413002566992487399935823484674410545396329401372952236430225138440813115661775311240079383202981399896469192277391661839991947396296663158721974378305794055662196627044790647780494476298707027442524979111581824251852645168927609193579311765139417541111170808928965529731021666366195312550850735962303838813083842960087138628895564570358409500695553165570952865646514824466294791931374013046517646171165122260826607338563242020482106413941245342478726553593524308902523824539208091983970827884462280539284507804733850412443704865767618781130591094390200662332350235992895004268221978984038183026635472526615257462865649933531472980548201431608695430936511883528159956741047151078407564423105116408839923147080794888966869474403678202283455720820832518852562386807864660652396678797513322726767298050124351295318644249204363882682702972878104000535303842028082995550670727813877694538498539411163592080247803579447481999121761492721151364053931952536410587138843132111254259378711265325341511240497062365603880842919101212475868862303385718895184715220528672110644702619187291047696788721983573188684712810095921691678667893824891552031877992576307481797744221064506286067000522934482236343084718305767239357539770858882381120748989446772834803984810173152317402788584698263487861215902734810225004620459266986085794803522462848798013929982592070568033068535067745011627591906892793956874851193553870000941891907989478517665981581627113718099522310261088815041524659935142415901228357469680238489659842817073020233804445244684556879383930197559006337655770151316555381499837304282708429556302481456051951556095444847324250623243002951404996239745137210539413985195599813739477331352845264433561544651168187139224396936991010185041668109096868609997603924470649562373992231081079840648900245575092995342615718940247063140166780091186531410610763230512619711838378713646855077437925687928218318898724539912562489291848679548488064606805234094234422905557259293687420616953485245048148722650748146734888879842059396797786949357922850102337314791520824253529429762195673454736384467720492210997849788874803283835371742414193787777704245001656505104668860049672608574650944255408575372461629652087508746887715822299987582541557616303391239062895989452056789675014651743637275220875713096883118992152115036146080507825088649313510692543131628173037652648854247288961783679041686866668348682317832159462222601202777831286655217516874154645055081708892216347032961050551938039088647169920423453427243455503818207355744086898303745811961658537259501755843668734973227239442993766418716984403906850173089844681078464557290292243154278033197520409077405119266173572423114083839423205964974136592201940921304084379339242496372017009050491318152078187320499299083158124835441849395466936288823281774182616771304146877417898205645107708859177376675777030038975185318376572646726087071312571943428882396889268139109597903814675500844257782555052824498662699884287584547681171757570610223178356412260189012874500482433463235471006292433887341716948541135534945941619292977837150025271155670394700002861551965351823871227232503413460326174992135845650404365017298634626959690738101911268723972349069618311258890140003509302893572389551378324996238051753093702273936967572717662700513097973651376108687702829389196892411357220779968604174081072332781090707892625826646375024633242654686889004760874951582254105205838638327548316314710357360530108811057273187708396522509818185854066176698762752870026775843453298154356292216699838159581793398776906059958331871551986088457131825530309091929421222151227748387802486254821634990281856620061971135918102585228440788807069108415883991846889510176447143737457832157744070481324025654591024701181188920312445684116826688900863504090427673649553329465032037918047570100977569703091573950450266896070826556008347437764763406808326795233657808297878144909274639002209501958977480230305907224141465087503822952938606868395825239544476973349940762608007277910217232985616400916300674639927668301427410862625937768168745880396249717312529759401311442206949282061941385623615051698973568188813787896326254377363666969353742151236810417241642736539882599879105965632328813272200604157029995687388882536390081284615179486094415520141443964871796940867516582533377679258678593887205242498379206528213171457622387384948922097360311329612320694587988429938880097361878990769478742034436928443451205690371764708637545403635170645642450660578057683233938046378506281674247683218333548549676805666325326919301416778092696923172769198490724192024363310857448935386307582656109614314683911001856860652218721479833081115877986423907070419365159475488887231300584098709971602123059809909193908327428571738459931682247956253683907986451410677208274569325879784614092647177028353032922009505807437446545624731562317866314526384319836175821678609602857805627641167467336278205534547802389230284923746804942369969928298167290923492802404518315180520719682325302123125768613939914021638704623361523433359946153646954389751100242676485981060035965364278110457567828040121394134689004515241668844415552195441430370918852999692127560089307123192397109573342985280029145023098488582441991344649591549411754273158832382609141212919978620610044034628158605405126608627905711572900524917098377116865610849071680079986346025694325600954907173106079595160032300298804011331656603807044996035672618472230844161292560183434509342516275187837828164016285626256276707017959648284513422898780203071347097552684472184510645206979522524827424879212406791310452223860887177515482648832741049358662274938229845615016957677872907566548790770906114768801830360861372756232121764786694832267980694984403483916034042132167392088025301382704725682541640232562262349512533741376931250272367206195021715535478293727193218380955885090727471396875399094123129851974842799815518539007059217575212014926635786336212438287685778186991263118101293700349826723038806171701676851870416034722854333054435729252386427507292139737522507735840342210646538508785709400314158163025467250882973752700814978371035185395031817672365242766615787259156262755953422496580898663166612947592045633504548771446306463029588667464652471764306096818423674451755808816715404038683766674068244272951515767971951285982877138819133001354687764543055811606177897140041373913957279312919491349592475993772232585706114296288816607844272447622621593408348448830401725226335964571967186653494688984966684787663678613030784133394343086512844395970759005181041831530859850645326115668524276926744089974564452891566800310789967663507059116395718547186804134812110982791556151509872434533183642324180771402713322536702240819399351040887718049507519610767468962656607845533084149268392837565419721548770377612214023392096767304978550280191904379765808447636505979559422254467704442445114337300044496090539622621790538863129195062498033680213888216236300985999708288190045080735256019563715548823544467265295004069690013830427986243255485432390304558177445164926951525691096384301690875260645120289684600934855385283676044206099909188694917146285491707171291218922132007486778831889154263131569624272039468952034290310171564046761768157157493500820229381446275476967743057973787283825628631707527252753614980469851656360569495233554622457848895623913188935209334423479012682177209646750593831136301184920379630017729065758203369125710484220284156989615672904027275077473888881647652651382308926996951698848411401440787141121489166229177435039287678961176260225491322313520178220781416765163646012174239972933166430771330944568737807349748698375843525390082501313763117839223818173736427479674133681884846321918741000091475164547068294413180863316979476989386325274686335318210874234964391519603175953827748339287598244395799141834904264134252395324587739914590648522179841534642386895178084254520196491675966057624212037840781618514512232705887374944746413253235266590868605541732864423830683186565658295265752764299505409904182818870467125305864725376951018142026354715884642332478188245738912973145019787640562254578038493747428967083169173199178051588516505598584448608800532668162151952482112480164922999652570729590786874044958189539719366263539671078853381619016803040379610842461186878534465227570619678306513976823936286182136373266267284273126394231123900324106133676262119845483552532607859282171323304922456039452310112796333228926399768594598164418462542133240306674373476085100139177814186499193758942727973384957707254939179621765658066838400622359872837167165119027514809716040569988043250348252639282415895810170587023946659531115649420761293550877083045813269541170358408006857067296500076324814984614556546515639383489830986695759367436502740483940391141555569838005540813422935760819659622837798250999813806781937655718367372104099461760557146078944708576572687333603891995183969347285233365396702188854171855157272140351111684517589039329908502135470506293935802968487265363214592500913838122206216165133220556437774945666138587181907208446700954296563396539366787047824809874673758942076201865132177518002545238188038372416941134869356452253671878025579609560603549529594510159450582237881837047751397584586677309530883388889724181885181964062039563243051479971080238527256493238448978390365930714783111574431962254481342892556788226819406739380405748014668867120414898064777847726713973200907173432482530688725075349879101974713820580929683443928984827365666357692883619262219509434162778131074474955359176477104451542819674138852010205317130229828771104608758149870337037663424417802608176248390238054345616151429771815528214435584778217868564672819695270122469962686345852655255760633347978432126183010367695415408723258326916428285368212975191749118684093110367851018122002691474826832013613869349971512426631003036863577246273086612292658277069394526638783610928882870641473927198503970672996138630110252212162699183302007659460021465238639965297364144595167111842206102849057612717474826986174800741778605164591163788037255115446567038272084913042784660426808727454789756488110575436335654290796320289662454346722136578716300454853648790095247039577377243646905390095157811625931666201218113576398469300197492160558661613762761758430407047044693916803476163613905844067613823715000669552900571977255474579090014279959582533326864042953787052329259328534353455622315839508663390880961349185842296726924512138124077727666238600591112956019572957915738177889700119934935530061584013330899581023065826233211460044696254526452601045664486278195716521133421787002680483215473154236602709069667611546149718043097648496717931039761008837907462822638642459886344578822403270734627368177909924326948831376058029364265651853071595322525671718523293812289633435976653511170335950963739274849586092174668105327012365513856731256069364069752956147300159848801988224103824718735651896754048189355701758579307794931815454166531887786807873878740276862267140879720369427243317378075011606545081774765486689044147284636203842107720384721489747509235844340261793447938715309009951589401505719676659035937689213991847920688278596918993227485279532346172533264795594925770716121260465051629392287752372234610390112381206201308469245854019575575236351570017705811497381838992952171426176180626215583220240726555947594531141554953518236277796914438808879638045451433345812497428794581433269836422018382174226231526558640569286505505639029075323200656090296171947855464644407453004996904328205479668242501902013875298195792274003062260168308889252515548199667250488552446126063916914205687986719252623399815097555445854111276711693462284844443897867594223353810199961787052399478350678169027418951737239446778752941844925348689173171786787054785196865740569645024615710527545183991470794516479679539719614929134893481979919843734118042964580331673638464704551678126687725217364772246237375714783092106565874347106466898812606736992807295260218423523570305707920759056423817952171298561934762764618197351573609859806790510642875185581575571322159035751876422340891312830927469176500479068210619785666066457171161310408456987477059109445596211752421228178760335279157126211656481785459754164730502929767977679162660346154741288974897058752047541769569575356630489061693006836131004859546052129021809963648956942021320363659429037079722188441200344857949325951961885137344220999069851173660323361435597021614554698811969010922387389877728922558295140223766658383832369934493303391251823993672495321575462731373319141762532623864466328868232097011543313200779955498806479624007567707888323442191967384027576580691841401017836549957708625940343719162841049518346739900159182139336025322312609014663063862888118607630740205888669149696851669734165328315753667164384952430940154484088126649794635781684149421662943747728814535477122008005093044336202706135886506108180317836001912869009557126770149028692928414405789758756077768339833542455514955214963865208270449523921494652603870578946021310293834251422168070261519506204064090858363442832892371641089430571768674706058635241411857234595913673035190081457172199591197518188799998294791444780376999780558471748816133227174586945651623419365883187915790837168466528512221820795687111055628579111685195568716960993198032641603758471262987292116086662034134529539357706607134165444537166221502393120443336273181720307323924812035419956313830975683037486023808349003086803803988969789890480043530186361562187608137668414622231998642675112637576100032438309876557405862326469459849604252376375648791455993919360790665014590005913801758332469101925410716086826076426339968016448378377207038466210640338423971875560563042663457458835976071343651234612231472897469431384821231447875144906802678160585207715667129461182359730487954438018462802615626704040111283058497522243811901222652821218668484739290083539148361610873573677118822414613050594432741392400983136100595727895184740116024770622465210373200620130248755341048680378560656575555544534300014758558195189959608661535426300038456906809373258803614330283441315957604432338105083950391279373486114547961172533408645511867946477315965064331671715358314955814940002756630584821200237587086043446329052432725793969228353218533231142368997790398282201356024317704346328528650274433924842706776394442222934128707240324378213641583028966972235746894759888861649348946406124763317937367164088145765367805746417238687163124983384402137788123157098376351738196358839584107555852073013157251400100074457755292543701483164241314283289591391716976761864320899928693616826574463404671472889756730646815077129069726529371659115105316480436022045237907555111243056828073143794395622390614134468388692753814251745208461198580992436676449233502504354005733378932419279202127728057195451925040785360906689648028059199946135242377939989961362279219974605674796987574803487257531720117777106163121877701173515725556355697043218207655842654585936181358403192349390392745692769226510105168632975919570850089821025377506301857838884372723086243438470442381234883548477565428548930871046297629376138719380624625917580742755798108492240799902309642685841419992630001192704008971361101349343933249760849134265996918423574218814228194147589481383776466191185092233255245938780075659319742778708790341079374364558148543680524007018058802247725754685882891221328316252670606959942444379496860681811281242918430356208804423040859476272157587776095171160634839998610778911139220035300775505186266839713665342625894566788658360897921907137143865697050702655487668923272888499421149867514812156878973448724318953451474742437838798447243543496472455106975585750052370995904649190545042302487134841487047737511735653143712489968832721418507099717859349323313469275806518464693902595576062201024137608795687916963975076389041127685359640760871498330299600847289036282771959145152389038293140186946821319251776687892225992735352434567201680756788628387306877474690509476569883267258935474694866591473051149769135985733268420148287940623288616591370627528858231911495392764113382714129590560859219213480723474452502273253412678124833238167484616405190089298321579993245182105043315863700224508835598752647050301510182064281339421565150490977628062066485048235890440460696386377100138636919360075041632705099254920283605255137663065471095766603023658038939299689937105375180577530947531700288322562471873026226649665294082072708621584037641523098464423205526100813964126570618367445926604696330966130012744430835257520673180893878648165659400190817067709687539526995742202486076641683679476781443677476622013071694528829693217671407018119453199876237471499288093407148327318915104850182464266200195800801426663824984814859235430179968184546987398785682782012128133379373066139012005127336815250614105375624548673664307143575815285232497773976898990352727017483428581532475041201550913515689048175317426831719378487321377221563067964478765378951195228620503796641847853568038826044506380294704574644030388945860799577112576880405337389460424595581830412670704556614354758990439915854684767760642003587349538368593706632814730663471904713894316404701026941079887348638111147949928749698899141559801112245849112102458118308350895060140105186704015382004108406322246510452537154755988748730551513116236843040412947608668129687352495667917300348039604341497627982272312520026007063841847213965634604298888354883637518713836915549367000682721898072184203520196354942008743880209067257663420812074537589422067994462099047677166449662924704955566965279155009171438416577545854710872565881131902797680191750842401207233293328296359441028403694962624078354110812979755592187846981698647063162834576286236829456589696799009288561641540915438526822697713392570910034489514166112035380306189083673397806022754314166192569748367431815510291916772012414540881560158430172925688840182817202446585450633500187697380842639312467776223613705811155361434014675232735338350170581437454479757584626617052668534448052847830290885080610719215922807706064612847786597974850024958035677695526705337735882108592189996652393691529863333035081559974382146290202262026946349933809515791451945776526478389447738256114194097195159325185454085806019821709704176966157462681943760398515410305672933036069852299694190340000399631021123278385322513891050598133809695915001282256926763305831492043730415810222672740389116526284828711266940569237631908084853763541871465680512824533011978737712234471142146885775752002006462997598277876080655230710029912512707242838383339886754500116529325533244710139360593890498264497461348471836970846823841685802979383901275454330929668328311487524611049071805012295862255594381415620466736162967073601742416466566588704287137391575205780515046384196461493960023857086488817644017666352789166877210084298698902452168484336044600833479065592088025339113808244717980500260878571581478994634837034147731770325750812225516457036014191963054338631197906291265538872593091901631556042797259330127107681858589169303354170450802571256351062025512369279097560174519891645546533838957440867169835799235446800486584702598226447582052507236001165629731951321172476472516111140415985620940564800354776927953244562003648929800022596983963510340705069118661601742502645680757699240962541914297181370422157007635108372559935710489345186025693752828180314278268799660532049312384878006828347006621623470838042780766246630515267912945738271020206737029053032082017526357208334297046935761462232206543938292997094977377780795995950687058605879735166138547467383686781637933433100542385610702370294524557080236440917188539801606303955288525820648691810040776260672085693050647937673404494784392669924138164703651037887741307175516024165082988214593960324958421941315288663924209045440140044403188894547736912208762947290459128091363196727692000451898063684509621558640507689061215374269007803255108545512579782202159251396754827679250932253831740059805430685982091288203057408145350733582444362805146926910965686202240492401047581140675812802866025203406352339774856033748865378301737207926440936306186364000612545219860821624361946456808455898428331751945365626612633028456008904722890855495233106298452214178794358544121850879631011275184120806537940624231868916999187044460905444929105966050450334236003060243674832997846843582164878168760164207433652295869995146195398067894402129083953673928663653450317527532809444040292157536455732662270399979844767179373822228624137994730093153481068230195202884222328627342307287885493247401069797980167986708556298624651283094200857956384104381508421774036980985231532591883117363641198533080298641917534527148693335452363549860870660691324467899923276841626372868109849386478684325058063534185581878931417287668999976562056236092966637743283959455952330224757108792086146765963757291856880388922140862112741337871575606931650543544832167255380863124624952431881497005960966895666176197938561907162868870619200205319313619887447491178708108982863281542392065452195135277683498077357950248878326653084026161807471384078926279803558750450414994687267746478737088004571298162428913268454298833684781874200392126531915256960431905364625998880812298855298115598723323974545365901014489661505422298047678683586789501812939878672263458813435473348580135630546477881366244240980476048735416310699106454626413759722071044024659686439309391595128963497965961357138240391762008810091409078736467658129433089107434257631146090547178089969120682474650200613515980338357118010712166335221962720284680979884045916448432382268249885851327545208316720742880264923692270860296143712143432680871268759003376187761777084000823542190404570083654901215284341846343338118922252313046435960604455161695911459415699814074514421995087874861013240137037596778602688481027064348144935823145532984093103136097760453915367828954962164170381503166023035997804981058168148243145086345250643756826442604424679799506997633591554520819903096473288163930006719996649945503734958473764733691759942719397748718883074440572063896370082083288247916633764393188739985582532111865280662791506998570342499142557356638994261495799276793281306456076740430198838936703068395233386041981470818722981520972411984867205457753174631783778253538925411888126271327227280337805903434170586048670616292907237617396609736462622419973827888035083902134637737563651244060420875679167811772158833563628021772490725420633107033120562782691850939830317768726659768733934067034063803063989788245922400101790371211265135200616711038936690837712350462484943986423122074089410919288486686841836507822880975542796524108105159103818191473678580581187357871099119259769199013164282685391693932024722440118711247920134048620876119552834817717390801439358657216642296744147111201370021956978238446890849997625796377932831031452473878834594583266099051343647136379377294045315613755572978327489708655245202209555058430459188669921992383086813657313926519544022248269882758166480902463342089912470894839342351151318824350763265451736380485820625961577903472855021725222964846076071034720345124108583587770307986411823798503703511373459502486459882396865952341831110262695197477344098673860535821275722890605769291943222478417989243713921720510696082139143000694361695564216387868196071522933733554671376582329668813451249462990523269275557232468449521120893561360768034714921715724886693882856611220105088794851074617128520652756468497827436449752043786063171114920812401841952122880281575631103981401351586458839275135310909155279298946592828787338018875413385822119374493002345359017274066478649081860544818277492680529412460068209052770546158799202356112904979523307229032374518693289155475804719815004201084791605273413218660000293740802451411983928712471331319620835018038764119043120294510025800584990830984227864993841919390251647259670652709726654441683116159842338651128901440391531220888879537506579091272609853084405499272753156103398305796801392669065914626728786182328509922941959725697315987152695601122371444459288800443851910715557189773251230584552765046533812349908442643716902969509182091361623281723556922334193794591978403147114553704922988935335390898927816871397139290983962021149238523514223149267080663086272778067090054245876237123846664840064926537636320747130894667440633963575798744296335278578513675982771029287345815939196926209621633921962032430327834764291258828403711228642527577550479645913223464159745944889595252510409980636675314503867692166033896617726002875350692003410782541531817661434419805311741778577068550757714516518363126203612723576292793596412571391071786267091184980056296365531992682490982698348571776535438305600800381434530648818857768483966230210254725476374390930286240771671951644207010603860740557995045166403722673908837672844812771688871757871802511637468880933466593085399419815346884649896502717101164029002767263762635329046204328288093215931480214048099716333705125345331854098123800685157441769874910584045550689725712635439505946591177720937887406497385707929266488833904570979841777056640606133822885801226732264472234810319575357260385693023755751981074679973230515985631296718381633785534219813572740381209703450971870941271843845528068933735635626712828762050054251835941265342288729021564695210804682406126686005896968732096472793971098680523679357666910510438336070089295329313124559504754347277422493387334425048630368040849299506525639597807546100087837511384281370549680329014824354596900709441728499803538974338230614721614925877627513578286105745716687006084888975756210966212424048649476238447202514045671980513130351593442335107186059778524451290390040259158361472062766843830035336523498236386152093264345964785719039076903653542151392179366413109133019603617957222934902497199889110961053272000211470702419726556328491064226470738585163717298715238124645160376623602400871350332619279551332003332350491540710845657106304549617847738822477861741906165311574140205531717764504242206295634282640454114678933103530039770347945275364032023240490247861529161357176921809169399438705959659225111364198574797287746707305913510174014988151452020349342680505765209072651317038440214056194003533281969570382061416307147586334344211811770049370424819476479704976463772737803385702231744480580125312724892574833456557986674977384780806819741708779336053925439017202885602385309789203382519809929670851947546468878936618207958439611210674292179213771933195974696778867311598819871520500970532599975289828260072058058010306100688200199670779260851503806052141088390366965358834435316680211346812129455108531316112763286838755634809357329391740657115322303324512463549728747717668714527451793828289988147651702197395200087466764269099922440294830782840218945168264101094844976540972640963039043064186537450531129892721922087880692239282426323933202329290508168875436626333709616154773047642840005119734000616928328841338538398506954786903981931701460610214318024289586526782522267709283150670874166348842724583558656308458117183793889633877054057279366480946301717783944395683848410903517866379122417849688982248289614051322703166379627486687491087788993446319997618310995922290112347474089560416883133758706034413040309255182858456458486164968445720522065387290098462051447233788222084546876425282008590526014243209288941176330353319252252790714820483453093051670164479045869085794393262606558384836048699026664539551531565761218119805105074177039345311570735011188491769039054240423445163111538830516197555419310515202831339658183172966732721453606560289016427583964995025333412684415944894988192058659095054844630391154812027332329777087944291069518449734838458082064486979691043411422757969207900758413255270907156793136298071571430382560873169293397532365365044955305217194507031913245909986770951931431545141180156561699379581297420718132369406595893223512002946920612162264619149909227067179923718485172807460382154616733628842231901751354840132274537149566681810539241159287181899081007295112130601779093750178247159087897099712954093726949181597021344317393614361836557614930177776583869749169526212868485892386224898130862498386469109091031767410701378257951638299895409414435134351895420489124273748800179988262207080853122870100957574263917662811980798732213218626369941022961523175319357490160837346968462681571542675385403122564466492896628586694449567034860372985318885705074870322937658437154420311472525305123234114144606170144185502610913762906504278528813866154504229671275309938723938374456822621081115595474572488266440980612780779456700476657874255424674315611800862792050046744928529748818440104233216778797568956920807921561465813085330614414018663610868129570378026936538004092725478987658547114126727617589492833257678646829241347014806253274291367108092289558435235043321766834337926732830748982556801008819088712011853228110358813415015900577679023617920180859330770112596357122389919720004259664052282073206591171729280688265347674834202554199363779787082236365330720550899792862959226847371381086109523178583567535600588197013140385349794979521943595767922650877931173397613253791689181022961013335800273801712419844156712627292416058202550276221686116827964725821471145417499117686406059842279344266583090642684069069503395752708485532897536089437485426227649892568963624612890828319038971022106955853386718344525588237242996199226029125580418572102667554132152985460729676897390005712244519828675947986927284203661408765744294022669880624188952012677579119927410502743602259592477333635275447058241900260411756427572173911573509669519049711982856167067923157854440285416416496483414575986395823155357124635745424996950518872618171425158143916085441333375597903501474469099341462056640166343058231085069997680677522697607947852787170264400727585740744796891779208378535492383886213327815022867280219983008725071198436925584169660065103589537193778098413287999928044067167112122518785865824105120370697122179828186242969152760212485918204466551320241437324963303461851974269952829447908882077356609901630414513910928594742479257478326905717961318625685243326598737498253637297320469958167879659324878754805752857737505726686152265880225250335181267300322250376362665029491045489100409007430742045050824655523096385262071123580266591613811633192412524781989624413077065656194229550051467517953487078970725784769979122386653426286398542639130934833180713408757747313544455334421064719838945811130742107086808525838291144968806229148553934178340199572680230861233429889702415966879068802057260470819492371149579897052206471967415083092731359240073881894952602028521234952521179675828498994236085265842080219901815997942515927571019634276803036679300109999224695486483143240806202977546251063940609587140199065230144387397531605225412898489890331159177704690616916120988043736067984993259292661208075534393274478308189394448204118954095874476945160500178543435109040992097624819547580658818964930766216248348781345333777050812475772818835187572606669566933864314202803565989422978512490153870696213568198608337148404494729337984499463159356206166233138272458238348430196837357464495474152491983078719527926791730966643673798312264584054555312036436930123888181765922666545224365820778388337278475171101792484404001227371109413273379331974228204671747168535037862427749056372522394368281672929681520444810815961950936817537034386715753757217363768409474638449581419153280375701946014673451693552453995314228195238682021457407398026092108141634482564019536885110547984776609205243932897730793918994275845107630022127036857258332915258239170246407046239230532706306070122049733209490957339229998630365275512661826894123449879988811937853968773495191725150646365066591426022850981906212572887003634913776086644638780963500064906720811775428895447062471282638185420010846278402051061511945130113925089591066865408656953692686019019126169823762967324948173955265055393964957668723427167793540041817988782510371784914417718054162572240975277856960467423515662981768321319000122956003319832602726553777086756785245982167233466672698719504393325618879203786423411978337073068839278481061883433670387341467452295039042728264523037678181003129765006037059528663506166132900782491689349910104051686369916618067313050644185881870193730027455589047202543028368062864569700953371943925298947822355913410479308476597109960111237526016032298634332607944606734344746951627572947232584975939997645226044283711419823255900284182785311908524651799672691832670808854798809553409326947717649682144878038505322979666256798301589341043067030557153232434706109698765892056020421779243232684907899904698884678102099662951448682804072317619732078897279538620192592592989214605290264750318868143277392042434242202424570675530757006922557617458315358735163406365629357483945766594358853912650777637495506024731417423166150463401007230495095090567261157937753284411073532636541918994631132969358727348081474274588501569895228997373739548116457654308939563245704578485326521891279982544585301306514113663063358486961037841932544231482374097451330559784161240486824750120188963543505007932252082041981976763156497833986314256055876476628322500344099648125377924721942324160464963348831819302353696991080320534289494947400406615760655719489762087262827973866331452217950331284296797533712615952755687139949806276947138879606336614393816784402029443415418246605813696368285442711191359850900732686112101179248055843905520930978114906252579423565732728096525018189311805632501413652442037556647526158277749008360028642863096590626418105217905735753826120235890178019623156767549413349982107210778176026288206510029879452756334762754735494501792678401987257197823035275674895495503674441207648196568902896325252282836455219877144478024930514250845211460473041983981824210867005472446172059256858565705338387178240905889459221818332573060495238978810348539791302613964294373464871237179360136943758908731093954305331718341378128232864882262133011352721839560705937448609856660081140708106109416460600665559155790819230450757048559394105979619853881906347338670475401290562876818166679011865637324822692859949047321479049723580504153055309786869500465012810275246095606620674515438259203986966068139191973786587589253960459674936469398521787874291899566611017702370910929958993497344835941780551123504247302219726404454753751932592021405721619905607797961758848794060270968852691293888437508982105490692522456886175723118729439879152756038708814415502081357628311519106623953776567248016670733291512935163560680232774551429467252114107707098895200434110821108088505807292657000943857435977144386972380237642174159078260623800882518435219238216292048946288618293923187270364336472371425343560152035368544403463412823423853517716582793920300941438677861027839998100551278994310514019619373949350927480179221795845579217782181747521530461442095698345959754906407463080606715869054709891166331324463168802785203612229931738031874258433292727402755693800097063865180693807931219539771529296770655856603039070833277219091644661019776502825389548557578322680884395729047600662981346653051141533641594966824669914145909497334957061685070915732434603524538932675527947721557539364893560991340298757879016332466799448200687233661262611927158947118954105094813567873081645488415235049290212253959375487147382689832652220767136570458361327415731036759868993906216164625997105143590485869932099692526357583663957899024894522483684171441618526559070033151054421837864768073916921261447392614265596437137363617162340425613853265534494230135907152465549313471832155973191104373305188572596622608702126533706981500598509279707474234879452658534218179106602059753267713189957045685785488904022243992762530906727101792182470911601799789538814080302896592220270084191034330115285774607594092132163291125301883447162471667180946993858609028967895536812308028953476927203554084555916932632195722824029579411542961753656045744893310063299718679697799871892991939367262143748768726327646599468836391565397778699112224702329873208720788871007803985792243507238539844624863611407169863431981946145874329927366688419495325083294795120390781337933281671051838416180082818681401196145825577770955740011794762687911131771979752370232672856425590276091330326583413253262636004133155550655195705818703800009828721307327401934738041181076042273304269439996232918926892871688271714460307264625149099715252548807647510072153297286590281970226246847456494515129752985523473874161955806937282555839956841936088652135989616843841160733901518410495514260441442657117882130567968861957646698153499162945495337618682426853375913844020611907094646145638502469298967476371318161914687251151607353897387576132689112648210337043935756320376128416086680478316893923871798025588065711682242379740899572624119317498715766673510811886256869322238928035291463038093572364795407411485215784831547068974966911322296261434138571420475601110715228759947433089213844720730666017345845610138079056569466046084921482796033059718776458797207948184844683035036299549050044034138316115069840829583656024746490419507837800064466796764588264578866355948405101987295742711127498664879650705478532667939591042809330314519103058425817813239504394994800614019661981304666850464463157675290191945406878397621483324630443054638952342482883790934797715436985580067694258409450414774330041803991113999868369290267236844224515049626037154535883501068231641812041061626014887373582208970712532154787949033930942032354649786684781903119001106196892925126228683764707290114913792404358142668776320987669108822403167047786764998584118003450203756931659417816690513935336874694323439269411301879703466021666611571743056551776359202274976711615266027534169597436162172099910521913615274291984091159375971101321498447084045628557517073439070990570105452940308064437939401959384650298635373830968240012168753760609550919167546832408549839012826386414908903006308441472106287672349323099503209462925091810677930460098057467860807736440151542495806208597549605916448526528336138348623925353711290475582052886600860396892494074444313480463680713836568175364255308689931738619058119535215363624596657357809503841609678932993099775390435350862817111814625732908615942721737637762526186499946071389791596122802205867993454586362411578455420064230502538776828826197531942354021840305374391694241413820601480853024232299826164775494000150450356722906201567883764623454803525462453962961298175184159755038876109502817526318601573921351151455745156852843339280403566303582100146726156079839686800649320721950717503180992030075659636453627653464070267129996432788772064773291907985813999421090893480014428741570952843709944679705247508798646184498787729496430262933950275694540456050774517999964188537321820291822270342616941604274314145950938637123744441201635761629857053631753689888229930315331357306928004091359454473210389152763112551904720267990210570446972235650573820516437169458005820718162273501876117916464989252805634642442246093164888535615203737568695722692339933244229696905986901832778475771395476676299610073749101441563835038969748937566531713175024262437654267217773062827065003007018872372286569291895353833048401571392925177730302002303127328569979780258219193724780698850252101748202271830592440965060390662536059434468847442706222894883740236718358309744637270354426973674269570576754713021739953897750189996783255739495114698420022540939108566236877542298735593540429147626069526494522644302957608632679853622543296831201758018337667409363041250840422083978206382973053494439524473393320136615318874845286380310685203934793045149673528272081374873622706584363067329512846757214940262255169846938213023516145522123371895724928680396529873744866207175447541963346277559776718678921431916174054519050207015628827168314699280371644497639935117256391386844562722304411134583012714584791437493585586039888963667674099474143861116740867249764832696370500922014113115755544328778426351325213811783983006014736867995927722581973650330749005339132863618218351435207099518560493802117620774915748136206359980923092830337737210792228594998912500886126572453316101306391239708665755371091777975499509649365947951802451634754297163952184949837217607994859293119618831243428820068837267363858937171834029953685945112855566438391658156559950690310050776152297603979929885536095926619205580370431280709658244670235103260402050891285295907418093371608698385531030522885741970427396248497103510914456447736484216240196859547613532507344464824541542319085231635521617915137964684184647304168232053246170858238161019843152055201434408224287038467938723271440974963463001934510845642000138079384696235829840203065910326363191573903864484736994347303214438642283185663038268333174726359625281088110160683389504693839342268672250378913120950634588985195775862994557459712543864705613639847534594194182793753559440003593007663424444354588105546787079338214698802324618097637673249894962654798396150655716083655225676680739932369430089644296782363830410427177387747907487831181130563404847865327185170953827960350106508208911075470331366365470783129959926325226683863795506237538669508071780305773840192627344329120384039285608092182772560873525112125593058009136828468699503187026762922872099940948079872794804287975823546738420053493546124685511623937499511117636652269654976088726294364532226848945971363940011701011238586282164387798684120970594004283342985652751401023743739968174143296957408837712730259311134616653041191746295215279020905445017973375680596919270401363544473954301723900475442371267844049227284445976128655950205940240302833992020981321622952303785652393291447865868902515101779254441353252895157156434384073901870390844109021506206922292359324563872149410964072482629145120359266835809915031383201106622552100331403427943137481815587877609037951767706386243752229679439134046682701896065797302718598793328959685773554113477795216940857241066354948813634439775723328124691688518790335029443419318174386647309238977447293910820667935227599556535127454836125307162651784284954186561730667314713246745912869485406009417924573176025931282591448526809529588665284298507700539418918130534643197601193504685382149163307537226011753894710474000705871300737602114829297118397063799694498420773595703316513634483818398781885949138840474246682075153922419569976746527548361278542186710866735485260746409081821579849465151117731374925134131705426964404566881242847651367221535096177549265364678508486896832428224954747975630072478435565106950297191200119067344149521594834598356992429744725669215518354511507178229027926298839563065750474300810827315263555074853618985495306931755506868158717152098387714575789893928549846863565351250060800475027652117302555141472252670233383303079417545964194491435406625018315876877270738863096754622979028688535743768341597977673006454711813728110275615843229323644220894319029558497573109497452898316038723504552874097778579874338052330858731389479714320568996723031359425198759187714058639027355430225906844678241399159689681410588352130827144125331747780575167645712800198327478192877726250252415588480632283215204958879303614629555971965355382534606744123550869816272255679270119714213359096197203053164472542541376246412364215566731462023243518024063360354595786317680643470814739579753605842152082119337337402394541862021496725840833583874982918087350888362019544180735698990476097921074005777312130624191622743984563379956781463587936419725479869674319056010596970691861849922160353028409372705561590182869914046000717173655258462143433862819584289115826455785215470002473100025465518853253632461216784121092735459846406019024833126975750541464625867175740501233338769720104167801983179428556177465741025700828457751390798203071090094037236220493636560497384684664765022768242936955402780394403753644132185071015775559143559608265423105859245228210988223512837730573776924549835998842251404628183063769279049967110425896796218378905301493561177662173532822899518305088223604104218191419681861938562378713375941828346422902125506110917582165074208942544074398485176361485722577987671676791189744910487791934613536808607434215964432794062121047223474138580296088153592482658718619596121666773434772713248055415503048125277928315934268853622549058800423899712956724680274499178629724811069023271314902212410828444790463142127294627629665304916951352361211622508831745797924640719169833202856264551494810541893533188542017320083445631620780406236862601377792464235201332918574168303533135514792362083244076437052308555159243069215993761059094974974912032890727971121374692973982156520976727548234591785526506302624884081504296889049495958257800561869587839335746655997468723760389930523109163638264724199632587009692768188959440630629725986034815990498444613288856458193610128107046222468764173048763884150096886881812076020677728427548835891981192186149762360338703908587615294227131343333826874989592552609627988770758266179770636438499545518985372542241529529566691613371111691319016688060166075336619876331615301600219476340957460601594201536391884669549181290960862938983370296997062767387234837390247788173200179996941868381936799767204998301127114883512015723784046074145383707964465199400939137465923899448332287717480884783813480266296809427647527251242502219643655118691853033922798625462399798145803084376209049386032040964463665721517848178749559662053630008660039803679657953787290660731424831471386219786094738339754291612370322403015042763617512574725831699306796265139002914381727661040497882724943039462942670028966782812781457414149925136639114718556971645810000863375294108795748268444630856920725467398614073581281604834791699063291077494832908573229566594251280194636189682422863504876046125935459427277391185098515919326750566912922129439033350837230341329236990081864682371672573863816796193245350367333019255484507361353133823289295473227771054615739102352944779255050824093504123646303864849816640630017420466977117108733802092952079520674361528186244909073641148719342247712809477593691533960517732816965390733290547533382799734224904799838704754942903308166957401740333052768616713530978550238402506992892284604902105957495837092486834754831441190102855386652072882049969277754776757620167282821813745250237640297718377443790862453256793029436750364564700988064130348282612703751850259375992095421880833055016517143818252536228836430451938533669676637930009262498582577981210567451669952030870796288067011247683542337098122626949445145630082348790724909571715398191877100538587377886749390269271523731455695731172553002492264135954782355915911016436947380828870657977815940570319504210583367019259848361994535148567864459340128082726478320833985972422648236446073710277509184609299406924853158043895443085986286559081584838671870974450664775455422577148955679545282649043326857676939823413166045133053760513564221458548597826388564691569054407308046753337471365506990107403161023648305802667681182121909001341832454517666168116402102796691803988109912590673193673025029308109305171668333210824471583273891298177970771882489501308811812678946378435792194159797793429661979859074645812003491480449485927787839162166149736361967380655736868235556643830294109547121193498374026343216148013918320625563227445366749392864583892059338190484547084117543342339385822416794283238363657468752494763709868507251713584093248405120088477332302399200021969731666406467865527374605381870532350319035554641737641127869497072674268599514911090257663860019817217421839090023112796878363109971103147631753359966514033173331874279244323569369045151409482326594386258786536933392422491970859489586263957176110982438199218473916284337669072840238661283540267946535666429348035840841809359722313280522640879390485725833683850669838123063324698504071042183330484545039499789192596072946565727084450314512067167400728367941724832047069111235098436596213761958826632723566321433826775989640658950841535333240646344508033752894134788931891009502767921169837125717681994209535707277840773723115160042980939270290301112464042324069078549717745312621714036260460669650011372615490013061604701235070280018810009477028539998078476609549985801266732006124199976694640145561531779473167950597356082021933058285375921192375047910850445751119463487720700017310267700212878698814838734372797290956365177304405286547832755481856489661739595167503146678696800154178788614699553639273602486475135225696875303458929751345760444723231493869040548527323943644361426309587314116942546506852306922993786210224440800878206502180818213017239188850994565200157118728091141296711072778426160570699514920856766994455246744300403062947870034381108239948165279444570611493754769032658553743202220466671517157336098561032268437580845894273668459408449125531969208684788121946498174387910311302076631503463600005455828587704182094777188494575158202302367838879685807561556478239175921920534258038452021713283462719602067197485998903598396840610983136815255946040540770485456647401467834380813806299300870972415521335950706108935612968769561822570866071340048773699535261178882286279327174763268950774128300825244320965885548712760182805977769888505831087482349730447719857439761757497603776657359214335392007797012273132865187862086515162078988896842072500387314681113785257335232223308511894085661006216288943267091750826664013804111996191976856769621614462043561516623113530499053568720110152543562855905295132900047891132158925066944070544214563218597298900378028386484150692243073948239272284210899326690010295098994028531767069656126981425205104718666783481253503285528235192551976577446135212344938996333862286217918033410129960128795476366785451086234768821368758395400591748920969211578931555074770381737769708040053752453767751987115181752180131654655573828842014518011769671001827191226029944513532477396069653140877505868210671248445620250306506867166805450299250871500243960278846587093420621597714456708031934555200625966215852578318486723867976653911854811865152463773637516632315913869538242212720208156695818703602563855372759813966279514063690199244806862309967832146988166291467973161208864285388676997873279840699660777208093304286118852603368218795782049316211958928060771406826724008229508561640886918958038635400353439657339641129543361570710338629287243655188956484380819762391818268849329606634876660303035230188300556278204946213517937203797281057758607989901145981280505804626003082225085202076381781413290619945440108103876819970611952088688574182988014016874435003646938218991387177717247710744976455929280792081409659323357587852823672746211127724527262321569224279219131608034988148846038564126702550385237345835451865516559512060913480262821876027296181156508692904252048101650284346284845910140469294889007354629152273540787862977774338338254041018888441507510095070650102987209006332066831331706012730563075984255611378668861526247676815631272635192720617625930056265977749487330007613752632676673260191803813001827877202674295222348861680932622338172197429663620962069845148948448493756733670700371463175976679094608517167560224049540739389083072569497605292598324341275033197458115456969861098165155688676432010557983949609548353540874961271202786248089333946754469122545978971805758471771859236421567303282215025480707623556087380199046681660839607491934650858576186018357148336255459878965803914216955982262186861214410333035911794529005032170982564590153707284576215147657717351174841161706631604706249172746810651733912419264282961274352513710048075741236993380639409402287144245624500785382813878640120672264646806718735263449097886382787146158299685853193206848774900277109413236144700155397912329665367167834594626034242488834355650147411605826870742903467444508519967529504670301350502507198322465615030107064270826584080165955908586515803575114181297944998057341556862638734941901376453290592633569353129230488434923039889333740770322143966070031773595605105618568683249118926796804063991357435037252294734910169429736445497502555830991891997474715255799813718785722838841775793640888028150757384530193285463818986365648373242759652201338822405376617829896837506979503901674945320722587821481557071322876555496756157781965895612481897558838785213199385836341514981761966928755574757071354163124944214985317644418533653361617631631990089878577629735622525646567100827610933557507470906300899344307802058286208118003835698825545060403483117334162811303482375420461396829634459325887217834429081146819671143659883065953798045394408345813755862673648120331826459255651274137407078476794388896312031259914463707474938570056444838099847565427553624491630245653256953678152329300319189221743284852835350059524065570728064306846034936514622954191997616657666660677959893556368412628709968339556296596396485884515761311235170436780155818287682007973018170865793079974382559353657958311170512569282807975248526220352660515571160115878968302762626755235923703572767483023990321066900145530291291001414697973097656265183229003998123903231868782742770842463990489162590886824725356618210735116388320092127554165457081784740879337358727121210395821127134164678007565754726971406048217540110061913627690531515693476104624252432474267081863191013555620876327773335485763970851431618148183303262305530256756543375751296339539295898422414184136394949010857322498622056501175701804731512496714959304992851192872474471328573258619320561608740770008198759046297333018958578699724126881463095756377388287717816926297672107287658233205297283923029180390690905795473496459331282688324364927616324245180644397174621830764425402759817296483585804035335847088727900680020701712253172365830922665056059461374365405391768269973937707562665183657629275086118070922552917061064916881238178357218966249524392502466019629671775086222711757408028850492495798395092060029275051141119754173389624419168763341607932446686710409800402562840623971247733070270723819052183438339585656007069444110630834227267767289172316891228122712955237189097216552312039704702341771010711189922347034965296928871285306968765320184567621020053885773323543419630161019347447194584438470407242484582573400051016354930150579258974869558748437709597929818821402974406252742119687685995507264910772491087839050874838496354509638148858428718500046570419558480786201053457805099269794229202845691342636497138339993518855314414387817013180031933930635352325809356071552294821998370140994414934652170153247264066144597309598297849551971512668562685872142613139519584892347732738851705813693434057396193096507417771790623996409510930179904364347092391725609973208021302196783363086476899250166613357743883322976579063952030327309570218441564807087919342099815043871817348273658248754590257798583924212425312231239142135054761688668584156108624608491935090368157873713060843280778763805557288287845657431565188932002440240489911745824914011593108512088685732889403176906748826595014407396935740336426147124775163159482417687559241177651319613798386234836673314372422227711702078025709724299215486894657971702094500796862920711597264091547338065323073373201744329321843791355618086691874108278913758227236310567588691256453846524341276573813892440594998683014753219571600297329031244220362788554971682845346885723458553508943248970546613208518915410224557430160103666532840491480321393465728343189673163237574850168461342072775380554510044045617645543636509375972030746029479087198268034622613417398590251184518060981819672808942046664242720558449225756831217726866037315828297019428584177989571371803586242738294012587854752025222289351289877651032893804711392907112436974694169611384866858557747211629920504766937766856468705238385383503586779898190993007709266184141226947599315009871772954213051340683975131709986330967493429170109241830428031396433420166343816619886698751045526081812633176323022063490532263060068845363117930714786871899442553504123690816090471825566241839197291519226096853646852218051871380613882041277299914133995742474225468142087110107745180994678576893234967010311035797128160838172441084928252129581079722398644821465687410205646555136104905755459437944500927499919373614629077997978787766199495105767294859403087398593314230047687264946585413160524279367260742036561409750122072227527449190687028958668785340592023743183781150726492454820995108183256548749021007000305311885930813109051985319007149003022235029684939197313221041591726556549971992204169368522382465137335313457450593786387337803056453324798923710235163427391003888665213910670993192775132614501402160537692643594723330231200470591422027022861324868768326894200181384984265526407945384260573442178271964927346959900453129968178249060850246163969836592901758955275213307237736330390427738955065508825787200492000421580412961783658843245117342272659121010048938734106280558491015795465837918072622347644815168369661266736942765785311483515016544338827534392586104603457526071107360286291476962427503724498648474713740441901384954986568894157940731492637655740092167896090540864513713667623659823905747932335281108170948282480864814197605186419041034588368087229001634674131477906751709998776733167150910914457464194925893116396690217691284172718885664301262693076240286669517030838107047023683430498970416567262410128179800310783937796083250404845623022214256975847630929101838395433972721439381698902566248211215947473624467738847809143693780730195225714762593982508116055656932935035091933400758164813588337901316524357683734595896135103119357522575055058621025504809229628347811390530086942842197718758885719062608245573675517178734876448803531473146639069693513963327976362413791593782633509406289048842194743543213599617697325104007170253940707278542839835374872534188656399829327975967531284440575272778875105879433170495497763742942205490051476302108814295408944843049632259330350318128585692966304377169271246571215117519178168013731639926712911740626383962760175635549091852039179824325509946578150358252327201709485084488016614771241814545609869304431030465764810944512639812865993945080358876186705480037216641905803607909587018165843904938763511304523976024611997863646714023223812453003534462178924500357492280703170635568441294142443067516029101849094750750879247756730084357697950214315923470981668944478450803004269556388743846439072727880631973961243445483726030523889074983353596952235367295277473783797553391706860833601193527907354898903340904670169292456299530686974377396388663932720390844892430162592048316614216473630392478973542494632237287875104988353190402539586402780022379423550889745325797483788038005558555001949743333968682774226199011038209171754944338498146639862047948803947746833610591379038334054014390228883713830127711770384876360995388892712338810987054440741786674201026738080359373201951316076056222335259442578079523196085325015974350609956072834393660855997815558112550415448952150966656786387984791632324767901809577798172883298642881749164014637569217425167539180123793672399215421823442371022305520432665884027737422302270964283704528794695280937992879814007775912278573334281208858541386232040791699492172995683214590938286639461487599851678399660535061538419022910946975377012868891738787534448696427983235314168837462230011076983993853942412390963753242203398234875394458875455742779135224690567124895217327592294360693068957311734972518029404698833209887405048376987042019658863200025269161048820705041632275290900675050227940890741024335321956924824109941903374334193570334457899305086474401847978280233175585390692152560936766318973573209525167145552435374887942311019192826346034046671169447210172032865484501932604108191664237017121987656062800516156726883019864551328362877022730863681386508881025971014206340672406611445310480547450116260662757548304396748712911209222492631060470285665467218712040485787694249673879438577347389100659869590558346303098446560289586090846874855164196752016166860090313880873901077547075941835303514487960148700718198254460538186455449171680894482301681154560205478592916455290103019432780935352985889316439352845848725908867345146508035868206657254353377591056640848864813017314892140046954363851562611913467479473950073378752774517116458533216050950346815449479096130281308385135295931375229983196835418307383531501790842990301525001805857854236963495151610849445146877680669100352048547739293768779686570183525845240973162807181486537041317510957352148871456924793260532025099332411455440761789904400210798912610584935393560373638195004192546714091231631061136522456659100776709701017321678101001529375934691927897777093614533365737373687671268821119553354367015182335789993365171911636076981180773661190638106641565607292629129393238054621037800234367992549490828747659806583256931383085189637286138670891740011562581597493873902396490771157026725125602801805351157161651810876112132528275236971335767699907499722255383492636696678742911599499400595564805261468052552718086523939784342022353826113699945841877244069128686876377024782387225180625279383737997809008767147877336111970268289742705594626325534699681535445046144750182572668285954288136519676691618477218511384770083800666556883595458131004932956578235874690489872259527120974565481612282119682957970918866793234055942501138786736602068211716193609016881125996258749421518224336556967200381318092192495756587922543305742996941620430418815427172295817550175337681247325134267929539468013540439535374844994850983233333799663915761172831178576641126427186393003206390801503239905598257208694782959465298557352767117497004800170467349664392250623939442986542842097336029150337086078647027300936108876769081069615970646700147700457976940869599132282900561604150477969060119788666092055472563637162749052009546314202213491278595699829773865059713544326779046990100381105337345706251121667960248707163556103090762341336603845045498152705649040142408877352466717106533652353357762083566966074150615229453047667066343016564915137184895759729361195023024017221619443294702537402960710613323301799502866200267994381730825137045596118968602875291005377605428110664097971510727695908597484224579548884637614832221648419821500105764584513029231503614731511555479253356630011441922821173611905108596668659644756235409793042382627802071503413692162702233483760886347775439486005865566114469540234593353786705796940680138794221351245670606747726036017646653295272710962159797912614525992347436172014482939120198821211067003963795204124364218186218955996034776591209444184316265645136146031650393100656537685955364548590778701969606378175682931544640896774917854448734245344643699538356246081531114326925049265837464443354659779073111840524741834859924965810396655929420001658828971588012403156657472527607928915997803707707766317643239837337063503187257994585255011775633465796301797703765717234127555622414424217008695976966670789184666798496881987714194265417607768165413360037254910566921234764547340563535189757610533382376583208631553029254980927443240157834751122389878703776299152995557909045899651273068855998047596390597645447529210161634922558427457743561796508615494721830925835833858161054717887200681760948912347385961076872510085295035610255016988432180391664478174286643827708864404273626596703822397109718825443646661856956885025930495908885920023475785951591194962457144110507838534594905225609058436069447075195603074365280856751349504337150631502868395931177622158060293056746962541536658701426948869087613158909224425958376454729705328704358605201096592416089185161291226956384919454892204201696394422269507034273910603245145021743249475040820072953448376682163415370045567042021018008827123230661527305658192851177394700499411291803743931890170451568028864659240163459102062946660371088357781627642555499134072713586078759080882102620734855724213469271980066216920301823587964719073363243572706173794343574971095537384215943850499803429117415636179712315310937766296023922747853870408451693976963240187253261075560575592214748609945756856880760047412565854482567155308092104654054788091126582927516280916608652148286409904254026591679379645921123622865559487259207382097209356939165946242528228980209558573746740233866029089792185565866619445781771413780893671000219653535329689392320546126369937635586199778169725498817223546597969775867295338123444986872788710601384478780581127877793890836080597991605306679157677129041717111798566456338093541050258619026775137712040308854545689175380972366440223172392896156627658620620928023468297915875073524730699555828367500249598110706475398631097721002797644868384416104746745996246704792355248912097486799511674777855509106823216751157474177375297501361635964380487103221407775633355984298050428894159231673325178196255169486854808785058742449172881921028105493163238881839776338665071293214177473224468683542514000083974563440643904876598123309521936067525902352051813755293242951172896909396792008093241829533598382647901648073300088665804970835385558938044779567436052822473554226802951028104071916547844810267582434554879809208197107362169974512335044483268944412803882495304310050401737045390608562390792663068728346664776424622166815544223460656245507944496393771826969681130073131759566998202724389079592465421980366463084692544580878562341879809149872955500500096349614241539374499854612608755724744155959981117416694733994981842409842155032543806723543612686271000600845432281917603274614758433688550411091255713783704699917128141580936198190976721085448073053233224212176167913448987328233374154237988208024982350724012144168313088384843998105819263508347357299169341824271975920925778870014755907439674897301718141065302766335036636381350401225140068247599708779789257875942935295326453281918794878627013963338735252711744775818603861193419275155354318392007466053505078525325025775308955758954904382922420921523386435967029402248403859669991853939711109327951626074113097084480350629400817871091037601445406046290504246530314210746049620419641165544473447702349397304064046434176274535840121528377704577374266725692328789334423328260917922528738194433088200880878907752736012509419734133799816811958830728445834098174195438165652729320292438984264891474563982507996865405894144760072394381425011807032907598680774388901931671918204202226177971712160292297148426615748826073716258688813174737126285355158409896087329494138845296171475167070240407579094839235439515915001647735443133430619696969476060984039460888367791822774965274634178795096123405859212844089544493496712164596332605256046211364233102609595401121469640908121694070115782431709701951176683195844181786631700516382958705286467915655161144744886798307906979159697709181569677120483143421374184166019884635206326955714091339291443636539887769614844406624454425725953002828234762668038875175654029435730716376221949420685252145378035412245863184347174374365907594986764832945799150458075109012325553539497474152786458019458467655440724994229388116539839522931305885177742273925419322076150632026978001155365587661111777300761573943699333542416012909808217470723797087810444220795381060050697233214920648968055132074949868827068143109759757216879875981167382948776795686756041115906112000309720818961652057651996770685510567436455425695373162488617213470840584496535694554837616956435605691498818634611550131438194455385932253784487796762972610323102959524317376053969960394107387705653373174729762991254360737570094911193435951791941272657465385484533927812627893077690460015400585241186649332320159056500164040004466100658840233562246193371788170537037666571714780279057284682936388224201428044232773352446580758001014855995128271081394596459102216418069149653236981658108929904924169886939408872558684782596756308089607582311992555337070084523589491912316707387661102128558687404185312453895669962781807483329942478486868527492905026970090350322337199368147317068878506995362888398302532035131188492515958936385677630766047374478849303159456662589746750442468849564322209241920638266210399500155438407707771163106101415370960496677803167535638300778127957885280617773590078295600435735377652336571931812024290114193794865503096324719192921482663282002628165144391783692641611489898748740645886164438101022615812873605094287129283319531533665642174654043680393381848738120086569190647180589885305406326357896731704824812689409574731862254946649058674389083590713051649270924081299180086724208783296040221427336728290496081749873004675029039328660545551943911410623209502599255420966015364303119634154356075728179307377190165258788092099878757529485144047678035034406200320305564360981834419668008204523489475972093204361072823523517291254035540746996160264611631238020883856382443839900936622916558200876886909523983209485942816300913914918122974848241190469876212279328888972704641732804934347006153258191229034890972425207599725110196262799243793877079647185496525557513260067210139860486004622054058560677354524572946973600839545054694656052158765712018416514679858841008614775080286573368622383339869675049889765077334957014014237499731032711439773319710739953972611502301756853844049812966270693810292825559424732931981179441718825357983902293488245355647207687198127537550754496911192701187966587625519719571691083390562026197350333950526405952170370084127596092500749916513074173220646622534758457814809310990242385602453997986541933141314989446811943492519441199338304731427147120479910516095959270803643450226947133588973276312561252304540935796738100180404774827339575560813837023892558765422425802136807872353961168244105154031184543208882090530231575334117329904291795205918263408609660247270232089297471667496303072607635247980733788856701897459739498747276552455383055216891721209914761382881245763491670461910202032183798768347998824198290320240227258337368730345913050931703185415441828808197309815557027686428057497889225112678429238173386074518527097246045761461654716001531542455285358137259276418586107988190012051810854457403828249096613771847139958811656194146018692391674377195357546917767035674040795874858156603104673820427840087948796536418932931186866074513030258154827878336313869145188746075072608966986444191053509567990990995077670046715788100081590827315884894847038718920915328329802981880360551443085415960408334165890956670514526446581438314013421257188410706490623867922187373718278921807132190570020691194068130429359954675481585690991169755955104527243474829134178585095870126524057374618416812261407940730527752140405107215280989638811600295570382712533854015209633614776454562328022928603872598414371898145096224991720327500456626413777568602127829276209442595716084127805966841487979171606888057091564812740346685708526758540556530425054602390118737459610690907723587508812611377782027914850878104262330800780949109594446331286174826119400021708522956856608503891531078283963770435086485996547412598414844065014224763695266544693042525599491145006323493432739733138576629481709825844929712762261060209152760549639969200632435541785144904630855336591553023400556037646564431937280295446194580546076124879015881114190345847885370083905865221068765579721848247118966735966621614858198899861835815071437216277050022659390674844244359536746639183550444756749113713186004964263848702654170983224571349333187453312475188452204246690535892653436644883234615039848980794952037593156389947335084566854192035299100518220768634372619704092116147657389952135008883521145083792632706364888309430178003277557988882912587418026957885879248172589165129706156330382652255997898001487105309188738467683098903670188154262498528265348665663642765693412982974632661030536990881039769831423718336948934742842289250115260103440703632576356303330825966046159997928484115659001446760201390793997031823919750336547299650241144956617645820809144551104648857743587805300910364546817419450623218979334863670468082431352168492131655625043965316516731490826968978110357798912287627951449752541909888077480754521801679728050375351768435475424436180397821433200020023050002377269080258783009693056028614911368209767614231353282304936208213591852321878469572371969491214875138329994558017092579066426982732463641922767082465704171236089755430834119495638882209311572389979141346629697689248853198241890688767456070966106771875525890952429506831468573612020320251267148833440287504362962903751455835847716428696519072038179582560320310988392571444310464000777011282355667744257292700688100473588667226105878197263357139731030569168901676169489438125114877002725780553467500928282577211541140908419991446430800460468580478664542413273515162832288467667764616848771424259999425491226153343847641403338003340964387543558749135582128655403346936193311048515796688666777869299873723958995610743995498994352230292660945274608976662959315341970789187485155855218155629722436281399111321079612071374187378641828754026883898804827825499492887008436290247724227325513473441799569604937342155418038458944344602719928496879138947141880325409595331874998059525968899658285939913809237592129379097139202790198488428184673748551978956998878727118051034501470924142457601470514274664928735238867889386504772541598794632871866695021373870437941276855638922769754638280456548100547475538050193123263694103310160322606220601966617879992235185492442086575089138380005842094307158500264522241479047048472561353715486971660345335494453728181227936241186879055015551474114897370224303788147397814613417927051511412779801040977861589422563635792152284623086115359035377350853782325198867299552719343520928328125512239989068448608515242627800650617756451960808542301463512100223145865508491163815006449366392783577514255050390012266132958407224071483581949816021768347089910531810791800502569012485695940767196497119799871273170639081064606863008544152627941278395295270299304542864646135416845712478663699837694369720190778054157315328264435873325578016071681913059270755240093956888867521434591110264038198430310032803707209165881080717960217211564346625715549679695202755771421078102908133478461203230719867873332454012377774205291043526367769503900444316026277904587126326782045125200289547780487295645295986998693262905348693106177390742362202490021344249472077835306398546096788501419052195262536062362911128208516048022144460505493154973811483525490891508878421496052057572385919352457136767423226923724095142952387508225274702942587680173177463900552331365387932749912908900090601023670335854067269216732648805902876995078765864857856799590069901539403969660784860670065162755943404832294251532640121979839806505040267377277111638389410348188241612350384251412258076826328789600827544635772721158573237834810755148756773613739445033885808196375076653061170728246299853104198086702492559268779955944633341192231383621771090438140437920067961720517092812235007156252769654203200036665792348123310504692355390766322331857620781865936937853577844204049711238874059605212202091045064327888998053377786445866887574367401330677472219353447572624364413155009028572317188550331176113458242896664795045553902772900678645191073535720575675792919034547003228497321178349658568315419871070754735226530764923979399166198674087567818473918712247731012129553574959437343766320948100526089920996649249152205457318523189881129152166761257302967909273914246194831218900012251174425965011799579187037832132215962846307509790696201711771753959646879757007845283846643072385840999654738208109022373901857642910497523006938253227140778782761385849306454172356063249480062376649488363244052230931328494064348004624034840625343258767780998127419325127381913052455331614935409881060062778410352799231137791396262903699270153419581378968227158649998518210952330664700377040343897708030612885379802642555054606317000381549678288390713846759065114552156987565880308436517652288558096592383167066547559166448159395603509977687353500145089005545772819691575010096380301272067863290602582691780218050015470006128145895661360571036620841299706459455511660835434539145132421690719544364452269775900793869403118256481792344309056325098285634892135965801847548831632327220061563122246258415272498085548603906457618113687383046637426485320683571559946211840407747747793572627382830423245326466274462352057773823086375393886867192009658080757464604330933568159984372856895014647348402169020687349226738863539263421238833822085929284575610195111947075738178690676841904718223971186068501465318080116320477822652504977367659327524790231297270615131480265613196886445218089166734031890945193354662067247314102638247634774147143924415998139550790448603684386521949218738451854297152742463298847503563141392696491511710909616536576821754285568782825212279194328686232352366776719956048778749811350359588723080073584592327010487124482623740716416131116797064814375163011264051614674186099455854478444974168085933315851598682934873276065427550301685583899694313203876723779856307399922491480913189728742758405308752081388364634168032152591071212539552702323067708561359833056431664283071037647222626655594203359480581648184135067145520245877101111847202458234424849751833878258131443280391880224420553499509852963116322299185719798792200086941660006262220876227661552130930469869261813064205933913749239216389241485882525736212032953079530118577666425884881399390525564432968878002161412857515382896202480924916132542261996819964026494779869476365464361782424179934458835562214180043075047730021000823575897490038950498558861505729248486174940692478428307096279307790985796559699536269760225907543179497788100689378008751944113241940736250878784871685476739094252853214583108579984371031686531108228581393017265868306944950703619224391626741954707693500958453979628409793035134111919506762476613554470121213407971397185284420562335666077747520521263748173531235717159176209386574153420786338871282266639817069489603871769396259809548005359978039834257585084432337868714474151056676284846213624185571388115910740981038413377586156117087537370287366650029271563126694975464757780493690586797076861456523200088487623315895726219475115103011580320694541364508609592653140410018367425193626905713942741967113937834360916611843520842333984823624057665693690474294190136092303239317924122144587650626249764152240279347783591263213282330716551999118084228603041712955744187608522471289225714570824202755008007943046307727518366737898927499696969009457564651334619012480093078909089526341856732212395624094400462880455280633697744804775504705736094921055064103148732492058026611208073585882086789020460360164716869356339947553393332011888283149905674104222382891767752956997452456472481251280269140677221160032408773173247275454689954734040629244407007496671224796429011119096049416774485817779658215001181732601091639791335664259627251505002148159963586063030935937269193915060528790351144100115149368435286015186715679480417517311440606758260108805264055004875799347598021238031087536817778826198354658815836196692969834642440334706761963587552642667675950685318612362019507003787508695162392235276911691287832418733243289723756159725707487035288659344841603646934816817816320758233060234109588673263409998853030950825429833073882707817674917872072749470851182169060634355763650831740922968119745581800062872080215472444832322935072962919175742571238137278941187210308634448801450212834548967188835897704564127449985272673173763953200741648447951734726672431925872480369593096311087235405026718284039521270148502084620623320058343131233434733086182013143544073761968292025296791277374410151517952963854367367554105166258380551433968145424958331488824683083691102515504862980398645355536464134102448759708253672604732815716781225318968390539265752984738554457405025354795387128859091273245287924315823248308094645916916162531947706806239598213376078575834365037988014528084565085634097528743624138268138456268217450748815674265168052786546779745488836450727897541439311428788935135436811386488204760368076733091193208008854995210500683208519430476658715270713374483710724402345135500779332275289941678242137429368372447063362192455369916683491824034768527444194607843083271650224261974392189016705438233132503386216922683997138188189951325984385184386130569460520218014592419810580000167244456536074115685035727219054335970216021751122288720315775848985559799028066054131858402454336215502309682725850318156781846535057640622161221484991783349145888747372695423411604648982329356113014679105959849892687214005027394663769888184669459672006247632840511094414291227093154164166880197737222531640690899555909297894897712741964323357194535457675830147248130193665588267362158533836390941013769573016349028068385760326710575197382494700584038590735867714887455366856395048132613227764136998936926459350356561564843655842125055572228056216620068128669343380390590505515532911974905154606961325717224042826416738689822758746912662778715839624617968847600883311883755672455564320127900814705755493880895883144006367783812182023879308764382653323494540937501705916083536856760416297057537473037881894372368375163709294375936192625893446589102421437991442178803811026108706455190768559250382512537785707132686691985295464306785372285717424761112547256607414198544071040294502569820888727614856755614283453906541137475708582989057768855253534575402469021758162461126729876493996409486116242139906969921173227556787958449118863498598194857263493017759182518068457339626945272577746076410246529737341920382333605639027056229581673011317580738174356823014612723202409359473449641020678342658890562823272101229981733430311107039485804802025963251439778931599976354089020269991141423591026542760865297334231843365557990283059977554707266589935606948907388768514233770721427898798111005180051981839844505715948326234260395484268641980057489657580959627696566370985297465452230299088358869562345059836351596204616906436137636785565297117647034327138331847842231504395358675719318171637196282681532260500135170279711448302470619000249723668635425828563791723321921143075897194390124949124818747058816271565515012700848274392229041048276310333607890548777479510076111666709318600164839532599197159578245284209968357115033093809732184999535118397201507216318125676108981208789415722266567571035277744068749409973089367773055479422451227119189530006256675737508097456672472734114856703705597360340681966012554062664037240551638391359668533828056323859382964705740410113458833050005195370845958615983778589283371887468496815956586248272676759620399940791241749873385006131921098962834387416777102780700277798270271953193576968239925809144399084325321457137292033230839924956734203375436199385945715029307078560472306447084997543691682399620159316016550085953245666308677434119547527399525406562581909608206511203903146026509920876088910729266965284758843385109848151010188138144482650061831191179748011433067214942385670953433065348985947620389246744541188901318639983255539123966989788983858905920119750635706513115510423685380007604126856948287675589668859547628032580288069174118045212631171414936700162147605770275156468289611042853466654932552664025652250419049073585216429481235691734212461021963329734920927527618632644959078100123136109399492702994396679413256221421487213927899162656298148338817261468185384280523668822667453105466187580879996200182461710176841409802114479382635558243451432886209559376460636170444975494381040096718884755300561483512389441954361686804816197785522837611280814034031666755814994194813809006266103009098295621069461840369676831968003147588321019472972672289345511700004166608982817848000791178391618949980962096045121646629124212829139916893946074797888024852897375477516307994592796218537971957757906233629393898081021161062206314636415217097140326285662837489662112091290112815855673244824697952009610953380242466211352143036862794423915760493346904599452006781486523143139420039085119714590556148320720479634524341642545422190336833061557586285565632491255525349863741312079824799528021748176947698662034307639572422848906402873129050396804389567043155859616012161814295183340232030641821436767751752829437095778336647036297471329248202098110249171243146025651187478801901936036055338359080522349064391445158683768444242929214839942025714860175839177299701817845118351464561368891400318152530372373908494980937266504751277859842719928361829830126152149463620089478021676134669002790845042612970969268090913972639830896199628963042587379335311162227634503206502478796598638988842283832343998281791418924912631055038862514375664137866824464120110890636584131521588903293615832547300101761809214188031991155554358018982357664843263583223407334880684277404833700841042225342512878252991845054313336813093144204848304445098782247521683199838196206627900976391077455139678935849177844022919364361099226687835825956980939730204495113915246043156075673156683788380989075238562789040260407416791942315200370785595152214816422950204257128646433632081063377970588698730190431403016830844561308798663104400433996307539555081836273823308444913264954521709345894218362893769384545041777728537137293620007838003778836198793704478827262057581667711900538935268659332199160801724479838943955620125310408597125230746549078180650806762923512208496038412516849372273824159262707775036613833243344102518880627868652473371511404566885970129107265427334368591782855117573627026736654408168455335946422295536855009317193952706571090965555270076585466025960669110207726195619480100112606235000758348326688203775667250454553506518291960426837576632352776946824560997713695872859695790222744196760955220185464036381116397484669143972370005465170141704724449735193996221653537699877723229297796145682737476687127549494352935210240373157543413068199570624806749003355097600421154904991364253714644716672075659089703213812556857012455924433219851291153797776550180715624677778489665272813621937371970533672265066639172533421713549388233025606347408645334532736975856486394704647035069258796819378604347373624565801744781448024407805919652760065314170425485004090863700935350995610007592225136775410449541476058144668421120919643759649129564019157823609067793989663476163196521870637428090295863959608143058423887039247621866320317634157438849444532585612531408012624857201634658416091092921267128889575532400794033679405289154208688713003967432380555872497989007292667949473213438290780401832493449734650013536615821415988413762773217851247035613528782087730615705245387911206385534827818438026012141361130264327853686483611308890122960410650005259461255078348853952914685547533194991285385096653575522174307862186865037447346961794326075330826540990211976935234962766902611139921916419987278740194967203772116838424066868952238965320902183772569185935452469316480942577856551879481319208960923422794209957890982325890739564681527402366177086613628090043460817390487013897955411692195981454398821250923533495465406276205723436499488383841363829429540559602531768791116414436918260009923644622751943635391383537704651365526990651891532801011522218328046291966083597005862156223482873514363185801923901644062578061906613669961688574002579323317992434320162142411293311444417578757312165194162084485582658880549226311558683919655393303046453918949732188772600722890424476692559630841692517706862607431127462359837972315249018653379653242637801665311125584849527555131120902905594881965423927455324872877756568745060775047686407114205769264003304905280145526125017480982951464775027633205113730601565731975455377918147313713706407029802054053470977445003011036654603168023786085739425992771107158953813934914167371479796347509619793366920356074722827566317158182082992675533140490556042284909560377990071857092634882058865174185222930334661191340337177895995052871041055911389965656888717435341205858473573429618408215625282498560753475441990777414699176284963089266410569960693034732538973575426662715989515520704808567522669275670103372882409000731173196341933146010422382292180967323384526904003426560781004214236267946077087619958841345165595416224388956091570101190113226899976597472220916063353087588321725665729388083708380302955413077544795162194216169052117589630129265103926201425352325006298118428453616329218875804010751784484308980094696976880105279984252608467683594652810876511119388725999101916150105433399458632055344188886065669706984946144513064797666425612601732576555276129844154069339410633105886101291052678303889778356108502694994925798022510055282059982854692707375351493803405049992991255835935196628946104023888557832903271867080487647610319230736491442960206454018488532404756235292670257345824625541345095097369200739446563885233368815236079763695051031431902461927756129894363681532406464102603156795923988514171733368915197385678053419656788667556271254881101456659518962231727494676199512973191121342743759093975625269295382732853260005573372923840500326917821203351163699883972146195702284695726526963482898332842916436766194343750293545357255305975883092347201362991232706304044613021517194690253716168647087132109388864631728344836719073557775807763292014855850371935248323068041569311473108683768626013818518757641066822660796293372849996060068633884328093188213862725747107606136256317282812865062040783792621749842487071499633368626140771356366501329459289126646956817457997965116470173195593415680989106613339393459599356159318692086693175774525920748854155899696362154563380045209256422661956543376081288753501150036014346667434023848712012906629790069860295294315440944719599902610276941825721192824752260156610592766895502094219234687670543246295768864416663973542950721445378269857681420998412002371866126621544774014084368673227884766960019468867659450322537493705570894857783149932417958843519892982911964919938318693470722726787730527296388976048223971953249171891572107346245581574016594382651232960309323472715170103585838154037520873681207339028126456973066015374969501276818773162310690109426102022397590317141367516508104013440246885046877656844722238020648257284202013839060393591929944735517236534046597775355057261193246067795477024197698088899259511529476190841577296699813659722353140885742836007506134210210654391878851968057002274025595189040592716279434085513951185605034548613280994469152243404819478883434891259677217964179452802316493570533664375720166026794181014082244543026870566820790267151477613379972085366037779470126662023430354346961444494814811945911732471513946790344008839947056236150367204603878156825457163875586354119000408586911500338015145596588596389985120127273519607197317047188975336667671116902449942636748116323216402594875382957325098523936011513953735863343302867583614124299416707856167772728008748753405755902918826457589547226802037772112055796768368499402878856837653763412888477379036350858086969024152750780950332533669674562968069793486231596421752259828896093588573306119268778236892297158496326588745351579006138845589678894423802851251003919449912289503335195685408475885918112493215636986378580853886239780019293654356394160524958255609160151199491952453016137184276537121879560613844582033650716848439121195317590971828848269972279347824796678416061263762457040774076519023150449647657275918258668256044085865320692789318118712170022120546158402469326024218143921063902097801364993935159659974891864540151776566073459498977772985620414949350618358454600220885202923313551134375763726238664211754740180495346258380185750004741955639098539466495149167963894050561388265518954911758963478254161507787083059034398390757804865626518415403492632847321937149132488547280874593583577897743909649365236510935880614239210091959517423563087944783940192171736296667085873313716029803254810981990613919477421631398562150139965256158275869041780278030870753270748559956958169721447956742994573926923233565653457503579443462428678885325139832678721470003527413257835656481311194350443388484058320508064236827684834265522670100718561994624176288027135841849511119613751277381702488029212098636112728778199689245129413949853804613233667891657002033752187456214047767416557636178005481881133971341862150820464043242820062101345001022797193252791224634271442662270012691865681018827987522100966797377115015398872351584829359001915730289454139142883791329673855275518799984949899849368892062154125885760062914613991586089986089249536381280027928319122855983712193746545261647796865106581564858591985143707151048720930735132167316416853882836300616495146692810719756500114940145471557060424032528757453112591682307272994528796199846414068485235993925676556871434357521973336245330875017110515439250821507045394762630782658444127775157433788711579896151378340172447133186803648865422659953730462350872136015139358072431301284613229145616276214584362757591937766417565333207347503015169719660701303034430392636102091280725467496429735054178450569593705303049214090978264003134038908513340335222301096044262430408544114439170265711382082130288146609840269321076179123163863121337695535134141099609352956641404711639595172305818585350939258378388637465538799961055516856939162261292205728620443171167770986756365195418453139518175143527540049239492582477330539970634179524411157765668839667281842742691977425839329678088072375799664775435057019294340687510671108303038217743632126825015369885576166310401049961877905585764558122745038895233444120750624029256884268646026561689495113168107776536174631796655145789582771729985685330049761851491966363713793413224476446967576320009212871907450483463127907992247806977987979646206779909271740993653576167232330481704654125089206697560280867719479518924670331133987122366099015950504012687626262812079679941446586393757579249328576925049778449587511671791582497136227700973580827980775572184402539555200553110736242784180792330340660086661524197133063218616129684562674327167468515690035959063026436496316456954488827185437306675011618377093597447897039098201025269215922314648006991000240901555391977568034687220877488939795319328919227333160917025799301786587434120555672481329799280116393252523641449478511040618632899727192897525256827606835757554741887395262664064644103821127754851022480209580495337923607536143990043158984544626107100554747479455681458731402065730281969711788632804801664222431550776162780736813836821672147843716571356132192670743275522347483233109863389515199792185802941692576359280584349005716238228961255976194267476938011075967776138832374012643722692307583950788843353195998365686713592489134810044312342046451510336205685349939114357873898161542863980517991646780558772158168886911971432833762571800371607620771373072986470986040142436185049137485533929158855665355560812730810982660926436811039330010573772925297481375542529649040665787633226234555099564901341389154482633020959079291879676683115673719152301006913501803093799363590031960110659406201801812706163056577358373601461241903540829642316661242455158690361006561841010847702281932776774136171642197735215492431441151909925820202406628078565680961415264139630530526422267992616039818717100793717942487726730259601406877525265421002810484507136240261169330124754478977288030633087256271208591042727942750291256403190067084197627347391137789750024095152386313164536484894876032294778453612767095198610481254351994086807622737805260800947177207359888733135922012529454651658655708573056496090487572123781155198649536385574915653049585575454010491128595062204592054433603201128756263178099190362083299553939465307803419883910858459539969915460222828387415803349752037780299260541493515476543734503987801901888417786153986688779035288680307838196332519216793262883228604091521850362163542646579677681827054343343804057699585131954097558380737029139722159138314749277681526454988599592101924234557308455597589469447753799916080636867396587703560493816833778288539060587594324650517641742037662892357941595432165962522250474369858080857427116116905873604423809487202840230823689096253641393990268842586209033996440857354769477857932430948264221859107798417925934847062609538489598244161570329066752198338496021799659605225295942942534567577638441373753058614337505034408444995417052823528421319877644416535049843811642199347947806818274374402464728188546935352059221496947094299292269978361628022555860781074767699903241542355305445492820742274084408521849663668216110647466318615596160751544303527992190503956077405885610846104862012437439255922335156899442050103806276472199622525354885127461077918703436511649175299438320601500134299779920638711870696058636422043199570838544431017102731947427586251781089694937787112575979586963390296783184738967638931381737261299188687230705951505763719605321869462978361715841802073329823710227105811119891001713782923209435435635028605156108350371751976177053667407209455437572870121372858241781896604054106417674994863959440188537844720428150381936255004697409527011077815594748091094478855554486675016452745306998115656300743965757314232682015544517280848310582731408383455666864761322741493423379367022715786071850692720399944045933076083153770658106129712784194963019897546661173106446076138716450962436002046526215604247877683845161270780116570666583734971569662235704656299500504961889679253776300462736922748897983475961225514836495865894539724142854969324013679810982483139489632880259389105949119009955707816181041010535052520603976913271395727626053419567067427123644875376080433865082001751494446615345375266736992951385814660920066866814725543346889887610704308432183060893101114224268850507102107859483982388230156510901048427529684611665039544867821828256865659829686489655336325626296548786969616888529278941410466005692562060699515664117087338222843833357365340913063413887095662747590757821348443018352885462896882333586083205140316526010728001578892208483532359366275006186261666638312797099119927327183124784254784128466743458221673336820279653218245022053017994039274987568415076183504155417757701345730279179581528084289396826108420534242254924147616419342026930434206558174607838935197426513230975738858780468476223830139163635249156928725379445900546498293225030335700168794669937053272147104168905913359583744064791419820618566653528692848685975579907828926270258982027228609063251194471123014516020853543724055890240088062326537276449250072979736310433073784636734401620337509379267184348174551278385741404617348144138256333900436824050516846966336670347093339259252750138935537967552425320276801110569084093654457057245024612059391487794726290122878782726466844153244374285768101848670276036783909395621158270625914229893983890057738452994332872508655543714719195970070791323118638040024472705915443034004307018061417825172789757213390979046127463574410130829188477260857483475719766260547420385188025835847677465760682392690157788975733497525843803457713045312486669982465824383457000776421398590250321706216569390252103821557260169480224273829465121773774845188580106431105783692104180906641348032024251985952948538759535273593546407899270717376479548864619584814064611107741867097603609696428562002182231808358601543790680344847076302837849344156863708362672788866016894405927914081972776987109341243022423630286390055532974063137588288405501487815717047943665294904704600045043296142691716703153604056488446808775797618864485575516843017084732846269409540702224420499073466120754173550602014032866780133124481722738931641779886146131364017240499305341190912947526719305927763323281428127078915311793056257402128030331145570244561871304711451498135236386537819632161328794576878488205116216305377049478269087409313562432628407961627255545987926389580487036901949099343056370173180432933276121180962563577068283615009610853163012260816842702888585352819079614294568413762536530115431347785854139098713953582008232249929945268743604583771229022923952200159672022337340515587761452050207851251250637738163041269368359937492361596947133754478254629795681966783257727068845549986444615339317611129344375911337336779142574235994071448082626773178746525188874301940862545700261079947060665830081745969266935760275569133849207050449262016853913772453999497764773975067566181016414874434412255726732388388998844002236765748769242152622160810393372547965794459828008680584156649224272753849616739306975883839867157459192503278101652426844872008487261077301833492491876096357936936965612583204463934265577545710034488741324297212300043550051418876550351283394613783673093833566437392507509641089729471499673072145915738377469791868820584391223333560417519333378082055081744046124208817548958055585850547974983160891390087568978216303910738029884421092852454031568076622125345774784564533905680841554435884284072023010625895916159290500090258700664195445679872985525321244743779407476759179284463884976489396511305055034008200164190920615326425727930184230984971336383095572892855576027676683114865025992360772350070148387627044068596890539917203291445177501308239754911997352210597256831683564681222747644490989661143393848926159431304217313082601963150062178028107317854986760845681347686958498805169603134311251474192151695064204647510242122542713797267737995745823126211569270422407081280036009218953336604882603824768113683717123616828707999723782948897849916105164966312859643099889447574450139208751952579059224362037842753093177269472454256015765515231733327834780704264186253060453880516017633287430697626104236316297863625213077697984865670534731870873810297273425935297255840087764080815256159116808430874145139265154152295076079724931003135736497015444754030287676869489743516269166163907482236715610346087525018873202396827383726194423342775725457634365167579749799096154848034049480883424778324790685582876003869527875678451402095629901452755017453165839256727744007040285280319305287605775922190961513254991216921540248249030549908765879829612051456617381688176701108877568535892608156013498309640690839052232312664511739820808288079587057758053772514465781359803189276756708676201737769911904844571252548165369969865791397066442345038140147310662941360650702298164417502908821304942749536893364324983722697965395873731000829931174976852866346411266251236603484793851082171018799543245202137773831419983308625233027264692595068219792480234896018864909493804857911376194302788427652214026299519939730400371947628992693458544583240020827388325061625954477624640741202201972654206629749748347561457809447859866704761077321882138843023029721600444733127593595880127498612658044325701080557721129731644609743224267028445096590430807916893278196057145580047823546641934586686107396046346635657596551317617649520451751433800977779675577004279086010862371587758017808505569750596249297588876461288980226028116373012054364731484167412235259761803976923452494350377783138874585446098597904325691924735604652647449730028267975930374073046133678235758516967465493270026937876829401853562245145453234675854745174816742656483372134503830050135572686019595584028527046778392852027081607156810618214609348424387109153329887464790463868225331757268700209825375594211022881715297257957309785232812000513721991143462926359037253503282288298252045357129133989453882204484631292926797703588980967810752985271462551907834364090279536403274864391699954593712061606372020220147079963354121806161862061419759370614661839099729743361145649219519163780639540202770743382622444783458055430056025093544566670874875655880965370758465584806236604222083043611182752455509325002968930750774243117402208411124777790542495348834537438369568077356665274440526109274019107229807128601940391356992420976730773333769385522075114537635313150593966093454284627024980894116894172710024136918619712317986944331589673162235135737757470309729608958870597289141561925915144997122116513961808015177169805434064830457951295621823543672428969926957599555110759871507802816048349323430588039017429761014351446775411044536395834603269956221678504045027430502404581636601801334347340440901697380860707728659131511201881803512508467305990901598552382869126777656824195392802745776146409527906783944559011070310639389197431743800602448254916425447793389380026890802697138425787175848882597077457752024841601919780666234645851917205158675209851094503933379662095603659321104505088134628006048708041100324424892325839000394194680935912469047248223687477312986764886310801211901172787651533961043639249215819138785535563819367817113485327192012272890126824217424887435650552217269102601866384967408421329000840711593208036454266404169031136337285609567614074802001826712581405436823684405571670564061564091430311928614562179103233718665680636462993894610962320825418727686253892948654513641200882105525628941591188969020037712098127219779651467533900499037641423051054805886194709638418649614210687525466438001990002969651666686003465839802398392140504296703692880026208446772425155515785777736217238439972898919037848258226292877110893291108102320840206071897970615711224550752891155553982369584767156160112529482565672917533040216464319199136656562804255838177449216765220066154265127631263053674516791643612946451114654845103351723541808405654029094373181891220794030143888005372904762255785088922952393391094333043231112222646193427208321269771960148891755132349948497263129733535326887073495477571406833863498621185874175611453151059542291228970533354848457863521902842407608658218794245596224024053695608376096327352992687204865564241264856633233701962969515561350669613832095049660341208403348833908381674211232242915568822255283681423476778639563645055824639844687768424877626706508069711998569986278675990944186380536908974217087011619158979136367463193232480986435902702687263885668197619434865267680252601042422989386547191361105043807651485436828362676955426707397293175521967100359157313672758553074730479482744419603024186219286313737739842362959771258514683714332002810301706374635924296957295492147580985453590351833032473541052907652292508567435565482408170965956128530319593654740580942296718043599952898952415003899508620492108566738751377918469714489460943940865991985847122156443440431105116403969461138592916091517071921255224756166947137221795314435069415246062763796719838118270721141653796978884860184172917778419422208239628840985291654503172000559365751227069580320598985296145754421735002756960910267994013293701482135159347789775197642106796353158846342565426878848688048085945008767762060832390761812962747510928845882828188526331602162957936409401295996163816881596322138180740715537784014935748921776690704533997540178267467673977001301497799602087482825149162169265775526717105730935172955916853879165824994385794768114598949540489943536760404433176164052239923565642013935914891352106997922960321040389633792977584457296471448843529942481214724088333171250070025684129194963696422724823213360476401735661964053310780389241266656305321368656995191200096107452980518580968877863888802668224488256303121267349740187460366824125510830695429345620039027038470552386008947919810163693101208711876985348730676060220309653279053270783822217401403747465119442160361135986347172271298161045433171031373946040153584671453967766379566835116186778319419277204559495487412524241229067791769161249652007736456984086867942043836210939738110983962771297525964514686953444791548587404311895020140784325600033570742467714996114964878695573720420931721907620885470668612050344497923701397560245221406727865732659825982904411814607903521436504912545724742751693328069922681151658278212156689581832226439072244649941665948484365698707982965754792590429123502765917553668078794284039565276215892578087274151959869939116891077121087167924573767949252827559844256645835270923767831651531578610664526130229883038526455711114525198745101858736701720425762890982300353628610466201171358895173389170474727201048192415278594541232829004666769900747965495902594199726274052014321345265672881010974274574971167641373481452910672118287902885808972721417340619983783661043313917116355633004425023742929771242713461756701240291383986368080312382846592614254697205332485963420717241917335632452271221815376166404527799587432836729510167744438610341513141156665377545070537761493991946360219986563827009204576310430292595494709338510906522181552321343154235867615635855168989460572692580439785983959882901516174581911390446683558051323103679897887628810350127046873279711557048777127298723555786397615995748481878661678273793654810795638148788948421320853377008918951147402174554143226087176466768258083800329435264402740136718823123193417442007960895946973378968646828542839110087369189267934279500853921791043813739230909870830181189235981932415456847960551122700848553833494657789204893003033497558057336002705710126198330738307091755210218104077037335095677116308961396561536097547798819868877722434155513892909313985862175965142378946878693599495843365279552759342672401826725453583192169422168750670598282148318243452889360715173458022176495189455455265923404513131644732645207805669001333564269846318920830516221591171423113475325153434205484745212200986872405638978049668283728696226248865851976946984388010311997707686254568432441634395426292093258390053706885375193888913474820581627650206025778489728727852372151298409475976508554966288841036245856566300123331558352709847113947753032199354083392530416277941112493729421591483909031700463523827714916975966006863652801705992947516939024133939701160546152604068519568116935538547792221565149286067093741445937409719611105349051318504027171252616042586317994999796275995464885902810831788183030117417817008150612902289825979263971969956006572731721526619477961812540311572792450507786137228630835863910821098050078990585028356010026642725646002818701509308572789768699656818555256646007502684822391842226387889269780904609984037745193816441609873866043556525324239933441260353544417789648800690210058093446775349814666961048326691250284915899675736753114450893848630287037219721277711063325005449590307576383214611186374184098857725674633403883408855690698344997314117532605554421464190757363452620960079400424601869188321754844406222190251526168038256064352018510840661766839474302220753871548415911973692419937733557600262867914911411022893519539189712687098944026650479411478422893163354719116607363679588956551187121777639692227511704088175541990534528202016172942680451974505482347137064255214239952101191440893973437718882577841068495607938386932919346911833184597563882315773510426023904620698884206554920171186647403455154275982099493938044729408773374509151473027849668915311475451315219256574782724450781399479708178501675376629197872659136454419839470021006404458204616538742543499253350694610697373841710128448251724959444493343966330573509449861642447241732225122980074582552178995428857541214463538659589617455639734634287146067642914461827020453284145869841624899155757451736403034019046302081842275183868900469187682034450390582430090858326189702158726504711388022235949104316502836023734891398086920634424707412920145054500304457391118878778338148759919909746678130896119176103282095684838997677356191884064557785935308500851584061612308554860941137173773393154436208110117324830589529089494964615629979247745573029454160832532833059277346233710660595627517511866753129830718344474086986996510787764370753617987980442685363990396529879285179549946926700309953075478704258752746057479783618730766346862155870030933036798567552855408743627069039445941701030201468883257743693172514318071679578407884568030672161170986806370976630410873965723805365021576967312762128926688076325942409652628346992063930949686833627957862227378613074677054500315896960629160275228466040216007327284655063888850186177588790227771551488116883106279502956941028889004560942168793122944229754477585685226327600786207421049215703798944994933122000863105310082631988186931889020497115595432162159984235765955156732869034180975151403114245946458701790509794086113745881951254947603140831646331803662612422778520309641980088634357071056822221535432545445113557465065238695720265015995413398928719152937448947813132415002889062641528665142261935317671285863979277533371719442868356242877461365204062854504068946785464279061699132374149233990829407623397709763803155596926510085577761562664316562521974382985595001360333910012401190773874989346580055447646750089907138590176154256412930321769275414398632879013914308087439746978609051847980117482900507490942526866704440356750922911931624589502482819322221058892287702636762029366853606087888219455007175619381005346573978737056805139319073402702997932581857007762133541108642406061443938956592702695888261684190701214985884263882976449996274180530993840877131063458820690390869677440231028813262805287720241407535587293556982356706078038690423676784210880940797320045587203663470410498756945829249116114635994977454412466881904634411844945537350810582130822134678572045990418835375950312304198659128067347463089978667921530484942352214084444071472692542137186800614494163115552933005334658867978569230236466523225372503514218609816076503230170911564187803313530798879884085633900472685742464905109926213109832937297941341232982481982675062575655974651985728243652290018719316376611322749742482398199344195729679908990690041539694585882253253858137216249755532063451755597800457918954308731588718343625192979584480667807939777678467954141216509040884892188198205028748551858892242981709346834569893245909665919188750384503004457109161215456397668238769694839716467053438772690133073875353825672703618157531587157076088846144598751883106157877973778935079996096505616077185520801672318155664088858607156123633159982074773333725351341634000880380238829956415326486126066471151480377406367479415440394920170368472857932677509859240732381854592405030433168070404781445839157079569671604682151901873857467419560974914349912170702220981367162283848546721530923416838767530517682392173318460430464760511487222669459799047758834740842805439938542164830286396843295354032617179667862818805346855839540176355736443304078130429584528927930602459523619044653518721333368558571968255120452136444156026741101601342859009133763125604185623532318963482312787737100888798557222141408204412095484128770865167244314270996342548416151082054353254563456147398051165825448771013725991543988174125984854776149595977290375626640914032325875728412029622462477122494035824930897736760045179661688634437795588751786596564915715757835297986749066943846668732514965474543338474607320150777873716339832558367922844121125773070525442255833397158731755362176806580789230055281536862716285063103283048444477234933975366422728956899573722059464605194321361267251082389166693314804262204140964144942098162874247266621196845963368328970082971514372053541256983466536823175104879409140720446355372360627240203123273369858887335109430789840720076578532488493248575138979052728465917004696262646754194964654555891456475664323979510485539103894591720617277576826119357493878136172496050516044015234031192713949881974207922945203673786337468532048786619544463208720745872771855793150747497697246846470795517978062010565296601523282805458046216076043486734396048671453056353020009027362447761835218608871321042235278592561418054176749155016653958771079434694942158899889256009236968375445666190977662742927981810220778674018796864034478122687064854206804878616838017682778166546167053800750943713594721916337382129714654252760896867401103971258469508398868098906977687624639155912712783605712098291729052660544534551161073914112085322649675921976526336524560452705989978413702779222322082395114164989668750551377812090300261400317972980591620458992155417417669472017728562840480839573456616939631449227970556955573343236629384106655369836794967639054644265976517960366670929648316447157765636330252696510557131410529854797202601860881175951664770198548741095032623165111604567205997576869502449486807599981149239587272560304630049017979814519243411384569269182397742585445588185663888041815426618785179862687582048618532768135674213076513447789849692405650981289562613500128525298673052668858078195100490626269724335536638969162179490559460489691213816354212190960574121584296304821765585024076105683965688939654559119845077795011561421793409350372028810047953204579932224473615061744957127557933997949452043352079800540479128385763804681630714417069723797393086026644091152757275178047736046249824538916315854499368998730974580127358721740872193008037205796656653436017884999146027636989598330933860796379852033133522537350996193894603787585578820079822264733997541922037667512075532175253437759550445939624257329250164652128187016534252964105899738022523521625779819272824228780250165479745715461894709168669450051575004389626538466752500774408184551658080875082966913623191887819390820270436192270089724863296614750712344453927387408331415727219926546848355334125516321308156163213780237150468764834197710230544154011032991720347447148521758991057846458685841880952414440008350501088741791189779161659734823517519380470631818992626673892700227858158920930098263634653600353112872970317141795532399966117782773751546624870910701089907152932547071996317702771854537193322202693590585733287957809924450270758081411457689143932569249497432565524708546723740038429426424374261743293179153947838784545045405505399529008607536191396165102792547915398802685431667450622895211153117531836492872327796215982409780604031831579411810790283391138677170456295809241745017656153266036646526327565799641641584422266284348094862034098786344036219009819683823744808101617043295737548744606330848079590800672183254949003387224646871193801449119300686557956371106338406336545765527782599878148869230156965720952394953835478964424930994131384214854773090716454188446035078373825107442804619785861753803147798723259370652750457442874673035419703769836177603491706438539432409773316581955990579531598535868777528578274949586114734518615319901891041819624987054645956419536535353206236891347309589319812878780410252674950989927204792741975163749162990455888742183043085498890333320623764688029201768980634067827791829890382887614367672313707950339903778718279260563453992704791802142200291102575859709343663124921052496422458473774233842641474660789537802059698568891898241012032492036143309423278389206012840124033720211950097551772924065030704392654988400472980224428588723845714549058097904298382220738987287086736466310552177099712130492748074636950804445564019005062740105139129169763268980648184486381231260489843097456839012620838303550962729921557352709281065922027735458419117702371242495534540332856675751162422958007090100179115738496198582218127664039810713440008225391284130948252233695425002538849454658887765586983442215778916972564443800919648768510879683138206191508702954779339978687780013485398421176237745106504674392201683847319032215342680929895929404837495422012638219980171641420089765380313637971982468916993283846637651437877954986250537703160225341329709724700262369900540102592085470335095990378675585527390074974312370117473806373660607697912847388348517198615159270028364862481831906356259168272584082178661335008134061593395443355226709871309791096608192635116305780325711066547556114831193033341584044588955531806967698387631093292368877708416359808106145448031503245515183700386253319286130083363583793743988578967474198437103430572949662309617327922988282527850918166473011445687440872582600213901316430706562394370650505077154699760380997291598208756294111884436097942425203639821015265489425803050446008341172416111126896332169050660398572674242617118299663899185131698825443193263332642924481919430894157862170708561751127062972066772762030486812092268014092547499283120919070289300159342472715040068756722009869106547179044647042444251741171175494618416892617085209490611618184811409944661570966027164644883405074628868083522056497907336948154971363523327686324450554349805808283430965155907073559285835504535127403781468668516569722537177377244514102421855428859301386352116328568116451615177298244677499501862826724130889828774944614557422897044569677654554770217480084730168355516023738425217586540143100022691785206032244527317062034749974821018144749146717862357023399590608356061409483795892568650384111661344204552203384487986188143470287916148523612926105516287985148161230747266850064468962547999015146954393451975336777966241957582171617155674326339515480841197774309813844019524681455162315542620419539507839444400400012266871025885018615185840455200450058870040805933291451999041902065591614945454025081228690581541208283292237639422457158011230998967906786315093717612392200957455218653585010813866633140991128710081484514075952237203407067210168980886828416443891113928727028324065632308568392942371004650347606572254089555821827059758480911392096667984113929659619136953196921813547015751887828119445658618279134833373683506670241219956309513586740534645739153784498045129796514382011708979087910365984264447925243199562924828184623248423183501465300349855660400977114486036709203659438580101101260998187286883873621974443181711720602865910765297155944293534349331134161925983511767296645671819921864086858435116088510334569491967274106484905601983564878929869690905627117397746114853576255694800162103818789936541474710437494710484277984465808169467971777410576492136484052387490162913226031666034662141104818711956039010640873183516952682002094190290819228214703978652160837804889440967975667309681022558199755327947892518746724526079872835514503968547212275253020574261882469636325636855246374961902014515709766589487213554622780998526360929403039186634542574933438254090145921459587533900263066891343415552193293842806075187366221492476242194129461592050600164303731417505523867972772306742871808447250288885649859548660603912592567654838790090948998200745122971645561313633345840052389100562765400630527857619763465632158801185979852545261874546149898736839908751521730779262750112636362491761537323597063439687403893192513728808199115916954209138494756841700305596055890110919528064945420645700979952499343759318961860110047206791182806271683892734410504320527783750787687851061310965284378468394591081548457400257957472697418562923503224341585603324151435703358756321002237030522082578564760413242942285214310071671971431243296138371044575652439322663716358451523514189029777372984858979988465944192100305564946336399556440500191650653197106105306952533693929625784755477927179526175753217749088257883069698857017351966364442717056245073617555947297128188104731064955106450627335913508926641099076484431277690319446548964399670105036525744961876510656259474845385922450042319051507034622050933261785569760762583322870114107221973186780373976799701601255609558444432819744321352890309099535605187559200388823728090104347677981554544474704710552165165612217043303961853139413907543590010346369943286453797240605386990577562698548035458386173650962551955728777964301690455558920534999570794180425034739061832590370060005270908999401788189866719333872371858205482035752208028186081176271419159848964206189638184976379971708614621248724567781532684608694444616733583384255871527248716281980832471616910652578138112783671634774883971358556428724244586710775397338088827295106409217050981424246345787157858666720112209239542091950951072239115545021340512703221959377894607775672628846874442155405292493561609139685997839330126854280210523342119331325899979796210748311073205088099424450118751405993527192634099029025235185606765564888995519734977176895730750881034422888542528587087117919569087482913563465340415826648386181381462220751927753236862696236559862390903449951111108402765503495518476558557784030650142258555063688931176250548080642338788687954600707342960766496861573136437227638404303855241307258939246407835553333489120423765557699296261527677685151602764969957044833218847379996740030532040955560052462382944584742727750602275248709626917054600744382192003837645130619054483130898821053004496113920385508343281777041578405969541701689547492702114899342091823716655543478403938690268912793976729560033509586647525850019993928534503359403467596814816549766168832294550849654660359742134524296533337355370548697168880354006570638226431432288265250372738292157090501947075590342547699608943582554401024922539856199854039537219814053121424989773036177493917202471108809499860037899449650703373802390606887544887386024619756533424098332215021340095603315136083424315153567757907238051575579529086873176437996925078595200549342032672394041190033257964558282975026105010717126058962830058061708590051060852027140334576046299309178917695277711206888479056969411449669108859311035728688361074039316602804335220437644795388754413580227158288173558808110453283703445159817723391401013962323348915096940832342806660300179346198232010390214722364839868907370147125639268339517830679245177099812700461684452883779475003128959537776642830517455738313361876962642876024671911743526678866259969108040419913067973801534924207162277194385928330343438849027472572784830885306948178004124576279838399350770660848057176295715801287356406501447095540706316722096958153067910747105887128494113444279572415160376301815915505299204366223718888335715665539006360242843365137663778731911058195524885620353195186804101652660945843949583204776494956360032856240152598593004855225870751921486892314337716712990928104947209336844538488477981448454067566661245505516304710956861836903466004206752912368010954347217170702188720171706410648139098531500549723081393943112940788871373284067206331677311547353511488445592091826327259853695224933057088022309511834601140209478018409343283541766348809525965347976158871111122190577708646902143240732852287850745316177652134867211385453016009432183068807465231380186459889452278274147752323786825185592793401893496154883102948862960770469629868043182107171867904867824933502221102585115560665203207789207410932264373490394902414968960781385183695757611820946817710198478011984294578075321238546332578657014457932031113039495343512284408230881197286942475858007716160047037640801360827213965682455830105047631179118100248523586460668094200990533972058156865701872245635507607412394739910639818271964275767345632868251397463113291164590111771225415834657164535499235243744268329495155050920897981723401327291606427201023420260454743514000668963490801776960589859138368925822614090986353487471620102633886504243216814295546627999428129269276791445425265592369576035836740947087508980660289851611017573577334173373242105930954146970670287417138287972896575114358167738888807880825579186940999034938748569049047503949925904672903732107411252541421930340589970672388890506851546623038603137526456290082663813927314982163945302289133935214176540759924617227767309826177518855201599495597076808646638082198203430224185516440867667378851902570359690355145540897118121849810501175221250529172335149790166464536705331452151060349262800799918219260345978259303486380589701219932078952842932549856553481322836919051206857305323165397807102986286161254478002574854393523815795317555243038430573814295826613437507220002966249572392780283405197831954927465091821533045299021184731248428740367519598021986345505915529325962865224537222613975814065123826591810298815525956168048071687965180427546439745805826945075431914889677649741257710656939936161526919503705375924797084115820843776742647722261464410701813748868474711841087050529178361213864658287994603587173204620356333661626856844065330914488617272709657844857181890676290525752906881744496413130926749886286427460772656672068006661776202764051918206885278867561916903255550661234004396873453918280122756237487862844907835562937465904435249883417066411880599592834235814836733466033882937114362425168395221894788603989246666741506123452611785933558495062546522029326714978558959396638739623335358525706285521669212050158851555000657782829581439214865465143216192132291239503498184530928124254437181770683424150473933368069492785570357756087203764509196212809411632544129302476773464207415831272669683508235310698315776475837373880870879237326380452590556296224626745817249569406122600271958431673097967291672829353821680168744693445627148208722683091055315501242492931324520261539441314957881647128221963767313967822288332956662467715476891021763994875126547132872860078010175748064889640443761229817600816213839655642549161165207238280154614369288407809285744258573524058695806872523358635614570021737991927865304050993820741306200575097376745020710616855524001571167857970068810338929278019262733187602161523509780409603483473502589809738513546426243450476444738020371490541025695771484595208632002035915184337415967415651908018216755024855859334791166880899277250919001771178100870881056583403318596086422292579633899565859797121529168877482045234656310069829698226881713264796213865651077041960654353322285637437233397480512708105746076436631055052438222117134487138207537035804744177434649406308422158645478183448126592578865293976308998054667723454301827228705406517761387759903020299632869834710161869334621117434422977803159143519087563928232907332371995497608722741521978676291108139849000473259950047491453962632687704223349739988104486557884770149725110680451193709120604542475454162650575150868863163693347052284306369914735517403302479638120232456658075074656694193460622407245382073631355917916362602300555315143480879883865958706196390422923283336530514285607076041580783226698143947306801926693511380305716563365171054930375182936882834540672149880759045314564266133258713760730059402213437497610280833598988669748888074492119906415224366938069229348150858391966101914502199967234751825362202650760598285324139140826117085290544031126629164901290283046147949958261447630724575596344554272656189720220105566989813005243869588438978649847783552868069226868519775939756504269094170741678245877468174762763720427193697844998545892506278187530841627181716919817081316724431780743178919203139446928987246779259179855697036862773408780704044542642325518417537425719930724583723099296080002808073052009961815207971384868610552169171039777843537308225167940951460324285012269175117265070230207213389460741544187154717954236312822786439614570176819954582534528589309994483305160539391136167132842344248588660968313274021511917171024111005808661548280991112659917930971760673247813720566169177703481312618413992512768051718869368781289698161983724333575071899747435608490517486368840280958126169929733241185117827707105200756824983242761899403053609693038193938579494111692568924379731026215673637575759639351417243217150669386114106602903385362331055260551227154283457528102394815414136942325982537531818550820571096322706548864055906403347808437091848112238716334502748112593220418660122181378957736081966847119776431980222815545778887606302224709626354312849903959316095744919978681106495835241381155276344973561760929727227920374303962897823421576493261923283604661746568862562558407410812962811151205857125781276167897949137541570168980054345329662720899300479932428585322708516158938375174609465630595278119346538091329733202639452653538346702812252954984210700440270431786077942333640589957529969875994130027047897266156279899138639487435039194240404534214094232454532301385594230005021869905122418627487366464318888795792855302115260329985116784067723889839555843162304319910178018949635531252848516890367126072673314327937847726864498378583875930351055325557529911760216740081464118770657021406909885665828952995564838499297104794000068790770702782908846509840415681531254083716941939433868003440083970245555854733900820481260194113604623153816862040973160160607914421385229644829526572753554470575855549071949716798527195873046240106112698676340773035786667915160442599290215187659321232312314457492627849357642418114017134833070737545330501010258527225043053266124781832950035612230328743032569669990190993791020491135865191412587756663074800211766507029687497019019208132995624084759575779204530999073511576262207516451306209216974091352233515153788877032315701718295731151903420717339394634655344798645929058292180399477773054932175950183710817891931987902403021770600429532931175859756838584237401818452049081127171971203267495833792502599225125144127764749990970874345077319821592274828434699541129855688839692763189861467041065838996586877354437893066707272280392676009824667939432474921705717752024764487897024985624933219731438981308173268452851169737632516786449170403032880547650681294319216251540225277547227592248692050797837986339338171443811021659924699584043373789201919212729104288765301707802508218759482460166919838746635632196789011865806961328862454320841888365083129688674282413411687439992706359084510951195240062096118777308919779717246262489424896382471165591906349576730663419133129741457211969601478980918334484757529874311840007388574935089984955573684188798882272973866240955262354249798201871535166891330350097583348974769264259785202365976427931057658139642795653808722333236043209295633829378013569872147388831003544149588772831168527891870403866467890517096523987202160544280450861201388412798484657090603001604041737006170381249971252869847602902394398245211250703543694321149897366907705023052964484907718328639423285273086348829927194171871522929173071050830692135241288615937350800323872422524751560595071566452413748173902322161844264615665522663442144228572269200730356182643523791246078407103015032490813524224842368575024979588949910667228027597695825009641668846504340976746194548297229691722736443254011418345933489783611143912568809107893610247685533234558123607345828357885316231339005696092292708845724103616458990792996976451097440892165482206529703754489988170584641230666869336303301453904249112344084784779101615497357976942986103578072371578211315224367982954324427670358625621637244553428721939263878835886577728064900774594261339436287737291359489067024260990862402273937300150965807563834200108280937878047975465091863652804890013845581494050547451293986892412118016212618231919995143679719301218690062947425260058225369003860776375946822040612348262215464282212573444310347916459681691181071991403513031678108147469745408262395757061541407413861230787807857188862223648685581845516773676422214577412102358451715269466555417543118323608713737442498472335543736461954555147023625667004351461713718520804632525628660350960259714787892116387171575004531701552518125458000269333460375305020518666934160214179248333109131676316014120523043404803196160257907771769990004368443742084275838603954851039151557058436424565813284154454773332408386137154715993380076571677843945280655869087885633946521373361689181755030355714435296590455632734240003888189524874448631004393117521391960652138982424817338372918415840890179698090715241977414853557489392743763684280229946393690381331239956553721561076624543485332034673385091296778948925390458461530886409905027426953177780841619605411639509539245066695763265106141527424549199647547567028320477123587058361012100813628715982594485431516904294669776225149386786538988011136837846999707089169888380719454382810113865991176691925869800892780718743086624352799482386574199723926575387140853488395423265437260229576442760492958771956857550064450307366911718850491529516827421531905207702192834649202960449723303333281739320649042237557663053430712740879672262524335941002583958730950898291797181895574910165287623426891557527180960757778587948122010998494903745463613805384570437226980163962623539076821850649223625744731025989221163311522355455383448618379761820111234311977702643988558078157194788982269768883864201078093524104304092852313723562972938149610103310389078458965557369558320969016546735491034789439198218291726620402671280398719567636154433712931367199010418366697944964593722403987570444333335511319587068036185759783380485980420134757851948160337681284366532780999547417273710803424310092712723167789421216336488892488815750332849206116747413675503710828237590445542898005294687215438223315311935220287626789297865952708303340076863310936784884845247385038755583428198846192189815441432303693875644269128976706849829185838209337919242778834097062029729072494664716093952100488897011637114101513541324118039419577601556301486340276158360619332045121092514311314579546305069555149433824935116237362317704467978956744727849379178173680766184356055534190035150610223523298176337602089046355765338072359824622557681083575975603790809877691498434729304054465760077328382371397714595649406364238319782224155636988431903782177435207868988699105716520802288071127053069717695447676793893821634131387698495620884374235784382535679502712423953478787099208898525413365126996625217385777927412550895756193282524910457868120507065329896584861709134943865660752424934071129714861551573926416093578844040876548604065355343099285543056956900747036613446096965143789792450902493030401598425976084584423431300037982085676204611347936776598902836357829714261829046552608554472198278104570151535255320326258525102755930494497666665809055092706875939634061878238572339067930236681332379138527051220331600337609690672359935932536890022869258424942840798335413835548226854544120731046159324162595279849471101790811156712070899592868662949456638879644358175127126532118366190920434539206653568082114640140683128317782552700763099824355861706941360545549436291141685502311606110974692528421596768317163624923121386221804743215885123627027433837711963857043123177063479120444211375478440681087451974328475397296096541542539192872700532631956274093133074938913521785420031802910241090343448849583094675418757736961724329552756103741517700959386538232221799822369293133976702858204607966173184903847526469992312812973045545399315549470779004226829760840589772578603477531406557789524667327489604223831289303229648496092340284015809299951729992826871543126126959029219593466121799167683253355040485051017820267268490226155643037127113045513094354036322840522189457680908935598263786259659598235895272243009054114444763006361173346261317764831468162105788103353803942937984618494871492046398551146361311332618050482627713961479139340924335244862042612235636243790291230815503054188092328351718068963506850948298999711459680423552579381455118145471391606725244647330242914459266272618577602112443859105867517423452624348306266216227001189068218772592939835035331171320269855250254400023378512017846941872111523147148874139712292363691808790185327259736964619429012562175523616080657921099413783266617920591945648019157089041250503692253167073276277278198902410859428030048468051010758215835602509502080974668984379402626881190427719787153514964316226221979935105278923380062389331968866975705540610655845617798959412346042086085328833492794520108497899780689971713011941424201374111473310610400855534297894475156777900402973756495124151926574045239958228973432267460636402951095783881180899306033093315081486044826636439357018025583111338194877284444310960310310297782638622772892602723280592081222175229673135447272878214098107956283630512037185494688916807836676136979615027166279833543814623086887438429233462465214733896793331550224196841515349412096740767710500863416502981105018497611852584072567546579738801220415122268044516532015532633802477188260156624606500543380141472576540022912872570270340332165881741017810972751907653062876644247785443207676805485720217842360291434681514261178109992114810959930171608650341859020131148626627750794243872220928680178335679834314332639001369238133367141194643045737098651463828254350097613286172129024943952167786359205184877233145263511196902388401269882372311813892882904493407946958506683454524323398791350435365408828314100761438708318383297509690666813459258641674474833441727353333687143257242993026079438130347020245841542416085640227490217378979101831930781811870965984341869925504917755486196832211239304478022644266276322780033784592494697444721941425058658375280031150610854385365817947390452083386463665625286047998752742226222356532710252608620567767504298533050151005508059173303736123601337717054883366983803212661705940567130307130676722644743368627010823820686334100945626296375059224911978602916246764653649455416876136665272888468349394292786405567462187182772278033671068897462083623721841313866953222626005816981347835593107740874988645796502547900129642577844922287793517128648229427237303172561942245985850844874943231480187481169292093452321104456261717645595292365780737847073562004153067005527396525008702651176546452728206102949768535847871579552039153464913811444522217216896857172927522989600956695882555590429722870516122467375313334324867950499080147731441669745512324996845337918847559191004982723497026541138784273003948851855501471732539297535754451716350128861108885057395028462995471484401706936281389702009236860305189582512430016849936997939892877305771783316627648981956443424956362875259274157227305385370608958237771226651085859867622610239914484046126177517444426027183324209745121100521348933852522777262305475815480141573957912976406096426850336184487314098246597543777050888845125211013142866899306695374786609799915025201178242372148992687930166782506156022168937825540189535592786144829153875389084348246783339769855210406075706568316753204014249738283548107323240172978237150711255517022753771928204956510007136416309342508038400484849614754112179003763394545918329644414301884559499623115523347337509505272238829965263085020426677708338392852825124197372782617249712885618554098130672875748557823150770306007919211511998408676820632386818231949469757648617682537644199272339947001811313215656272491744222899698642532867811049671897554254884497335303434579386028258366627022737754234638209579078377700043217695016068225746083204806744025323540915301276289436165880054696975229832167300556830785537805779583109873980160429593180782336354910442128409590427671820818758060329029470216574112641279039757459357533350105466232367429055382349330030462250322079418008000856328326674031788526256691110781566839572863596984856662853791850333990989952842264607182999666087532258579555455179308526972647223403527077041458243478139726763642562726752034688979784324779016100556571119050153932010287506716093983455627644321249499161967050407960195468804777687752853379722934907428591923763542176911214803568251523245488609007605774985368698658583620900688427797352832342448622530366830544828695624805073199216197733170316819882899202859484504295439423156087348931004509545250407130172291339750428377235428527734516880680893040843407584114113241016979983541649129413509371128606198532495939992737357541911053940198356710716406014216143450033464681900453505220372750304456344443553130947550603132334928529487518540841131393532569507262422319169097015814356662972241501650575633107946294845052738026872089061309094174605970697080944366713119308946555381309422898107643969728745285085830018098384915519662097718667138289629957212882054693915964026783510833474855523417669870696773107260616320153663342741394841683729692790646539709992682547966589867005483340801629602819355792997921772501946340782113812639966143538198320260382017726047837100700931940844987574315387058756202258133736183593093870226255716803713643888028035768617839353633069206915900172235006057276740635370931460667290238265938766303398334847943815522342266104701019471553985006918905346408253427566500096144244914187381787531185063815120445438594835161964976011550944439735631375305733280268676226846625162525859041117965856564721593851985795848868512432226641014752770908338698372019168674947339760355338724040666883629779435365876763608938254230157045052466950221940950815406798329978997267496676935312395006426484641367298569300213386428280428395795305129352845571213482015156919490224145073664956579100690413019556582037217069447547484912975948902561742397297667948249797772821706558540060850419130519754944978741996771083045775974086450191017653866855977625791277652676253461330515441215298302072113675723738429966545867956619960021030811364461565751098813193236783533054039709304988738951311394196504618777129578395705131029068426056042815226577346866221997693045498732187838629230575680522696950209704940164047089401822369085513787930315056376437754872427346935862687022814369775191421332760056294682874053486920847381193846809948664676420725457342408428498614897836967224081655170771250485328980659850091974635078412806986945157267300562569055449287222304646452987784616596050352760153378002470042280398272978132232910049882098261691633891725923695468478296276783397492821870934007035804025360784990025958305903874398592695584954384526300463346696543803872336875497517711122982405772240852871112068540953590793607543568767878861445805211562834919956054989126164078040107177824302295510280435328286124007678714126385237231297290819194466941211334945117592841217361276304946954314082339067539150661649885489404567074421339962560038153303666981672783066748249666852265803853153797533659929942393086159803862578924660534640853575961390534279500743166474384669585383460330228032144989917997384370055248849102546052360618796158787672252626068541976975258705944147675659606333314949410916993648045564369252795509925603359198075895992894503886718963977361723204321142776161035073510440782215553321002232874938123949602256915123412311050159239868849626693734474306455845800183266705409670725192792488942618995473525540697352479558535726731605535864994818613294501370997628902943933827422965151153873280255782540147890706251983260643386942900243358545648299765533232004454218816157578455056859131542518952625931443787617043823743813317971611455384709962877243425915188312704861432349321980514627879386241904911377246645666008134950909598111782830808640556321764168645973570787509339801687571336919567167927876726053519032322059486175476601598686479225692785782763935832487083877844663558452593118911355806353705663390916522731226441059562104255544531198261938880553688125295428598744108175276922779536431753849515609843076041675371516642877380285401321981528959843856371515984846282454362862997331393354918098827517686367088260993972012462815980764905257050449317386457790795127921222983598971324139847118548461236740144029216235152738112808907051650056559806436392105772588244131288929509967126391919601485600172815970828296367689757725427594122190190161484305204041856411027622454562707245736244457872211126120086454512053484769127132983758773337504138134157222051197511387374323264109089385130008423457633116333300736333902041425415415693865738757353759480014894779935341628652142872981158939949697937800333940119118143074432326697155800495267692107361108627047353776268715433831668767628675620290310302800021015743588542042066691605474380783820346573442319370204093699351361313555260177084625885440877414880028011590567017001547057252631827977513888333352471421820454292963417666615062397137587144697437070790827557422049790607717264019338776603419488178803469705231965267364381908268209553519959345216998963579553886092187544905080421919714400399871611299647560055262136208830870754142156522641763772852766231782256601551736533751522025679917300358715985548589675134257317487437215384843333084796998408955451340744014329779934110251165578557158440418211128482097347324807519539954738525048371053592619785899132299308835098835854097141442960832147632210990017119709201944657070672447223133128994155054455513852267913839863453429467154918014976027844834540267067583986166824793197034245055741959927157416715969625054347461745901900963202736175603742661018399050250797016161085443945239269579560465812964478580985756929882704797926170343851808822749690136755983530422956312125908194385948390355787813899838314514717460897127328541699615757824625062459452744960724201312675896765863762493001491251769748037619970454721096629888885226190917098345667452007490018067363748588715574636689659154856921016714900773550107268656877613350819807738399222789113309347047119555951290567258511756481060585265298377246038423845048084672185420534411455288994140936256272402450721154636705815346177213209273623534861885139366036035860608238397318607981391016289133434452132400111075373603666451040809972960851611455282253230723099035053642097090667912644294771237642276444130134391199302154340196331144629369707833477872223692391566390031020798396157158175280066037264520091899518393965313503455013453047651825891045126834206216075910025203389162104892365421744353356604729317503718809004051445741011202408117462727211321652898425440002210689612672666761160454208775610874235712418716054772887650394644940239140731486358753086216892137467323043229853989865316150236900889210678424992609402598817597120340379789708144194607026831347534094868182469207217961722318698584719918750249841550760172353263726200280459491268328868025749412124154341019419246140220932586237063176895077648560596184027810430834053615098003049427592586123998136834620758807882298562573161090194243755403938773204503858023318587005085240911637322169902431963635424166405933502815135931063012317001577639776946437512975998380636744707699336811017365982748199383164435508288389684492063200683619895250994961294158999272972717039890440710853449155710639215169549061969710487712517617750067525137416893277786649185912357827301745514722383817725506093037106454079025626840395222545081797435257587315566195176335461616013902852647716841176385029461298442604203600365131908702098909907589991160745070874583303602490400009792586964947585377728760175201652296674157555219585042158881557406872619325407749294684517662865033930004199868423182568516323250694151249784385101049011913902947214290177478632086958099909461908037467744772893672626644367211800065941939727087281324546626882684683372365524001397570043520204419177151094527543583998009878358585029015792399464218473193342465961990667653811060738369750919645444706649558478375273678570411052422550026150007878408020767038472197927061463773122155881759094415798278680462562031929275573109531123634084330698460427075031405900007169626176958028624959027677081833785313961080389099416595028994591248438309733645715794290184899295660081256884316804202453364019846403960038982115416268553168313114726236289146757317575774942396265996446503410511826348985900302345310765221795684704688588276680692134867422318169949849950086961393605717075444374474618868612904420170289877807435492381904242670368900561671140046205556985971144147192035455266280172300781298098852773069371131613192942112513430108355191374955134224422108038118299562357857575347845316330807009247402259983314601096753879143086842067575168799928570796201846085256877802225197281924261835323307828711517453063741333856600722592800112548889766773611991529520626820791814141891019036605901211021697417370758632372146671307350485112831602246040310530250562234613353021820790342608167341895476919775129087551410944775641678587110912836247212791123906934400205191889615029242279673705282599508480449769762650007808800614201326549166181538264666974328903651900357659882829569107964169559086141949996411154662752086319861900010968976036760428311952652751837010410805461836198836113192404618424022527343485474076756241330319526851603909456585261332483752252757497093659007401751739187073573301846207979272456698910576841379062133616512211079874064300419820986293065012594456976415744857488344207197019496210149588463129487911498447030223020548858586979551540688384029811714865477982213507404109245637657445365629504306009547115228629665843821905152608584418550746544266391016439223764633429061961411265622964395222624492747164104270665276357302673974400883875905840173757196578450880445936142974033309559619813854735641715143140686433305010523772706475906748895148250688080567579200859703648673348146362485839703041573135971513030228856839374178521515445378301953529568878562881642579395871685068276628410264975964725869831505537063229266769413907343262171700507408810438609015147712472656686381087620245638918048109449922640095207755547756395694485012750718227949931403222139902406702743544355664445124003931044075385752326927580385201689219964571267111982434910525090707871942181168061669391797228523512665797047019947180194272407024383608229410695664720930162382690493415035749876700791312689484449538472094147959707936545319322873446272050654615034662239675395301729813076068101228103170500043295090919208972278454608901819241058902999784717906570315626495942861700442314767169375807696060921188336171125937377350907323744872017954036622481861585795095077867426137504585483107541434154945290728951510880000292890418405547048127598551866327922982187105632434208198831600076005822199808897651962350936956974689967857860775551667602914006770456461123922747036275966815056014653105390707774453581352551591156278034562854913893102564101821230083803263044896955176330870654941074087253574913989395865963296148688984996472346529326250903816737857099384227443491217089541856125302931690331462221295550667467644944018798753801688238174176270336868426889366363533084288564923863717197607993220602313089141685793728401712833943471640520850260801102949148289372622737819109076437732239167581171283916887490932562625523058099683945434739822109716040858752047415493415532348301674713482484569817880060491167493387757616750921502485375980364425543305900190016743755916074424829810868998298471005502756021349772453890322149664561388369145693343474459467599738867935255185513465507361737139912381413083588639285561156271900984328933755251048244883570118245916303050739018339799523576885067775101160809693744920692768877054699347526702599190279858881303234596225375178588592071353529274188787130830410690969081199950372848403138137739097523260990999463308098482769560898895114191102484583915986778209803687955387481780407414489569820467461223501973651110799162154734339665406668860808216867295867352159752608000800871220079865568977438499360008397918178809249446113830134865161327006507318722025503022389030694528616631486084091516547384397139165723293921253664845821506546558929314141574873476087650425652210007555843356257353800261947183976227420266674565180909351920184145785677480700696106435142747623719820743329273496348222122039305983291833645757311127434543895708473223936612175413260161340288228507085554750139899801434958197288761999457716018538424775046837377352855915106557597907892497304607043489528727641105491231951117054772897556302938878834878327898986132650270114593120739381649741491651398318462852467717145061994234753575388664831162842989696872870027477411939231395695544791836079672219442988576672392614115013656800007477791407905885236712189824149673953928184523604430489214509641281596472745122853835802646599756603079391051577463265072758371215242333141669723609399913426955084871116512256079549914721767669108596861510092736808013388351117541097235878638483733768994626477994829029490532453089421366557175962886003829781976455301299210439647114267827134294553909964643438193979434829581897424312594450275902516411388962543948158225587587371897169412636599218626333223542654069567549340238732190740720888686578522096466672715097947569791648103320002767476090832333294157908751637762677339480248343686383945718434202578929553751139245214513273440996034474671933733832563350106063031766490554002552733196258062504498714158732917756371084874254953689789490187735801651037177379473653198581672959052082021699303541222387373532443674947994577678374380074887211311043913822258282810023366973762013105158934627220740191541567642987777987482002179967476323894043622803144543527144242615235403694538377218956707618950956493103679131580994126107002307958000647571780752537040423639991672509257079960360978814191407675058360455895999095943273091511153888256162437363361146418876065646828952636009488314857774335630087745462964425109669760915527732829951831401526572349998041240145275831720165952082609521840461484498523819165810256806924111270933887185191857915475240205513537243270798852519629326432952081264678619799094552971368807167168942190175950616911625105476563082773386039162817164782981480862069582680685860998432018322982791542454497522302935414420302096092467719348975671063355514712706248062442012634038535910288454819471886138959939922806781097044041804827678672991843081096321217478869845373460690389796016230607077506900713614389950956846766357478528379460532179186394031621194982124002290627190832603108980932000444830849175538726962326522626246282897817398069483285980949983740052797785953061290588805183390530375072902684586652919954793301295935637830317320534714414420244756964933549344936859278645876227804164853207756732157498198371416342145374757334987037567119222886510080550613189053026951239151039997607050528878352190019383044187509254062229749795486130857395833727295717391838542316642240220229962642755146626596146817431650307026727172571320157175007212654820062166025093808814029359367492834756013856619202962996831611580358908119034027243765192097978780798888230787903296531376696406094625850820885996378559821525427423351059559637232123380615550896455290276208966998838847209335627862763065660658779127356586633386460554728016383273072724305833498145873887581743798170451560253168805336948024656277854910539183372640132820104262174916999394676906004628731108211057606345032707830420901043703905370204450598719062803344187491235728953438694768340730392996003190567224445976499110884487791065201346278775163610069908193236536197350213166035589567905363250136222119408352605217581375580953064514127794214501953679788548449250242452272018973383284456334478348783798725791666789287161017722031791646502391809876881098021555875354659024008446972711036438286126595174155007767475444745744052694318346219165405050513664334428516802934719109334563479169449759421914623260861542566816007166173865204220546796292736283038293404270681232909778743059488892462846148852153568111435013951919064364367219885001356407802295498501611651570487869979054876996801967823583815266292901253534138030722601720515675520535149452462993065912095254600511942472367895122296658856981011941868065414110769373050224646854389770833599511028705039241821331517192657334500384855147735097451496274760065802767998643508814099513487351145214024276603520106400392684951689853958554084080494138112198689520342051419413020727814714395930986390389428390307043755039295190696620652542508588035117116790220803934585640337120457839907047587630783456014808001516662549479342403838798543714510841326536129253083040337094807972327172936424356452370301734402647853385167326732332730477482923857714997941069767264915184797888461188005266184468854159265108551039209069134861039433640443760206388553919515759187546589971164246737051083136225735768113319634387734765303394589966836541193541190950954214336415387623905229386756295229177274383386735932741747839679082780127583483429017969225326971938971291641055994546150018343098067568682213991425586991784789297141027923910287149175168754351887251601573519425534447234734504908478230159686650623239481173009527266521123031432857049150690526657865610480275850399057973576114282974420531787678206338504103151203551309051201366741494332897899229928658308949090288817486859565368705598717031788801609553450353910668161396041824176406336000174932196772417017667149734635474773126835325661829394220494654262204548517307047221111400550535141565867391532483614500566176830962010113070409223482729132462001018354168308918748916975960405574566558269903291629573652765268319500621902492363252768931736586123931309784321947399775710911941220254207097847148357863232851758007614666077053746191862290196295565426750651771253614904232564834584053554415469058357643912318475093329867617982893454214161961621225601441872159844722934977501607029077509894103881662667395927368751275869352539628683735259147435515209003192641178209368825194904270135690751233334627219603075085978953434048130722639286567589254594816478992933069612944405080919619240930169286659658001538023332621198505400937027927285258801244654216062491947532936917061191768695390155753288788167378887811804672630137936159738324815515429477346992612172221190934131445230945292837883701559329267038558319596113078793222971537566061174594974701739715177373887557210911812569370493322292511938434613311726865598085523072500805367661175177871887048102124842414480780765513863104825501951967470941028499373862343639119025649030182233360973673908080975657877488815175092676132953362964700060713888093205437963925198350355095193479716982551860176344122789220589677649856822337932540282121835962471225438852382902357551836771616053909804612089212371629270158021961741758916610033743677347373957606443209917248082007718343555871574756767270722814612824916680411595720215900692221020865572979619056992570030348779327092430231211034042316412260484507833682328809654787729938756047615641058600619033162660712382524672668462294559671162076136698498983427190245744700479418904037210664225224310107551932415048951797563282747161098313056818452720632510021469099550250016697185242623744529739533460692889363143745164885824210091597281192244354863440368527776190596186959713721450562748266533791446296877944810455930497180008272771431106251258964347255146637664883885088184405622418609504642094036727024005201798448383762991029410069986303637091628764709338061940724918167652449320017119483242178488436371398602541803074922648099274585742164579792300857465226021898024917494147940810519523639820693207638344319767673750778884498737184115829778593904039465715216581330517592334594594743500140248904777564857860929387434581034402007771554931054445985038307074090656344099182529596529021058069867616747318922609791281256549781045135363190402250710395480795557583808098234686484894160532558885422887902966006587764623351158828004886171480752443021902086426191398727502334397892481977530137146687466114920827167149937257168085936608599823006687027714111689566620548434556999504072179123600289007870663167352620824570241538128621208578945272168950114623965571470044132839775185529613777066537695798221934477388691487298536942485286962536399798246345518549111182461656364714163609327590630647533216235430206869917534922174692221000595499984858895475584574160218499830399426303422673339447186945465774657493940268096383339239974477042134380176353110780291050680699946692614720767512932330857637308554478952032247535758997054950204445793122880938234702336529978941468393622101284979001450539094888868592551348105947918470541123164632746933965378970066279617353565166625414598371413043940926070318156299897632329477467093650253061159038168271627088027850121099511989630151128079889791222246913567773723921340092001915694495069331449190295477176520265372585310402193112407333759106485296698849108847938310714628385209902597646099858826744626283569530789610506875826250232546732879288354597951162677345904775718057328483739578917525746134416093395455294098473282436666416501177975812988093306625270924709305215077637790168079207745170436010091706401925614898799789028810006625503287851939684911304762899023809367302294559252862002777899466586692031096807320225092946756078038744110122964222610569187112341984552008419841868852239515270448758566158536562385802169714534307990949012497637127029560136841259156343373099972310404406665679535536094574033946322756471412676701650148524506691024193689781035282296970198954476799959554129384371917024559174254835745367382478871581898274110860354064137544767210408154007969146670924658145869873268589484359485589751674261676380804446299704289840535392647969045756584677340501429657848956848920122394499413371860006337767976122398687862810698655671444903541625687159369920081467071753990712025729270301245122035826279531041095240869099169239819851984001686107925366231893796113801204619085448412478685310330692495399293683853291878736969425890483304059283856641354850682014617856227568186011888100375351250635826729047567690728705184093174736652611031794939735033852401449037613580852172230664888814789100159531864798781717118651131832629399554378600462511000418697678135873380844778009576193987443996489231556810091920929290001767427507662214622823662324715301834236897930619295261162096879055527405926381576064490887809895266580202992198618565953114602811416356868292654943947670694514009503800156276080846249860624735881916074198153003368369845897800116880803166989816229546309435682452657280313484395618844119998762026346258124166598974686366256276007964815991986869238445768351912729055482827252890473286256534339516752342630936836385302233562116308001242570114819869174782542042716409315977515766066219102876252739185960800478141480503186106677528243927914487585842159513478077077927333544785915896955580572031317712486871575804201531845844957859801947591330821390303573264480062014595056764077144147993626026782545557735633194810631455301143418972594825797792970935044367055910181974163845637476716185034278411098644162112636991136306742611235079095276682088015181042744966403342119980690686161609858356390510495803001630963083509092983422188751509265251984077199552251917649532206593427354268713263127210269733786398157479478292083341260738916576799836619446224819864897546492074416328748831494418520960712807027810564283183478425991736502430033610813143034163248256419935876686319435998036491439427745412312740889027171472502375903720820417415702537140157067312308369173011070098015724374065750671387714345273547459971687519896591823201315275369572394253754866737172946265101918683956921114220793069080338547477874310082664983393435640860296998112408859636230930206768684978028788660214827527621358415925310399825299755071376554677819222354898242770494395590602860192505572317086590415801591382545239852273594378809936933421173059409197024892732745109978515890297723196738080338096944385388247988248373243418490408433757540643861048720247622242509581277719464074267151501488898648173007621064450457331091997787954828432647455969519668871136027173469838285905918889767828436647466130753357238306889746719266060714117719512146070891524356886929533802867276885825258080008389980751594370121959931521805938511319640888049735383274498831143623860193987096746222491348132329839957990960340027703748556471622179363542245613760114261369818327640062743864878216941552607271021119659709036374759107205491241308837089920638226268803438346603567017501202718883639765888484455063964618107779915206357447969104635552629633416282595327268721915636361711607777027203335178195904848287345272661995816724351342497608137075651238782388273439491696144224733510480108972177445025661547708734106794780076251341937281230293883832978619559789126632512643486147436882598636109008603633551232420584022813079699679370927336016243275925329105159843072914016994328270923114768475669310089617698370672546764362405343044416255253926475349400509586795611119328329331961354277143743201390759274014677609923876393053912056499081794799980512825879065254853898494356810090689949477746149971239848079280858378952820437771983802958981671832551263157482213799764505704752640651736279409902588470867284662150729095778326418667056160144269310290288086598990995511977426780032392210320734844127083745122024927234664425183986153569589687057124423493290189547439885963380286780209796294947465286386546799248779863258199299960527076367530741061754813921701479973140309295899265157522656115012222721646892238787270796760596376603274790574583895302641981178142876601022767204037129759581576176962441472916279567805863299221972881779576950353968149324633687197951759731536529513977332697139150492308770701689111828299769143734699767152092393915432060498329224519636916288012188598025878010382019345425458868012234945475954974433338924355834734191695263312882889350666581131746976723553184253083827871855345104745516866437466273511345635424716841946487931748503383812042760050815787066396998391666932270937440187543043742489373541832325855339999303515814898659581197783583793458928371187452509764430531428686615065796026373986636393250839324223744918829472629341916363378665897564496321767666210962311729362213327694438541588312238346936679363909990261660399088509040528499859404118249397024055210762161563275855349089244160895929255234007964498584780240721485637710610705439128936882596881290324412943755552130007683762203568826971126731256072107947088388526891571019037473533374543443468679649204773891280563552510198540986703054979963204801370842977350503711367320788686890964855090051437025532322937115176957511072369858530963421173790680967302723126208014145868544081095862154752626797490378602300306694651010193721378545494779891192085884564403856872712225098635631402796811820423763769232265093485570609038222761822475250744312594327936686056219518360024346301562005451433504359427919217541321586768636019960137110910679115533262973922489101193252725292140917488857164815036991073595394457917977616115253351313231847192443151791355545351649755751630456106235854484178877156639883625959644506133553659650124901322548565988240163202074016610969005533113599441889354331451383968352257120810515421634330811357991720916892217511250980913296671995655256205900439722045855038303421194937072357273721287431299595812777548845083488196491869748110288737255311070233941448623315437340330056642005829852245958035608222982193357223601692683877376152442282789909877613885264346874224972022032785602128928255879952530026400431830300419536795017835436349095297526945028645027456323682720979307718003972794639001995213678256684708567549002704026740277634418080070351038948684866808641866177026862570380033864241449473864263940431304750041216382054124988663001012076127871115974080653163864154867052135970753611704866743596079096091167883728878735727543898816331701956887235439181057939218571995284800104314005711591185577314382416613052274575213523241513102393103103478197863747296794595821112443595688663325669317508306871423753307670091640835432076889319535212638150247560787226327925803523979244476367462993271165849702210371220687540064857254268716333844324211939652013453791117313703437280899408299792792326148425594088988295632261769236146548317393278715108644057989605472226344849586442574499097129130956285259574728892217052753753740522231136483907893074385481845714447522279127864899240815418125037085116613441134745528351222336564065150350842590060651842129921195390981566038180762179005506684929769453825222579828097318457160506726858648462143021585821288402996757806700799384358384960785954747987336801842491707722329324903941028759209130681010865957332112052916302373379495381560827358850390902450222677524485277246119683228054501259620841698821309964978277062382591447959949842529773409198887686967215228612181582566110281071667288275830138274485153008283747985685505000265333282615841553697362478765844818087264369459807255933421307705121879734388155584508173813755676054645839213921641115386695669016189925457459150552468256853580844833799707432489067758154555274028274711518886898453914325519160884136635649919272699104696044419260089700699906060386125244780055198496390996621018740604162780855172210215401791273608375370556309609963497215849635371120412001870830707114162370832446281439579702481266496185280384188538820454927101349411702996763951446589752666250408851934792995240662890084852491038514603881651776124804993774686667175165328767961358382424290789489971638851776389387451574063228756703001576238416430460797201498893807739666999139980445319350047100516779123177747107734203018733936473908051335772562445467811125368832755896926508285699961030220034032894682605544969235574612747175484571031023754913340709965292846269575766020974796589806118848771731738261026609585322505043896450865515937106899870953095623033943300717878304042793068142765538021883295331482556020134153295298663066932627283000857615225846850872807325057578805771033805310867649919924179973533660421013861520408661733885627454912516118826365216370866343866999201523131211630624690990754406027985741499345938684336020564300271752983799739721965685446234248643340981105316182608034572005431227322753094516047171140993988961953338862328538844993972651438262001414646932294984464321165043500432133942041190437459039103964161551892298138599658738628309188446677532729908027221318096669227439050395411688271662162637402546952366996749362338218400571601368711621986539405455594102683669768787746895336664704302019907173729705677569906297683747997200005491956146210613946502517240443292265733098241747466228748837619053559381680415977327787233790932755530749898308902873324838469737175793505128724205171335389711288861982208552596932078077858975957741854575934164241220946058614742859624498757451854246575751987773090011534201618561879117708582165372925021219600367915914162314376648863037875596767437593871212422045486394636985659503618872123618774266405600172067743506570849645908489188116763960199092206115128215185758763526808578572270928417866899316298638780538488131687556664385281872746422255917985598731627236300621165842193700098634596898511985853991352408473078869443970389936803304887117979220481678465105991135082186998308935470535086553144681551221619369749005430633524088337708445551012979959741851133965796035993845957537739751766257934574373952379549718133420756429445458257535221144593743124701770426333990125022357355224035076651193610280101059731761813717286445584492856473409776429401516254131057798888941315399807696637026443453014538799511125852512871863436237156283589011329838716927777086844580348034143089731793129101628881075746573260626635937801475132214299052113078752413975921588329168425867676005592192411904619801885132999595475170789938573317826302534438373148090185159704042033014992972496640052816896524501769368017710678533922258537029659893318820214503790073658451659156873121654742647672368389016595397031952438548641611156289208277009207271794193111008234998630191507174804754969224805464990359872785261213850115569553558867082797435684470938883143451611806358641728575531102579426485730990238842275921093870725484347801038994868815555781238221020254357589443981438860234176504563435167284480981160337084242558447076050028428248174073130870455072533093418056677640132220583374159620743624204091841165091558687691487983315766411521420587083842834326205496451291499506753079435568359385406206756561882386225029670147619978473179994198496163508971350970756594583275547686246885384535414501052794205765555073327723986962771183719748524526390915716648444801901604448358478671084238131816358413003537006187646514818820970370629491742451234202391012209602121103216128924232175691306865735161063980660820617696885855101195019759657195464507659324523039797073257556593665315550219529478467644813601671108467307753521891931291571688510678360575750095604650089121299506281591975697959584521321617923466798621541288525091462960833670632510731201990727041799244624666947269131866480633399336774907218967155480138023867535590261627606698474884824012919067185390449890631040919644686587193851669270194965353577625736911691507719122818652830694835796676744218275411222709753488938778539086678276277595559603513313087383667124489528142057425005964886774700606531096599765097478034835390410871761152867697261098076802217227870342491688271314676552133458283531664065249495123224167901804599372910199967094207131009584779678214612001223937348714819343755115154842486890066663497750056714798132691218176386255147822297048815420011182879544470036565623641951833810379870145508968454933089286762867329322043236926328359621894761364965219035035337300680627931354066384573817154441390299188415169082260647214645502701637542427294648097799394259429491444965483156147306338058976340727765901243842748442848690234241721395168953154518726754619143489546805973527151004368704847443555638706877302805205678195353532167860316998996949229482618397024946995402815366480508945745233636444078960331011243595567100152614650612149692393794349381451176056951016701731638822434810670333871224627787934559902391001154214817771082149639510415880476234996752584340093115865101742871333835041950004024913475383562604705992612977278725062230509732840203098763365315703161899720696932277506186274562109595200133401782694538077062558073649770145297333314716963618596885975385418376258577067484502933633534789787410198690163346631291745788398162640279148043732220274157759273766507680129153083415059012356368157388631345409217822767420558661257962587455564746175638603070389421853847073501181162090630789296325634855924764750467760079921643617503312291302893908861069866006269894655592666570852466993819018047532754141750936688411447191773082394752681530195202304735250741791287885684427108569479680737744927736022313523803580184055005323192523666496202354940464683880669413316281845355042411284014886529943878714619352713016975264353312056998666068924375053458266455650788501696673624138448641260278585973656956409423675782928962752331573921159619341135389673027939816144488448988393557489900943595610111068679952447064316797977977612789216807077344971527729882188712567168153710857423373949331917621803073435128353159282262801498873245794485995659004772321839877968624491546671047034159129410994132644395403738956492722681366448225228770514249442572595944697821603452586242054242160677093719673405641416821823190320836185325743168748593218330340432021442082012466326674342217501637703468006023278591053884475520716148954637766704955735798659201360300420225113239947191923484053549518889299136718362542534796338664608999606398415898119678194307805838079985859715211614768382410047368239596228402917293801749118523363198389435063818316788616090288182628088467153508813591812593714574853643350408568004589115627846591694167182905827814195372556663370825266600440961274257900682527929220727517175324898681699511168352242215961417245073351998726665400003265958397576464794296445906833873975366820038062893539416708431018924819157036161749404159559475096734967178136076354673234533731749398837896633570746190928024227846225695887909052230380993909282994569495978755372719452058941579009450586808786113651952084043640758366906082262644549512269930713864558102593574100893139506213619516469391797145605774573362239944650975185707351218844591060246978619995539412082417820726628560134484051997975495398840349553464570742036681676440111374553930052650950687719287425484893974107481288955215971504161173958475897287322956576876800999444204529685984810392110893192108331929068848687454687861016740816054234133389501607796180856976196592725533519768990128901625235810127985977772636691777216415651680022870341559960760067259187889451124176975325188584339700410583983424670543093591334099186965237240339914101479953387900061145022049747857390496037183969919790243633377235655072312305649467147585734364135336662458949545773320306034639269596837519776281258677615544400039412530984828671557247921617592025049760274653949656019532201615275677284462504387618408430025096054959254255883036578072529019427110895300888583248693261549942110005802059794440182915729522151794954083937256437431892784157279904832953673528431228524158133744239931525138389794749403798944773607754655507995864396104963794372349298410397216150558397392762740518573660941154432620757782957096604926664487414993641664545078057810425606474607643519267014679453206762718476748422387145619327148356280122732776858205654439432585742745057896795854786002981429108400016007174741974132668375990216725320116655640733716937761565995731829890812336301277353270170937314017644813591689208799781370230985489480239431596572043721050868223663396543625370233547643749012297438703940555677634547669747307963533019954564652205616535919753002767211587499617522063572657459436007403771590754046665374927786901477893395015980857192900559959879259176542439423649085499237271145511697900282184091870879191206909456273235039101209636637043719605615435280949121639155860688959224432577813974455307042504164865874031057982150655880943303671638771251901058466058888782132687195090259614973632221634879489006832676153106763445199140982348296888737122898663410981842859511606758835540957687713085302518927893836433801164472903743743731219506889477942376631976982860193620200684598877492217674268637693817814189452291213203939815024731372379986556277989851909122127216536315778772115310082819305172149175013040982071857469863069915676819808421419017083559938173343033862335319342393455493404550705129945921540364514799561010298946987544996574320050801936533658013496278594133215104294426674528045677742173511205056435160458572421703674373885056341019567592852249618541587518594279504009452556076393155523095705666788136550705793342662758209280019654144726313586089641839145021925258878301101858232686300833403886751239112432897875681359762961270781796948885499280330079062098465377404731328018366293828239361034525672103793953955345109500465596430408081176385734886586001097384535784578753266479578046526272420969638123584740468636463098064013913552676948004034095293715764342046196816884855477120801940819996583962990795420606971618535726989697494506864236813306557637314044094252034336040635734644290292354561298928950156153181669208355082154340628218158457438328241686842036681411682740245525407050844618214624531271592599057725853128746310884359890165762758990355337210085015044199272734534933959513279572137087457065640832554378583730811727379138089969564361583234080449647509782251094878324490491748508962994482325789452622819469559320091763984547804001327903732407538049770439190836081910657575995548767660501390740262422892922672689771744738870865341698421048764219516829370652059350613195634570048805207770653482025542817135844948546657363276874845298806086540251308072434445033303730897489656936424911747985323156111232405584883877283683260468809707121690834436624390467309723077024942348560425994832631510399973591231862773756557011622994161972602774929989631083983120567752163456269360956903561887163107223041517297269648522965637517226420837001733123210140051890019064608201975212558225429511715796252157927278040088425638567968361043107243677368382170186086267286204799209836273060383767924598926818542707142410097756623109489874023274457018685647270087438812899433487754192357697428512384510352607331845291539646801056833311337666147928193160288111144496877256370350552111124339645638109529479508663564159067869436637915683811944497428343815856457843681236812763925544150331458370945577827943067352120459259866640921556756143126972439185631034507289609509206030544853903454066951245162145808433497256470969469091738976152865528249282545669368624793101961095565220640162454944440038427085249412336760597199321468212910646777496178204909788068126493062379268700315883218616740145283556011251516266700263518651999063322726144956519223617429137488334611162690626907937924228400025099685627120865566818769370481069940141505414440108627785975471275601755298408270066722067417424701942220791520340071406281757936635557159803098833589834644633610255840703102720324361798858124210860005116065374073481581816061827854256480027600922444150438273499218762646409417501071200067937541769963840305479514849131171850630570334896771905276209051799073823643400292705372161209174532589949955356736547774293963746958255619090913737213967872942139175854429675791382175076019922952193252742057655085737226113151059095095413526803221922331866617956708020129185507813011501869040769348850814881411583944923562781858373804220262969459350192295884036800833832159454869648451992876214120437546139099281301307717735872503026090375766704027247410957905971243653564760906078170140115693204017553329070681731095165981756470702517346338844850219908451195752316042055733364837414535903151155439275808757005633894523534616166312156507811401696201126028139483110630761974119085015723640203568568305219778375292337190844455003624253442905129356455923354772509636129389885680669892797513281046221590240613825229586202269425089492056075055549872303703392693533917400254186349155101740969115221674324426545088617928893176986987598451243864671643046286735019278194909940394503059315190827358522643917956275388712009935414319432290101211033292771273996927226362489788311369428938256384522986890477082957934524370712984767864004202657440024912865418813815137700759904456319112602253905177531998562756312679940994829979684864240929431106991883369880522127561117867662404150319353311584247943657312229348576715864824458885402870262040019990103628073392490884874105309088436182029201446153164063561350367206905288878176174245121461067605039030538911945880315340271651666091415642396162965470962065364418742667984880238128387100399982954284072765830956368260807139745642003651295002137243123548799237486921051246181008898883450092777904515221294819891329156572526372001546392301267967389157195285037978136482244468076922283176966011597253960623672980167042376661585295055464247857631773268722783484070489467264629768670663220938119482580658898725735327234879125857799577188486333736601936227828550911003331051483967159148862772586962857376196832730527785613119581404264962094086053595101975825081858999914329908342998444697893726004871989387021773956827089665811364567025251208431716979453240486532721330217072863546867943093405766656945768473635008689371934143051486493701228835052947836864930865902510242444752632576151831755584176172626812512663049361751905761038731016416670362233526062052435677902560099493903713045000083227221534131723785918699685147489539488094711461305552292976467744054867365836166121630105297336372177148197304370047715158644307958055456520536356519369010829748563521923434997957540236563086862505378777474684198534849352562024178086320813101641179738404306973636787768909073901278300645359883292669167592286130871434342790102609439876004636862981068071723505367004654462215076090379883565096146305760984815694318182768930704077105136797469897336210399992811552279889242173371767541102305729378730747409510726253273773958440915835989706788876052939676105147669922035828140081790957452539393568927148848513564384961281127747659502203342424448526037879235272936105473386862475580651680288312627909366613849102749394280746426172384005096124447321269946983418482904626777114091893147477456679678043799909560836884405248064093996369055676894725575753269903259013524745362815574424604888116851625344949703950977509046793483666954712545383635054309311895562886801499745485720230393564070234121358837980949880496457215438721763290516454756630952633682229625781093248707725621470103435891682171275034130710938032453131498076120561587997793618600720497099563608705399155282536590521715187018553987770246654410136130838097219274688880865911316253158386736480778967569293234537769775725576149757326743094554793295928555543580006013539596900579120722392310013868923580903676226367306043152344489628941607289412688321927215130430392217065589177891024869092402092397894502495737931125973467800692205820740692974195133050238567045715592000345275042332314674745788456879326354953261617891017758000500602439507616945782032188953464448859752082845732975143347112262702276544107726401728335013657027358807049846099022557069214648504034401855325183243284848015790699332847065630416207390627012630781335222323618375685792534698778192655013881628524030091599939416884756530042054772520508806610859924049978381963651464564010586320658134410709916397187244450691149023137777183068805763600753200734389520584641838198770048554421798673125110594501783262957426149866876097773852009144739188974642681267372093459632396146554761894387600117674400453472433151364895618353794535086564146629909207644404626747040574054007705258162211310604421494095452278273141988081066844345200238882884768345256117686416935880914618199466464276278266602851052756489270098707298653619393885496879316891327250103677804672693489673562624603216372825692431560817867126906315836916913272758004207437018916703386596087723973724422901551989564432893908759269491281407491825965553603810985276090384925533593843720238549580182227697428686260055839561931793213000421580130663937332486256662218999015356946461204829298716260580257330476054494166594117986637473997964679715367428711907280838579503300866901875102892725007527414607516091057061103142117645738750785179352378076607206918303351841584116899479940237182896764578116027757059559987103257973421438020191953375082312734627867141251714635103670097023573708473662786655198861518237467868163883491406426545338734564759860754984790917671890875149602159165744887340736652444925677979670790908934384182503175733263176043005875216611458152672338186750523957978597450081941002822603312850560599468451400476023046780876981931708269944353617724239752595260368501099251957996218904380624578690835170315573023465223261538370698650579380686783872360813050687570905048292556209757346828939077973528863269960104240639755975499705294557647035977635608440493460574872077366582607481134479966095056559674237672824359091393897812498398699230803049404175438524020912952576105504889370233121940221802258502996364688303979127916949675626815955885585466015688705118662713401945772951955375547737700746216208138211172330123189119055194563844141806489485975258537193057440224936547260055872804294331063239206887681175189554775993147736527069919162365464880353924062164463410363572967736892636335732977737585316276546252881011376261589235228281063595004427991759822859770489600812681044128036842892032614284481916480929658652205655594950727482580481274032828917060622066594571472793520102871956646770173105578982808626860029525289201641773590434881484705402450928182255126991251844316452596283557298810537676169635268756907099320828482070577056498309628412275008556172983225404161825923510780519688851017456180400739962466591128934555485168736317961497963628733467239559481858984812471214921761453474422013219225100178994150845995933188667169760769488863732759187506337969736064417073745478582414209053359890994960135767495352104104582809544878020875498588869072797837280497942734723549257988382289059473900582771743910186769148798545355500844824152285673042003071970052654763514708571151956299210656330647590866323691878812459672309094866833671377016757516575200223072977267351485990092520372006796563504270885647256927062858653851273518518255056917231962321108871101786730191272633780800708357752486701455994409896250036465345999609749656658319435825600065542599798982625010339040507255023174139640405171968815996216424526507364989327962129645716257734360556101264413205075088688731129052204481080529427354343134220211323627812672427609867452441503219852241345516129109465554247331265620909155485888856408707175016255346730818387914551884041351705974510530922157882750943014727148904283994181743488709958356905268675598331025038589743537262502722552530592837150379560083899661620505868835021924894818609366059565571261665411055989931160787667876129136670915673949927040213309762329586538573514583747353912603744010739649513824177755872031726187436461932435765466161960471267486619858861607756252664106578273434481163206249730285986294020471578242171264055439242666795783157904683553132317259295529247095770029422487108734547339822311745982070863745203433729430384849068843120195072758917210657726445798186505732525349813497268165405137981962850666272183606740919730352092463653206381763540418442085040042649389115886206252919346796616024637043357508447687419881657859161740388270771025006916801430713913036264797941631043439048961817491285976587718274978584020844486156874397524383500496168273354039505292310813969103696308956465873291903534567966756611321543502413465627125639725332727573228682730609035350174130201509242885943072345577845751666803687602059971377265936031358574927962139842575335255815105190976931660989345369404488793725139574505507271293606850362136816658580349894546854594104801691748678160390818297233246044703385442548437812233300173623940192539602642308706744104424142522466839216810563520887540729925750614297196510434069307703216719366938946181350358489511631801385027231241439768167958467302790312816692879325439688454779523959695077428829072890596607100765894689024620048337898124634625953859903218101342650776918299581550886351458358866830993299443195713652303971459031239068117872195364330378228110643804260660049995048278573927320334608611524066438424289208730509501418463823688729470099875290971547891347294305540066742306593921989362011771215833435349754290082448593716391804387048494654160896167503666479748684298167023822722882322685993294331006572214241309919015547637618721658245266483235646025537111486077389232416151957120422117536978449717892139731736165186575184282092410067782405904853525816715838416149038121508680628233546447708499332913004573467190305616822772085325525451287786830661490527805280544776395959125075067061051522735307950483827773428178260157231266908444037521408404552556607249470320427174828338470456118104286212248523175695365738710885483023686580668466714563405934395508219458353757297220018925094172739202955585020496740959240829242058734471703435225127203495884274088759335096915344395435324841801372593967261060561315477484811443172761175628352491593298970913061696386431925082739894787655427392839959189310344903878216908433367099295263992656488100036307131038715188531479904619602417012995635995578964567483410582016867615742847790683831845834075384222963050392854193355816929856219259880573105931500816876434252363854336233278296902116934142753371331727659759616603660771112444000382304715671592315723818592902247772009508656752318638832802140216599760978607510798775015253406523890962069599015796857841906594690732129933639197926248677473565986913090613197944974723502216205492490758057518716192003695850198984954859336276957067050387929061698401542757552535562733632020783868286012092265273081460787809845990793219703455634714977312810596940879305759416001228283774560521648996167057249393640747021168862945464692138356186781770814057603945294720609121981594329441740158496127177911534913851299358239708995347226394395460796523502279285282050526231362652665698327099270072005611699821919787147668176577476299888681942797256869385291098697113158010759754706957513685826536487452260402937965599465520262729160187417074754115345278205602381941405356530324435703650116073710731460538011145191562923469155973137017640157013709265904338618814570105757138382429119230157360000212654983327350035788640448373950734713387880994103437454235785175808720268972678629831601183474086114925674867394387833031906159333051740480139824580220920101208602843156523463917106894790682009086966130970570491447636643347408193935011199258495205155513621975770097653684366851875293829753327980031277589929519577190284634239057493350764224282387015509200263138324826054809605596427478027900701282962143966591096118692076163193520278011416704549358330848403288757508554057351660484423299179900990417253097761871650565774818259566817941879082729571090538652110301844605552393043039353445973426265263219638225279449464758711864883231994112009541645239891942133383281060213012454449252278174283149728807554569358103852174241338335541964315455800605781253025566909357886395401876641274076054327593260305774785700168265523265349450046497462919620670161431171340123976134945126416317098128241121606261936091302932757538688625839596167257869111406933253195118492736591591276752766931608443355225623320835227721721238489273026008199817935966215410934802275449764637806096671289234701363218675291860786665288052242880354089406840885706969557496120503198257910410197774390116514609413074773580558168559965758006256585718402155072935341952565774385800984894854081422668087896072352333633591039883385177635955155518038570813941787284697990126907771707563212745474031959680103799182986843913139189422519727966250756642193899272654817531661421355567634157985762452780961620295698973046970994737850171740872913073700888427266399661665102668662951735306804105509502941775216414699269612900806851016632586117110582829870026495660189749923427022757008027569867629398684147114043556519915192276543500125222104770259345494058347632376820838993295139085202624273253054731123797836291803490430623527594180468813613480033159620588620117443838336648778392675518066122439833761334117270023667598427326626014668615269469897191027793005927229181864854708863793766779872344111317561629128744328571940171396238257213945217020937065273452554494020795901578278331636656183206168507425713637183800755326206183929493694037299336343852323277917961268189567317855600686809228738220523099597354876388234467907285643126480951093167315524231513768645564663439926244980595718295559601608873555651133525606949710650752224957150723049880099866316528892017728972675235325766929778562339171645800004569425638168849424517602286925051910110793117519872490775611359483365917912042855397991613922089429795442657353624927556182619295686713986620787760024562216648962711081435106338562655738666934899657120240010969102042180498146290801602392037489836890065949296232621783814752554364594427803353582752383247506536484892581763911863747795713295639233697566183480169725963128959353131244542059284091664883591326521446399329626379981207455370342638935855611134568208569247064514649155044251535787582174453994073322118732307931920465874743037884468412534167554309536974196181257182791776631246744150261694784082283324783092958452095744330573844448647473812533034891838019096316220479060221547831806573065476403885739789851935914732946627212371760018515321803976103298372758411780804210155697041016314642704756772702832920687244611135361161634848261261643553690145502594542069512204786419887489041447372100615519113240876750226925645274661625574344529871753348560851690978100357380072545672907920164324358047055530886322559718966763534796924828476654278794409102349863903347453293980344074197648023728441853870826056808204105588946135580117661163889641346760401131190685508461574760726570491314366113612154008215016695732071607438622387984035835891499991882738717879326618118525270013142472893328525907178765215632230621302939569815531178781346945420394405445473521963272575631364567170177834787329847096633032534766115304213769984822691724470072317353302552055594378005808650177005584984039727346796651063554225717378916641698143132180529548763933002249603991870631178788906339672363237743450408432281783392261014799643629230227877397971695807798593957835928373580431653087826712396090168371978516514298375659443373082924100088362625506998787243155441774574758239569061522570911015734380048503417256810178651863120907048832251988676437544221921200577871336990188374947048835635881558027411237864775603208923215563349366067758193402904394003466680486232880855684783734548657674220625611614042861523054933499658426351983432445219221318241899111592822028090624460603129439305617304875497557503163990859796217144477984585251215894066033486123426171822644978427882526061894918766894535797790293295452817325385225241107275227050516669516207210097922575727475024921360632013245504189499520514492121345864613956307794270657340862771527668091613325486643213115901670640951028120049832453577574467995307068517722264222428076635716444175562991787648968892602830977328686985399080052659619818727161460223649409967205261281401890735853276121631690185858738215512598285927770140770652726004189321192988297651029136275289559354122488806875222558472023100890229316418295373541906844815553076245874614964058356072565726045530686722357322776572822996091136662297708321603361399133865589896790333844012140659563699063336835912820322843227277864659433266761108630738213976221452198353059583755866171086545852279700200916301924408713665607951872924167660226384036429627728025143083405343194070785459295622451958985692853640317880161108531513247172562806889206041969474589634288890625387368888821317890387762851961933493354415796557521485297144803773933329715436185268782476787772402852033463335862578080098239529364661373501410496639193920969565114668314949545622530953803958627333191739555076880438172993540257927960746872410631908930984740027540229766187381586651015554074163096596327040649215198166070693864064006164566512770514983691621701872887961818778324304439525555896613154177762000188943687874060717437676261791768541889398864856208823225531841263344442099331485350888296527104596731377055556640965586664275553988178820454094644589164995420624554227874457262748117614467529517824268907569145213581758835405898733922820802708711875481670259686021441608747465925469098121264350095447684983141946547608918257926131668276707068600312448628310585725822234679175011263392194809268689411887858800688066030317769235813595268344261852518117812698069698813836532624542461071770561745969513461499962390273446283551876277565683499401120336529436577448083662348187572926775662155086458402147579802575186939630777169574690727152811974339770359620354017385084811438990625816488826803867060811543495707244402794886931031858021219276921775368252664925361831418632465576967218590129828171664202839168669615333517420039335854314317681657668233169689969391574981964505668161367665356424496110950975297697175444474616171194829676038289235451008692484607135837709719948260616486108717526335180652561452548509993453415492053374737172474211899094143134661816466540803565570944897082376820442140968473109511927309267605760994593182803524647818223628333329232810032548687755021318468978710696702727828965308233256089124012766828808761440036901960470196372587195418993791262775692634795845777649248539893201142147738744093503347915059839371945493986117683587635426517016888408953929463604201646334415166822151136525390584038408138432149305553001219643825213506525345891582366040369786710402733713944428342548045747791294014704478732778016188526026167476478961279385222305945127278080656910010998686205914817185767072108164133364487263812676936783977254819571008007632395289532068283022915806747886722000808895644972930268429553037199377698181026078290790549923443185920605936189844596798507222657656594686538957329440693622623070650057600303091907896119251609691979913053018231712849903864273131092590266676831161896520381348657833926913719420075768108403250487924209376364075161266749743042516524654088680914916674669279033093376977490810852636815896602318468545811129944145582876757655122811368537024072952360129613882062202946125150402813500747567538685399057220103964900621605830032521615555051494666199208016332700459373386821018474654558360417082857796374502579159720078538688317869431716658324424725816566443874394735816112708433340804800450889780410871681320454730331808453425395233245394022408548978575608032220305272477449649081445969049956909988462736031722014572897618116526154452602919594598944419590136562815207816093379332327257180741324444916748630031730660065399840122217480403604536228869128267649756473211622396011360363908055428457996298119991127286993641685548015923658814051113482379916277015474429716221707902630048834980129666050005067353953929023999409120848833905162910782097745321456144954203007994056402557863915679639048895580220917259263864993944500129062468148610593859852783643908009205724689116327290011372219137712949447988558629431256062112273772543572635961088439343271741590622695460163913321422975685913076315722756630804625217429605927357347000872710254954398740593368478351795168234018164520803249581408860873883058715937265545017689888764876063916976990819205302854361215885979307225463534774331862737480676061774206295950170674710025699758989346593477978124446023541777644923112436739001612348675554033565510593341896452897648966984109757246047457752682218525023527063014059924423306560898596965296581764733437206726388797026081401158996148775258388739441990491052188606978323418652904267143945883395882993673100038976236829822970434899534766594865914660547049003415158345613578404010372698841724314789952159881607342304480136027918361254826202033154833096220990278121276004981215344595994281988032132968106493431846587924319517589665526955456704379105839255257531923308727831428429377761325277379071444719898316810914496759702184380602715025812518045316876449728775011967014376267157194807003373881517115745623391240449974527590203272532563894940137722044376151719414644381502833368299246544138590636643242325837333568983962166808042618616427618990512549386471441515830611058548908047793397368639075506365271495046002626644673794854094575543562340733204709957721658082687840683555853069676615770681132991255046852752228787809979217884442624726279221573542730070858611028460411659996759207351419532390802132292755969324794396613655724013163703472251480997634039270310322428094219166225365892887261850742337961131700100382034946743142393417831096812144631392082506629572410548276151298461951198535761562590186771371975520327216481508730268173563067650024366952049700092394178750335863147705096513585135512614778223357959384777395096655197282403465860813025932107972340291436263109053393411123955637036949398172642347110753659863188746737177334468201923420379444403607093065043288934329402326498836822194252888086099937546161436605163182890238675773714475556633413472199225069716751673564500522430986142197985498580455988258811180661919493471099970925109786270751437324963036610656135569664668082585588741147595849747976498055636751478275062569836346323001528218687022931826281699130190687547406321590835292353326638398208745963703170413722102230476369039043780565532550537333299097612293024431893603871226964581222277823670046741079007473468447498373567574563573779135408371262239846989548530228943414105771178858964804222181950953129500224996334403195335648042509472180793534475439550759198657929967950363208099511832521764003837075022497322517369061206837113728467433098996481624352288590057297563308673792113623400977965794613957942299019621480117410912896119184397202351822227630759448442495240064914731694577729981691704106354431450697646848725243045698344744087009079615199773701508589397722908832025178653940389308710297450671829901431266507209527630553867608686809728207517547222455124045305220139510462689377870110847604991766972678024862552790584976501014050081438472972596575307823374860182318531148728772474860543976842473978869541736733800298553309437160529505655348328591969253037984611019997043024863030388755834106916525959077993216875904068018831767243924680461268978399322027474090800532880163286149790053303108799611335911350845738733322313504428854190776258276686707195414103454486398216775982335678315706939336101878821766151012394316742227560947563601397322991991976476347585995348013542588801665457470882933514829922254504555941806765321138366488320662829317341068751676059729802845377124619620479309987161556655712943969781529360871002090873498633749222742731919601440111730347353452316748522729593541453210456512052508203422114521887431257714683891667756527418437035509663770578610102924897546564793281311007035379267392975296410007478121040613684241150092389733782136608639789000547573305476298739505598046738913177206807837119171983186169587548992549738076747883894858611337424188295361406931440838874420767347193327475584490827144405595254009697194023725321774614596265402866924387262874175540240377522705176547981326009610745682556170512110352213159938287230100616693320014164896822138337516432368209560092890141322315168897226568518817601547575861239891038897726300593782862020100330184803967295161886600032221759604446822035633575379854887293513911320515485701485253872445846387104507336392564347259495324383754948283432322750680524756175530573645159178018889014576854429014146943991239184548575235809806933072503117878877563692355792547584453116424435523594173306548884341013225773536866876135395197617130059633199286788805732650663091302514593352431464634336387499367133676265280569807689882159469210106771245141940888427534540312037081385550260350171214460681867441949937707959858042101075260851223500323441280685132448793227524581852458708799100546048966461484430580728407809662308797067210950891379368590717023444416423786002484639473442175008921473836748466860414244777235060966443141613141870773081918502593612864779652936884264914293444824191223407840428229434794315557551133828138399939577152857833899134457879875126505936469798794770357901203765907032358736109753264018354257854492491972478697505297020601773308618523032915373064560266712895035319747290413242883190197603729730619997389241372103221019363414110367257783381474096483635997587458726694807453386172165022762722866106496974225197629345771870770233166485547868061438808706512543159427130171533411757743715564069503830439346543880998612064241803697147458283501989466307162493292429801004983607328050262500781746452045452972543614651044887628831351744753386610073069022848847143428766796454526587213809067167615514807850702604037761629158555550122479477728391506304327642900591462132657030018604245745333949954248791289614266050703068583348029886591937270549822950584022449776203584468775460329212638173245752325740872341746515213806399475498892639251673769980995952648950068488491451317096671655741460655819905815716739909313352546092616355446441011019676449074742973672201082754346023245726289549892645593271042489969308010240587335736755956206011012283779414297734076485383968086358078679341724402506297393444648394080358829074260381328877953225205987683417032977087916665579071937010149873982909727296397362415721940872386859729426601319076957872498372484701427981464292060794542013320166326624006002385304050026132351517716215628720682700360425936862253553803983990593556685347870764826374081610259062071587471924861892857602340487662469245103140330860315340604043008597080069532491111818911175615548502920254195455658193595184795366882309632609248372939585897574597589950568428298460840676710037183176900414525375451174522167300020562267246118106913177383836369511592024567353343378332918458059611023282451611385023608026668134706727183102524286927956369602716963781660197532564663282519991401251324070527287246774678560877744666331693615201193750106389785388365557731417494223310751942833355277805595907652836257685578024561959715123521148498177881500791761819250406885103370232663989377460642393117528626694361500714081744658362616968884043152068784269841198402418926196744188524533578348439804266734586424486516710385426445183019349383245972475007357309672418154028278454427995179029862930332036863179931993584220863970626230723919167792247538362972870671229338207975431880006049683940001982403101589970905706227860040647991018513322486807160680171674493246836796441863717996067640422541768499066244033719393977332545164839648681399569051647703159369390855210555248882000172473293004997368359770399666248464304932004110767463794627364179580008079070896188528413181934735030488597966040612066862744892588498850313920811348489833003872780163567368710910452365076637070722011363031372242980661867064015352826116379977603915643166128941101060018399372498467058102297302672704240076194269168792594119630360021042497149188929312667635748313340164495603147249199555170141278005864091329209315287837603049112773967248120982153145714235805088926190526779661464622801833999626135707431483161418579650829060867821022142856563520336371364700578019767558223266238028960188748342316686849995539593192130616134870455763955492014874102939257183753684049040571928929125613776693294488233010647037508974240857502503028741403411884701571547780917194421667078208606753306633166802611209386027878554270523399991951089886392702674744486402867474605141546016250650966780533159774879574040449900586605089537940080388161830248067797693387186026968426751113057443074794250628523849528363463016300020786326844380518890115203993591246717720625805866984175618981602118356720995560702301499785074152336821382905276519851175295511514530350889552202383755539063615922626071906082308712686076396238732114178397284846090038140471901852652024725017236436055886870514075975929048175108962103820617324459572677068527698775101836324865274054971148809041624063010637624272238709004270503495555701533863389707550074936909588514639098452805724304283010799271730722648792472729147377478801104912229386914679004831718360482622012412111197140676985247133137473822857312446977028041527604085952173204216923130565462963589438309131108242382026984907044874075593095641677840883927884892392856567803553109645232482752769412499457122549722336150557823630041922963440056544483783068311855750233390879507025207774680567400533393547299208027504751428084206329729054299501297537993314636231122760223992556682794593518774212577564590415985440407406130284280198182238153511547918248467348334603191289132919815782139190401456366893932064480280866756898478658718842160082495041165554906098068279949470304616823631769646814921632373584440379303323180182663987550913777628864550256969307571907997202481162480051685802242040494584209823025337110896536586521820461532498360710137559360986591916245525974388751325138343905704372833413375784691414600969637030914101743730879262542384753944795747612882067269823659776313627146710416249706990349009299273276954961079962454844842154639976955930342352579928402744116533130008121778685343601158812156125223909406769030998533101347833639794711825731211525679145101459204039266792325363149751271730474993190385100598172821857738675118335032966274580815892779968948991636405591385882813780950313708845018507426208990968597591928256724893683752654669519959159030632571525232497338911510538263595857010487295594490165165908985146242322095074787573787132206990696240817313013801887249412540656494531375244037196208511482467226044342264300008217702847476802730405628506633172186302504128752767782215784567155080150298202880602356677490572435613865741392669523322111331702866672714685644598819652297028608543416303574475898964170856282381317938964148120100338688414691558232362377868679758986332029485021036468693591716921677901408245469234040611802630512291721909139541588462466185846380539293710108784573034037687141858560357480041073769033704360733908788467564367541290896307394751283412403957853081177713677590584611825584039529262377463357433715091423638436528805793564534846510688200240587979181039876927814183497803443491487392316456781049682584170787196931587404699412100289938517159140937488429943197567762054528589953076336970739790134380634941761810047882831710611705646197459050173237315064098093981348889008713386455319399686013741378458769281224020961116383306554032586382515132094257714201980879132401063432999333808564524283711846703493317154525310990188746558752542590260717538386441229169528937006858437838945119527450260089407737119029150803013197829823234920305589619315415573705593323828190584189564988444396360874256545613085487941644556425506944826063125647548176814026225820928795461054929285400312866164915141314711360859043806086486907782097143737529751895963728188046054471370807051395237960407062260728053510182851091223795764279209943800469674857794737539898021470706673847804061203248893422082120616097511127193360975932917268668120064083044727612914419975872080890526552290318589044907213239926452600286367726889804509606601307511880292453002516480057811003589728735080032675888804169813185755338685712452063171087007118619436178267405698627711287789754138807523891697813769574820622985045305696893900721684607195461186906936754062584879978480083881832680249720388771274666395305542431776571406092272353147371500187340233817603161089615950826789541299128756430977374410540141131417338910786573152901246456231825194171386841469881492282522625533833585342309008361451289415486432563085265474833187842446354399732478310820705628798014559355774813561222637322559575816945722639431178229025979671943496259453302721012689634916134972353541227229859844744781168568573458031785166748446828549548329581495988425196644479768803254668135425812343760232215125640671329368075523798532807196074684769601855536925908475197870843770322198865569194610221414422821064039687486752737519801122252346913313385560451328164926919109488322577367338954328506595220745251641207388046456148031777134242030447244975436177629088737583243844891141879184719667344143171582093080469643004589423502225652957150699355879125874594721896883270726390359133742331904664512698143173255098184431978163570575071203111298938781570207366132355471199081222215573815436931605937431975532225206877717889152348790816123528410923732482950456707399937710652991623163050397945085099111016562835277440427662633473507976475650247030593996485692974747008600604612426246033924449617255970513921982291353609359256826666226355757710357284629213700884083563892246420761133958054280545259849178994104621439412222640712835162999782181096190687148282954037966961126005170122166354380512745369923033567250543793548776461095535529916950832840925889629147496331719458677771082945870934740869757513701320164581268214775692970353074276376879297901117048301862168077137069306090168098467249265657488816911400658689349919206333712518734557593212200500520960285057920569895813419803836418465936963535150477853829248702899612579198150138991642492212776162523594579720507730238413598389347116466241372907489291621252578316586573490608322568715779112875091836671697034082204644997315410318405435089276707093929013463280653912412784516812405477414090457322817706874822076511979984548125540271781050292793140843854521369045309147520458928189074427409753096284937388145693257887288972921905940089593532680817868705487222861820535616108206953086794014423983110743817727224838799780573253848814631886766975046002890378958183428856641545254647824166070663343614780394293622184254638511622057662108035220286697953479969551488075144548905738844311296492018597000801776675761944738165085147800310572914629808719293255329937195284950614489997114634912764131354177454737561215064478681650584949533864633026503396368326452084910654732019425773068360430939845462518110567154409332352268175556300829025884374893413551372086063425478419886440033066992655590520388105280694833677292555666889207054095402602327732655072768615920096236587523644526048325030183974910513308843004843156448759386272265571030935631980743749195741698018201245613748483924675030648206211546907023370784639364479095325388313718611883385346261145928067732770538739112330078211421038978998036698410754589313197562209181508748688364501209847609296886488226943309329497480569022772510443347532145879146341179443645779277945227508611415439952061523181678687515447274251661460511142139454179736555153953499871729238957139098949178336656401452898743236218455372816891062463754318283240125147537698093088413575239474806189437172985386833481208678453916985058792055900398807616741359050119095252243903808123520691765546416599238506672919800736403065860417256785397779381119176418078476176679833203481063299519042781201765259168176102149287554469105019222449133421390905830664329607672303430484125790912456371829675833639591325282915650554358193136881116202645487109552248423732781178790076559061317937786025033110535964261857396936962701920133202161730971162191298807191472718421053714377499035946066669884368489768767097549886878474352355665121041691218876584845896151901213575474941672037222695120881507934494526072944380734881594201167891982700240212591835865286261371984660970913837488063062987843650947060754228357373755501180506921829625995337511650736628369894970164700376363946354802837554915272365150393421738572053844902018610833479954671982365458793303437340154435249567876026862748284523194729016334515141470291776781872066799656903903973085328688839845619647311720728625533762228413005824343935634926672424941901302022023554261018770972156530384093854774975035319257947596029150955720885158599395668896641755176578110521798251641066121721827290423402574909584282464429116653155821639826847344312429073997958843646841812176001889618536626925939817335938153697541952890888385694313584844308845297029633749076708505556418752778756828568742053498407440508863344440783451134269460712305212477953618391926688480816740834620732524841985406068196162364925007861583945633132997976881420513728991806916992858122837527360783434264101744289743194758745747994644279484717220776778009736880332855242331589372306196622758159491059371407116031981033012859615083485177945773113402827171732561075456631809335715214464263872264958501863449450258399882657459255898005621974871951128433652492150920777125836539812345261015142166352493403069917891829270824459484148808107509514478660107405901178231757945120164261959381124281283173731832861250960138717006076424072347482541580384749054057573532836670913435496033181710675172975345094706150685980931635188685957137971273612172553382179442481428256040326572830342648873665117860612736683232825426882137853198533366210430778067065442448899481369940042434219774078942241148075607668738262091105389275906587250087939305314624371565308808310240235217617150826664815214825616667568184932424041035153701551629682749154679129351043818189316550668502031370978891871969124428025104810265831900121705134316342427034474164684438314820351810723729181642355684544662843331725002774043430138381046071271164773145419898457715104799831556577589411536209222123623253053121524639880851447093220817431426470031774090542612258302698594529891088021442515711239434458909375985623435553792407450681054755770172066796457588376807826096099786551163943926070261227473916662260142683134261359580910981228986005281985168965820094925573826789695953500798464973843680174761887413775814009333853474720112914696509278000643082341811716780941886971992510526633412880287325142144439027068119101409876593527888051295846426766405194397804416334824282752947955178668588576335362149656421984614169363877315290592151697576213310021393884410640581958929016165513264157002130499406969099931946788697077974823702725797411828504592847333894550243590332688026819691060563081413832100300862866947548157610408019907522204895755590910403593962463071766144599711725988161070028163216341512679807885043804901256540827360341973704693523040003789381858851537283461833162578501600223269790356240155447486889707449693767981002924737844013502098049547907274028655777665634275307538334852621500530305307183531200675419380318780218456652545920207722205202480879294944867441609103059726913608450089402858324936453281621040102969500242661683499959804598862194570378509943408626923555151259392453875316078293075942700558207454888657455745158588383404597558159878524501927875497183905783163206503223595051097675466467883859872049385613276647822486476437514666776397825069449699124500055733820738616065451390298832028820173920511132047584976782877055609991205413746165200803028104765407204968298039599008359979170940561794470640237973949395437183095958647733843651288015829266605743129496218063248382536361877015858815963184944539580787736289505986439644021006250846314915294260725200546327050643901178485853006412116214379673847139214956348801661356136287130972001322621847343472866878671938738381822884967572494644304363381812951586667008941990705378703097709092803124264561017801420243522153842358771971102289490130517950552316291291578897444466221750629852273366045612395499437341118906200367351286642394503337580049546369516483758929854738129586931572854540834773041040405656276834202566739103415753476205573730300501547755661359846310738381612137645083331909832790278292743324067198874446654993092275511387196410816769046204394666924783743275042651469018668835365333984348986897254206996321359490578502729590142817987410137367673213929235116004953314650531790131735555510409714779360445408837584188925456235678469032430950056180593237564118521914283895323849473452530579704552227026241156995546482031403752703853965302608047438667460802538723258555189955528582957769024122712085815725103649378227025315470335924428770476175866309386454902871674176307814711928155585256653280736926255021364563099445849144155863276344487432668639567308607971440757347554389033241797419250488750410880087540780931802578017090592476365314392884000567396257724180545973177090426870299509238096058943994904986144442394356639854909337650051927596342447144805153106148558329384148096618405967581940065632350410477734302469279095095306067949750071769911452248502817099523003282904072221698882823130609077889594165466656904266759321228578575607894922664102952409271397731150973189785890749239160167707759578949745916990434942212117700251765333280034288854539529324635663119934241744320895023156050429343549833968466291131059498869446844501716340789138107669796512501777953686290215351376146023255388812387788087708544189977069700563151282981758485450454144897618214855099637612975020400520207238028852116912127706573197809920258126814210719425546112459090441140267751229780074755945884841633144486663059101732390885077556371178501235079832760035576920705972465393825547689153144908505203103242206514706076544391382925888602159729462663889296455363165676681614900834263430331938321053860976858864744466882990388041686747208481577695683977849243577160244948448246525829300106882702114520010314023257567929437416721234899901699243107102717110842034146444742771958733787261027540065638418026021955031228825958038008969352852733895673545793258295815246962713917294135653955459673844261238737735349242998489652922024990510208216764186647946432075485008923786968043053439925166710137416083385166650675870929527690771301845155635319302499453770051742264639292338521973410162310266940499799562482710315317987611541297617965252308668937151516408559501995970205312085095410407199103264606686309741709742063844771225307013516482881668433150055220121101857654510078542989858601988405875635904470879535380028427036569404301530975338207672644777096188157255154805395258694692042321956593988542591624050350228628041099441766904523866400193939774352263753874135751215687150840585032621356445011765458349569973054149645599333764733952489019110619164138568149694903593882194771603732056066014013555886705335410460274283227963332492921529223106901358480343732267867410756111686054211256553087911823001471516747197761793303598975797552254550212971278470251928362083289320672939810145443860343471841425416005212747086249220059992429682855016225257654619687040998998007632108145684955334955880179579671789183774043172110486933096963891859164552392715086121067358346792280223643762313460838273889572361314746510419817300130175788363721220323396959891701746838069439063805120198220202813872270379735845672810114143393599525343189943482715087514627080317240397358651930403565310239262007335059125184851144940123715544011814690895191467865696035776442883890445209508723673055913440084693950718179144364418885667337194959690834206246870183731636168681921213248882023314395052091895936667165639356103823805311550586698312744405048800753265649483283552745164001994998458503507885503426698555051728983836552196973508225772654999116707153810604112881336985568383958386630192955820153710744217248775494209509645434278823518104943111457409365229025847887539707620279930765272746279657573878426778588771411522809251164366564308812015195078626784202900266669819849378021975378137461719601999982973374146070005236608181184843998718186986670852219417009421789980164048107467002379067038277148991200292656599544950382186429685540118712286431575929343688013841676438207391094994583181246376296820908832152476122587509187928513079219274570881214970484290944875399044365076782578877672272659847426827895956074070675840750134268465832471888166910812559367934531115344224533551360873338785723255939270349052434143419526887756559656374450522139825199622184528601225320102702658841917220660181048265603545557922726226825477352467168087207691735350385854608223841209676598873411431735338852014379857467176251695846273007126640031701379942387600756994075156221877279367028361339241099535950368805107215277393163454516978930125932264063725395171046246676363283316482188129781149636084044770911689126111642152761751779950881678826016805038280045773717268298861908281435750182107029324469665556087366206250221227733253723209398691756813532177904176546164543245467353424446600343856027292692410733589026109497364616481562272068595043704162175466220793450218988117821134945161946730713526002660100607266833551308991704737801116986178536189572581190466572412888455552100136118599496343911676768140248689319994298956078372317217370084082835245837424555623233022806415418907194321816013669390091946208477425710548984177208681104494704078306052000780970100958683550781114270907105544827904074725988105497122078043683852542443521879667486162522913935330294406590631875015830114530790252233349229556213660164667554425233028189993369612022383281970496365841936267842642033681451409833826956698281757693048806966470167626754998323896735722205714028231430834749322768319900677535121141415374162898888376069285486909388068367062089924130584521242841359942889649160019601845102577919464174519019982922188412953405423119095819748177129003755614147208247268946810413639583324858613472387646744607870595192164558219400047862966090229383257821252702360351133654509894498289891385949112346311848506100051750173391777113722960873358831194148416585248208395891225979349370217726373380932500567180214211218390314040261810106180669119552291221846448183555646997792618733677821794838749776530561997199061309209502496251911129602314346670516248336912476700915300971540974016984353838731316255267613692969673092276882923926143599292935310708099559922190116139613930760172071174813469519437207601859290391513814460748134566320509251765608801362418938877758686475381865356825188147550475477976367060549069805218421862456677383261329876429844401430737065978357779348529909227149390501041779103367975084718454546960649811066867768365547363004694284363885598333083950648198131952335950839798003839117559340710607873536297805183307595425739795340601999223266081876820301374420102576347952682779997271793074510478136981371749094844770706982439665770458341141819330776132217759448356656758286754314761079675511776017153382575558610039780710421937198589720828518497503362313769113529354380904840014635455844657209348943287150376022350687922672655849926270226137177884893198801159616475847472546681745162200615671242996190791304597005786090450848510970771014574617001421044115165940692179475163867763622764847746372906347826550702545136677824258894521772879020399708320312171938591865678445043120049758415699108676101411253382572764856484810398303714952031082016409685299192117027812089592262638852197017332842458345723926035287296798355022404260086080473503631195342356735111309436757658528296013552098016439950828454973571044126392046465116564320712889607480887464412651983155233777013906161155543416088623217629639480664747395523682787486023751383374672065321028903841983048583907110005756904402573820932142371129546817144865136587135828826138492756510989403570002923697457776773413279024098384110564089102613473260646350288286743237042021441018401744897444256608518977569403950139759060962958855583055234812898293704896441577824094510088020046126741144906983343064097119422685078571297893180298054950705279552834042377989423776734150378681631414214786450268820018241479331565235854540533967531666304413785084256859631979095801354790625727811170116101946904729379341542833195079973849776051702573854444481427654811122862593872382678375707525717907930477051109457855368277439040738917402340455518302247171371028891855175421112645950619740066998888707598721641782110259288993123459154693028088265462899967871072516134467750079308110402326406128838717797380066325741462374552245769701103412348347708120454063160980954529278167500587856267037974235001149226409839981022543921834290599700481502511593772143962515239107923436278762584972337168232460674007967843001760198828597214865031689365022753262728416717314742736737605172479381684371107698394993918350920239584859496353310335892797180630879297187755043973841490475230383452109358970422244664221457420492422240447900439602918817691817681258764974284701465928830165741282748336877938289172110419020111171874927590989168996641911152513006353968229971712537670393210250134651930769805770202538867955904172928006607124308694591814610126825653726842645504125785038134369410664960700046578404836156053800535732499103452788267521799660018364839664222986524223654882803006016653478590455749337448697592461072473917573583380694014881979567122402994209856005930017700864428599299689946927475118946313490689348321871249843594929139872074870931429225324343304722874318171253107833764625724050836449161430198501624578019435034472803193705821796191086430347091020028199115806343864398703164292161728932959437169878168334757870312348634835319140733166893289181771652838496305131349505324796224064808858663783284794642138565198642673393443403112289334909945426549521151855069534262985876527210791329565908861411886048885228138726849896228817314540824065261569351567385996847114192317169061662214345257084807959673299693969189361756445056367865731508640123426958737121069525786090002792591646298528816447407515170051670477228066830225546049044050334998102094604502507228600827113372439342615619725423556429196676590047318720702081363576807120988681503870960812908170233182250799361910738759833702066188305252312899487144682265010988063004848858448224801039986607076651390422153055929310874272472726786898017839531352387284177386658386663413434684681598662229106886233499772808621798643175105522679982314786517201193096274573518063075522795278797139150520301867057277538538833569995053204083136346655700703529540945310254253306153596821450481566721197554934185295954876260859566095627329073847608617055523029826723714732075963090182492059784167334474326441285532010418556538127648217212526030494996673426627859537451960714911257776120915392608432252343564380881455942808502462450974467937209672885934452431674735868910102872071030100134217490107630203703453069835355773820257733091452858851365489160892893399463089111351962373414304427514296366556898116019277565527788630219723701135406967952170305826851531350236857784091099218456485075588850930646311829703547904394831912243086765989255354544712380457966373648998815660911334036494975664124923103331664754518895209450589677346659182722032281506829561233115160925958613389591744675707401296893811639577688161629279411088737432930573530180339830735855971751138701976780172454783696792211416839660007884869936156311047544914520691476757684153834288085417276446530738364645647760802252190197334382447933848242667013719428010973150062591713585472143361366222185938852868066881433819567315909802940908643530257242736599791838224677785896764409183587802114399733899983694813793334872248967257583295824480624207340837683504955750246656083702902969851606129075334615151580481177865243874875942033129636623979788929719244389563651509178996167965541950768141589534867821891883270221006282904638385412825672009645874216249962709159209773868333480390725798301527471985280788067961591586522732036593185595002414609539567233709671285283827167365910871009208490658875291755624008106623358051935214658788400618102085461020047683993095222705674168453212251055182378562944480329628820682715149167499388781653127878716981976008887762743466780433741020606246842571651258349998392672617012638054896087674870555496195387755977419995900503814928397490097681105700965541828986982093011788640267736775972402293114146189763025461668438853712632088221041847065786279789726624090066166544427013126276425838476885040576727718911944209317615128409776793731427713621557822161702547482956106395171719009683649745933085237722704301960856786442088979130624504958780173629407956955272017534331175359874780388571607883122019975361954536224560758098340711572883377460042020925746860453024073836900660581691858317730903112803378805474728248488403147623774739741692076685817109645550155044067430666394222630745209282249127654211407813186047189393049583004126368040398392529334897148396922365078518262130941596357130556468908095611141265252573812641445157001855662964174095809429467991731088414782527264669411433434182756820100105501979074777021801529419333722849656462575996205927752808193249845406380885123123198955539094193346096671256423318167191526252575109407811765334229862783997206405807714619149904009338147764699224134344397921864961581018960947655571051606053557250314198288173236340767817279233210447676622705206220001998100130532983904511456117592353914761540981567017149650196855395399707902586128557296840175746918490767596255355520989542377881684280856138339090527447836368328828177237218719493425840536854740011550653880228824785414418796580297127680885349969388338246632497873093250850344867184149360119123292514299873519939003135020160046277040525785215125910660083741574849391800291002148146728927181721281302474629477227421875659389096340874582065743614003809842544881313966270698131817062871083142307343199405854643241270207192663442497976558887773495631050868426095143183954999241629329593454840103276332736558753420395122462431862315607641203306840452672478311931434793260704175684714703374237507648280367733508581419201452313037200668558080262257290160065755045811537704188669569727276794774475844997374565711807266766825834587282113890260819347984221517976864690462114308589764015433742239130853048956216492374155796609727976687297041615022027821936170757930731680068503288692169047194469824910885896443457584950872622418716573215756887282742871192541662080799690225305744248271660769888203013702831547811339385261411898710985944762711719066840712526747233682787832219785608855442450882041249019157034503825687800149329918317979483670908986535875558565716596478040133734067056773806371286210086832431639575289284126095809533025841181082792502188159184183880047705970540881960622691141796735624271385536390055676396228956795440804547784328291584167881341852442506282277965143995637398696774293307307973783704480751891255370441608441456535043162427454715958212696183618640451412397970881953074121002501777685471347932962946878260957040208143334951950919280601262168232359928203481321153091929388195582670259053073687096988121811172237454529361848156269803143262249772138246797957886664875494150031367682583631863800889130263165944666762876446873050631090400724897158998332436123752521246222613335724725704787120128853130097575091395311120200552577721930549300645182168048449358942326044204466489082856315517844418064355462670089917821524772232909286787131951201934486535171265836980386063818575157108021408125887545322753253757718089050451579977710253981316747160440081657082872569728183850055963399074908136365069356978389475703313182821958939696762457271662786770647240130068507968834974147394907324754467673597852007046561009297334797769201286894784216045460965981784014366196433473971098060369116317288895529498488384074957911005386107236202046284705335889045894451828587897253993314024444680979497758354639370915945734222819980508466827494083330457847885310230909840523077772253431748569651509097318768376614212153959235632542914256932163164772859396627674993874227904388114663559178831873266106434609206640050366872558189844477855411772089120525840671828532667322201590381906715577618596606185209169438653107124913422462216395078780118745542822536093016695438834087413383329639150146689682055242220992890804145205028501256216292303437962583618589349122854500685880007015076604827356689972287609554853207274153753742482736109045045993624635958434062004333879185909681413344202071019137381282969208634175155882482664871562115847914271963760223091459310983138314453913065082012109666839715691052351823654519896241612595785275479448140082446444065137690970981589405370125971502795260764346009238598991857383020226402210845259358488358251700793398102063472456957288521495033806005811732504977860138196290195683841670564635382651832638922921293251354364622353810190166993089875158569291205549921559704522478522589060229922478901909162763053723755740844204245743090659854477240376309438303956291738023978112427424349335524735287225256801132669617554829941929657930046149036060082862167957867736339101557380089129173065372830650667366742059429097992689292224117441128183480003104121082192270578392400990564699908712774057025277839422100844917011546657716508849419078507490900653441593364904557538638974412266588284992091762901908809065772380153852274279071936421847776224554647216583039257560876320449634445297707592163163073564610597370284342915893749442740669307872654588979114440476890221303199035665286147035415353282281324901629335809926272299705088295844256539063765135804301177032749317158214944211807222751545878761354953821151558702193778016090044015255138680877287150204257334068507463514550383390057807113482391369735812939907097940712303027598893817214199221845113152179074290132579141504134003096839198938814795690732851935146136574263739991709236492733563150504886322876861586842468115302731070509134802220841166825876214385389422813918016975549104523634961427904442456772654297345697833078853812154776004309484530314118604067183833770091130086568569448112623497370279956384363302832851050950968617069443134018593761989471490456555564948326247021353591675844304515164605096091786179198642153596804451969964669642541737874759204681627790362806908588745199432583088691633709506039103998017776993997476937012470603297458106219363781394834942671930442600855491744522147910850966370807191422521966578898674082767580606062984728764706375533417375584131351005100529458927737791631917868028990494398533348475673861887017539218175340839781748823906167783196598419127215228165355215610092403097657549404970438749670495951250138497752066519968019409812028263860194393956630643874461702977841752303608414810635710262217415538500812521179313353855200454739423074279089252403170520358341779938689195780637354783809449324163976658733827059781915739556616829625035058267847692931713857390222619423253765852928152066510919808624059975037175338171518376014294756990940972480113432805379345701225245786367665288541252417556138922503207982590578613248981477464522837620363516569076887587023371840668350869569843755797580411972591520575599524357521518045139086768654617059424289584893715173526480653567962514834075630886436753697590212699678940184928129964616474808196350880042656455346824285016496410099673611485568979172739576149016743149234311045616424092626565302954049789253413441237563653147339351411396746387468054925949427224953103042332540607841605970338865692087906078493427339872274924305642050280547036621861439656574319551871359499244294516406759366003337253890735365690317110066097979737471492354404562624353516541445863515512711916405395590649984608609698719332663948109584421716638433683251334937422104110971014442270339542450122805426714027628485925032865957268180371839686916526152244886926981737468121698062023073580102209005138579167170776670385948811804855248361517142363016571814528039076708134196975640002821010720920321865657801559061086770567601695743726501012163828248623279534069069834706678242517590944650354793110536087875978681381236689518841288779359863854075561758518766570542885008187401353918640036020585073758976140040268143701624441890367475090615664201482154356958975769576972206132328225933781069341482124680591239357133889971235067615811744623968123441753087078020295522550658405711435059942011792564072008817848720377675191531695574205077522411801136680378180698096503353597005026724945649880238121420261783029473679921672251234845706887386245785616154501298669167046680076773122087814677618654555933780274172444797012430160741637171723698094020770888388688094750542137249736514127963383155580202031993712278624934512132008228888132849617315583524525198284192009923650466171742048131843834612956582178105514668728306012315311102724262086040031820624363899168741187177775307649965591029898465607998025584478317145419668929252408517446037649077704173112960167675192648555234200439191990812017769422872529224024769420996092858496521525177090812563637646124439562699062898039593589188995884745731877659086462181747372620238082171825640469030271637724057016220496110209769097999479295843181784031877991624944064004460131005993631398180884263354466917344015809927351494159044558384044051192184922865984147470412238019032377563236029881742360388997512205829579618639914115620676493685957838200981014146133319508242852235209372316525422744303963147185399199286743265617244240809810659785149893148973095825274740502660457050443682678751029384476049133405267541584649246432270713519998086409618756755738293767837125671217956049782472441479075550022753200023343497354945539867194891171026464999695393064734828454421632905094061101787216292318962616085519993868993182796962648328658776265508036518809491512762485581642678557153680255320908842745576924793701616588300014771036684308215035682736481826137182112129693765993518711018068533311076550890235038701806145735676802355280229994833761068272867755485978732651340204699824272439421444093271198281565499862185376172463078958431685664936387809330491724145352381693996258739617182286365239997064488503940490664962778931375844536339906166926597968608485833282830336329634702762725017388277019396747384094345606436736114695402877116506845286869359815597325112622016458371044583774308111225903274857995387054052107288971368767458157766343953994386686968524388790116273800844189888281442944064359156204348298355165873379557024118465969859102979977084790681749110216601966534694527140193524852778848015375718207682073223805223445158285295668592195490451209589756432143229628582835402620015097204188937558898708801312376923171577393630355194512045309902556005415597878059936846593524190175207450889363562766948109048443191780630302167174346829850530511432700828021142572220868814167627958973161995240135032582937256852559789137683151790830732083522937932662453687404792048848644523779519820450643315983243557669989820644321112386678647673874196726919774974282397970239815579639409801374537214926673887465564650555683818784929710395915624933901137545529733976217742082740057542319887112756860672010854233906293582628508205542370092566757503987393137524519657242750075889518077529438244116205560880898075644542954052307709016660705427474876971261369392484315830876875025631297107994631234441789891003124906678604366692481737623796474226894499400940694109087861058844455112515680618154622214616899814863252706382167332929943829436693656152670480828657091433280998320134251322608495031375201442866453203245076909668477066870618017911258167487907419829129466808062717043421023790596752517228297176360603663331888305872638699911482549654178767707215131223943642905674187987255131918394456394881505727980566664952020398301526861031728181406087819450633459842684269814578021173424177517034731393397117882550260537144759843751287533126542919358618903307463334804914452164068368374155576292044917593740838264638342478065321764538446950312554068787268577666304472224281103324308540967645309274474663136079310623354828744412573378657945595563327991043669378138244126223039548352044150341809162743870287862746632848014315571659769183920651341824018081346648852476052288012398736813340246192077067005200123404360784909306621833689497250564704221362681728530310223724264538379423588472341734773484202794030446955803659275451726187207269177404740085698329892984120765059601016742324404769864497093922958052744371176006076583672674626470710468145160089498652200586899538989529270803993120488178483093042722442829299990892814316147367977160446064084561504744689603910505516894416081838863946278273410673573963973962905095284490011663952312651684731692863318810393196392554927975024506954311027284048176585272898763240412331369249461262677139968826384795347893000627872603316753119643975499537017891487262093453388890726046033023927818699716415387500165396448409508917819424809011786027795972117940312438593694711557608407928214052363208584781935961799225325591282094108024922552625244310104185278173582679413653305421637886432359872581410855304070132628813142803043020801740441125612954115193119342604908096377365824371182732578714197177339201805208645107525759349001354547171397632478507916070758018203312543989661412776120574856514265272020693246696526814474197777343380743295266322762725629488949063679131933566440614753140635964608187792990040008182193256970010491880267419419788698667197571436535886022379282202184836609809944705251334414284615498393165004635850081025963234663982552563303415337592307664741284058403657865192779174187873564276064431537692088736913760086063372625741528262570016080867526290646109703222560559881592370323299623161641758236711298679097629857180915973481184484780975016735892783784445521676229100129367154665338436777299662367482402861898996656935447177464439962049455351723288740082211807872462734621844940438319908084136977469940314716945568545018952571999092550560468728381785578096481369375534515542460486130716157789658088743968384126039943156528291345646403369969685857345925959058768869774555844280497840585209607708646412695372737294546779705290324508357468678845421710368588033589234984596382864661293161757586640457077002687326192265469776833318236418757591284923228419417433715031842299180607047548735441174013951867471755138281558227461160941120050226301920109153416925132789350658753219195652126451187299093777294345077401832943151209173867412137186476971157850125561675324056957575415686424590974043669138966161482384726265282156908252277303898258011956633331202805429344207275332859895572159518549673661376381810673088831399910014569764308931420414579991610673883119685720409325506104398758744185513043397268769354977607101517726344106247328370703054940880458131225374959021767764400894193418407686460947599816278313372139520730493039786394577939229217710048291198567695741815592129018357489847288497015586976246595278171175729489745058327237155903396182796013100001167802527937386383457249414784851651467037007773483401097908154845169166705504688206510478930267908530095328351627178962121641018354021990312000657837094653567231929514828781092518085274779905341942625885140471808193351741377790230229763399393762479665542358127955413022742573572675035869704367565533784943844548880024644843476258943369337960831028752837441449457587110141285931020386233429372969757438839784892730358595386721148291962506219245981421535130574363550873702114108545544361318645112467754744190367491892093037337230241506095783946692989348413674015161003524604510952679790551271771368702107993462828331674718138483824533549126785277823467503411755724734413358862341886781281363792304450871123629074934251031942499039449936321984743092894591809006718912327331579279083542151425798673222876504931345649806672256601701971011097263022775063875991703055341102144419194736065051333651362388939037723805153735882562345769406345778900246096423056267406493971545169025861987559288179842986024453647880671215566261979625191992957792746375244401776650726118804340485571247625582161896409056756531397008956109563020367972844720731515787083194144173364479028125359583295120223689534740423238285613238165584420460000181515091726054873808944788007056328380969394359468405207835853751421021420836144718320289528516108074738417653421938100571540990845239264050779836232398255374668140423333978901925909188628123330051969829700374920606670680659087441639970552911129040309816931125398388789264120827430135509942090138572264951546473900537452930224022613926944963472368013508177173454396568709802473615330644501456035071357921007774212751884317811055536072235895976260413365710116135789265806876288184167196116956079206458608857727856669592041047703645010173752678126743644820992499682542039022486214706706799932593552750442725242617279504810976705462733709711249388371842726814517102809818568307075432845247440849587222782476468017060407329754227188644792550281901721208738795132289631657125838615067209113601467535761590410786861103982435265842820711313771217174235546980422740120211441966789636237766954817679664620181899871176525421834527661268360995854578798425583328685813083956002397388444305452150365237461529926417729751820712441295837878412016455470033361929282608242804110462216445516096420280931452117642835078367977249981678832891659500562048746305621803468252083528169875864877042062745203607110415698565971340059210950392369796749643147831562002481944535055480123669803519373790438947045566995242905654727313488069290548782358035046373664074977006944159278899983289305679740593549206783425018234628078873580586516195079285410459067075043364190771058972768923326404315034484546984344132735678732898910831343471344885516115401571812778973920217875321135406826100286298477821799878812418385102021349147956869911971390866771333721122967923266234606231573172090819846590821514945540840295756275839515753058905393960283424414171290723368914830649967659739921705648218294119872971006638557091022482969485413794877830558416034085476004014541657873972720470601002679030186941878800851725292415903440200952073664833465626981702306121272192978287092713846956816199056834404408515768937116778896126397300340641382455320398823872622361520970897354216733460394933343376726854742712790388414136789563224579862943851124042006200635711973020107533160199384914455207429150807699654984107165834661160947738079147702909629049769850808530655755801043683529288474064702455296346400406687607190526164352148469470807580871096254132679489310745819401700537197299901054986805959436183241198337930881652829137056631321973365208488767735651897303156256389481366471341955996837889402604334383541435684707299995312269955800238178307512131921659728300097657529933250781220619866658787095890872196839557770112534330748840652690965835295675369366647506368990472521694700109820602754638564608179745837655118486651479136617669718807378367862465445315618096458836241608751584654989692706253089761406053855823151836556102048004599073536761167270986061997420733968992115040628352256734701768040761886832905162866618999848418591948960359386072989709198494815088658794355083659316543868285995034586281678031199063205959270715929788812167988688376477172684291142635671849243181450203196292980693359670237365088670413868688101054050086500025768624835711609987655151957271382747599626022821109148125200171488905928947366626269101178112997243801865757161881043987039377162759894760494279532530685744727586242337595187316688622007906571477955554452888605425189441924898786231784745398845470802091503787574700297198221762459967246960153382116681036511229363970719338513513742205030127625610956410209345756285486392320765645183863041846283502947627679990541987451632112394472754685962091381226434403166267226047544433476003629675780220236104012762754532110557824091141192637287247063015896815812910284351017815476673612002768394487474884109235026665939231005071123775860125340501824824568620584560897918174382303460665906184141987824260078035256023446541404781243598004735256786030834489044907292329851228611115246831292458818613551734831017968085048520561757242444913361216884681323900714016565011992926565028487286731769237101710999853669150235121137233530772098278006226970106212344707085321151950518175594642020930633361727239235510787031418540564112299518660814857208773958643675840407773088065585263464648703961896404623018065140731396584049210270625783722390609469022939698088272845453432395418946334352051383603159948651149464338784620502420242714180245792962961957455745758542214401642686534112916097597060806077259192830765849435595471619179933925682285346518520362179221600591951906682689654192972348556839971422292272389885531667411983400308632653723694418690364082574765186393969233803894488143815224732607445805415233424030478790127419547107759111994939101754575591332832735447175477238539382608834435832451597288037500591357422583416561176474953385426366674308570393302288271478795005375469879296665422358819981679618374304955612695915422851935839646178537109667000135234825712592118547479012673596638239409266892883583007634423440107768809008545246020910709768696550667765725937840110733924713199845122280582654172106426810879564424087931576753702356773903946706874261025102081062917034378918680955377403452488735048179477099235875354303706877380049074253882493550796903377959752380301425541742984447070390411068360156315144754529657035611107488288183542978014231449422404395175970718294674937118750289220406391816443639262123138115348042768499190720963914918944484424480101635376143499399858545769629865360947286730395578520873540261748357607054229697923366085689419228230716548390869781811901482913447499467543414335993493762550125689430894975866579205964525074966428673306007771959889697224178165953934998385972642556578648094698596271580064478737958423307233195680391286170563107716480599815320146916283768831046451814861995575290237471504842226743912150141424695389597317368105706922230024205433857666802830227608429432542499076693918696452203900316147796299046583790816326141933916194059027005683100348856357036246369827288538331767287271369313616886715262177381748074521242407681221462492958652218962996168196186067929283343920441905942021811421107020974837883964487278814695784256357134227671667813786295115780198556738506120702633000666357368065678836273533853726057071652017763864529555338410636133289245329371841993614369746307481186006762441587036897059604943197441338441040931363202765031181653855127190508702417734366986305720917298060146304441834322392668987387532064495134203648296667181219962637490651801885787525479547533121854218372738435975594161521941122658196963042840648505056248749448595096022713967407573290611856223195205639983673916542189007393053330370018223004576480750364904638575624943066759389490173926285282325963429015344654734447575881546634517642481333759982626020725181329780042071596333228077977972689239545630688942189358800240826886008450795808028425661890622153765098747698711137446822655121172527666904782206300071154801656581235177862219348094424807389908161651646912860153964447157745088562732886652262894129613873905560930890126236474084461081705185467151024040026766600502353117849765208058101641185719198528083410714856797934787862197083724302038064910105190124724763612374600059906882096987294430784820851529001400786348385373923401008468767187068654580768311149514097286600945440290179155701587120159984083675073278300440681104809639483067827192503747898226192625305745960667632588715356874600984173200313580515190076855426889516536262419303365511134744525802740916451478007166621904503270829295100141224137727432432023144049512957736778137611995516361390048299887874806556207852987965363395120333179909104383196526667698288906295540689950691658858020840172796476705647274591541642373201079671430471558204559076665969787825670612408897753541695437802019541320109048563840791948161357605329767022938731194870108770765902438873002525244529987550715160969487598528349324018979773686888169717017240884576510192452922778455277083455463203346905261030762094707078156717162626495263362542730119343048157773069314478060160784960828082135564949427898668784113852798502928609504533503826876140308372326354391294608780168183514751298023052320101056062579991205101675926128711740533078660813957763485671203160912918284276014230297000990688450632777623778725443571953958909636847995771303897992094771817531795411424622155350773189358358975450560992307365280594467784822097533951866493241665538654540159528623362586257153128414010575848332325549538508892859979236279109522649139259085459861289232681543386609015220877912555713354985013534166807624499720642980195243526567392974299164002821141438510928316323754415880436196531031355654376205104105712689448694801556904904757126498439987910106911587273775135732671789548447042577820793457984205431958009909873398059516317436694770631162037988616838520146124829110184951315304877674550798693203798941780079041125697520547496037775086337425142462079546449096387737635094401561628798008904303342542927145329773032382458805375226260288655661569848220514375827233522333952033349966956451325871197508377132157318892550527963940722830076557041438220645715641254382322721557266871739536381101143677826830527602704287509737477192637877180940960330644188861347373878387529425561521964973686901968263326222586867650885787933510439435200790059631839453603341165902413840944374487969142318886357354491013397019595549886835884993376779033748748093043178833528379230225819263232285132978777232506770764301507921961772714174758833980841008771136038758744954621434845367318106050142721950099374436385085397725797058836037819817670687550077888209799532327285838680722406833056435373087862266393377548025510532645343935995935637702069451884826664651269299966568984810055954376696555288530413372597869038847556126869714827777280587866870292938406841202814383534633889596446705077439827218019067942965049125978331379290851439095425431729533521686919567227487745452542394307044103125767852425131810573997277007579743132148975615267935180646335232314957384589357681687578456922507420820885646557702705805473235609613817634266098506694230233380146172533539747680349440042056369721725386912530067862853632388162978504122334659806833806116487155850487508435509661729146860449899121598127912095739202858092803485262037901039023415515055166572930503712390351935703952835057376911034525101383457031378906179480527735112946417301094063045738726595834497273820554880554628502344010787164796961668175892449637132361758849398761925356631255695211094449879338894708517363666995638442171228010296892968109308151059052557327952471141659727543959602764480457188642700734916440260187952324083222333494787389606681102263495695754261521287917745187219181244342696941626705122931377147485892348776825546730295197613625873490652396615008449387304330745984713949132911840747846910364729238315205454208891252065306693654663861504442228576299189622117177804810647803400700728771834963572549261611617824991748865596326883151647550284844344559449556566758325750652637570671380014012331665951482617294867690205750893904470675133744833723757694345442167482452551785129384856350948879236272818125163943874387376268853629636018110865267830294237498294167314467609243344224522823676495734743229116251513917678457085953847233902735683020189547520217809456887806394544408999860689610918024419749610603577403702144665795043112730827722608614147835628560349967050679267840621315677225100128693833558919451357888730154571159314821137744151282163811113461395355566894760158910287643792086269619266463831050248685396593612522787106042904007288715407666959549996674204964784283800083981218489342254547033234556031602108723892985808199703430416269983199697650226334341696539761548696709331742423698861475086183999017969499880106890068240414602767397322451723559111795419986533671809954927797981334407744126748457554004048093973356589683063953675313011430855885807551702646884376968409903561756936063141102245316545487912481061944729951202620150070468068885415650261393260871906632033658330831641139153050897878241649583107514518638355633269421191110758132319909654919084801181014058804001591113316610102989675694056905168653993893472166286417014704782003691915871302312791472173227097047748290060624181324755841707564296668774922952092396973354669630008444466884809138992627538549975549636793352381639567836013664430360945551114311751105095696145312236428724177239325883130772466639619815293317905610993694528898483442427286951594526566199846624091478650327521867272572335704064070679470248539907454291812315004068222573679049047154787097023063681303346429554709636434100863396162771371632837295323874285572710950710317811922666118629597613554416566538654031341497345712327365809326879521249575318799626948494710165519971087063027934637620106363371482683444403551909877539215860889892501534821667904283103418787312793887266621510939188136103493646902852261386229977320379333166330077144695880828637542222378113319485036022173072951102369360353625890731200118538205753729800780745800844680969963272842129540748195492706436788325577962842312105778035271756742252854084495121760742161153704121462413949591234460344239673295610372329907184106212008113405874803579960178267660873984646608590820045426126903938526255574670352239375817677818747497091395006486964953773896230548237906566696262007625286860842002073804426324865086779397062103425310181401352396993440552842386535127580175408473689632415926399660606100292116247308507976439814758865144671330866066143420198154246821840003537818703888983699317921167673450674349513605024782911347311491086287499913941613443970107234629207618097094335934160843191149740598005472913963652287617825243671754917280062945424661512409016843625738968824120558280129188417314191112151290571536098760253984366131393758216428497971915233232990336543917026358341561996099133151153256109933215499395328849420224545626240566917069439256714441654702817420928648452201192696934734438410769386530727329768156735333232264258001548389846458719605048893498578546408801044533622288431326787326038476005360330125519941377900280801488869291852001226144377777672943429610438016215215405102128680634960276234218174082981671199700786765798325063582353984036287968243541382661588537501161024240393312777581695116884427436133527371990201504910419757342129531535741024164451906862737353280696066236433164900471077585738019138562117679213973531292625158333742815184649754292383388499957052795060382480727578422155385920643757103525402945451481058171938672291540619583943295249574250537554731323548739339500890106172120394326735359731983657770959352917117615355603219102682902244176499970547869549231404908483383416065673362278233948926621786040146172127102378723373070395136623799182060830145136269998417951455006609052761040762468579133169691407397945054334452310141860399647661079525294476433842426667647608346537428182649698072156867674593770595300084546004800631708868795469791380412501122822849736586997814333653167350156879576828101195854087580751473294164468684803962891774786759693269715309927732119901138766020785964135168188872767839204115408116346281554572871818344371146510412747941861063808025286364388189562782621423499257201108143874359547508532774989611222742940228125562668963584093696382852193792988744996432672456542823888337641608521785519207719787313111433564944513830327979872471473978623425105654793353064651551913004571261754765576407998879684006040489772834436137386079525106701576875651841747799821327911674531016475636758645415657039462638779458139675207910896779391025690052501529576332714766190704415640917496670791181189967471701372274921116676898501174380260205392841971558115118485094424585799036251318488967173649801885371624624050522365066705039775419600499871901698619429492741214473378615929707752662388721748731190790472756575015622945530834735218041926852794394187979644028572426190650481508652874718617841827078712770021597970088604316951717854909246645795477309558018698993923116287820975954395132969696322910044165550472501521926457022586837259857872216787235093965349139222024836383514486295226169714286317254954098980700060601948486530707664346452553507606961043271475631049063688887400160134721835562089881157582594400449256211974980818939047234235955436489091076613369680707697598890415694969735766418162477596435919606808326508280938799543589482499218996674282026344802392518358976948030398296246593539954615474754662390975337238263677308780549380559720769723311725861513150953325457206797348607962315144748499195910994256695130578651069071036155937475977059822487518917953694439858270324009262796518132672879168243863396667931505117272300020940447503819742264134447142652447991040223471385324714761582711894346613076106609414894419697578407692613204873031882930576011721285204007085297464723015251816747509452731133907637642053864782152058061327742721546574634631338239877901590194184731596694214024352084442504506552625690528415680248722196152231360018868495521064587065128449175480504857370402408939316022681035801214935887874874677446710402337903324796585638915642556467705441951983754683285923619901801026012893368005020859646513954910490292243593980509745464519439569367716145076183045586311241679416996662817933337412530386149311731738424158177881874386981858539378620311961063236992659409780074430615449632079661563811946555005524639932452746148042081769074847000382260301099469937517372642774167745803238282492741403239316173365856647693424817787389184400587366299700794767951831062662204216083963660341277472108300255331935689102586306448243093011361713318462296769153934688469584001747630399939139329001831759825778700349384260961279545392260695358114041807244120531700282344182383832404766626196032111644760128227149493703767108975304269354602384678866638130284590682828816851224339626470966104367189985533911732143262827063725132362902128992963052381299962164990067393314965644459826814031692440035233793285480076235933893328779886443089658785909392833046342175862974189615930184678994932739676879291322463530964370760993412946844856567492874209764354207781854954976731168450316299720505649483616483695577501576898415782385722980846956735671107241135784035900535485011291714551175533385786513067223610299181499406636327584070760818974257379612956259144329047926017623894903996147935147971301030598368382539474331203834164681983877177562785628309807426382011935093873202787541720963843003980638787464075448999624008461284255178518644970810504107325543957370106253742228948415140332445667855236459650889573641838396879669045547955191695942665513242592763645912781137038884913596675140977207655769916612453588381728659859865391322084740241787193078272708816960180836997351160653878747264455796725339301803805736979737803897708905056013947284124200974872898532733400608174654412964347384149000342788273290647048711186372003129928683112195852824252979266091691502967604641658081939194773827133230170687762987694063079252821101505075419475069775229401360237135874018815151001026859718999564108896920099673701420138227499417125501864221820648496338497070699148477304622851501878781100108986419852979550998429338429893875932396606577942861745418290569719791272159038553110859823704920521119887544873601763181736732376104483953896553768590247925157825559254419117216715547420794853793083198406212545740745892818130347628514099359440492988337239290339573199699711357259784615139963735406122430628552954419276253963177968879954896713767555534462065109439430375764031233224452174766133578687676787311296691226114142848688798851024520659830081665710902015231375826053281377289328594805663827152565463485091366997501847896044197601874075527755167444150276170425823274509055434201983647266089623531857118129117422891282382732790439552678485995680278967804070714972386328745449555660126015277430827872501023647092437114699950725865655065313026602351484592466309534396719635196150935904627213101349865050891407557747290903285030271977474762869047393526500733847235764269712221807426490187426385859993672440869459772718703201737723648400541357337629066587290227714967806334389514325687981390047147679205771181568272251109541897154481927034121903466532936307032196033767036683518140735219751118696523230676308442970672954087749261499069869053676005315728210713396178297958456041444272735426771871546561699592011317023897363078921661039496552374951139693417906977399177167052929717721874446921326109376160557340512332751456569058035369580698019325650974860861951934729085877124150497192118036942171512171523245607366211042392178588978918645395332267134090933379370138001854799263295923982554829860531141486327732499537586586418472675268588304235745592790886546911896265133813804008975384072008428974071835536640937046870419469243402225844596979564953142533293936705649240072537224291705708143151918989594501949081712974924211754949530554731687378434476828108146854202955156804091694411253329672220622995735533233449117840350878329323607604522164351014228188751626257963324972885116289673052560522058201713783030808695715408501926645993751119740307401189410280633184698735809202712872950579741412111993222589161194006018775558746537108954123457378736775279979721625165809251795368013309110205650227435468722646391273250723543339065718749975057300476947965291214661401812735138282520013616308148265582977469118814385782499790721548654805700026437039448671180605831472387222889507337629305770830953679572502802859202003972353265154268374876122019390956055054113080700954274045870917247675682229177906559978623306723780062859597940357436642402418824737618149532428405403518676214545900960192027235022772899009136115235902234004622213012534267982357195577199141297140833791846377300744061306301639396932446764941036742769254277834177121170620605626338626722644711229303706446067828316263132686151637967805747044166019332205894159406472340542426790873392247968077694533256281994976216739717428558561709137889922535030293941613553375482722088467371513501000696453045568841136045135621261153394357753858235028138547939478491981510178078160670833135785931054987073082485786975229923491262729294054349818005599414393796955143314972449781615346992749947383752808796774077324100666235777002980401522777142004575878473854704006218028984552446733301331822127997381629896091549485421940799796921022254024681585204877163866767963576370970316561799081479591970191264897535740252676128808469454849584578803927020941132347373631896762289075787373638413188600410350053742226627010043401156036750721379603030967330077434126779015189686345473747733275831654186345840043848308564982333789203078632273979788577164287340282426042077653428779552217082648699009173823195032967586595981227633771598782247283002948391851998254784293896061547646537332501551247868401869734667705760540291436390138837424759910472681884033282553402342944173211801551637340788564243421954470579804462664490269262031381000314069004829422445916914516496747390779926814850067123563628347194781117111999663321488732671959218888252952356049157577668297096934485629460205592880355445924529526153256412917515863502413501643151045276303348995072120431828414753805172076073988629270408676619177517429269496631692253537720516012139175431484774193774604634117690127130987058029865240385864706787344640653606183508840497226451289552012028695377664831472097319350298722219819948068353310921970938831940760760447040872282783846675487332866549996700040930194637974424596051493240699629911936382212304580517025120748204383068969357006116903121128622799592876502511548335938576162503345082879437005233870654414272825795961467268693826210309208583770609298251070158820481384336612297718150377265840711993629088846253428348358128089909682375065090167220644803873303084398070512241496452549009736858773861235135962405577845442370529327081772875483803647757254955728994249412960387906177332441076079436775048685856683469847723711620475567166141510595370490681355407022223452022598863467630987393388113304770569692430232182285541422652392712366972268318282705689435334336678980559767831644236596418186229961413312627603650625053150385218222015079327166731205608838455371255868301675989321166173569112532156709433075850832397724278396538787856105450639650182724942065075650793947247227281891471074477614972443106271558118988063716238983896755401585349022691786413483935601617740836155439727934712018592195688484411295818226600561457417222604553356433381607621078100733778217867557470888306184034677881709521619513092889797986866159088287133060231102298632133552841268038661546811327834548338262451223822201255326400003088192553218931410577688537101797689241384660755839254368365653348493828763075655560254426936490011393019146159999952853287949740174211295352622909234264003129796319589332789203173661669298243605430584931539608079360339209137217937887498388389065005924278704896979599865597721214672325633868976610437382353707585105502040729305962119770901018976722845604614780341342206334189980791314531346431912396055821930386645629460000255708529196141459537958663739118611216011763528896172387173486884883927841708533082883350804070756852452363931168067383729717866611570828601850690677179417033942584418938349638157001281919931259000772997024248348643594353556607798593401572810435673199054793914288680346566404720264571922613242217091528697048431003544244383055076242813912264037123098868110389479305214476070961111983635027205065720191183388893150526655837466822449595793314461450635684242610627127636639587700056982565867211813768183871021962783643813736907962971406681089743810375442208043711595929390231107446312308667949971103040247844009683841329506519692847325216440588563670102667755639407613986499873736070244362196050293888433023008806774755539587527835499984772386547357474055501913601450367992752694755163728327655727545037928525001821603342523929577964676324642674265580316490230106782135789662406923339558587413734772706098087182828987995855103918075848509735520512575845720988446376558847896886645328499614292104764124401432575173634425073122635825038417290941892546351112975033659991245297687887902641232995189565571976853639337868814099837995578539524613055778088769910567775923921121830120087479061329506696890940694926351108025728404912107281843719768395644865929690264985155509574506947698710037466998045593018772899180155814328100613772722191617532672042651413648087257241784314455959674530355351481834093609545716590088409286059103622554642748516761062161175029008829598577690198500763052837856979937787721324331079175654758785268107098068007056797818994695034340900821413278217438055294497119477472570639308528557137470749338971397425031636674124806468298751027657369894012478691520505868307912207890512795987117627244923495879911461747802677585994714414169387625006938389227322593425943846171957263332343833765789957102972689545638395112380638024465303549098610735471492782164191577985382338476907690617926574202135248432559244513213270576634278171259475158939236982993958583781375889913790496656209804986749028952033127548807864004617371600433633526202520677585637063306981981338063328734141389656168344538463088289845064375980183495043702124667722140232418049321515376108620508409664642766701292382168865382846943837854198955817332851811624052915619576112774937768887501862130062114601309944128646754715339893097051649801280762872139905515060480615054778405622717384900103276405430158307754297936840600026724852529942558279867668386588406035068071582806796812517134071851593715398777355121620207412251095376264887170458456015340333799925970609118817227119196041522555533286539551010343599497151909987967806707956469480994259083975206289389890295531110228964868048527724680538312163250536390086320376619195490398055818738725275973608775110904399962818622070161061759288405051862960731559080607559190266917650685333284817225845456006405885369060342544301076071908903507888255219515616946117907446621625431715222837854226479150375275580478115987439862970607801111812852233107142008784168949391584625807546201438389401741544364767449533025326337225142878357424965719053944859141087465740562075741619106792211662813003894805224437188515146650781405032752694233594486961881463411028990116762194526727455325603363948685826461374658216258834766173151422104417986880198782701789608659300629958936001121988623439002700614210250342359195921592084764680944840222529739035241535564516604684275551287549835982212879959591461809197711638504570372156415328617359303842768401836230218599595171189133515977520900381754532103846107485197545217454457352984587575885189762154420922575332993444286266772568217967263441410559528387001093773481293924713750972803678518453319161867249829452024141798817915522412488813626904502101163934429976791372560701118520758035233263580037753129825289020058058511259227501745384741040744504862711664673902894413027790604340152695649452459807262290922078369601354494628228398960012338855909362918569633961200949278632899911104946009603219898985643010447603833997939476726570744737593151651093697430115941537592045880987766609900435796635100666978982906580710656612908570238492619600752627641737730603740349584431553401535796775737139441352760291983928463467329679858783865383398757609394234531836485320707624674403960998367406139210100268936493895833116471926908408825590225751919472124606483563165781249890069398185539213477193757770044701837008395153335089033560211829308110247248046147696771306583324771785980514302661193357084073863416479063885793028503677055157185709223664133636615913568572136149331842053628809162289718268318982350316567793916482093383370780018430243237182792741308674233712923187971692223199963628439981888258787918112407376886754831078447450233252291285830108366717773873185024219848575013072625308284655574742684035908248433999899384007633748973752886409342680632487291291946306246757257420767729970281250596422199836589213309216997320974009093857946096583452062323962064899099099432602344080783220478521628176541613788496628482986701347327837901520649735493802622665987996811225564789123914767189977782259238026152157034619810755087023644382833077125391102140068504829712163628608036754521289484713578085659072160834361397975300793131757200599961970345833831659423411701182569702091792008365093564671240562378973557386368789400416701466449756375824185546419754231291712842585731379744022269582537845757594643015433944402298588318297026558572959941731993946302953944246407052082456587534628207691526796281252608508412876668891134920344920472022507085663363540292658724478198606630616420003695154437519923785156271262506363668887053375035622843727888173011682775406840378499333331449894426940526766721325249068536872610979930268350867935847791249551864241691265564943543667408117976809720914652346521612461391964588167592503128067842296744355590682836063952779092764111406463135043549451990033847478543488763245775866046373752326283040956969473532757272182980945028458062420029274756739227556709371773185091088325537000352783844521666396984590396001615907325434887089306588131934572023880133062088258500196915330343373725015553070874773767669362237294863769773002023216903065637854131335915675816725267089559369705060335327989965565890061396975495977786262434166219126542246581275458837468466310724355011831584669993896522667491932529519676525329988594172318259435155403550647725429893236630763945963422327161902691920532124094223503053403044357682065074162909914508145445338598118095594376583197776297481827336682383108955420689440859784802771378890434190708469685722533276679038292085534221040633442087681555775279397056558736974538406832384488533806297047168177620088634031439721224165090980997734275242825724017300928405275313131296074547761297565974068515914330568321723055686331396357345242437447046353409792795564358787159163859605117114537460290526020354277082551479999481365647850994240304111226005390969937258862044148708448535837027729333748723805807456424990183657734882406157485844821350676247584004323833384957857076671453792481830072257210889169721299324874838189165701227493460790835809503428357786315513151093086484882758859056959982405730327724351051102707086736155170967409948917952988087150446651190674069663720768472653487720388982095052925397647696032275452095611595605947079699082557110079512885617961676672747907371884180852815277771163861960557972020701921951491981612242550666578296443988960859617666933987787687626707815295339191047497158517871390504590557298857421579793525378371653100877635782096969069106050897366596119585845144699914527672500704294326262395815437317281987515402136093505399476642711754967718738811706193011465695318461645717338133081362896707905546155268439202367942544664845260541407717584105987017718475797848183186162274151441179588779876375334717974317914458469156798221702968731277353912763601345561512467103429002561602688387358801874510071868549266159917497389141359115291948962570529113456100011829435813388344660194400183389526509846723067594930451690831358925382713792498781857147506002682411364512368922285267048984641104645334817447028325582177667253154276591969655328327882062908786364321099530945682443491549535106158381829459952356209246027221979218873833628590356836864240136055178883920014506231234217065118593149422017714367538070321046531603297925688844303485140319903557005787457399210631435931187474514807596226013953449989608674157814795034904355028738005409296589992061476602887648685204061248654719061944476410299642699497807729769561892575053343375964223023825780422271704838689954511853883084256146330815578176484849489504603184760353644077527400519896922037812357682998833275023687179176243652873725948246827358831413498064943267270233603841680005340105243447006364192716303924670801821237420281292885172131545107975664670267521816662406426840763689829457853275683112846321172757001981035557557003576877368716301444079161720805837193663788565284687553409266287564409100122715244220693371210305852777579535879741956760830435587727398868549024125568097371171127502015086002219041457968851072019848815600871510342851884474992337271188081906879455746482972926286607666104743279836532896870094307559467567920992681599188960579817970172889120833253540977181908073316766098390697658068006467295228514698371794931454807142864675705661846283538758040994568639073272517607761781620679871282018784727425836973056154924673344173240572643167935639211965646260970507972317369308903711399169752283309310492392462121605072817713148264158240384370411473518752728219522856092651984655236757552748410066328460094497505202682247432480241999667159382845117907490209379113792755012771720869354076966434794364963622414097099181167020716722606073769121521556837924632543822440264658975378464996887593924882173117314407925494655566684471022248961871825668896632351395981221957516427605756548475654376057795725293012002946683697613923935773600006436737197546744667239780669594517936750482170099928579478826309914473751306692457499660742743518314125607829783123118467063832906155982131012599330449061243161899981886597531072372972505598884491536888605673300111319072526002239169530627667027604012971968309331452775398116407387359713917653118537784383399750485778705376088869328716757776217327846414508844338736274831821858481330715000462338121104345805993080174471030250874552227797768981129635719114767084998025343533225403098112871838336914133724266950905231447438120044418706246101549853008957264173347696158412347556623030714882124870899978621115331596301854699088845969189643150625366256169424478153118213759342512747395736179716502304967115177096478487702002930408720867396744804356827162652845697205184088610993801904264951121691651032308951767549608544820764070343567397997649667360750683122221808555860873016948993524975597487658492359405589376716196486086374883948926380549796059987560764284522748192595276175504826510442819238479376649363039824148370419222931249657779792038805289356226960854513121554269925901125862345216698593779684611274256613797009208574794430587862001150031670238974090799744384539346273378859281012372413158552226127651848372820101272497173957472364535978959744859447414542979253205428888933421687247429096013207163132886862405179635861757380655349776908693768763926137786415320741025305037988390336305333967201380860117780505910190469132814454568919259206045577347469395604890201311370540922125778648173407892608105971914718431918226176703604459115900848995691561548147918983337828486977936738064669954915470418125407386330759544842891684254415160397188225888134558138624497661389622721748291776073945514909017603156784995518281373006988236533993879367348333536862665029315329120124207171561566304844535318459012822831311456058667237418654426374882315890633362501287472212847458448752670526011615392715580586837485439752188784763588238143441504280093196140118970208359804733093847775312102743718249229481197519544867303966161322504233687689424923308073926601706865860498669998397739084910624943498978889321857413539273104436565220270550602109838090318961852038860753465838204189547308546231850646741725957550274722374238075918409195919080787036680927955504169717885635061317634995374853528954837644215062227477216927610837933169727233516240482905670927381864948580092906409223829530809311794400926192199064405969389718110029363895396375238330141696945163782319971497557126090524196486255185408888035322739387313488260183537965413430364771927241513423747634892213272002162711645988858736745917273673412780480839492126603257911349263415713910320944644345268941606341959538249837126964994903455430842656268316169498778304920635217115040690471229335287996329463724154065720070173281402259053257550234442817620630959090259037246613541744063875162322306092905279853433919574342364850271123429298591388943779741904530998255127465800420053524982396597743899905570503760260270075141763825394877122050887941674970407520617266565461569524265124344676653790460525149072304852413137373875131869934029318812648282858112765316288349361443025051466220223865747862870405195156873001505052123237046882825006504178424914147818979226434286213807778481802213676653922658990136293616238562309937484784958313598766855623522129521797835659329758442703340806754310649989227198932448667341209636685456106736396254061024051608392972487264390921564470533067103319098258566886400059644016806514923189672654216564513213152868780243563180928046229496009821101035835293034061495431777787287158707338646795109188814769410665903174052674576803341927116906009365691020511730569827005062065027019555581505848241540947896818643068421419685855134089858132937316985728583963616372320088360605436591518890248117347828805739977638943894507372327980811358564958226460904903174200848460964397098424136135055541130505196847939401405890174268504334171246820256470522937449269501018235263077418861469444588812011501305213466684717338611586907686601851522314101717319507006749059516542063997131212400959486729153989526624856069866758724418244286184789825817326465441670873330606815596543565078379576299432039445527330359428035758196506416835085356101900084569180242933432141531559553426370343012944039951644126870387598436800572633038272546550359641035977808996613724129735301777168740005968894625519510859603226988710877167588258472278466157978636494874595284235080376399487017994225928607368371942189090517621838563157366300341014025416537832479366958942366421231265633837050484999514119009072475155353779994206182687686229639933298368079054168372466551976364772954555216332318711124614236786817205437432625366618608314401338106923921536722315778905242576334907029234904431900375800086267831115095366378594574423270865789717295551184002110773314454681384269491424613960675718157753787922616417849731353538254761652853741483013902762412364394535189535149809970565175693475904910488238936557612210867216953294183326516727021837305485196841046012388237912715316910462958102441018149971734320104977105212537341248721961708537263740165754496534440703549327151614512015242051856752061952630557511795916854759150655001974158361398537331951386670944702583216783119190626684647793179514160079310989139349006686881119808260519583780112632678658976913347257816377436177686014132542314599003025333224001761597851634835367874055402817468112092945340115676441149146396943329993955372654379812493017602416938576139166038691802045742323498303954892615165270831548859795671865439435190885719308656937242143651151203651940743762299815600938035256549056039918874573575449074173130676656500690859900219885498980324271878163441725743021919420296398625697522894191125785149972689791076632632505852434296263320522300429771478518390365053193629401718238193934002689038084634775824567044635356659534193351773378442461388202108785328638606055142265527825773097858116088347775166457880832523196493469364956014777155764426820073904730580920476934680075990202574139761821554381684528894044993356843654635620653808095666108042899372872567507673168807683494186702419247528339289053333354301329566260046285723074937553037345463993867637156914585011433425858285459082697711092476396660302562331140009363458910292394638988376671856132526368495896665930432459818836192951280573692918477566659612409815864275333328468557437443589634808778640295597656776291330429615196752833868651477784409815302390544185785186262306146231723475526562322503060814992687049878563697959077262444772696196914875502504612972782574107110618600859132341128199587024222653602316676193764187022909994970239581135751217067213430504797595528315837334224064216196122998209838493338011888716303021180192051296932905581896812917456209629467217108570849640347569639417107072389500980122247196269900977434858005720693806399725552820205251642049301436259079699308332611008680780790032127411936785572831983644730690884781074801108339842595305652670781842558195340405568307893528959850042379507794347838750492397367275409579399853548186345645448240708922176697136472719007037474386775924424340331194547348732815592707347087328200643418292665563633529846096848483995214836617560359021714992065527046779811075573594546472719141054441438955443392892116399773134997025638638146860986773023875050147189092698211032172964872473464221328034480571149872596489722804761098513443313984368427488476592014679491226020454176758152944058346305530487066754204084974769737344204731600312795914435344950892462552915666208320558985508949504007390461957545947870295204946311789373565954190595770738412975089813228572379435853209730924125758719838146682940156033385868811593422455685245258348781632620548704146562289108823891684274248488581338937684504351985279910789321073717260541967665946947823178372199161907422134941786222096597890194394286174310220661475020408162125556842491053936524014150420915935455444687372572064145665984586264350400083502473467232192384008520326025090745086618361444195777570652749474847239238904122668652437820258804580394304299668893815710794152781923407847506605663560216583547891128629171248866692599673656309386027052279011311605611097675198611795783544412957680969967734316360962737078192837742453081532954714571606044427103587614106363430404346097786470367923168623962319824123984146876715808786933052205071424587976870798956337652684880838130988856414496336021298921609598032921733988160061878745799071142636536363499783550133734279004135421979306831510295581034972788745578841658365601712153134045456847907642677377261485992776484657876505292046175599518553319464894403002798966536768882035642778654680103117364121964545437059561629535878624775700699828055856335288572556937630236549267151279440659321347344800554357921598013519506954928541804031725761687262416370283566857002425203554571041969248153002176741742102053901891262514133828891234993437022143089002977085002714895663621937848168221421561458492893850636692963707875401047969235427576101272809241848259470536759262893115175791849300046541296361891167185490452476933944281112345880727267372388372795098892547818061539767594207201569954591573679576931985660009736689165025951008664148051113003198979054252002716168742379566747870214952092864608790246875409896611647532550241061913872445315753570509254024784259175788312276355396550758212957086111502236687507308027268547942703504660131399103192151873435653221440704329166579160304992696149032630322086999407859880800672234465774938999173635544167177478460679350205320467956267659993620149640841519965968770938075837678762826286457134934598946654376141804821234955831755739310770470125173147013679028861678615748388938830699861941630111403599887832824198693855650531316035404621496028293754965873155319563380941755019872783327594868451475675264968189018040798306056680357634258409716559181143102354281633626933916054702599186880067051260037636093500239970349985557585698710659787504085362562150170830794558252859386611451881587418744959582147633422170131348696963216745390160232087125102597305724386643358733402777248656926742341062108028461482247233978531184861995564920001815067989902895664802675852894264830072390035918100240824493843399420707672461094609925569665008489102821985909302871875751084514464677712309228889030452301595804107193500826405259975869699913754108797287941454312956638339347702380173294869056179786586108444818698352053220473944199486877703444904865344522282039850591349828532880493889477894367784225731226124633918409111189771876460070057792982936535143236403915454401495955881761614629149223326425626440400471675962149941088767705052193975615350666233673237212561273448176258058267237545710033486274948737735127996213643244155328179579921865079326770731143216225188179495758934897639537884239799092598718971325460771317823022004952942216393586600222646486955320815894202439099313116508365942523891925956200594662335938730739884462298282351879430185862492501829332849801184874059491857972523091124428582930118351932644854696370643202386939806261939415950018892047164866917348177430209595255881097103206486779279094337138311290555733956846151739056739256492027312951478839711657711124296226407089296062761557619808844044178481969067762722352754621493631454317022741444267946246430687097061115997647131861192633120938029678623629694827238250057208333486039040355407085458134191278058878683818668860020520570546297431708510229207394141368113295762758761643990097029974342938758257698065102332014433434780665152010250705473394688220806782182592748243265028753862273680235960231792708175866689452146449014724586664556324803502985666711645063251806263012958786424572892650779823104699251555803468889627235212359679099177387984379079563032610611378973400722631048205925537376492955717018991808754196045610493509999178779879878473946876523274783478942990117524762842980105105617051058982927753080993936342687043403172715298393673467333831070752895162323785671845749185512699187638724236609604147968135437854090965963056935805398553036953985131032291873414728541969571814462745699054330161765011368901704983522837255656795629848655399801478319253170680409813539355932269338463780226983164350858372485271867980842789388939212834168731854320769457548755371366974148730640161487265241732567038702185466985950630067462908058179855585233612057892077825544203793881232400224425549797085592382574366676610994614908119174187690096583262765252979493214340339822918016668732816159970432634534033191994900329581054079542322206451634503887578761511136383768586530279723011128856805498257507983165112690587265703391887945832933375442460149539430598619273097462932265359675623492458302629960214532752677600558145213742060774258665612010426380448329527811140986686426168218217947696157970251010802759226188075075762714879893747111655827127912967372512161613641248104283733967515646417859327453518263253388924515536743073375164185672889525301296514646303823821059599521085591614845414201484994281818240491080627263633034167205895944811540837142891321443151850239813494657174197757595619010039830744613274579515734463347713643850561045050896215005378057010689040262648171720922096211578474210122284496033966740339977762510952317037109859949815470785668699544191904010268279025538434822831153998726599700785013619206545847461790568788349235454363832367212720883306712063724512225472398355880534427476169164921780697937546131394431252247132504671706760929690488065866090151950257171437833287746526040083668722667594770435407821501627696024064440410268136471109793598164656506537879938581975228812840366011783012993013465546857746728329664617381250817436708786309373188224612721162418952796938057358156398160349318271215496791322334231713438670247623654432138707655873199325019107225209252810352336895499487871741102107796024940691094291273901741544128673190041730984306401064001126918773546573658315030659627769170021606587196000199200710973582445924010474630871718446158242869998882181604188000116246310053028581767600870059104131110755667668231809590096461708546246716522787893789356640142198108877800711550150447019335284402438715066159628422578830361613307108808082452188445912366157641924868291883833309466848627084486878123732246837824736186779349650158403475202034661284843801248479655959598945897093364277692079687742494727394697566468327887433165303682074874867224426605830720158641493961525218825831624540199294409121556783295248795821762542788581811559462038511751031535625578691062370584620839085948886623756114308518867795649513227875089912018213784267843010938924699162244557713058736975737534610095350838795204239494012081999369569242230529072743867167414797739332597598948178523509770651973555641150130769645521401591479208655679594366516531592983095590269184214910133011762539854619871315186221624948999606066994708430453820367821651294979758113725033391543438978356778765365988178475495824721512443759228732181084903492596307437574433745041114767402962852447020987046098133980637435844867583252728802940947800924276834476991701427105190776685617626374457457980717014398630144130812779720918418664876345550086325020940074509699162441783928260375915367456962646257012866276327875553042275621573935697451945106140933611665329027920416622188107978121219434588353652091176734757647339129049593571669016526739417253574005167147901747380625258966409641906211631830246941071235553590860884157856412113969139150158893248173582292114831737739615710430975513330498734616193846113207884918341250141724304594654276098831224145130625483247697951117834627363517875328492247868785898819220787478125938405974457028899716769899660125938373513723433144465792224066242022888978354990900309300090186656343724155734168242430570994582500278842790256492815318398627001416823562911891639456151990315502722599428417074861438741107266115265264371586871902727715397990563789993291144334787272399958501972790646754321835200096503853137953935518087782267201371203153040786767338968871992318418845515515227547564471300996733787149720072361433322465077579078536256493500533958325361734617203217205196182283265191946941004243086684406813279764244334677313519529631979724794226468581592989992495030192074131825712956317157816990263433619079995403453446133290146117664563134933993902772005199567323176805624479455487184537212551779289612640092251576419496994008890196457798524555460513085126192693840539253717455040649719128467779568843701965252651913213256092949623697560205663755288848129457371585999812306600224345774445024919432652766780109168886670594244789777216771046849555978437699081183081344165519662140672498172672755201190367112223055713550558762711069824733505594532347034940356598991449711737447785920203910782539660739736037853213370995474576000018677720242166991346346397660615980362320234409635501034315929527365064851387161915954179050684179405848261666230359766629608080715658355476482712680551907214321261044045069093580381839819377055918817474118312470544181340793841657281979555781933732496832861688671377214470298352560390675556339770964342337644870376418513562863279620992462133333826036427167370562256453517260060212535121814515330174596851072598066272199169828362928767917604916446482940713484997411092600945268433038530803688319402288002436599244459648834378711920751339402487892050078884468026347939590581027107764007495523224464328274494673028620379764442438201971225558928172296826218301535802332995388528899729475204198750751286073314277248085991672240239678316694077089877662484323173867153982398675033337294080934810149410464915342538207152176582152723221277116830676767251477915241926917688092833622952822728146466483286395170136091530030668682490189983814940299930850049822214259548931077458162770724600129206302172814110895579911293672826378449016138522489006227996114097495684987831187993371370680175291217200425996399801079004100617417854597027567233821784555839789271699539041820191705000018810216189844373527388648373394811379713434625990046148206453423481436218861440797505941045875110787331886765747364181443917607150840921894876837426364958575856176756588869710184286606909648986945922879649565339440722865603545641028001134592425130954805637544003402075476027797184172677534047458437562307494373968481372378806743866081927664521663912766610805778110872289362430593522546619706204987794192569629635659574642048566991559449192408163598865199242359884397021932066497987658427878627918823133139406882318788386156548834280105712338240612486182680203798489035281510025204046347277770199197899256924849857093272256434524139819564748957256177827211084459823557000495977531327699487951590001857240974334107341625759528239150230756724092388355215406043724203127466143701254064121963313914294079929087543138319896658180063830447757722880582074526112015002742030717849739047764744375105599197286157261032566898159387743726634514144896913862079923714472466446134620630201819734849787278395674368778202122820493324823304832077213510218855707149246595192420065118907113901466563270175255721114801054684342366196520581504263990081843185183029088820942945711741137069759781667167576345414602625026366222337885367652514058641477224021083276779152827000622655908147692455359188602795184813883783517565009618167069264245891298690478938261932838609184298332120127445985763387358438598744857113966671325344262625181123243956375413278906136826801488460163994083040918227243089267550213964140377949092614978752083684192499607783850896713652949784757751482922607674566117633944234629238720993998097505534176897044755027962552361825226896275186203782914608954369828017945270863059498272600500382272109729507847697014128499517173228389566727575009831041226448597068856812431145094321961668258321405612883620460083061515453951314012412279912776450748487029206711448638641909336994678811940812312002398522490057032190302036815471823495535673158808783586137445771416545348350322917519943322657098789690181164258647130696784649419184234746629507348075024412502824132866598589514998203081688235784798894037694993437535898048858369823298960819212090574981461802059298468238534563415687840029403260105457687399710078849411306519683614689494118185813529334735037036658575717254296862005539070564340241397181397042058412471926014620357368861018086563987408134440471945729664582809542549614193898087132774712178334607445470774020900528142801393777008618196284696865235552579848852107430596200453321734465861501568667723169729907916280222538734760488364319798564476990977914915918449041233159182462432109986745875132632675475604777712611263885191520191605583147784171384957827428406627795770019021025796542869534684752556069890569586350317720942868723709805507551620757891111574142778795598618096471409266073291268874366890059134348209125335389956730313012579205992080126568354450618647995743721964533561594437724543475176984162816973243999384309402149498324041655222128969584503292015248549237178897222355082398519515701377100230546713777148505008450659564923264480362643479503136374178559971696969954920828174337109155058296102784909623794419303068592822838748923231604283906396577302135427613012289617095147580206236870568763646877172800824354922889982521735024269789200429518108419071878192149469194152437083908794972744109420707930749152384353599483563466337672480852009700659609977653880530589676941289798147239711342393266117043433147266278985999335876571862640579308260848478600036143906987355558725038023593153996230250725190286407912299841443648896584528171149442149961175838668021037591838469360741844309600146836940702366679414016076247166053168456718241388641475926204229455603702951127699641981583841318254057056321616476215448913360074175407161899272539428273310561932196051138717716832616808372276501519598870119333593716957872888471298331299170049771977070459716676946105378103061226388342112402554370281923882741563449774957351846570796293834254718031198572835625994296112121972518085866918826776029195516428424062434924486398466816158032977390783381559551404244833338128074287599851111425864269824244537043674528313986697951766890695997332276263037915594107468216869633035124526399604395126468146927738031486304216492739043165872437331952863883106111160354183154152636468255210839049929748489776135968383596585545527253611397757896519153659300667442444074038855125228821685237709207336090350962920540363608514657220149462125112803371448538124198896084037731599499534084695695361092404464831306876137888996004351754983725695062039284520726817300529437249891004181651121254263739195257674596003104846597864226667251569793855152854226607251707854369453676795686500913404286810394640663680498090679206880519547689076362934978655037984831657346015448604072722124331812653505022340733670916275935983236944707010332305585578960047365593412735338913271135700392991448228838250173682482500035374534212971480760146968106645311622632322589965453157232791729912299671707642561056804124565742415128144070483417222287288677817779697930590518858823042534681278733481432887404321072857403250786781782594961700033914855423271482163500904176989799605812343038405678134944260842141421855475113680451365014453434703213120880033353207784440368060307086690937662104596860014077157983653620105545613042959318078959104746069465599364406766593633606799912005996680890207410728416453019081895891809860795665212644219495519062068268620919672518942138408872116093849745182714637766405173533495872515279614569314730159761078552183725013897098551840489233802645441212971787140372906525444207470107601971271177897705888749024715545613760718820559392797247104533098885000711237728505982181599327656133866851333964379204574591902999798703617238386547041028998965758111064000029029201472396568194896518834257532191398134562822616354541972806980403098392925232723584329558614504944476448652314791812485538705311330513916334489103263472063589230947538716478701518956467161278333419650687279023681912983356944664637970881238643180870571141563510227700010121059020788846659531995331680654891377787429021305237984545386674166457048080732677136753481212564935898377901801491109400757054365336297668280339391260980223640047862541293768348825798538155170699940375438430356275953214051489798823968616071376173169850605500803446909196711936417157697120848918107724024790322327661862270829757774696852974442533253367270940006711619252753057943038377162180983650128031071869567138404113227145446235000994604063633329001152223101937716947615843887990095360703767412164074383615970217468427696237401895206411676485351403607738789688724950450108798527440305602342914091728896091471510855112131602219740712839722901353013743002160454900811431693409345622646894092957778004104818086026703039640609815036632835235782506542422197959801132147182651221134911217014426966723438252101062227785527586105764900625408352020154455534278767983718586691524596966603867505690722805079158999666189678490095160622649408671498075675706952993323567925898459933285959477790215841707119071483583694471484638314474200019630929028647584217059269124357638091588802320661298528884656811527261081158143428191275734618386082754653819897819759094500908213505303923937766881250802945902566732257628181708530326227889287284845341191280562429986931706384900432633059810141831968038974594577561303701166599961214677454674543939631663015941624218406321164154315642651122773692558652991027562501734822576689117029329561381318481122130734764373295103341982054221908709815925041062180175465193057795400590606522732564615543845735016826678825724083944976604551867328939487826192235805176269273375617824538696572193047244544861363869014958281430336863806293696034034595179220913315145325822498477339799654414387606616719168333608326120111450328770103559999731258941459469593592952565592214675855180967042702736458826974164494987410739759306615595880682838314234745891975126815155180976542950699629439237507926799151402374762639312882634828973778238385185419726277983961711140208574188342958066720281693193178457407538675677524216485769129154204033527012455602457891598103164770667699049901393835647012520407479153821676971548445098699456240773782753230297820184758298316941156564361616667665936473436056269259917336613054499094838882551626559361473032505589156499965829410886368419435391806441927548174029600346471283899129228418595710469076577483124798820892148926500159336006561279698918040795778546338322109042383232289343992750429781287483077837898760944176893892556942525655735265819018400898406587943533236302509163658261876868312498764833389032165124572239560134656127921017378953806919768283243401420657224583365251373431488783575752382692426648722090896948222597543163942968456086213127736084533965112164844347915980400582947978657245393487067248193333166695008483457841092553492190774500130204107844851187875066430777187661591303965942383089641561235766334385113311943467675096146156615510682353024979435444727787911500337314072868087594434863345114940403027572503861643101578470598182200243719862105848580548760330287387766534841578008661525177184609566775968170529386805376286542151632734159384050239031680362409726817352616817862753681928990406195382319436111407364949023088687497350880158383458602481567889409552624300443962386909547783079161988397782298917099154880811940332606637219753212059625133226812114672315934808693686320662070522817100615306762308009753619168573383523760032370570590665240943470011883084973649202119276369375886859271010455105811979408274952343850141257694146869672692372607393161333297689775736001857767137999163446600306813564687253984968232333072673068976276446446657496723785161055648329090850002399994866274074577019242844700384870536275738285699289433049949546895838899507241202069879390565016784215706292736829943936881038728256462661703705085887457779265516783548802690887570442701781832359689245977548920831160235615060569794856758330981218191480161093302209898390787665768020865900134567478651593133658796126892316469276864823464700276666805313028062552235538679996652247981994979052676991921589000534090161031299468523189837132361741508282446490145065397044638904830404551492768169970471366571630540844768737505035588089741597758435411264422213840929011711812982028397508095893978224289513539013769097868768990865726218090373615963815184397573463309017526884739069837839606280690044448805492398040853887236494152161242428259153646082384914658232340229714536420243892649542719668013834949824082647697513131499011088052950063226959522002207476936203882727462455111552768118620495644291034603658991973005748238621072510947866176734910605086302478673182351011763796687288156700584301788797023419512424573307914621379225930124456362145965597302375473307757584237380688601650972246072480665482922040760421185214364722044984508821969316097926683009907406534551728003978453544428716389478925733188031297837276776114797408750241860655808901466460986940679983115502353008792790997365928173125488284277462223341208278805393691309853360196275419825579309924676219036673752342759917960519422584383949153492127861167323418674469775238488934160297682331576536568315480074667505098972693949525504195999044972766839880311421331290634558797423420040890225197253930944320166295018898475584339764342451913728740979468401904894175091691626562111252472012427173917263462816815687550592426476418273351647329912310240306382713648842271728515880555343819444585469621832758878120707424354573498870500652727268937824140810883598479093495410039468386602490466205184180815032415764937697712504484872947694858648246672701073488606445634895675228822711518275448732975361917877597330929473256786957872512494304723000631425722492422682894301244396203994408908673422107589072565072269914728960308966292581005903813438801209498311047712395365888415856913478459431074101720906050575985579017335254061514886149841960904390165085220769334020967639975966969913328818560185334634322162363431954628281825542345799983938331809647654535852337339863792223553977955407854870683895492260555810810274856400779840536415921458916062411256914922610903700954225999753685803631555430187255767663474264813099699243985263822011123170564409745027467421097796358682454718259939066315979337017429734050022637844419300903038515462607996961212991553872869254511213809790085202927847657703147540816114738956473948102580430951213305277305002190594059022767294940068589808021916023369118302212155158317676523906891133745642289955230891490656534875478034317826784642327997368095149742343264047255575064627992909652950924809983115746444696280512667097501677407229895359875131277004447443931402194440218347737533666646211086592493518644291242132071927660218426616031601067152794004238665990237936999589756442050030609284731084055451693239297069719533624747518859667069460946095561613867324900280633355284099082612219724844744054220548153684852866754055188191278303767537584066976621781839323735990710432438450816606716943117255771936929593348117574255150860718964157551023073843138856927929962340853404148868381839824936323772331725859032781352471663812669672019152359421751704350180932989888541961073760153619972979602269992683098017691929819693437564232655784996115781629543930327192552825472361451856036033102887108571097018071041314981200417527478901295174266049626951559308723735247468515037158498532727642068836935341316395697242284637992937639664115419348921531679686239833133663033268506875124839347422543971956572278878347356025137686409151133221846969509295428034183966279399062646698087229240233056158847758158598727116417975949756997425322682354477437267888179679112053099273089594589449155920183541890849465116398475451932096622862074740906352930854157502165381529030082729253473893866501778266445445244815924230744595392729113401552865871348972844366510033183322675844250018904318149229053723833305482173527578514170514143033039451333710963616703813844112741538886982263001471923176910584240775370977139364015109567646992805091757675904431469417016710514763786604498463595047443927572232442812922359976798579108174133935239508907917776793672485720181751740940879108435144997132747374146333998457600096769808686310083705661419659832387410493315232002874103039564958683266035563003227784763540722249219642800903374775808207870330946175698853555389647236200728568784723723978534482464277557866066961274056306332352162904118245916226737960911298903955088711588197234020809535435315572888924912595957792961061961698950968629475424034062697698871139534823699662194716128456740667234064458694037638392611827960841801905876662660326010387153655969105731788563802905099687451382936962616281042269675861554759313354719872112228357984134405872262943846768582706778622449330588395321518748718080796224731937502167012573865071202901527205402528862497515487126153983230910436458100211696571217097964129498210660252607644176646603663664860682028460798618915783993045927503267750760200299600969919300878114914216900370059883249850265437138018409258737828119546779140471451392817865295372713136930349030031542838292742709136869093027845681134508825194113530774775985585667175792912713559926199449277687180959287944642926147668591278025919593555541044648580064838420721529556742965160360256269158963236845415007152456434367568039437856350875063178076801435406735020904591732423690620528488683637920586705670178345337420920197719153759611864653646475011549396096603632613410398442458287739372858633267659254675943063964809489439771449023379900805547134910686361815923340639109276342603925415772121896547208419426742519197875593534268371297743896150568831912804924794834668060879975907584083669392819081068468860297248744335333355460713387849336948984645272069287223353542951705736391310170995931511001513170194200850400143088866137104010110931866130970796339375130420125224000711090225161668471128026705925656187246679744844909921440614789172322476459492616154478871294868576777940179868056198192700219960285322900669404198145925314870097646772863157259358532648471259987470751964535385921290420479218529996667383507820829109759312729618137874617847244302955725053916410650923346052659025094486732667660303685612499122118468106391896109420300738017354546019554345027602546980544048444792204956308502706825234416331363510808339071882862042396511835873366128741814938013742525119625778652475115852857851968015951614931938495023849475151072145987369516496177189323565947080366795375747250155572917240389480760422919144919575711220081175280766106548573921174555891870723717633850709848460492132573415866668075754826043275371788430903978113342519217167648506742802544652404011584553572565605897316182131429186471762217481825568122077725915671466533356279308984496914752073235287931493143561705108268532558275582703932824837594364521694710694356699655104729201297704523418618636664597401945185810536652153442650483429837907571027340229347614993983318774726052059203254979521096598978540500731578449369775077381942642510598230703522180159782578873975892664257946080812632422520414053587881903668925743368967815049588539416069946564266253355699591089990720413441282890282174897048363262903329428837031168120386369494730705676714503399559129749531059743728254530734041869675630017320424016452458895140877679777047710990273478335847476997478546004810632398916005532990071751908056277695947469812263745090707772401633380322747548596668628484404647650613832373609381407896265202099513371114109347136191962979994687831892044088362003153969134388699699672818350361107240963177694185787199326197482722403008754639127946757052697673559935073895639667288819807456917553294284172974277412156668165996887311177487161875902669774814813646376871196563133303254236027922021519591268795112136603371964698510663941004899201901829782162195461577602801929269460894431343554791738080399982617507423987655034008698146572938841759819686769527035145808656496415356271551785438179703839315965285321329532764097278392018230262260635963528729945913026105591549587273007880125963626560416286280863859502246062210274315688576424851640858086179865080275446019903973371089079514495743110556626665533589145763124136400318627320146310100122853294412792769923307807212968866309755803153356050797426976518734251708553191058496269094053665949346846235572440502817642945126734798802424732334503235736382757891761982063106241505113080275194404860499143120989570357244180927910800332684955031820810204731894648248079065235793082491425820878850703925336501843468797312382007105526211335770119718682180553253139815276698786502654886647055189916321636956904370592814347212030302917068410059360500904828583547132654324145160728536620402626111404194756301794012995974573914143682254962659187223773499600259033164552889524464000259595362682990747179195176972953744872190382842955736451578545689710767180072863041643646743193801393854490723542408200663837757423535739543432254030567915281494016710248172044968143099924994242521026290723657300240676326761705306933748424512254232436710303675544873650425160007988287963050552046643685678341419569695798269690454333078413706761593608886410208913197143776830984172675646995307428741735461027018622372289982513811276380291370940986984513790783254955902595627923988893492064849332072709831047319532504273882511173934033809546392049919076894121198936224971799627028766281474245315525286864398150310098943250313346681620294343676519324272045410663709249756272521690031385678678330107542013604503777361948939931801921271401407617746795400792880402501479887359544993418260522568931523014075439002475516222263246046005601590426841329529164407464599058987808358204338623868697495389095120584629426934113491600948559106230440700469209611941436637040428032977359247546496063370457608049161367868931728367603956871678978347934904486833588737401979709134913754111120109157661040619927889839368368364017140680895426382180855338025410190877674343225578561746386558192371303449088468285186454745118827272837407310514807992066563655132781853756450128590538375376788361266608719019221205656743237190256648419689985529833104712422798742861476316017343560874682821664707992557250972307553488405196741246240275731518979218069343469054068797037678553709103097055766485818987780606993601233212335194884600264560055265352465398595812532419439628003844138784658055673993317030614937228599592423979936963359653484187564870778994996919319038965932570210038844536700476463364160230777342936888928046608262671003937777108585628380465445879747475643648997505342009056225728435466319637698575062335130606889867502486016307555623475137354320257480201956574956733790899995261573752725926686402542960126437562928074960760864622354367671902882433230665141064737519239717094583141594924907686675439440165476398906159133086474283212774003859385788683399425491498855132009882185234804236060498651118333675095229332672688977084767418584400913590180281761853015110514317845605531414404994113708064556754069838049935248748831546808278583053989483519767832902155550312189323499445904836427987585251944355064206584312792856513293212292711993283287988005989851729063468816155087860261463745278786019880142509453499592953772120852320071665473134222582554272294849414226970544929233351582977900196040075494552829680827719520421552242350116124760596608364995180080739967121678224157221352110767074626522780421595828778640663919437548762153845484411016447385818239617144900870456115831679242221014020121976271248767848066709164000338993379659684296670819829541990868942456847362190044676290342403930872720522669862774694828504893276727904050573359026853392876179380961842446777854986957217143656294919331007244235225303157935245170336842660893887901610380323125971376077984489852410143373783094994133634829511075897013231113577651765862013031733407654818119674774376975032452200782232387951314078443567579213590012953873652913030258495202194416509285461770714787216493622756135422031063062509568461744862528016415624128325697888492182103586457599652984913385655656734028741957783720846780633908450203221589947869479260478790150721076809111850910873006535419795142146733254393447236071412852347760957320664622033721037371562038588567469851762760238520745838227076812071570400305875761151431699329564017269195669154253923873020874941659283696244771267865006398514161563261225230676332048423081190719016905035849103881190352522368866680020424800550598819615118328676233072020095331850596626159631645490215718680623947233501601476757030401041219500304364438740202370784688006500516110975735127385023352853001323008612447099197238657379816969643852507940458231495895947342433149763362847915688313148239324773425763160062457558343838582489772294537880754264908166686953665749586747175949680268745595426584466173958262108894467183019214973532655883369185247444981755049206688585133911605312511661050648656436735595550631909213276773922355519599608524116609433206150070146033895543454946655461282189610117499968010440115282469051192060878410688647711231000865194806914564708317746337448932170157519085400637986401092769176269938455115273359919197475755024028596435958987439335748437145157339251450442814654916662974714086258369937982290742284034289373393852329614487116386401901638170725972339802854819180293582090307629273412045563685806760431143521964551128517187242339278947933889805276371440620596090622718105268747356944627149495550034072429889556545835234151578464989166351109714431529547593592979836460988235004458953056713952081521260413822128162848745308109077472257146571765159076225876661260502189850558043597892728080261450811129335705587203767700529912814991699479491618225228887048070335427708067200383214445390757652306939914814238149718865466892446940423175426960232229538955361739456147991415469273551152489883629182652824154462636867316387118920812379364640390589961835339082140606536693696367043797568308045153292376174440700102716574052919525440307169497651909266800356619178123302146793523267226129035661708580412846061190510444151158802863187587798866498672543151433447676781457777911343135695068859883190158796922463291580910308367845128414008056602243638026911323411895824087010179092189566829671090208598871352832740685229262114114845714204064535248465102900241594820311113731846975147717403289632684950328746782574901805509544773067897742140511131473677297591864289640100360206075104965016285286748284115542719863260358169477264732268634876354124261956472630892654626274616469283884686746754861937153866428020133388555231787762167535266131218476111485957477443159732527890594669490980071003205282469583926521602641191392014298693292549527757154082736706387764542545861099988737968081364274169379546437730628271792147274584459656312614931172806027982136945957800056790165838558576218468047734302413615100200118446135023405144766792692656614182868838439242648255352161006770356578442570465700629018546682767518426748528247675966608197050207347054556641321561736434143934095758676834248273084855621862581894681316137258948340403330933905428932560707369525448286585710258338555724643906760032332733366447993468636444262642629657852605782596296975868554469442390379800846897856457775756008069191327238097341046083702039274092736587622826371131730451926596759834583244160696863364011949090473126050255188303768151865428486570441762936441032566689845626306826368627574513457306936642130565331701363684050287619960977088969714391302546545149917179573390879021928813882961646195526980249604191986335508300660190093306459855400572725386598051161811644460193008650343701280193747591505381970181656175025090958908846379006193461335707680127594203485337563974272547511846875353257254839768005940036225119023954407021865322692235497812823403989001732854877059801538718542706529920031397337630049731128204838655334929756336332437553515386845930652885377880666900680200758443043359229542146581552747443297025998938110657056669075531200533830003958532281892489451875137376634257176154377429728885673283153266304693922926370841300027064525428929634754857839363672597670456032630048137560556521240350071224470177907915493306013842395550972554954712532444034232861629609696469381108930194392753933931679656741813930016281955916377318615179749662797881216140296552798610658713239299634995855038916904652829444373536755914182430559668849735108807608007688228969156658406492090686289950801254138451548160784607589058010618074904507665189031764513627647301239115712713658163362465615036491958997932119367180996594822135376506456383619996496812692963508747027970914501886355450280073905133041171858258629143858040700749438618337940214801133378486635714315790810944643082296310844628515222296861837020350147429075704165531479892017286454167340664417575584589903087120139721047239034457339760738967417370174790312264181199876782582662588785300684967080605641233869742958367398753755004023578968748185201497180002429188942205604102801044562313024230016782795672069193204311603495671596958740538370222343505113026905896602618845716099076333004291334030663432500510010866557452778862233542896260309134215769226816101012478255153269629012564511577502484643322928489618400283222640481829082082065417001064621292327187619605870961278909900244698358569509025376589069191764705519104699453469461596854755980624148720657852175919290748929521415199336991661327369125504365450059110073238888910912727356492343302588384566289572827217397137622632137358392205790854579889937436446166141961818579737869109187453011328386016771796522009034587671324565276257096892768348618704823579304818664917703225672886914928423001859499295715117386127391801161738700570981231377033879801579979428828546174999197348582007491106836738897711497159905879715806083619617098047361590607424261411935010064311542567102431829029016496064221241723826630100790245452060834236494889560243102018489242053036205695508922183672447220935245033391898011143234434623757007526127804490572546207372570009327568951481991634368422428940262023696406568884267097947079490070268499486434693991185881532166000767638526806977013980895827961978552257745685749783232761234682704907711226526730805580222344848845652614852383787065999661015941243648711335727248224270992623772780349572539048019393436615928922227623763557657725930998347877598150363901287652732307490944496702291493114006402387636257614637253870371363423310401565135253836609237958093190334434601740943059270328081900920059744730447125634255564843043850282684818700616469357852047479656040609047837878632111677404100261953856684188467997359493791589483419597060905157868180966435605736640845813959959370625624904118600822610807522589160901846577887165408726945166322075522745128097608850337024088921271064097313211720560414897525993676942717557056826509844787765744765106201695387658111607942440549194104941384295151886490386390577623956129395549682701434145026181032725814093330692535228379010547443965753920034581860325094286241699361595073281084570926559219850286434048150850947518417426274928652189418624493348446417835861230448670164444143565132919715735810631578720996276563927541343478351846431970196379952046917465514930488970083506456245112991937800042540247384619176097413726985795547781186713021224863343555832105323263331040503665206957245246627007365003540083994502892358859462272035694098472534974493920029720597713419359681779640197413945838481955758629645202785133438985421835723870530409729294954464546748667683672300444119458080804053323848611426148876967819753093343359829341775401632543344161518051987391042417139978713254161018079208166059493099763588430191415046928050840845452841923434254782580554092901193549458737974335554321087660602961309339789201576354731526108794520635935524211277080231877173920916545245100136951035249732877795025975115328983637586600199740046174202242191866925828124826610062038369588882530450458430870765782963156301770341244493009165039982499716323055688040804326469413409554075256098482326693433645899340360236846977465843299911085510364809815365818199541117367289574128637886428247163449266454218299626129401582310465353095065988195764226466859378330840045548286209641341756564791821815369051243146776078347009280028895787370952361195206474721121816385085296902505730763705152613841819989471839387461762229627194901730012400717954183610293687530675803828455275804668759846768400406522314737244042518510333403873318369734810825405691627987434174718583552433280998841442763300897735839167655080615446720771451473871965412188857236562231248158424736193567334301873091723974783758487876876602154525539985246531026851531298582916321624317413095121855239874426513332144688235519510789759165751159308950389217066857438459691893211197786387417023302476715107961222594323678337342019579047277051027390651038777767683736638141575203791331531188650428748118824933511414962194612228684294388843391992969605863280080132021480353439965621081462448835483600175202545045597136245679995065498906949310759935168947760124228124315220616351123589639646760219149411711901501907512523599471178569212702935333071334066096927106533622318678373220602010487197698303599813801535987004889672812044021723829959228335498341964579605625029408518825651767031401223065949749252729775996719475653599821266930592587259394716824450492901239231774423136236028109935999111024698449090378742943224986641957045343408103876759324209522151431826407191949836021432793513835214836258817780255890117591686879051661933570651414565947817795426573120562734675328744824949573218603654240638515873990670137541234625941321206064506433995458582594392358405843244232434888707966277936532146123617280779405778588393116883861421789287834527810528441922757617076611475502018444636676831405813789776839231179835811812992122905711562158275965329116007083756466898990868284805301833352501034148894395487128003915946207248975795253147369147761798917857852747048926691851796031194216461940660391698319357171086641601150613806039657148492850066660449119802562329015849251261826751548737386264834997557135941233645579822451539480336453938485150286985109838871051563728063803249257292648097203972597682616847305108974260275882714848462302675531445146355339932943710970479322215511999148034879494639332961488084738343550508797297289088548528220201538314310691783603025290166842972640940342616091340863711415754254787299130671592393633870505688387135867703471688742435623925188268116754189441510399741652344267482447897134216969353956515088558383989222512062588001159486806890187864127356996433649896996025868192422925115559239729717778141596024610854988615498579646868224305081750951781749567741946265118455717256037868269266446473996023798588553494885876976960008040276375729905549588684655463422535535104795239270717001389727783046226148786754875130458573060723109792251154107176223785344813824075277350199128380783712137395495875266514395514796459438792709304875035469458309495807676362270310746200700923971473197655634795631581170636767532867874153936194994316843023932898757393083021526761506162584649569842000225154163909590425421103939045537477889273717727128681160393088059733999106590645412154107938406318102091762528572000241271014436378945423424192223818575743926405587530212744432762291953649486302705422255611304915188121695483673964173096016844205653560027278936135785840203949978707406946321263691099146349825300367643664933249506439188800636961006334762199362459803037350886340692901481184894989094287278534649456114089678638795616377424565289993348573719224998447817451484795757661722826994255022287948883285555278057665399277320041520867060535420461812065782674293277859935690043372244139171955220332677409685605889902657204236333810924880510872265088624218328015627823797390409353875850941492442930227828163203267826384897837089522373283031907889713817850518871083934749534620394662600131568207814462309986681126639946126812419255734595072995136144528074085741907291756118533039041528257975224291955724365629048517445365922950524397792593365918985824693598080840731959391167073333433636707663764306843876320265109346521693060462603515170574374391088009666833110748487149967291130839280841920679617244145508277756897008646954391351459770004341972978719076934928606457199789882967569405454068468684721178213045377269631775055936336031304224279173797258434044472149421037022687447147645251701038344039624700374169101145260749128244843157110549789943592224985857479616391680723528991120412728634860185854315262402175183096862474489333001657139712608965766931033752195350287091462298593654405314937289243509751535759192505968413431771420391610296941493352715211082189683101330683796832053370302688833884694916133647459100862264007446673339460423111289046349067001417044771463473650477506759245375203277885605170868373217161229396068932159008121295127891546765266774325857113702517861876398188167548600962121478860411562780410012904855545633871576129311782493664196053760282396620355260859575497491684118100520656718655045771928738442028692624687744551278115928267021997855027671895977411002943362432300817610179266109403652176955063602592267050804567471689304724344102503253294145108050722858421153407734981626087359142399475709239399594830963364516290410262452274577912451077191624778415439306621992274917856135160389543025846863502191661068085765343459373623519735551927588393344528694397689666114747584780703279748446379579388049176563901208403556908661961481676674897001946264820337827464620272333308903720525618471208333869891363667767925999586872910930015366030919508254858147439359481447712902719117563017929394450111850104411591482578279877766917707855793559290116247548955905031283477640583128721725214637850002265897513504416433255850745063991276720914204106574340160211476680224669202270516278549578701817558398052412691239353655223593313974478310053576760202468945506308613032419253333927378310270059530415743310707980301984776889308378808888664236147559766791428140103358269566518218190273498828669091099868895029247393718219278185297195394066454153927733351873027692809914001493884001132876300393135696121251738709524165098527227754817993647285339587922165421051762867712211738248826521310501338222893365006682142673958977333198579838614213031523704961071890108228770948435412653891411588613381086252618268868836272465385508789158809574735495720145815374311760599109775850493176336853166074845071022072260069477156816992383814838461376909644955980557380269623253903545072759508064380485495787328643807687083992284371015039586349705750329836517877137557830539195120335246452868779186837890598270574950370982674117198432650330843449924661116147377418024273511613501141335316071791788590904728163945346294852521445970124431210031400465176744660757304843671728176614826213982735871424264770377643873609946152102386313180370532842013255899783792435745610882567091307734797695212848598546477631513695237083288479937990538285073035559207977804543931205686554938038461750865266482857427413921178345447404504685782094351262926534946906934519385642749620111617255960076931253658444351915886316028336094949490407726141311011702984567056162653835990936475455676211456773352572602953163705671842031148173721209981433257275850692831668363571401545224364534867794990140187347028037451798851302443351611493193711982024074084591369124242937123763984160878593905775822352853504733575880832725230367794384423798848134986738216717399283966127671125380228269591959792295248703382067620646238732759097999204295997106212549758036448949082472719333162395178202822624484240910660652795084788927933990950261393009360531106868342161773799062736243995356182890560841801143313923496297469761282338446335464575536661915310302573166383461623059727414831190538448809540564440353038296381170848110226168103864986240259491866724360862492456297887679417700735766630217954340910298984684711554596405766502573723537222341923822296084725625231992526587164511341858047897979987043771949953025163045712731474952165559567553716001411593876406469147855711035202264967763374602944598361190209638730109734643105150546356560907170639852707884312829257345826211304229314124413178695551973573060514205459253482559063045232693677033766662769122740302809479414251216406794668489387608594721296965589528710123042546440590059080928569364872212670302953716267891156743455057348251626834790864918102207741303364597347212949504439922834128397923746874432792385728914289433649751612953998443059847549858769891703868404115115753990958770277820684283704458442112629973575633214731843794342086273445968337916337228543129470883380334078458998757279835231447850957955287178387827966821175554121801852954253723289212268459108050175103462689059477901816060720617833890615977934021413457250186763822836644574468888196912770921133469735535327433698700200029651958562169951440430453826162092952637711498788981816998216437983953790762230011299981991432122372878920666905698540435909671509454676886433705462571241429186122334681019116812126422915411309065427680495936862983706668250655871861982360214870670898309311764587361769318627970095946680193086302357314095395643810257093575670363945317617314336642068106269713567710088746188757712921174679802600347094885758772171766704300827901725388120303207478501033354049183414243241924259020667145280758322248460670787246654530923808669850256792060196192154957979546131353325231508713388679487144097110782126705664638697786580745586612158183866373940383860202113551879359364295397711491283360013889703658474122310912651973208352837629343016119771480892420506680754924499049814424816450229103719528699224266285342990783887983661974252743403849193847466176785150080492396016357361063852908393759989093722504128436417873033292437279701915424144905515885319474259610062315266596277885781924110133384462486594994961915282772194208261537241933628265283362814379024944742023018552650521497857412761934997656601260780772891518933356469405139385114781300724863666255036412811529129882646525965973629772675246609256956401540737808481391030357704987212684612723943056710719543170023543492233787351304580303933244038330737524649433444799913144404918514506226881962988223770776366647865541146744959152453972174177804487502318746212382580588946910759961725466533906784020371177398752134730479067051089857870107294270770972094982387888754250695957603654335326871711425410390256166279518118675015761387946913560753018639363349946421185806910844223895297494243883085176078220751965902297705318790135811329206919431473497859814526298077590129194560402868683098632161214271144526368949411498934245079132153080780414820654391925316037279340940023797341544552871903497399879480874234797575652080380173514194765070261080273455726972398824461119122349255695414913290835565861708454744288628338469850470224045029606393308198378628787467255988543807121775383422773001658422023094193345932808313346754189159122402620245416963504937984783964005976179066196295881731120192046558280551231881747230154849007223622838523451564539400595085407046691994151158994148116657759513102066531834820220481946501625435805700098829801701934261438341586266323061920398494294746669464734113687121302736981295946770692057792426288745405959365013151037612969183564203960894477012159119636653266505666693383661606722898811415055887920493346182661158145765159732232057933529306863289858930836990556940194951469872673021423415543939559232666508666176546203860821610570235439556155055196981612837439646989161834630799260007725589838458093657734712154771705424314904322339318742318105881912522131265033447189200668474109388791494915963017817314985561538070742607437201994914101088472055047318490263242293222546293378988375233669063231506184276474921949898637880098234626687958169608828695641996969371512432915994850349923815440917369835144120560740716276793859704834914417227287317886088818491566652060277773556519201443023502615010540159256871438708917084234927846846771266562847208582373313800256631385902255230669648058067479691847266688226442273975473831921901591641501005035818312951680718204316569444782538733330567667782386961836929356534712690497452754756492670920029900940651675306866431639985684503119727742927230267530726712753334940401775265387839960232850636347397037768854829657761876974123464126496275635083594512442578548780795499526071480357469760994573805618112762793316697668858309238322405629230679436196884502803323834466355288794766535890271849500524852650046140409385046649840648210927290172115570658561480381664287184077088551308856138205112539871932841475743566739403911252368719131805392357167419995215106341998906774316039056698426147911441994781887754768047728610582834153945329246103552483001132526245697923120767125767607119267356745580760230977500356993694253910315736570160623314325859803635816676933436061545979433093087347541848248817728580683723713414223113044155822146823232230974738086328713061087572932652739381792816952371882515073788578512994036324058041294346931238292161585586132620108541364459602093906660956483313428686387044711203775714400705305972910673141628017079022564091913698327278619403345679992451690831044347269093963453995796587262298827672182766109591015580300379932071280591180316019237247126995182323954853098391611867834214063716420010733311433626392996835750250914131488376128908546921197778328707570404789865136829998731713098071140891165902464586138374799462678764640525606322545340111052458869876986751418303703452033996373194080600926861910355192929704566988579253144999412080442083895742488561451543195281258464842141207282032494565485877918868755323051144559557473466141519744157630180928877473316274038372337360635763108145022679616709896741056966038869448994103412792440182247271187139788754475514299081662627835991111369517156597425343119293427755156327902434149832008263595622073780317225923954456102255638382264747261021039688318484700067646863820697967582220366223317416023522682167282998604737108223025551130422060685599141765322499989227391777803133511154833407360345932303948937924218342064477365491724030960864325872759989355918462384292899284574309658874768260769885695308468925526682366875937641460440562290616654169715740248441146934988135691668797612674350496939763712320379558565574568498352271337423649229419591466444971322315780868952478309618448488085945751001502128013007064564377694049198643128932315595073018694943590565367528411527096866630619691080733905292483781812722750971278555184200632753577019994814572630956116198703901128682581697918038554963635310886409407137535326380591060414503549164436596473922254430201758261863640787685544392461548913114389346266297897732592059213389970569638904085408431317620061881688758891053078393292522450219536385124669840036244853613504980261821246611010980431628284829893784786258827463212875664177194906985643193354537958886712881416640955832721596687477042866435086212492478849342104155651386938359490590813731007274452894958432366166484657364801577225531302283055924337494756713214764324452279472213643497030842672541879858383899471978437103284675811055900670545902352528459779979014073982450578637880691629215981550229288305651085931872461058683602814608797720671088193138517462680166106370583582348307591352129652227839816171308504595634722535669148156470953855262292785424274238321963571350948332856309049360105575379605840741304255663570948051682952728976828414010492686061753457520890489284911353639844658125756902329730717476107617774411016386377176321938439627962132518003223195553959423807111809145544038788398009056169014616552162679948010775939927474699082881238361177298412274561206336455355041620594328522820612519174570617989965615348036612837115662324561068555540370393997626008649948614380974596336279636994475713840653052257867479492926519340755092265542136113759514136759067744836614401519519139224099281236438702375798268276781742183361441733775538426201449316168519989917830651911835386951129271397316855412167928175682662215361063252853980344507679029050484288364965470292907852083668537807001297156811896483186488398872141762091987575411773334658492292201197541371961489354254247350495499034825502425800049562608987764989116014452139359791425049297850810080022952896069400584302670075425057066084465071798812527659747776106332986245191054975967369929947237419683409420996438809857142222372165355272309994113249445793397555825975303535719505110547634856252562320325618595562383395147853962659334762555572869284622564822765969918168156602219917465550294825782775871898162303833895863129063787260413879918718035928757830057032328608063398684642329284827757835405636946014476298884056766067301361873917351608873075531503609615447334518933855406022166338551465480645936532900283645010008356500646109811047860645126216193114783068506920420414408417515912629572628724144968597830415725756841313321122116030273786399036518390144328275658277992525429995668961139362762960639889445712422161473896414541055498227846240576628256761062111570895462410595369105526483796329029823919230662385020987917190905605580215721439633135260138057449615996419511305789492768574040170492039049290820107170034821125328710201677433497162419912800679978309919202137714752097928269861425543562930845703211871165388762878122714496827599427804062110437367315943969914320473666553878044993581896085206692403772635858927791120076353494219059965799547484846398014958852383908527120138146389120040275218982452008405957486579296529199682068640695503058361454946129446131925945843016598235633798177991100041644320753589196973289260246713331503353028192612257620755822475341713803441461952765315864369639448945331259574123869108342432991271550647154417035492930499971676480029570335693655236977046877009033897957880877085002609379861211312718834300091839457664213220414751840301092348405207995327606810215396534552730694687355842386884232756883408511184422189315387180496042981831835534945059187608201052224372471141289877784890380966305624752592711445510599385104514421053555650946891141284207267311804340675227227069535993676130106052552464853156141074910331704387356667721705695516263208260046948532591072130884641925103826723240412643108333591419517688135592832503986956276741801121631144985987313067881092307431847308023308118745705958241989463574027862833582200908334722959639316747022421854338192869696481420056521435943918308683028907375308923735994578694355480477248805682616724920931237624414648915748651175394647110934374012143730401241840773592467589737482514928510134271062526781508339235538832208975448779815334979713869779755073481653275460952273919883984847157921913304982187800369407500121420973297974632024243151721346758077922540404682229385981544029882202384269622550916174371973314966711549870137456264213928545310088065559899131366946644026662813220533392773047002617305784730302895000440116453907976703341935266569937706539431925636725909120297077912567543596739679448816168771800936321153635635149120870077142588238989568055616280659130287495466457930146339229874239778737559982702740135224668794674616946120417708820919698861455892786379221953672990154208228281627739083123449104303573609810519389362799379365400178850041723348114921882212400401491343700156302598245057800165450990585597713370020590427839247496350672965388335243548428859565303634013522380847011453704016805969109787211014181133511990268365990387125787827365426016328672870225556353994801420684753972530880293201274945669755855341239909005293839539063939527802348817837675467300943104114477198428158739852845712308588165745995458710497253180946366104911337505306578400922965926559228387267201447961263300635805850469367272992127039338708924639063921054147583807746471566488886460708060735601665847123326384375914614714980932908194923652692268601743864488057497529891027349476270224625519283651579950004128009063787810600545050799908344296992088277694472955268904705155188545365188600406208318194903740660935386481618576151847472163496831357551134629918358117599060333937584373300889852814078179904589735006224202740916814627637185772370864964249470982774594972306260266889532881762515811259868682531630482226568159901983357535450486638761688566658350133706408322223036449141858734958267426446279052638572574968397659703776106226382354008353231790093105262030185221688503928698777460244131708953682065301598159596077945298272676962461207953104436479878564831165093430679433187020081715268320331207283397757189100213397174563092382344686664327829642503382808926678489939248110221313465798509030364159957627286079002559688965530389264457450000872892142604026891216210360811691106611601144457635243076106872000036932271256873741938724215662315829515651850264980384040804207631355553254223204768078367006917986381085833710606848259993500299437240957521479654178529480523870851277439668729691804718418549585582485930874949208165337916478497020747357989739539835616995810423998841780166700007705376503523778101647861162814100154366180827750081287920016484314042396312285846467073466134650396923753191528982354317644799897212239848582240175107041431273256841060333757837382027706717017779741043132974781977096991362386271044210184702981543225897947458807342528180647505126244892470920465011944575919585260874555670755546081495888141041658027430993764483367046837520815644464909422314071525086088197812453473318438319566637267821987957028475437751989823542262310455864968319209727001528248288894932443661683804139483610916844309940185571292675653675104641356630922078930667957821651288848904536306737410647066008893672736591199547388392314379734242952771211287512841709293630972558430204525385402683497299786492905873850535781659985585830136186306231175173383451740236624338479344985391083896106668614901218353040335319007991703481484899527729055944630668913269072979737641836782766104131974980173413788285702014683470269705124357350280631497468238806147514324142810657106811573286224471311346451861309434575054138403119569864580698201437559707610402069741059099886448573255180506915807321129207972288005816016226271033880411497762669115544119922975003995557145128221709740281170043757662718540090065865645037087606024784048419481592414121658448427039649853043872352052068111452952822245611014707691260001042650513681257925189531618358978360492336897239872791593815839771868042836378614372414239664157846334452958608050085721041530908265309278650550241247360607155528583666988523817487483447342168918771009181319985113028108519626364964649468063125222947409588333606697663622058914212000332177596889777724239963444278670293957642352397641608313484145264840206273673899230653049408728919548458963827633206761820208497840348900607911561930440907910181963329434430342117752864589003360891448492880662964124552236183049689685623445414313623436760203550061521957980251256686388501162370768238085430820168281182204050750542179751578765820031810627498148043748121604485621866358497392169229236043240168028722885771734773038779213866524101040831989789726223671970111419840221309552107854869673727108351807596905265787145885126032265559468603289036410785659515825969207781535498315475325709984780175551222509421115201329916794075049554399275340703312938573419715786834270563274848589614076613035910476867734913344394582563423282228644973747965921814926951260198541601512277002281019683114887815640910878897394512958667854440596523252430299373531208259109430285090240868615170746108431473240168969722461512717067073086661406730103043103192728732576852375609149720647181793257318170225144554563130344565176639578863224464659399634069460115277714997255131279344476579135563702179194109476642947756892465966339131524109395427572576248170632684487259277168916196943642915716696919774481168837762436126534785963770275692371838767194905434031227735573456682304866101812901073447253846010062966363693941494005287069311196091372132714899822987725128968015326689485993304798373493152129917002971393483195027544085787894530728825126911752481707231145614802892072472241001753778955868664497533419430468650346177510810224060845979003552186452233654478580013766054546522805235911331125882229004161458799120252676553190692321078565132931953934954978586474124926664654424209203384928100223331237095362907691695541182539741689681332317138266185647969232154792179852780804100229643036700222012248580108932532908510982019401961015784855651719383389045831059430748265092547570063763973643366717279352797049923581642227689434536606057009593542075208410093731308297746516136195799897171928033279544863568139492519419171015897038266661359432560860034043835833227883275216934093905063633605918126078275549794762989896297954665210800449391332001465242834244675883867230563964505797114182840831027531625297648269024310813443958955765210929359947803670845528327307537199476600591066454993055526358817568585975738823602467372684864707791864254852158996020185545688780832779153239865185484912670075387839117683666491600986329407261627903243573962714428909664272432477924132640394255588548598264409332347627960596580105920946096948208872451436974789200231781731706392031579524662860628982490812318076097692250246202786711511732025165019940743429621824750300155239216577896241133717151507090842001075091268025060240409613719886472187621888517460821558524511983031057871657159290714986101786238803202331938802851908240276190426480723812728231927089529696326053306445776339528515923521358728194881782047952343272829928392103557236251137546820337018245622173914128466206373530478796005852065491453880821052475873275101865657863493887554893790907473095337072117046056750056150448828812267431197663030847572856000292210406468263724213283862029903938999729785256869685665538111707039853705107829102276728876931887851374843680087020983162316634225616733576581659933206220087442607063943765700848442850730804993334275285040767738108002893031891158519976293346563998270400094783600443399347106494093503517818321945616278815936628944005949534178364732850789971204059161881095864982485883902983546945141993316426562184828790532884836443668632939562648389722084357680847602507131271604792256993537724477814952086380421736492624002405091269593788647626250474856756445501401812138235573295477037353629288827697505503095407376229875306657972483371794546946671525231060683883540539055981164594520476318100140220482156899400951701323726477436786196862686239195128625750686017284552237487079739561785264226176757357370619212956958424342079562243281528360954134650608011603750449545762109680365337898854766382419776236758353863601810613727313562349099097436098235131439065660344271158018119504420826787152979688231716996728658793410278201567701989893808576340143603326837443491453638821963380324994504261994427062670328061161572135256541974510842312823424570819230372771903290655985434014593987545632005249515108366305973891373627506535409686414117968927514989748357319173479425845077087711440273518034645747722802867799983401221505392192497070753502221944217542465160362411873698826059676972748052702159000802082604465446184186959764536726350407281494032084811864279639738572708829482622891254434003066238505583052883170216280890009572250179427581360748588726408109197016355890256670046466142850157044236868703789394287688963373469842983081830841069277897241023652725232403245012664261254351372272151277201128348859222180925477663756121721856215120040210659492442039720892250414563072791206793308038982168923080433045615730821065579755050348032601618125104279385909255931059599388869179594689511742328677896696764063406210517575018184565603813115687654107308357483617481787479972794236053818248638708401679303256699504972497765958757179931898480145713775782343064772142323102954052909736511647754617818088638274255270350356732827704938195765184554472631959080940545336378115832537600698034033055094019849363989626126672505088494255048813032713654510173113439391355102440579714365197788731667460760084431000648065255605449597883757617891752464307945841935035634605937409778454313029238931530919422788788082882480756465934158570250377961443677567306929400613390711734213016302072840496627765270707316569237329303221124213313397866088138515989065276394446987040892874465887186578320692679310705050505450782522984280284372898529987672769268996266405573438824237367754500509713849361796388497968790777854858769433728336737320872177433603896118127531952140085031428941429084922787242684094579523395609075794895248657695469482371231825100140916210463122002957176463673265046171247317946900270160257695433730040561814664810700104175165544949257653152327035818994136928380294702439964026035468553495904153770841505610677423656972578588290553495313804341578835024401883429712885158015317681200075461579398771947124390424352711055383296098465575952427944969074965634523481253343521493542377752591772223494534048680215247461979325543308672643670455518348391212711337009436217345474855260035553475535540654492626253213348505383474647325636999670550350957176559695289664092835453251676696762521240519125500010854746993077264297282149957594771996082057443091083488344006329673152795761986483547138762093925579060737747612684142619110084835200883358903608163638248309786733626724783615667882315168810932067824660674522452339669400324880583524132978148160731610804250086056612669050711598892930611474174176722710233454155584685260697325650017585892916123293436668506149873836767647072846190124908238061893803190754608026728574068069956849005775227692073504553306601398869585174603392730708246448472652424808674027104277826375480878913480748826019866823765765757073892776168946064446460196656313892707387946005877534324502587410623933152162533252481507152908162924288019523700030017008966818043113132124939750304849240651086862506499228183365831413668856693604422237401611213984087481949953311817064230559779296464598234996332345377891591751951917753839041177207517275705721275131588314322821897845580982087242294154456116717088663524494356241892406006673282573946108252425509058013958561938576673800527703548513840549874102674062380172511955075312304636297381712423400532924493057428561434545963070770232647917394059446265845007458748735400282101871508203432772126612351545420713300303929054184602461667398558708047993787326677711187108479967519831338826900604404043244900348535501849360903012994504902464325012067205053767626861458620832219347970627882186221207975025412590623678704041466582814407066492323789585260962259472106322272897995845754302199962270324597273677261916134134350301031886907900269608805703372985381912443967132481365603779511452096667520563872821631242172518027172360905622272165866252711311468801863149906608762011845905430546687269317849595499124145706751579855972580024297823563776126081020746316990767563751343699501756703699203269180223487727187967601746159209800375988053233034838274869352849739336371328842917243259156987937115645098885148103944189865137013385008281431453180510275477641690500881659315958067182235296123408229028277474800428623415166511807230697098446333516170004344204436470182755531151296738746726606478104473323054122139039631963846085591090730432208513513885829132027275383156953540696505074628431369116634931303490451748788140697679891261521365014678023718334218619137579552300917261236716899176615553554510489773762615251242942183373403329207889941737359302043478792768556124069263226349709964726405785661522337895115796397082857379939324367251261306579557544751217186222506383253922368890296719169793445480801403786233115354504563678356261557546412283436338189682853599818026333706232127592844613304540845590801973365657287363379537219156332468417210286009587456227217459624831272069341462071047040653512053536853162357090881791015264723906466978293368811188086736643102068187062889484594947071577741411179600333817431708292872510642217105321593440680321433628414052083571971643955847696473690937269127571328438698498451394658778096127787495068535165225492755950141385402953526120903717212853302223491544491300718525935375631174165781641208617019247765180125228426751989245817332528216463479849472737226002997555509760076680992919482920479430371265628520920561757440571358325841935383871469630991697289742700904056798779726593260064708096440847319820074608072849764171297091246652454720257382446727024462962005705120644242419745751290033536419673309856000686228505643664457038328630067476933327516495302563472139118111768657158142504070934724965738506285118514335838542406717531070036224691111596906859296896874502764734892878622427089236912494706786902846700526820816140692197445305699465993960055664432298590602705639361587710829881793941876913978427366846933789810523205476387390869590644435600993364818609654951849894514336022444464618228745216403305030886733673615574844304621430921057415323122948434911470526784130284062711216051716024251012575997582261258202934825722818823336397674726676017781290487454527732153469213104210279852562918982788276111711171143880892997254401057479888232101722318750354410502516044342072796734873196084597314899587873870219697723150593533587817704442773561287176429447957648231899946943194914576768227250126077991430950844144186014403848245453194089156250909239903843579781270387471299825410551388406994044930738963348962828962313326149999402475074468685068001842427797937425643790203093068709684241497779828457454132032576767259736356228133872096281713501570145338113674644645330743882815867724296463213649303091488136824400572914165944378869055527783075091490261986687601088280912989728195513220113216655994227290361549504698278168600031601415625361007402906623809643347970584428694890147688790368337823810798338990752137159670074184510565254801248664161065236692669626661431800311786263459861180117687937661224041222115668607922459859619620173593144601427652513574481942901598699707136674519031353429398276727239574233527115036451705839909587106019252423729484549466622225639382774084767504587147879284652977650496208617701359460928570489008564877658133191345304715844403510681451509518668320624061079053905069430572753363909694818906276305650408368943767136189233020670151015667221026675750602723336310089399819168418281419343025477248820139043132362774867712281416621272957930763022980032080525359087038900184241565603205865752766389914941521956135601860221479124645999675684094621392332031201252974774492687168188320589779290222825963645265870927417728969014658057587022798093718340858690057494470976858007960264585081156377650570710631573847226562077177185102617110867536586235869088174550938219808104054739095743194138705664074507752483985000026428356927054497601629787842726016895319169444245430731858363861309956005475630053200351856767044684313611868501112818488324029146488475031342639635854912979485961813045860378767165601362948694368341375008672320325853809352406631123801207686901142009683379200089646990404116727038061696210893488967789992349156406457039259151660373400789804419373450184552485023838731321685256989650306805237086992702333749712632048607078951477377360202095000785503073194853993324777259608113737440029985099780001092515353238832194572633790982411314150555551930262981715106046475807084277089572438532739949241857550659606272701741945363290508128179508453926009373838787676873371494539903742591921162068465194019198191199856935336108429882799109020618335576310433678842868467957723608496106067089049931418047474437866904496228176351861632695034861638888911403204832257368598752730746247461590344644332871582827353085051287120922572156402030040325633718992867398788940974431695105470830808337256632501738891046346190116644312486662188180810645336883322869372278516595574461807954048935116243218994145266561382013251457401697281644016382731090569529948977201362549433123172249232630351176141291373472886776432946562896398833681980165410692815367024062021963543720729381752709128448138478695047645816199447127012033683729882130443308702916371018904688639751958819780695111112062315163017611285831940831646201390431387034435398047814933647547887476863701417237460693186024679063743409459144473876883240040821679830438792723125298617176985577082746764060163204818855894793613159486000091260193945370596063605641366654012166073211008455538736739104382199295810958134175319023852760362027843879163490039262717768584096431044057691592767765587737552349820340858347678411924983594969087372623957497554442079175573552117112469116310787259266958956505657879818015880680583056528807137775220672048307754665765532820944704929720872704870593688447265498119522936069190181439814385549841389961695326724351143081470223937324777983287248156197766088377509988722212140786688172150782760790757622817561023456937095772034181470430855042410933930175543330121898560016030938589678385861440396258310014892959770030421338821037466640303533674063015528106035409931399139517238217544672311318003751123278693310630212443684843793032151966716680048409919523354731087132861636609338613636258272797838313897990491185829348140433232296217057385474282729357716812915515469535038211111235570190439043870512566891219114482712737503771579447698441418386384137898185314843215317314773956547711581507487905548306841691797012332188564624345137072851155226640691321871083110213679420406849545454531307469283504404342828114447173488504620229922383047487312122676309547240190304827765670644329617188181526693667397829424679092855069504297184436187230051428704427885505294589086860358609551286305022298062687819096951859426608382510654966024417907304816702136630170768546085178466189439064508554626008757789883990949760187124552476048455804375281895609195659797095041794944737364267840894529277797107310092894366789567324878611943048371437200348978165213040271221833705793949184378357580993815218460122612223283528858004060601137126739185499213460385325035557630310252990346842642344707177615764564801632789345022446581403637342544430367873065434903586706563598640711215536675503977778345022284982879888323274029154432784331439226229093642671386163460696837272390612883446560361829907201168369563541321312998699736941305774353008324193943515719139617702943359452874672051600400070489490933315677836251887761864349980106455717929134394415253331744836843323331735952432744054054021070263346522695616809224403296167368398582023605846731536952981052626078496139998176196838463304687828775093047489452848112539297086751600306510528911047604011648133556281181558903026798268588848069332831948466469472812127229787732951189093348246611800892657542785143804110246179350159183282993384258505884106207026861330954578792161022813339088638948775967997187619783130400862030491368638997393117080754954680365838943518498383324223860883484370038763021068304851335435093483508705596213529603102826121790277132247938179505172069092211809591162138773046208733921715436882146287776709757397339225523946971629639329269659090936888658047131496066535238231790245713821038453467253328267909353581314373516597128658555136724769431733837788411565883515157419186677440339085985079342452629938912749845989773720989915235080872311730007142348285660513028413241530473434406826470713520628267182642002482953273271360294741190171341570643057619244463391576904057302475226291904172110888183130339728543576253825329716008743151735709813009808939657294121305158398773482785413582696757079956249726807948709839855106331994954672289112869335939073156817424597550074450169586351339994925257154739154688428670569217571296883391790540210922844635480749535243361949069569919248049309837059169310917467857667501979661808664158937478499774761097871975834360900634836111711488175007956260697940990626181533764963600509750475505974072791980679618363615643748099179575092773236441433797783311077485541354033379932451710389769786984830233167419057124396632546708188037295270055049875032523073647665520679356574913461883180521472380386525494106295004430635238900094098944240713463751305257486382796131647494611268055229200272521455502673501781759580826760371811491460561672431037316680134103705596961285561860075087969483946651816938139138273620878359814258884501799618318394977188398532682562447563449973407368475498654765651878892132344722123173501819417774194529519410067905071315033651371753999928484210257119772228524613931509644061431006761420861032673101638639315586184503514176447574507178277522134949204651756870269282304879837219174640405128361191848773619458516141158415398906576446650871047648844278587032349559863693188941017156242344908874306552879869038754848938323593141389440843500850651121690348785716775259986035511123382694401130899792343995388754370247395327222746771543220552549470818367137861854509555262013313265619876843218629790504079532262597191331593703217463782244870053700784670222156911777938719782999817609354968281773706029919003002086220508700351944353990792883859490668719550306387636074542677498347162232402768052512362058612567599361968814644782046867248449894999671403366289297768770416017251691122679878458222967369598618177579976416082814848352163172663054751069937428963606439746223581356250322113795799805640861155706865652268034661462904852741850148734460978376891996407141818396237535914393984980897074752510504990809209241284064964796865663513851183902671630584351319546938581591418550337130903153206288849023533156614898880874597171086842089350806196925866225766932868451621341566930720520174011716014597306937841554792581674954887036074496898616887293553371733419591898706213836070209608170430559730658604812657523747365375472164765199336148759924998314294814778061905890383092942975920481309087391383270086934091762068168910764818079639640852154261260277590485911584288270984727641575909306958020003424763172131415604323169070452615317986787596127969355703288676409701420020940936540729787431888772480359359724555518411168604912134649937818077991116896326718013710713932101400121205312965952978826849055372511442662503767147003642472505978273580748774071115192766266280495398932121499857364047879148747558426619691683375456825847716550348470796143836964916741563690155854420493850990185346254243121505990327313015235453787293626782222617237495485704521866196368677463313504226546683875010240694240320514213898797511247242086381123733084737741098572339445180470382171704691156513147728241068229251940510086419628370653019815446441732026222878856197979606283992701701346063456057483490558499093045900494906709243323134388598023112304249011756955881779211335334420070575534117590735770314646068620019564736559063702839489867828853129770454145195638282872972199193930234969372306238390729886733133969137405374600653891930303640337627623012123392604522632930543540036487895836375949361868319101757776714366785920195456272724854700854348347666552921391355760849299539416441409108014359250409265709568581561608376143331567159565117372101336040128554584225072327660636397443106180698876730137779819775235103280819040895852670293068489877573475698355466096194553686265087735707807144032120995297373695787041908637290723078917501269108767701388195383464752951083875331708807903165150714585694529345642288537338441304509772696466705820637969232870485352908722475974808074237288787423682928041899223207720929289683089835563617899915671687780393426269976280354299198922459831284561403496898519394997891302407056577964195199723620612180570735058036446713027845088657100203685099550273553450824096373224125999460893339829770686557267662875623854434773776160015307516486806020829510902662491499189167104537026553062948844848504866548231668680617874010767542109761678202125800415815029789623425437590977082547797411857932984247895371341457312624028550325717274089210525033772135447980589852676766563993455234331423830198683925272124993736565045051521067338837710426622608037040520167012379868952138292049205818460093365612008328521447503412842487788423252537119155510577018958175552967749610616249555530125256917500186752340967071384429543651045256428974690167204191442089277738665121957238776127804213038124946839977572377624334727654632551683707162192611011801822763029655724264245150168701169247154587909111366741247011622883569451709478695825601744040839828720951075356033068739448437699811218789116031179795684809559662657293869527967029675072299790951279351534349035698700605353768106109373975992772589637769667142566827244768238051357877353368145338503490500019492099035537848424623348402142453366223361223118631798762672644564614501427104866510109624954980995968027814258771915912217142033137726366131879700118732824283392586881588210757639932523143653428647443024018506609522923601978361692845896818504197154174526630281195401486336044411304223833359809442182559715229677337715983160905182150192803659981506425364408498559999281370509902617364316605572582181050493763762081630216416641226370923162256418284904795778731662960970081523042346798635089787177761176250746675916126843469110839919203977650738097704659453240074564025502609058533986738461537479822382742287785405318754851456316660633464125353596508527729674385948014455058372396166777103032805479868291796817368811198653968541959439964630534456082104275061678505386558973216410948944300134452283747096341653408830639764086590511325069767914392979573316620531560160145085885744387911534667792065010813274601169891530167486005654572609876494435573770565728492989947678921260233141674717201370380857392709405178593824129541652694893806096006056629914041758290900775676642819657558234335898676984561183888014253585326647492439035253945173403492784958070155503994564602093499135238711254966043121169854693845752192054472698615514785037722276249896386117545651673955333767137491306528719924152137661738398681955776818588134628522029107789096264537631422304999401489192640310838571882115488654240158857718554681796373782024596996495492011410956082475113742988378923929120018004384417017003824459513205083495948479863702495991464993847885842394647030930004263448389533845881108924954713869961172661719702124158884883115109697710475827252093315054675118414474039179450601864783461226956503281737724140991498342776055238051865424658111335539949619657309481637950591020224255721190020378245734750757151307748365902809251932950338495009566892797947219577993294568607425058917855950330415933004949078101976511574901357715516013812373598140973702848522923397305089424230612547607804250837717175839500879913093265696397478192589181166815825117292115949032206502576543447526872292924698632680011722998386604498625713730799547891494977300122077995128955658333286687771143678286252012044880408216604661399168080350683214480997771105174491056305176172238457848136660105610937355664861421427626609338779250891068010103624706190040296571990158652520706407017464829658647932638430246796706897464530032675650351431446167474067876431603071294391971921919741666031430408536055743560394531310934022584125368228715773324979758472182293851386770867245561516821107504866044254913220879988106949750662097632861853828892669081568702124625168889800532383723738187105893250424833801064572524367953187729783214470189892151958720334448428420906753438501287755819439476683940196203293841013762792102575922257210934592835819366250347778586107175020819818790871571848647641066298315059830852020389403367781857853324982887285015825629283510711943064600821933775351524201184237754719836424197807507618173522335767850308998216402618493117499496968241913453495723753076056038423538131921738871346039305942943293789451384207973908291242927687248990868863444123744966688059191588212474345858853332778450970335262951031820189881850906344581236042810277140615342654461374611522378760014403493430951280197514652530351691623201464028039614059474152103671990376767088316419700518149280444307247881379845782704157604056644023477034325190668096503054154886169563924611756030150861630081661452357070084466533690534214872384091278315106808114987831114179785955698042475978236843381806355149194291701984051310703998485491251951252076270366373599485284038798149618078956190047978570913020978694612123565664824609447948085611294556340724330907312928355464794871066872603808681090064629416385971384338429000241975534232564123986615808333839249018632175982168087065152987448001783685339125242470581259973518497582726654587104393079473519714762255471011661844998283397642442611495752242231781533364182498990810110497503387775261732375304961775211661788115220318588156336580602979761981680245312860529648362972543241279303587933577588613062274051609684842843403811447982323796123389226799659614628914240144358837539270490335035127443306102616879205262870951616359851145727518782622803722047375342687242226969034846145175637516408753487831692879618414025469617980276461526202130048820380596949049526961616583961957096908932914558322376286284486557680861814634323147377778938765089655950708328237775182395477084939286577775402265696295721945786660258891540385465854902157684745890678558832259816938927889174804327781339314759960157707830503138489715420094234455428199605805347404950925992675671823854621735649217709193708599734560857534648716514307310120161092162413813092731431597069378347403550972552348128415090756684285562964500329161611166478685234412512204660535064725364460057222219114203379544180507797502645754885090795604346264614255298588447262551516550028671297010083403980303119073955002941166722970425656056279999143826657040377524091207588691742090894856693872155238484799481357940347563043904709437477070817251127189676987352526464300382848700055866381664304412067393157645887184838714640468179093953741721434786474545772185800928871298431264313327269799339000492460633261456495931208985007149194268634678533115828711535861784486548688244642205856336789968656028137785461011964281388661451995925294274871999575026487258981375284746429776252439865250185211461790441046599129542074820271226547178218754069734476122567334678108312420634304517714765486542107960335948307010472574906946193927298598009497681157987413401500817248155827045515074239925366628501483555419293581026557476450001358702254412863024701594973621595247995074032293928625688001669138404520680383970355085344949925172758607350879784813764167410587641850568764310527407593455199774214582526265134880615017298699169865400606750969606935405219387125009276067447478030546465587520768220049927306157572310491909207920345168462507923211888273028062534730472118723094302605980728006329857166376108968408648204660016788461744444064634558216614484955320099127662574152271078553775290925953162541806219742463663632508486640527805017421936877678295651703836084434516108813947340252412757315581862768846897251476784003514514230069312863082279824041282049405706593844844675148406899360624548211403568326659653683895161180779829978142771472102066101053488608189495143287677862787549595612717775424785059888793586060222539389355514126152349970562883322004620078000092911941387090805569575543036292874744236735851878326908496041650094146850439599989838833693191221926892578927721406138426585143656812929389116897342816820261484788060642525645198758049609055611982760293758778809465128447195180204502814222141833219411910150418794166567982360958456069051622491281329962707153669700097349375172540028636959062245825102609248641726512039225700824699449509716292549770657948041269809121272113881708207410583620016308650727244882068190534888517808577919705423954008792446942006138571151038303470545669738231558661477038338559816724330339477766818564061004808263456022741246158743169047993820614347668113634560039220425482560351410660116451867735746546730943929634210783485112631153638722470336319541436082780347080963459008692989768374904775995333645198728296250307125208174578899832656461552282348255483903976071195553395200103600010393689798696779918879378724126025040075830884629718760694107068418682006326952674051757996159996151959259318440040434378991252035904633487126288905484071531981053369043462095958168239437345441147137134358865448446780197573500585747191384446285914139054881819164792704328997998160976912909283904595386042509268673090946990583351026640040937112471863040127847268295917442362192538325409492000622805030455160756254998865562599747347119636084016150095754192688696920531717046168569440286873951907921638708780711989011543701643609293637187344369840872253159077163655615151501147302677717539853864844177143060022061606323452666538285564392807342046353702283265458141220367012408160988430477868649382432546655916503594112160184860953852913012967584433725394463039635527688732379705740933570492598388611320407738308139624844829160107244022166890104299039713490232937397169965009450723278207746470923477133370279078270458289423608101118403266176768470068230587402314597540006454539166453547925199819860456774376925105362588416500594213506583042403497011544166432304286535621645968020961269031195100145614564951069311876875614079462300522939671610517383300574568833032434204389841358147943277187107250415472225561015484406018978550722472306546069858238365448909013143798027407518860236237611869656856295254888569866351017404373394237802205978808457612846445614848414351553525639805010652399432490100918903203172091794481747560615112467775793525118463971716027813812276694368420774005576515214660795410078446166360335066362387801875094288092549025234054940609621142275656855333019396289525984328748749645682531308763778871721057479010109217611390228077088839624464780622312913314005467578583512148074501467218569936324512291012980551451314319739365216544022176988472016001607271903512637118249256159036884519006525533363172925473913301916238418326366586344251637885085823811454054362317539100584233525364754763102960546435696514190941950937076573591878139785601338687296232259557369660457898927453721872948626373351639688909558389489880610805445829518396708430142443740865359288950132342736897876018330986543712774938443104502517529176106431988691199882373769123855793546782372856803628439516110237660434684324605773363753265357758236462682256763568498824264461631862312648676424470612200873592608027476197453296159857576748141250205631621881443958285863459487669410048025175087503912851356138175453240155507366280775398758510809715235836061499238245990891178233100682142830548275187646728118273663879579887903457714580701009749474933787668175489977171660085249488339371810283408049434148716183220316890238556665712770195308361404057981580088844403648074947837829530849575629921919615644540495145931611599794388662247307082001973007531772417740277296873818085791825760272244913385841448940080092879307794228440353028447323025319629026010948849294264402939185640313593456322437665918437804788059015112399352501241402283437486755501798459022699633631221186797526503360996308218918941063897971319472249915681748709765203340481751038456272197825651027823708557861318056340149783101895450614870874013310108954534575603084812281743393639315319565333292593088417806923285729135190909042111835089720291883162529773746864007982455441015557243083875116328761104004658539600855776505593420496114354259133657209141530360878497923054372389827383522192295013552133607231993791467225220881164245899726478584164980091641127697309445105418236598735806717543458745826702951438739288236551810345574768373224678927442396270891662970549643950902124994283459705250318934203887357167128074854086641462920416944718693356924088348678253371841121120380392999982120701924731086649266198163610381091494152035844867836059917263168295414769177036431303596049823317179014556416156412238392211004294043277254689395892518401218857612135563149140049315735825561848722462101556926425458778588044852952128874636904124836118750156882258990921077751592427845154131057454568876763161285037642053721334185947605560055882087694036937871632860326963737915061437174676800178188468036841324539049759714464685203348092201851125559425835072667357233992004980387205936398948148227936576431963324236681309272498654493599106752031017526602936128972700816319091964499917736245878054952427774055048691298239739253522934529609632605377234583537590696187413561307937652194626892360439843618116956363996997754566947663441884986037568287743855874738417937199537270494500786076671453630432627023722038492218014488476014145689519800776797639513495701112745547712499973113909165207266268828500468864624345805764149006467560618316551256684653509179993565573573371084285124766949495315947463948803417251293020718300479519393090455159649713625050466528224754102805057670262125787633834388525054999899661299022109983155995682709867014673452094805620710129481869178576076135468708812836745837263737424451892454917209665056954936660000380272304198016911828601072781515439233226124177106741443277044001688216734860333358470018780398092015423720997610696565680448839437152291058489310643655421909644812723146561056991720408023514287142680648798525093952070765582596406054017310103513105676935623130798829040645390664736822794153542683232676500652624200005172014333659893130011586605003444580666318173142928176611453291925952913826477213990055067914542193508659080470110294749809174375067278985989763605392940686842388263977880763072530824744315381556976806201313107553114401636046947616776291207074723270104074221020519103259730345891656049128701997188739025529427115561921830965506185620541949202523833575041763301188018942065180842113803230233352821968715447792286350419825239656720056697515011145137393665205450031908794574649639001575919965109830517767549827753391735050047485068259315956216242170132390973477077997787941789791387762789511112728732818680953390584081065475010664527591388321921995282005483957240896442923642203640573931522625644344334302807729628009015377345604106479382021704599346748596615877109309094204953171332549565126666159660679605044231454508517804819254663981867518356670006945481436651498572951287527520387107694285785454963568059995145528927061143532920989164574071181854119255449036124174645493901818030448420065318727478324317591134682753934692483195451383157284012714841821705905078290760325944083109248371114627831363434402819401743529391700618674918873156421105328297924473449251670190407079465012459085536668196307742699891485901385678378121783851535582510528905629773382408067635517786033142353903927179301083665663247268251050312003330143534977091421341284222991803962825802013146257375622436061605171834587523964419474422343593863311696949363227852184581636655406771134251966159550022857806307752256979473783343484280094836395492423180358023418904915475676782988465270434672842443522612135821056702405100971061555301112967741162027471769015374018546744222874909987594112280935686565444027270815201171736085035520262266590965341405611426886213663184230549560883514246420573037343125827438314141184648744353240253928244049147049937414811878901608991573683323439909535339290433257251598405123860627778580053970752849356276075866673582580395282135255749236904681852060454500021160107688758802282374236428703416835829895018974701580391905573819155817367225694545924034556738069068870155801979885162158199960368022897970968239258482664005736402445028649216797147477271730788375426999411450510442338257046016579967853637334090694570551028432918926506787937768209442711548822328947941851761538868780602085061134052798380736702275492983209819536576194011970737059692911774410877645108701123443845432596425632343052874339462867144051074703663855156089619179329374825190114189029672499973102305616153367382965580674588351540480009630332961782328389051106828041332111594581314738770159459793943311282513423573009401991477713355898401036132352834553107206718163100217561327235061052004129112685903658703575176343578914822752632375513164020684373458495862217314320132042094249869573219565618209123809999385091597026946615727154119930430002227450881944150848868201739767651979158370420819030917718702852806746856548703419534891443158104843416575461575461924923049106037594743553166075623516903034919397600635176588874803542133231945119912600225670185592923250524731143049720365356694406878260237809103922096213881614180056307309151674322859845927037909368574637439985721863989889302018783720339631341798759057477256457579251408423750658081632828932656422353622503144050770759902824037839484354962626044962478139651918676246184935601186674310983267614884914353292685576871094509838231843926612174531833537650224502619072700728720420583443598372812321013786092613199020531003529953932375355980990084122404940361890666805849654990079748877637171192259289999425735700032456531234364593003273559531122718494031532358196610363244463341842133920501435403807270753776112281306457811545005799991361252143353552697590205553887870076226356525918627439300325944258241948337758589948507474615221183861839693477934324127406141342228990351435270618336596202090541998330219525266411585600939993339910827693830834262693626577775114053563537338457489964754277582906616918179832918551904926754703716337865861310012318250682500406847129438939810081004739866867238586665678889603802379495325104049404868994484972609086475343873486175547251826962111181473217097994999728115599550040672953979266523774768416165093596512044575615467180917868257439095517796519661847249753451629032957448226689862840283598918749801473963364117889197243567160519944582852903827673702384750204193967904692251683747823082090869049825642175807124269550819929714889441433122969798857248087325596505539668372461230513205461413943444464627850518660259722090378223872854557472620651451399287182887452634493880636189445677451071840086960985997517721118955172967358418571733902911969841208879340885800637169923803908837841585637585888179194849341006311247768897004700666192199227639921259408801556590651363627531751724048051601591172376651467044511325746232912167895169749403162869470980180088524797888543270207615226251464167895544652950776975408924661461235700425830803368863554027650494497042810369708734360337472632970272926984143064904574166015719923383329033215508011662008772226764459791103740468924044391517032168081194517554254786894176360711859238114761025902383054251976962191014977849818337557929027802331820372776911906680180818996347087768991644428485693042387687017398522581157974454172790353310071227774705541610238823899148731173887735155234128887112690550142922845961474431090647943403112717855807259685844937433517583693797555838686583179798174327352400466985542507156628668622597691945373862020172642629314878666513062595011575958224292350090895608850209261962214642380803723806139568672644192421734420804992247335876157406294331152540195120300831586441224681755329644744283748176295084274016748423210300499417614878463379325649980107855829163743522792826996587501008887764395376458296305230696315808995292898316848095025187980764531407849121400743297271682085644978739206918915028168372730469296744052612796239894647758191213722897488312829044631198959336562218151546483780753128301360382333588739911350658314399661061455770208412816393253541042590277700646859232926731386637169461663585773894745622402525854748247269302548581710639277809252291191940545968713481782894410085893806673111599211302818934939890210044053367586317838576556279942147141288436304525690691410108324629690855754625455608370482164612816775389536349546009852721316845543469108829836900017737556869771740176147965930141153811051659262034006279748605894549675718961260349127981577420330643390081749685500533640208611920082822536367048602482333142263684785598514236740552729571369649086722244860502395205136202101575359037011771880789364026249299413397615364253889036748178260676988606967058129577029823146129458076775615923042567485778213300350634321591773982483093955980327058416361469477970633815474509857574007946386582736840071122517947786981176855103416655395204112929991412551019945667249876014100701337691330847856958408470424591821497122244826192233076970869446666377928696315205450935051861824019115083602645286283134305979776573675422025609996964009368251545384939191343104487491396201577096256594500503568362093493591976115636804692226582599502222163149416100755568940491379113741458422959025268670177790253839648488031849465051826041686085958274749267133805905914633183869196813081322360374082814495334720765228993837543676348097468714853077669799472213800502339672002391085410840940482814925021186252802921778999264362303744394983641231004838374958583687614666625104526665921579296834492150919983874130529610123648281938187669475671492308527857159904255919822423895780394095856262547101448202255588887430954771788704783109133103472725642706142257704750673234147737587320676375277994514771971214387830615190644245259192707474158766057945531268066510288156234873253460633466048176887237872881437497815394976306557018119546799903783288199796507812220835725932859958142373973365128842417977727964871083121252329603778349276540116181465531349182449617651377162778019819132481279219253478714851539852062233652931124638747489285270389657139884861801936410303606645357477656050419495348887180330649231231696542079988957742660455803678510830483469067166238098458560554594530116708754219705285605859248526454539768261744315801114074445455411205934892914934748800217271592912564347068093456885167014361551179738254645563927793472681087470619212613031997969016597018473021636928220504978917727846282816987790661960826199694233622670431218789420549136173678480546198513072999151838757879839511747648478608611260295929710340415222063812620804552757700268451542671978166213125453761424426100690285294953943686930627472757316852203241878421147996067815607058302206201092926790079895058064170348200578661884192804230903355505614664247883334099022602255988660682817966047224478055871193407244018658685099979121258507053357338552719119535228202774002264816755987201200741322125883092950014483100456077350471787069711950634879320500400995999238666177023151132733887588138102235187440709262590376387463163327388051732157305109195912370127361811061324392247753195676385208766488435471496761831387523293166053563833801507783481499591122911230251881078470331534566847789459204769036355853958066369750797064475146672373948550460760466126448595893402274072614635406784022477103907125667245803096339727447434034414798754912422993920852976779861989089917781692621395572827684521755256277819380082844394286609087083147596122447859135892770355853252281827571831786898911333868295494486508694868603668625245101225701871454599833693477417909388136421823021389050968469171560803567523289242700277040986254762117169834426664552975313555930976222393131371855539900276700311830479592833968271705616637260568974542500050840200913983211422936070052561311176570023194118884894445012441346851761648466977005842037569749095099880152380843214384259888691226186236741879618820593659368826518559458394945604867540798960763807933000727588340054291298781522961511667464074552822421867007764753560094133452646667122830019343204220169326160998368978989958732299394352059807969530297120206953645122910803214085704382969424062600788882930541564241939180483673126087117564231310965972861155990468967896171009950134023147871908869918685608791732445981827523199293846765142655796083861195205488650421979426289610463137362342327077082607420005472973044591027368680150715089358471351062124652006282422295540207730190522295344902810186751801864116641139845602025950824152026394920225150351048775641781473639359130016925954650671649326845756124864304944206279742718595373686610478671348806556128197878938700745607411983040309030210956017314164689509959331081945559431475119154432483221374998300687071913199167659752686064818977849002475752718907246003296655391156804619921732359010810881166507273449606535570769395883874242629019408468775355786476720878383206604992000175393690432260043035142309727656327489476968847764262876766312140717562982799220896077824783713731300525183815255013084288263924567220486529121638809972633133200064910194232635241084523053148766204866344834632787120149843376536655541479533789491468530703859640499764669046223934512782337250047842570148424334742535177749578004481735427671013279544324938898736759160507892611113883378792477583353286431387461060090067093865094703536205015997249836726492639133743076158020207898881150545883061583231575084112096818891969053824044277374022341952326577986323967612351580915176593249124218254753104228110043063989720943940223589126488022578862207712302002052120922414706132055483593764059676898410661601237182960272304252004682354255574216630192965134844323730497268422721890104075714560008669613465516772423775241406007591954324465879658645875082888464163641849400941951184433061840191773192544182849431626826083803925964540581964813236977352798799914185273083460034848329914709633667466353980008273809496674300662979317856150629911243450686096864528840444298051159191582185841122589264034516720987120958492865723890195964709992840982812935815714953103932913523949864750308964437023363825800400565335460589596266209148642983380611185596194030000246945347281789057273387302411376892334457363548253438276801776764333778597035642680810012659325259798424568020207055604003138917573204746894339622391056281059822016367663118171225072992470730968074423991140074147525021708170165120894230418495350298761444391239951311759006334582058029448035856527349402795088861754597259302099779805065182257678134833526650965740469464150514593088209613165800041726310773713124588406625351526268884357495120461602069517686120006165573767669802858540181609698173909855288673538653085326296005934750249943616034944407366782904478465722798306024107802172956559166970103224924145618858015765394742183245951013238846779085368090691843924802451074537023683544694734904057905944142144276699612013186917159041412806804990384517295243516219063328083900567163609641582262376055852617423278672641401315748416892212638839708389058285170513335477828866507320194315780893239555565467212267078337227459801375584891665998217166811284110364086782652101174911872163152362911211280091446954618777734358409648312779021071052772806736802947763272675432542850036843257901302970961728287197658511348154445825372325953372583435046180740207463340783606528425019016272179127808583400589586773307037688702993021802682152477639024202255159123010212528022979425625732641268354910631918474088408543712566813994760682116208548342212958130663620313833425324184702225661407817767438199980433952363750673669209230879794296047182731130090879529794233587779041837375858138305571830651765479503543338180566534553122571918518990282432105810434655694241846713720865768066008184684961659807962021967136112527483616033932692970134780885276850162251904765735648116599428545404244797518651930660872574204342714294133980210348380118338660500685239133864362108666574356924016241695678593362500536617596663719653532850091139485733013452348068922003688104318869893567473186602463819551713194660012542280951911307365236570866871573701915315866669221758968381449010917815148062524181730525357487882145233536344188047418239278732173704253525308674845828947211538629200826336544139306928899109166132536046705260193102234860971066317407469341695180718196846455487902373013500807052954731008261905787893340223138852874482277467529296638892702518847002571909692789895786390595835250854160599584917555726613094291487667686856792832566147114268733827173291665911170396591807067987663681054125748744424370268383273688544044017378111162612551268206262969021602363222228729796144916186914948407997280887640213225249371217580044459945825396655737892341251903126249797762742156307767436717250864229685715549591532221703475046877999295870450327695279093850582767506687900087022895164919055354689265966688274286969830566164148971208529670981455055009661560177754691954745903525771294491024979429387691307920840902940395156886105033759839492008393352396592668614679501915893551997850694238792634073775456268983814754765937761447661439121220076885532885072678002769489167970265143016920858107695730921866180195535416032639831622141311522476471536690733198721969112511650346320474202764038352474861026783558337714230712673155439459273978542575401015426846405677607087097156174691175462989001685158151387459342843261845993345550462569608030539999563991213625838569719477715990264755500429627364908867123718676108576674564207287139697214977838910110287676869805341082140922348325463114600067234648637881499183682737279781851204721034601817964821694306824852810508097489360480667319091828279531785868403899707257037634364698121155562876799096241408121955414913515168058742580974804452620855158598461894932259925510410985575043811743788515760775977674683257615062204162327767606792462950947567940998318487620183555933986653354399974537493412565074694129813682961989599158330994016043666185682621426734110991718684536591728790396171210047912712681564455203944920311342991762901325504966836927679175413971640216112965831012155719608255101961950678953085459759467350799818441467574571073920761424366237856465654809723888962491284334380144531891128006034854973889829150807349968076880208698291695673213530122545589008055681307550461671257857296912976633572157624923984816938143217003413957838993223053804431470011309044073812515097020531671269752779438461465241774368283193177724336690236452301783463906213195236599197241220731482351888651356549767357147645157304827275236683089470390197228344662223571101668380247706320629323246438057139464242863749984638086610247125067400790282006599596275235032108644754531733985719758377225344262354825440068056799538360110410487194360013579680684189365500399060261095870421450512508287003378644508355959553695038573571335167713865836077499607877172602973375805346392917786097618886984536704592214873411827430581516799773866167636567461680578182268688348846318143207267352258115769155465165752638079378304260121372341366369670275087828795183023740917518758040651260498427338131282503981256075867284305681419691645593146025658148496315196937855500801822487369571161158777538380657736706681799743516289092770621895935989623193377287379070669453909878897254437479183377450427724162696698706292435979345022664736723833379619436668523254148783394921099085416307225108451512184464954038814638247220722097875962498377583389759047942899263815768472870712707880193065451655994794205679235550689834260544625080862896828336731429850122165764029057973460007242399774795180828419406246335392494452246940853452775420674398714737226709714711714838865369438119392184198023297121409111879345147500083479757981629038757103310479129681518922379220663255885506206826239701607037188542113572188411540468388893881707267119102239975534762467727801628463387838821486977837971171615188591527595024461298122192475883293518095314315422282871388796091663058466826304184775369339633928547395820301610623274991869297901005913157797276574226626048697047090680314722964023305358885426242484532569894672449925153615648025133629158668852464919136141141182564351109331219826477412458449478123947291107957295639198027830571760535979252647839921736802702834381417841249605967136267318307469401647924261068633583442890092684708526739908130948494318993617889816366003621226611388060176644343825790277552348511497644606762914852280101061540694350835768393872850319704918447533824414730632107282187939406067084221979284600595651413592260101060570308451062983758349702711625893865328961901643786746823551966434940247521615220236332791603139692346645585139175950719725645145950150831190615596066126060757144803040436031592407484901055467375287041142720529982333510509743860764905249147054617433823891869558709381511732791446905700849361842796750117676345828668701946688734004307168019215217013963858058025013210081558384872863137450386127175294947167560060384116888322555014663272754688548698891201506400471226877687550767553303088994129141994967793135647596258441852048106140668548342309832850560107297884923160574057519795751399722830755201455326021747522151051803502569183808203227324502479890324047405788124831968372762275323828310748780560608611983280930640991337731007885008011034381774828314307438564795848848769309673742722538076363930329452693365047585000570115809435059209259208319148619104362767116808567051504905556707452259099479408331977240642905732158570452633172424108522215644406754301077838361071025419732753176297827376737447396995640645788490835871425018934920703110633156344080878555374160653072432217851860933906329053033268797494981728686745573981689257417875887682502688298630324689992791632794324359827718748189265765344587582996187228994705222681317575676605606912474407671331024293218645433065886627815376776148368542513957621609292912976456692502128738505882368328752346152389868283125727879027566271262798125879764405999534007462665822307914568781934880948288720913919746360787692764020202894749374721509871871371394042746925494890656244268312983419673501640515846693626826778708592435911597236818805997709082484510587765148999189599634402022913549555096586624328647039512118690873764959114427347194551532670244357365610755326692822026283289963129189908869315515150941823894788497878836970723623103872987846543739493232598039760091159273086865287515910824251155146138887694459882374362647170994604844753229704494978593542341957042395672494414695035210727078359788002087060623047951834262828889852927201194053632143616345770958135492345647752641132334460843157467167194758187489876685242355432807438951980438913234018694549799950276987549025321588940446734774912527677306077402523283607935356381701040821955379167451836567493235550060186948590315452858472227064497961797425213338331153966992612104656925741680026984413757829873103992882510551986860661024004321763194116843700107928132590182236296364192124448554535493023474512220814597552594557124961891891015256151715320750092291947212688880930171928457412069958599749875256057728970999456706532519701145880970427977435089587068441468423990461658991763255485077995782705781468594222780994410918675102834910623789494688170856778693210834087244120647807780304508700065328617560079589864745550371675952023817005343550916840314388101104119547927090206912181277966703850518207628787055050645475280926709615054199258657997110513904963274523763577961123001792096382105507054442628869373005035890501627021553572046555050415729850446991153812207786779887432918312898372218782748126787588552636242541860781107850433546381527233232756668843596795799369132634350783188699134373007284125262527525498413297329312193348541992966852550836062003935254461608087548380497283253579846858024806905315395102155544568485976863063015917230393241405654394886317080679789322368330862744196482628932920493300574084085956563949990325295418884081020023668452795531798993075417157774688768158634299255517215824318936748032025068449882926577644806500003497842041730004334037377358012276836331070791576521818815604048599605126084663676625533664454689499154223924843756933329629895522758209241315880115162379118109613235242953737722376561123399079497563328166820771430425668283219919639223667070640593763961619930531595561513646336643093800941104072506527547423878125092404880139311683363021648491809875734100694403553333327288489980450901973448546071712868111262178274348462262124693341648635186115374699512337964859245868347873427128215043856956525720196401151802363418700556149056208629205310488199194538771776840705400978525716211162405270163524093852752057245550635821385288773145550878099793390312212227396059655478436167508490351782926134112521744380348405327304419151902693948292180650337712030672231336751669244826166155712667992441632144869135480246255319175439307271386418037083912960013586482384500290681333504188667986407036036065349439251215465809710153484182567180429873773631412621487309431034934095771612537183104130268762692054779552009653075774303861796564304564773630643981534429413645213039524569319254041925904171387733602413057096095097303472858368882190888346004347457902786531050104182709751542951020984779164690456765059356965690402730527144920643118871460528760650945803199256005017769468906958967493130449233036425933518239568473759968987964258924927372279286239656581465271113263754502236231043804755958846350536548296973328221388918578378056280545081230995837585456101796426882039526500392743024382182573700006085296232173897190671305550136508385189990997109434351472872732400383866204852613443406608410655659822521102978033596393527361038192632245678626435604529889981687970788315985024631628892174242668277901013862019908897146173841559696723325822988156263262829036816132458039953978458314317304013342733211748156850633346311686244989548240736185258448741672466655998414594260540615112428015786199720807629759694071417919161222652868428116662873451391112643917259279589331815451038387820240812033278669556774090929857116851317915781887637126077649912404825751106963269876120755156855322699143985204755622888894269902379467218379406266297266919570417419168140529367398113100673057011600396944541530180364657632267288434681163603151475952487322241528774291562002842577003730659006179128930584650884533513003559420307590732344120953071857518433980239644581764428964677441711836144297167728981494099185905500546469753620494618084504512721147689710025057144015871915645085130666351104210081600943508722987376471626095141858963163673468350717231285968626224882599630565373040846727697288530764822305085112422224754211516217645240351405654101621800761867008558100659996914552360138389994089070383075675840227402592064025021747329003822832531901254657239233168537929812221608618227419110288495987259963896810523988053738699922183513199528241152765837837325189738454448363032314316504954758701844634378017291062135198021196031000131374565786415224511125786706500732964191951482591745585473284073740907207380391919683134313146470058613547434923952461610989196355050915045094406893505299697648919139264737689617746557807881143720402861426161740591242936746754468958643857128813119958254660418608337393882831851870738522583855742417191230525083637048447109162643110456618612085193906695437802274240863682878486757685133725347196075214831094200253846684722869988645904926969954502499299496141379291807246601300288405357576431576522623131845644320264834405636707120376178196797331887464255344352680447945099153412181589441899335215502268006883010730796920572254595946807339823927416702885467028755386481813566481375441375006977571278965502192104201402868846743603076183612561643876198292320258645129318715920608274605232557248913208025128917455848419853408098126890512145567867227751604593630772591827842148186791500617631002541050347974341686934936760718560704529379553258265165757470481095985486590519147135349981738054479571483234645137882983342270787946142168808536577379178139222710406231425928786147333526292935461453894901335202820958462502139374432633814317090105458241272264227427160776335493356339613806710458495200262545199332296582706046759273723112027320502656226232811310591265492945327819748510691270251955825913783216135039137876576531853642277233647002836063232488585208903977899841850766585294410368655899164751799553241417719168870243495211432654554565921187817133924887007260904529564576670198530036311333137125234850042171217681090205835011563897125810269211154337343407910915184579897470280858624901242275517574772699746763635686710230288971825617843375199041806536795453847589435624985146087421408098323210442503373188070157055927911090113858764682730685594531042174240059494516131216953708355002758743832903204613117864195068992748804549346121646198704067222148210133705598047310310630451104497944867925270204259589241496650523707754430365477945320184679324603477688762647455284824578935785589368575697179838368787894155050852363518024379368579452930503700549651034446558514764660315735389084759784461366660185378396927402560309468883663061680733634486303611541529326968515382828037015616582262341266852273334918513551781828164439481024907585768288447839814287713141896822573050586231430203629035969341371907819335820208953544742678406288466410755310344331872272425526521416003470375998581548871762051574581625667893698312321055104069088588647429004747130776527610226143491500007041162434890075895132337719523994732125971887264508935541086963699393115450179575787019701217328601023530436116024039050672398173334840759881957648964921062459081205889036464795842186124106307489575984574916893175269717943677374646385645949035869696739471744578065979912016283483587296063477049872322791797016546723636236787304579737014913008569988970826710352438750997080813792432596154586434818191106733807172006367279952542345015747586221493545851873557518419275232748279144832892825907903230580105531063279511731372265826015194779287281686299016681171243049097710834524455041631585459407084205038686761876244106597063948470744067733712758041791689137699136600006001627002876336003813882849483201039328557160795265536301476827507136943893835387090536001815946355691117834870070195359776937243404198209029528086946055927191934652159176967591317478369989769158150944959740897079875575486382958678535082115045324907474940579365153110975706473415993154473138292253253194824006327508361531734693734714926126297546178961467135371375649661350805564648111031557292205955156137713722396733633682978132048512690664703486271364400055699221905534603416865648074378626506430028356753473300473365339111490674097655059569012714281942815156505244092410826792938061360249997019773531342240307748564115915149951250998252473488809790764782271278307598753033427664907384701186064590102331506814956274446724510814981380913859198967699243079089155520115415898179180670057808297208481838005549912480691842794458134702330033642137952968180001865020052081535783769739458393466512510950534638111040038738412126751273346831943493848042937344597845728318864384433157118759619330157636322639225312909063396092237525682677064219093558597739448298876201411847196562101880518954811423555802052518440914465408625034859116807405831569811044876137423688035120676045872616716148105686826161616982010548065228121105734658440577580715953677481632223185662421618574540017371698981191023460280722092770419631628077199369086373552578055801093653282733589881756222530980046492039739644360404311970702241302234788768124731606227182004371064931911287177793258345371547251288220928039254782516458900880784236083987393398544242618285971670635650178219750295802843694728987631280301353676064456327645834392466239051888530904524969399119347772089033130349872059100466727158349611101113775731052896107614559088558500389224393697475539271948752649090382899352275233790702498376843400777113562391599597743761956155560761138767371911724469353026132096184092750763252968687961754552049097654457199280680041833156936373146759225697836174753104128692044470190298078686974462460031738193973290314643627558595642548028994026057114206675339757670184896380073410645335470831972909966499129025541602688648458087114586170741187615827546358850046997076099702246385817738523351936378971471722421371765094925515677540485665518494349579228253569630983360343206241231819613917820339195324424003212435311518369814671627040676688543444295070492525502627582895300044071194316870793563102983518581271496513259284811316633950896071967131785414651582024360826533687781944928219688763056534576624823983161085805738232350664821274021002916743830772425940494359842440956766956745245765042610994953323973041449186597046721327887968948400216942252692449268555459799036746049238301902505310564332566613898962846373965367586493432899989216248947585499915806419670744738273186696150868917097350374513376438957839737266860700519346959323547052179583181494563238630933958651839867612979876392430954662734397795390560657967383349611779674706145164174721493364084327098690485289807894120594299142405924705620541103859370586767639024499232996911796499970186397951565433557875582345747515509021359301348389966327719860237071701483202211441308931827580048887402068096051373554693159942438950936119181590282044962662312989209287009667988976653274052051572338037530775639039827057614401042309708212129302509360133091158235222247415890476869352991033970599067661371231704043195921611778603902843346689046174701412997877787444029368588492972527147832225888315533758536205060009768862079696392485170396670312993656582498533784217843848529478305496117102155420097290278457425054112371016029295480493436375358488188393581233294779019195015931879728935607916993792612780427156725661734869628352423641050301466585977100747547060441318719847319277627480121452446989696769734247035216128895032810042175918768355949342090198107984224380879045260483125578020509295413952488986724590484827631773415040593522190401150674699398631339591997937332237602698407074613296126224109897382514901786314501633354101012943063954259396930492611669960370474523032000065652202972689707928157603346267003836298913341455311129864749724361365716663207444288218122055484110945173576180718862102988439359285780827092523829509517647198190967961067357590286654222040255637762502410452439317065546330384175820837498082686433895150541976594474413005730122897241693860930103674402180784682059270083773367900560981263946086355594340265034185594884123277473796934929570425341095835031902392187474806321615197859530591192264726418857645218914224192677901282477514795689125422147951881907398118141364599945201695643031175397721294071162864633896564419394700638243913850590480377756473912651297101867614199975939788432133581961717153710436991436105180514326767559714443562986284919732275881116492735799984742514134810165618131166515851295315376328321315244246978003989127619776496004785342535844048140646558493335271564997357451935108417510207317798852744830514778453152785484883619847210600076019015625407294102789683958864374993528355086645376500030812206714739338602643259608130026999134470648438277057621233622050312916898302663348459842294095984543965244010737584541090681111797262347534934780584773271683296324508039689872612826725451044873777907774649075154570040985826558544437162915742224537891857630551975201352658181505441378546996895452842498648309042305497114376389900199494042504545921377375189424418482972440408457809906175449394358072323073962954670876858610920981140724773313262189275884372477786370011950384821842681586051576791228611098354668789673407989442147462988022042635229446325715045593439952519306542992820740010116589656886067015917846089306328393659223877222506426299252864483582720786165943411091272743090684775217455128697233814671656665979526051164151462753847237851166422272685917630721509784368339141925380478915474623410621202412537822410152713983736758711854692281437395582410368977584820162186381397500495689844188282991186979160165431380137213274247590180379388130371790678817329124378088911620516125919807493883025527317883237412507242120260799942958189497954969102985460172577910311188563417309898223291400454919832504420686211111662196259138337221169851648798556874688166102281833674823121295508087039360437117872373951780026792548511140893957441719173589210780181256396692704933857892649747972572857622280959676196248786737247365752333144382883180132752401220705370836000486555757582461554572848470327177667147847965195920524637682479080976329022296542125923495861167194911039514856476166202015442963299544880283288652132379850163649996411772297346837604920666538872139285534642346134882364413537061703167291858680827217587300720954647215428056956966711277646449874240059136892993148408589729702673752506750273058282955691499361587938917664339259325033513758227100793471361329069543690472234531266277048278157961902065782948031528532291091434536942665922295791600869985318420088091913385635949218260947200905576850735748489239165004402188263970872718564429961007144894941112854307591864116907178699668270455288847334655387360115771180299679006803296769792904953008852127412452587070908504036870765282954344241232974815719149479549605892669606184125177081069256783489324848717779778227255232137071324723142822348184575648966932658918805473168720071718300709128338626948305532049259295272326919645996376845114105458562367623017653692831162418976130630153849509469615343193299944129676563846515863858130437791348634412519887994292923291087846212840509850200257559772840021742626596132862176732077747291130196640848030961810611735316523648880346961029404518878046547426394203453653157847284718159864677626881632077245333063362364595034741367095997741189932064962276794656053868626780523808913393890014610739423631060209896706131837170346397886315404132432579143460486195259149346782022287643084013454230295041866708597920807801883530917434390987656898911763197893013366261481236575727721701709481842755098872468906091072311730424817058331318119958649463053658009240893131469075505173701842401347928482831657659974885235911347756875806009635881025571278850860241261801442108818456408138172802798082798625251148874390494809904098898858854360411347137594605207289071809968655700798463490677241848891380669625321387919664419122255953231342449812438359569011031992909191529670399478979414541414570450748458946211432478692733920771738871579371854209609668572091488952658987365562376358550369224037517552089145499155160545739690818884602103686762913132006240861486243330196259492908145364044982802844088581668460117832750312065492447207937200383964140334575091784406735173169661999210570511884054082254119186510394462224790161754082086062176739940110511949086505096752594288027204603654931507173539095030037987509055780124715580367449841806842085199640347429528241030756634719865731322495238347829430168639027221645744452817909218715022421301535902134582033920212176838908070849972863555013606173578607199395999695402310543016347173502080817828754454716138379312450132281749238331308995963879630625803141428156045829520708791223972720960106454104378205708303399132890745935915720897839554023509462459426743787912490903645813397316963999299382880335046110187258505924690204749615543574961583063422509210811256881521263271185293196048385799703271813129814746520151466157520736638292946137455411358044675268872972518473482656223139630401519984695264004531703718338529778643367350530539892678099459296999424361982550473990289805752981176164528037831738118915371359615083343353133457927085077379289114126650007833107993063846454567040578812140446141082296067244200788811516184539814687209398089611800775379233230579665766833691434250907662856926488013384871544767311413229310535616588452424422217414784304670369421244324976698813470875245012188726007437290283281690224342400557965430586247428931415788879421782797352545246743162210545303698069115525347121265795891513076851330492106831131489756573056369484806879045261846251755188594192239244130299809558757826363788311598236196570094676235441886380380288642747181785616740723075698042639490277455592307641704022446174222056907470112229341180458293132549469627785945609544495985887819617175695089433020895283287568702240947547596571470053096399077156591830225251372513829618949806232311381592230453676315286337841921568908685684307282692430688931454195028683422434170781946914101108284582551902575627544411229795346837606432518905662139135580568379909013802134126524729448376280376076070013600144192576175912919271713714568927256135103614558064816823111778416754425056029192022195522095136032387876750995394569849860908706887734996408610991225338014918640697924171361923894944304326080165688703709953195309059651318661179369565762292156272982653563771668726597572691153436270171114577143787442150756071882114248063450476014970872697646431752368183521306195903972631238686803501283949222495164371773291941424403370557405909955335435011288326825552001677786235202517582819919978078441433057025495763774029086649204630912960956039654046714716532314374419356627083113859587340000948217773953598623750615825106860292713102273002651632592930620463537532139817854627239958471962499264716515840914090967487315950557741073893243895752358575853866556977050237545548985139778818748444592251868708337616493795988757165858028586705849304230848728053424297579575726265068128232867746173494548252977500933965387038156043917150500791324220656324267586602111432625085516970789681645267282789855517149517533379240193885193585710949473236082442631359688763438228014915019739068398409593405538454341644695551030808655400315516377378055289239998971661548351767414994984024321007221817511587846397668478225799766793165244498989664255873225000443224095099062269578810056981500559087025458949907846156556574016130338893953506831391083136083888171134129790726732582195574151708048555854791089335244637307043410037138102137485998896710237669677994425955173956755902853189610971321373219454004811164410223729660587480485643758521076875561962196180283323584919101418558944754928226394850116432450551303142253540947648103470476534064324805053580791740301460453232500965246110539057698642859009113785367304574505163032205467023963515870707765105035048163330772937298396948699959802940169758717010515492569280938576832183313524323865964865909194524725510642777791565279446594354534908973229215092260731023526492009531112154451395152978423194268148779702498499560069707543481465717311836841691705829006952905549081637761077483318959211127270893509575969677628726648666050583357354623728708819741513214855941035653919517095824887566174690810621437000475849990209176566468663799129366283788293895832090560694148256296247921793262314618512203349290828093669520402749577050174435770193630282323834012856640224107322888650312225149909335679906771219522483942937585470165278867335700432564652554574475299097487659903693783326054288549062613540380795047094996892148140308999816649020874036864442624515488680997256226203311039192054547659099096561433651427715978268198031703216851923747464985457843750712426009558418573249688007345515864431170391837381791908022004242707429748443875056541706876783031548135925091160206240251503321391747586701145714835929632846586084635006479579414188637129494642054656430646843295944590669920250562142433183035627250014708303427341348145768708889475820504355010484127920419286703564055682595581519505149943183219805391770941606145834816429147057694183211829847573986586121682320956345573494989507990287789574966444551011705692012230516082579737788562646477465133302944384775664089543492003768859720798375526348916206062154210446410308374682931821352719922256323679841317754397674822063902926522389932987176213377013422300279004503414569243725163307025662874859724440958778111901998898328040933734356936980510092204891805938464118247025147923915233545685833750686929345358724731886717440644891236333162811545850107379601338554542743071583742207403544134839233808280799200940695881230274784756727348174139842024409695404422640411710657267293105957084760263359511483948742754282806373765254037432077191912995412898540818612863787416572190223206578462989984503463579727562453759158459399357960715015908084323080232539473584481310662677756721302083766928147483146176429883322268284080426438746489844432056706772895077096548827169122722182036408316321391808126424944639043112684994019059090445503320149502214814341894309951774479173959162650143457021681042842056467693241380175810537091296688663495041474394450584080655652217865297392007598903149978264521896586152321636132782335828195860673858063199130373198335011779903218410518713088675338907849660060044911819877139160999107655849693597056685543467291110998760889843596374127340439449823195789879457199559156752012234466666890680192741074012801749030735307584051365250137485146928206638342742429891913797074949374352559419424875328474481547976498558479196554901968916336171438066535968610506149619936235496989705955400249040029035772059539676720261991976689256333017292054041260069516545095093284331311860197997628407012082173818338859846110688910293079616664845173763878483879263249506904884132361208625433887993870337001023054093642161143664081988435308078635219246040499630952384291637369814294843092848873411713392091143155887816791883438696327225115416753318016637815871055768098955826723650400468143662714267914272359826044713285228901569281033321048249990615053675524718123671819579993052744544821882390126323098023701236578967932310624946960536817259410364451798391947046990805182087296374493156799700745595296854082890521176671068226173153481066432761092346037761883894304212198233511984281461636455008354404329187040938865770096620366513401243589284077210190616485994411145914295941079786941441877944407023683867201630404480802716348673565008688787534658943333503313665283427058354287541307227330900133996227991136915149848301609900328094194733968851568582029600922769976952411318608843921864408341985923081387950824079044467629550680512061452964796387052469050593377947109876994322350611094957913098718431801247032900086507825150043408941402095928198401936008038646802332881179953708497130876898812913064602677602879619841409854629768333515516870190092742133872695781950733372779250115488070907108822642873884916345158617576177099026645804587267229313931040742606905698199870205446938057447131209706182062489346632808558633464486415746815764594638910822472280851699458546437183552663865117178492447636224646972706350067200539606066787505568896073373836560021780301981002978396262609905912689297450317329530321991707693535829824879290631925357982806483677157202344580052109075644005858569929372472604729539213361422609090180920178738471467472170470493499990322209968807258664097817681170877102197071226705384187773544356080630973454715057603831512868690870007406011521489745810028081621576357342071677464974057797174221434379079652810412582456717610046622956623817632399594802245583239842182283758833057616411596777182726188690587954020828130719686386058454995686305199036388761354220651482852350586507155101011794437529531053926632424876839340229338703281140045713628933296487504738227861932474950582015401431254588512890735918204513639558358960627029679682419705455873735081979559554702152369095290413331216257970974510334179057175609866985706575361640032188498648891319409461749904635421034008097114753565110835503789349248619441787957691123607141617120881563605254346375912424811831132399491210807351593127640807754952127668723161861379743182721408379465602718306840230250087383120543756852545274750973880055227050299570339053441922929129424404862783346654397841613892627967483927468055791193813416366644264950641187754491255184993359430079631928426086356663200975302320767474917000938349138634901302694554652536589714288321460473549720563867243104136685136320601110081125454076566048280768741423860531297524726559428380439557859703225375263464855710471187833002907749749202376638546770139081617888312840412318768739820304336152394065333594377513395623408145994325429227894416907471939267581953862051033156834694408804599886497071144151975188686550076723477573637488069004917102795676630619503770324700971136524613750712945222611566152415309550423045941665911189027448766506657231949800902686930891367438566449186620279289016550384634541029427729742428985675406406658357116202543325537488176388310002840820732081300455844892846790563991470127799884380821895071748297637845840491208177355016559266579298449202544481528612735303524013793670532661196672355485724121365268220385693102936044297808630938398565010748639099252124448844738666400363206205113869223632235056952183718942200278251532745820883589747413993783334287267784123924342134704042797805520983699053305376435184634792515572054875611719733487173870787823672669262583178348164926524399027060819509621757147149508782219913768436892197643030870405812462139933188264283294474864726148613389585459205507733373263920730109057305690560803860164486194177012324729123264958747928936622441995858780161017830639882187100855557224735340209970003430249004418711072053341975145186355097248642886349616848006043498748418300995560905611989418949489915710242653812549119620620055555597107277584331723991147113829893154570239976702085721925964979129247499390185402597796602476168933719129022355368045877086647208557662606157590678602498524846985947837979848023865049604258378225711432212230930354242262039770745512116356215228960349393740796994040956958714022009102230113632551353698049401634425096778081422315049408392514652975835123707121227473568187615728515953463415441145008673603054162798613397137384182794863383318770911338752321800796373280795310100516725420609113596628564120975428666494982321623709250312022306081230689482539709812733526874407048578317730293233473845169241460572072689503301920627513820272151178681367294440419047983297365599955418010777909102151610485694225419382240544373348045897124740300651881138729465599338303802284210699423786464757835970812644243282581767816289320307745522970974976845458770859568812294601964990509944707501112707510325957035542748718245613075024461081196682927505888353617787342875316205157859032811376942648185741647844473758720614826792979123870937291103434681922070602631708219413925575864298429363744370449781345847444362677577768006628505773687976941588776731186124074141288495577473610809160246666983914905391892316844819160094945033368149947154102655225067112027066337892141874666042363975026281840667128130059574549627573945597556106536502030012912285410469678260776358419519756728874701295575830029412600632140028216374007336543998552214338516496357289624745336255010401865794330930820786661943887994801209129612756706221189578379684262073779389618567451193039045483788481513056436856089800493804476717812794895142531775890212719918951299877488324175482988729782857003680483913865043647332509006069237330585083628117661779163975515414356528385618603474535231286431832988579723553217052853837726570811504719294614078257350370311203248856409521153435673576716088337780502597932779884616416303965521796007931491153546108874350621762399648178758615303563224594255932303285860224267842879632489199614077689849971303094077260510559126428497593441058358306156638599702346249427442988562636686490756637224971502871569488959806993018886479982548284422887820604569874238489249503054037842826746276892429165434942449787126060482695473684710960699767133559371440857536547824228172912625768859172896763857943098169093874421958429493810989962945972951030160366792835963221597063345661546885267646328765769582290335086456992215881586954279110954039754399102426459522635677292718841167991588397724481930932909449682877760624456423162824063254211886384061568744013012394998524966657413949443022898022292222543459759552849604060711080919680762370039813525342498779435251793517615223876154586399406266022558729870435616073920524840265063344018389423214078919080515357598558229096994677016053359290870217733740699315485645586756108954352797415179127405615431563987979486117547192478771532131075198327863872104784410509162681382191960914571877604558071049383665171439211124589526714522682043502820791376729254780580256308168156415357777323020122392131311551927083982800315399393067865289659525365085352880840987165748362628241348684231869370225343924342740460486935124923726489726174429511803333459329826417808096578194094357452312930156152251670683614677787094483804879007184434501541552817721042259118967011496523022042231243851568786406580021505434905602699429934364321739597900960680536455764836326572653050357729501083932012898517852262531446382073771830248229880788884963351716675470846057508017577593231555904524767024826159316034697232962916716656603039945277985433034701527444250834236033493712959604474056109789333048432964559214098990437071540404419998611060412380124540693334384657766439563205478624045547794542391306784251493170806029277657168862636329346003282190026446538945364831291423585614687156411959056126558884611465970126569961478996039565194861309360264394216418147735638757243107374727544271760384165584925097428656586695570653291147467976485733595517813648897694329142352937202869680865301426193591696090686679116195731195387190056841193138678877864601774571305953702131969643529650494713557059383562573553032321940188498985792024545862941976080689121567758374989466659726768604898170270590030446362869705240027739119601539307441331561774500434866965884359005347234467457684739032364983151751289395333554157168097845945301779879785793353936372824294547497804361591703885850782836311749458758043664445544308301811936642675792475429494810033057711332278976621854116590187387775936435217970422848583016165880842388381796007756541191063177462408916425237633620822463726790583324681543455984151834141139325112960524504407990529155637386711540277595442004397812461684528714802943476490949635752791915848564272200842819921291948544133144581114546445058299539252487317633884048156409314161512878312773824930237221408063227009674421908923828249057915176386347489025292444448161677071137156439082352832025072215704292687815783417385277880565643199943596190651867207550506828621570748469284322719621434695871671322376259547308644605535455608440074208795833729849587456902238356083441497632809668337610105441461949808310795225841008815828890433138647925535512978830858584756419354184091256313928623921025611439122360022515743211433256724099664815372098991565136609743456127588384157224269388646529169114575773969496011301014384492976355546968477210734974876244743822668772543281260798946017694654723617211389026567011096282981170935047990022846571055363326811052273724891524734932557628042271568984377633276140316915290404506635652979924015884213019895609045175712048540842365763585429335164235693295723876519034136577645825475007816722244977332010243251313411380274877241496159587533044293578378605739220495426791645860586092072420788863708013634364440900305048634700122923949759902357966082230271803613671724639365665284463535162275533901659865043105180650541606844201025930510837376742054235666380360383258538232893553122685589129301176421151525865445551571351646653065278920649363178153367060495282491987487336479797105734058932858171175649409689334432205265479913883844876701728254002407256029204377306891316457810906158736427215625932205858344861012774569957995836954462321256125415264125242871324801309690008108302990672571330649711488297937111467819596530305431430002569656447589217601953373434807942008011157727938826961692591029516796012885870297808211908871170074532940363286494639854192882596805599923878023788547448105999731465659856562091912569965734785528893369785157043311331068247636247210349657943902163292724539302092924533953317041580999539085451356813683692778795417489454962933585548176213696404471399990844644946245849857257405556558900762050798561220216472776214602851354069794845385394700439232175870507615695369675618012185116622789999951230373174590831451894591046006083140728486052872702292369517158232604200236286106322004779343408684233331407952505169502660475701758815752084573473077867648229108323654977851914646487852602756279809730696740089702539855225642849846589212485558087295698692761761166395146125876004380845519973058419253698587933985378963648625029212451764889749326118174175233796381201978677113317410296726178640645248297827206166853235221196673419629758818655365588516182065160059111696363430359432629363657513414717116485516793893024075920960225284353773958817227705164814909248054911149635845381490617041679873397662159824403732129126632344079007359216114637202395029883198485686903861702413580539637845725321895953253576795529936697163258697303761926797757336980891148039091138175601582927812296122490220356715396201462904264112712414889533336359866707454406240537512156982460376765980117368855296648464448862565465513624566898209573021957320103525430033657618728451855083847436921714933692508388027358324749786433790310448649532348626985912876770561908893416289064350633963785045973149617208179727224444869721130429972945942661312388435245688724268355138509373908638440109710934920285819341802945557859068424211966625619999299391667122620087974723267935636373533195546912641751067436719127870504023219086271471092543721810854278715392524798307266064737856060227950504422430787073535659165598733756798937586846065746790280416802862337704519493323191445087322613096565427695059744074561593375154193615745297694777325199173379568003846805555557058668717601698458502901371496423454538859058672750200560609874142004666381060054500638289331567465645243882849231505389582285125396310823139728355021870019838831033459296982006586372318560537371726958154830650764432440970630609858298019679127350924647458626769164070532178875536989121304415293678590565698906986672885091869225650438088651645227918298625711348523790308609668381169941099550534378800841317000855193564538657713199033365185154349077070891950609483985720157745067742399896465777858060894818377231098971556663907717556690013212582387310536564801925437965770660328244973429703313853491158341160881983094413500496007253473018893719736821463497180728460606346766700473476928335234762728082452749611922140976872504729619889808861183916154514435792552036996238602589537236344414967840930925058836926937853240123014756793413113659717143239212025241582314640118557861091297937491544843868290993345035459364951929232133387326013241463513074802935754353740756336910672172887154030423160348161393705797791789898779508512952688697576419169082627012957506118597997081321320596828977661323446940121139493911588637896639179378431873729977232651305602014945453903635819192257090146417295112109769035203630698789463291648586300311307946192931489851661934021900154834138108523907303089271539300507980103630131643234810914979442743631281280490813285749445033350848748382451900158888292388391807015105429951804108697317726441544498585193733422338011764091421342132930916139592607932206677357032487546355995721316997259336210393227427646238542698437747857708340263606661016349225835468096926576533156913377315746441230355781371809332845219674897362855002383923999180411394746439655097443326268609501571285353671889639247571735015427074092605412108891025031048276081187430554161264088154826034393318365865202038020329635317471973798360548843838631599057948721522192243713390467188933317302194544184954634578666713533158154897662474355049696222010430885661271158147690214261405368036815085457048333135150968808333346210292734334433913048642775895053070745549081765025511503922809101762614928856080849779368322984166663550828596303394348923765213422832719852649315388730523046229994963649726701187589701727270218932291048514539092568890284689646941233568160142053434361791341672296599438076784709184142653173837313110301087419755302652724174636929691021126477281796823798083004972303622860186989254739480073913427763989592101943919183950068431697816424094297948049710568496607562330968687044003993808054962572667091577098006729399970179519237946922796588043197382355947105243263179321548934519581752259372496078578697304837304514264109173171824071691989743002977362320978961692656941174985702971628973795396444094726493116747017380500503306752077332017907307852253951517741216044576398203937148402381303796446366909524779315330242101911895697281575677788738285334236843515400582710834197638699883425422645911350153055690591096239968610135892017926343370456790509135870462201821596305787906910628461837597561214092029468934889066889562462547078698526972791237670618111418018311560104693524379310018153658268548132192059152280662798619510997423020027660177643739553490054560254291136854559088040668509487951309542841648840367065716847338952651928325640890999055185448941555523504625315341591981479835065584719085560417464882109649252790518767806589923787208114339013628686235872266834426819235280586170383256647757888257712601799091132601253833397376458158986042192327953718974389998286995099219057156739853545951680027797453977198177594677910041545672303349958945055396794452473677623492562683729376996280165871569371053613138025301258523498816799774077489348531440744095193990210582589907351082766408182759594870958880267572266796754262122144776802874826678281311711670775690991449395435594461922677416503928531091528063323097720274542603958039695917456616491027475704182722740026658762608557703420357102058745364686459828281539928050632399111691290143059647127668314078434810706405735335493173503198960269893868444002235498680101992179827701590461226484320669075895769632545982034036416326296879583205405284774986125507420936781945258709963900544872575644893511873017158499358695077588689058861212087075602600163983135267396616706871124302156184850128380405427131402924048345050016178358655382908753436052520775485734293883716817045058509925846220379528398071972280536461954487712858932328564816911309513975261551811881417984693599537542660690424375794855767993071198918118341630338012854035004571290031674538416681992619196370639746810378799931269628032584056147787578926276904398338753361294312770667119951152192941755983178398816415508828789342742707032852577643720966958952977893408907204746624164324858984106494947017811666813491531031150585070492749362833495437097575301482734631839222561225192965726085176642729103671627837803999090131973494645737218358992601898383908708532906317719241707432410139493372552621950651127753501495107067013709490160300886350465288861206287721849504286310648472164494582820827327828018496399887687918369551813694569232330773029388368631790380285645382200417345698012369398716105330666275554128489766441571394699205725148604395466010752236236280890346739958775803956170221945258454721341158480609483812209167569223401344955139843367113193761750318404494183087993355788477783359962117535750040012278582473525166063132807779586488574841994542235747203307703142002866950803057374278943947805373114725582531036067049738628763805569584679026828070374541404402427894320001398800813679502933220917857225828378590838206350343055688914675293253465657549836225775813905695430548492498072170829648201280957025916655447250739034663483226743089250369699303474349384068927642071475847179670388849374641658162668826850647541225931882170311978750937423202158769593094532622011780913193559186471235789320518629217193979056408285631966649339783336499046964175014865004005640466038674059302508426538550696814395902300102254793663906766270104019691978624200125748944504744695474063398661361808669794059163738377024872728625596540673663335424013036335885965328648523485095919775587066487830160309591230330290620790393114285955372634948544010890537543295797738014064102800330496510100482874453978680863749839017088709182879341970020176743240578869472812347307988287046285956096829608077311680493178352975777797472396480606689802581246509834491672594697381385954675706418900599304571192705182920114853052476309731753593104880947484738875827502551008647939220930330622685800516599429110156738665999276843805167273595352862369027383195991632711196475169558294558380417892853277200993493274394777871921511166661429337671115403665257770082409238411028311473906444019167972986260856526453244769006074395601099379454570990503983403209169239327110509601431150592528558781603536148990178041537352843357648065539980668460990518929083351647730494299716997139653787102962545329341040482155398081919882113554672183582907019809776150345416322678696328485422590968034439155640474129395793467427558762291739400517864668323474889894146166271095814689140465994843992242700530572938974599482448455721537485089580674393941922285747578680400926962199545773730680813751649226375148277086166679683022451783022955012837672765355584283313633989465004163448830019808737880468800394749364751600770598324911962964952671851371030098777448044027057205966945859045682495256418318945891119194373261618358985265334610365851138936455057045447784864690879355315430961876929984134703794129558704340183191913691107759822538242936111229067685964742389673786764781486681670441742691944314567328046761375366236140845200009180910406285626377965450705892771512233860431289594896161791718837129330139183102881275567803591437007805071695873491729984794286153601458728707371942858457111000154533828082562842387206904435753739565623019069535881153752457582016857845236361279587990330549477150654866992473801562622674347311127453241100448511961347788776385284789142020109775674213531571482528219803312599297970082077534431299267959609582863893062387500899888970686588665610650366234809062519631255708322380439861447351681712673614073083181690407420811190630409885584155316317398388318532794670245227027330407307570280513138278908951605434254099628485260948371415220314828149154541584795041457953861906423508942671281975741134227470709943715126305171577393890228001426291163251345158497767003091790790276181626682208402205935574198531446418292164326869337100832798669655489678856939574436968489198669077692422140302478324541487043361753039010591986699085865021789866230864992091304938318941116949647605628300710090999319582484485196025135251236263651699714990972900047702484306854734878963291388418848803897830993514275010856403113138489648799181879976765586452400898837032700248350934748971441945139478564589890465978918902434687375808151944740163766910967327425082477896863564545875893346851021241532950301478536874517993773664097963040768437015039972095550955972275698623993877046726104438408320486315956406757514370676673334101889365596028251969823431922088825751734735223729654618914519466517982454171062756944907789507328664865271799392915779577854673734279290087527224828982904902557172488306818603016526340863230047839622015561308291358559995145630174434891568917737432019207548903295077964977930084891474099879694191379725031178601606876506281883867839945413073344923582986132342413645504087687908519044773975241825916585329601146198861419803862660744803637562066764130734311695892427457474973705870491756929247554194550422396791117940952182995698474664765574510957483153652336841245802900329621680204461471074172117781068704858855467185015997185191722239179239837541740513843801676915361996897523673648213755409011619997953744280528031677108404307646592979604318151314400742583339579456563317071334175048448492077008362369387800338788217415695169075628965432188179770081025597722815199808783607473585626214201387766856713625529217656984330961315211066176726834915383199208602740106048253525725480425993692521962089456645839546399434369783190395772637836315908143297141391632939498082219974945322918199839691140728217076122884981587518795031310155031444749598181294306328027747119487609670065817360145923234263502508153933133734054431923484871474044681596517379308475535266821445108543612229841514053392657943072593274694076352101660411865394742659948259998323782716352782900628001544466084658158508005568245634226328831905076453954114023709787753090268899152003320282540677715961189786319132648070229696732969982447843229087178990722827171398225387912168260123696887506339861253374690243764347544460538263628809194564120134207799571248987262805302359922766732919311628617410904799380430279232957541273308114850338911381583270819150275011727275321276545713664928371826146943736613817226166501426557837664971766795781625623798172008599396611430216132613604759784844494594271854302941740728789795615343296354652164730073014459778406630205274079442578851410214879275344280211915463823740038743656131300339547671518127940214727537985509316481736519988345458749078384090268753078647692615470937927863329807850567266859498725419292706863613290989633264958883827638006153045463297184133396917194643259837611699339926461219366938840791321369067991337369626634222371485391156313246081260764573613057103570869475873766288851663681507299804157823183458628052550517541301394651684476953456996939117698361008375911105776512470865324160700893626490082598122142678697682439839876928277404075304292536148397981533635756939806968012686375996614081682328467901352628915420769232499629621593829075218416855341754973683948651957517219788214869717376440107464161503135319034799537360992553465644725061231909929073353934989760616887492431975840466530506669673630436522311239009074754084194653483602690627894676013944592119995175788980924788246157411295586647949451349448099793598120357455341210641881689034522134975058926019911004710180463986461220140375501623106156607494404975365639246672831441119812574766297030788185827588845807062571837394358760173465824571624684189245045498174510053671832068275052208784045989628423173632339561486709170407141185928256489092854422294865057123005334961746934862570866679414769309745144155651136999741422859235203026482433687279929867006752255258455079751072662097950352756738867341402343274887142609245969964915844328043814815868048556690052044635700895615975828232826281246204180656147765738488285792558272099168593435087828185564031983341979293478783539294760626224294293853117148502955895855798344260268392788124722563165279901843387629353835340600811269258153163714660597557194682807738937722612382281017090166118839651737412393431881059818114024464861679374475301362203086570690743306169123030506890386802800505758320225687482678303175802804948191633459175026895065240772229131379754192688399041200448691007719886695734636645795655177342178635120349981822497140364469364781893254111521780350997636488246752780122960146709650935740575521397974070761147112199998404878273017998928094846260942123285383137385043919632687412957519332964360708813756863608408785578824895086735748833136718203867251885535072125317433542567500786178132777808282038626128109369860176452787695181762932455743348363823085877087834736811560835535985694589247637989007906962498376404078061964037219587090256569471683500702258187432246710106540177896460253573490653173642137504152637663428536393045946690701902799492579336922936920715462543945065817111821526214516702968585376819590558866252372332473055182354773667205276093036191003013259152812292908683657954614660175861698026299278567459494992620231796416901845935337998548864347771783737053974417743645656750862132713098065423001847840575234339721214397915801870588168155214930215745848051671040437012257135971866334234264078560233238291349728468260282540494716643924235176572275725282677704318186687861782216549729218312663972761599252975601372011810907856781712346124197088242215759447436195811123790723658698766034139711538277367504732862529836852272090974053612065837823619815693433490902139496352319962542190439548884507744738944228682606184875178614841182634732413928346309769895595806268009581690693335000886401088372301265850328443440650570779261033935500880402605216626118958357431589791384461270343672903561071111954456797678714505377320703061110869621460319779115438249501915747873430701864436988501180972023794255044741613662616418809748023902952537532865399598797682311354469075175053539557598715838106977798022332693822151648363940328288642623656132136874589481421588990896763745674038937920339438749621018776716732010880369005152779070642458770997723820923070859227472478085156657246617538594764560033605406154183025994392723062583627590269774589706487290983965424664403076510458390290611019924547678416418113122040537762084118520332471951282799267232881710562641752353346146576710018237018799079654253367194117962297146634997449427234147851491183203581131276612020325223136298634748111915374323425484720593766197677537441334169568687178286293323673233412712021721355486944148025054875954899074545669198844112924292240311803962279377457113689040370215606565835607897003831733846700838130953211729806753791958080409003940964344478857506340365255769237764120923017502114300981982241079140123294244199672717014447981771465753531445509834473651445225396571285284682369676552499683270898000241306476762941710946951528037242177019663226582819407649909594991538999730631183655442635979966329396011212646536555925976263081625841804239457981457459880858362460837562466984899759051048054325923858199802188656243673914874728550564068175971251396551208636063222844109090000595400190715259321540736677248520388968303977449672576390775939125721036251766982892894725711512828242830697720309546087917995645120938991130515783408142502983891342222125332595526887249228413138029438834145588012864353651425155390352372988395710747396579426467830297444913864361004576670960111871475691096834276219267910636611972016705695981797095685496741484354407711808094735830425330552631250685716905726093210614163768585619541089676312953105168494598134971773329189649830388357263870393887856683793383441770592828854377954418103813785963594134435125706221867621069132017472905014299231955525729369662652899029862732766053370734178991634990972534673685074471372447399507998417916576908025902599890584380923121209089310137048559812153407353995536173722141723838612400174070406966106601921316977340210172751596458662827987857670324520831771691609762284443498500166921526356863448766674173477848518121404925340201374683134908725602901837276374792170000424573093026837329380935360182294545659627788337100011462813499366714552300605600518218646328064335531404136338903309650217536760559297519192927526555606990287184510650052551268343783677699655138606653154927272204967111731601689093537514881693507870931846393328723693736846691331964376102292272031772376254817608491840255569804989831503705172881350519742230481426165903690703521381191418820190452977176603305466076332105296823009007456336604732435208781540558125024035826130440604565333020484326169659662367722548577407285978897069138545074675191097405953986749973325968793193399474294679342154242728357691894049156769368666578811741350667746960780890062584845731377482551373770055656887874195371501614924522142822116366350897056975082436155683933743998396598570683164063084218876145098692339113855220689720512804765894753536452205427703266848880729069862698876665865949334791073172891078165462274813985994139270397096874829979452920037093571117075263036949345717881199126476038001800780034556572895122429116812657109805263290354563744972392261807390592690745226599058303623013470938571541747877905104004277278877245636125819794454338631160564911842070976809233606560570385428820681549667622110602319956396727475064453009231473603013190742024274189607037695956137212843674195126967613286324085901718452692614000433508149150562714939387151493530815901879639791788913542090823738781651202923267776867887231395755860707396363920728460715790207370809382452857488575488858226020269442865867292059409109372877722637598249804258323186889942379909803791755534998123368340079876512502869979371998652046378900174769336885511740292763114384569240104862224478685150342789681177548129053931109035353662560925124765457730025742888615165368321827143242845056320884390567687055203765366910122882456950054477833359352691107642754421133221365196871128924814102028316387999241396903890860274552562726214294317421494950500167847453929554841894934959481750426726385804801304610156955328430707828582319891081484352805257605472583717087298815696705171305424662129317938203344686369551925744582482291490100220747295155950600400052227546991766508597937702509595214644738202080509132286105478288873477613891211686074683510004433332929200757881794910392988653847096329003160372594560822104410095791125083503533440569887060652965492140885618944283916514027412388866293308426887864423179169885977022847396888649042606388613678584409234567411064496646804864106626040336851626969566627550412731999792391524621927660961681045043299254837103128167274419472092343488903548703920883628921943222838741462475795499518466274122774542708939473832831141825130395479042200656409978426041843753885043378702661724116868909443902515236553731896070011622930404380782071597383885153806485485186461744217824470749435314107584550072532126427492461723569933752604967072706749444185033913380744633164942749843240655833219045318921224165451470831531941886134445152749810548226655510268538842218109989665803420600960589969107991321115042239790345661581266317176672844157448032912092948595934994056722182222014756518177767632849309892596368768590283656858656229926405514678981087097121986270060301421457359261223814016245276316601323754743161863308390792481754612817835195973449916280915524700741943876232232432970843297267560756094254455609406407600967297470258555708332902754931390007825674993278681577890343534313926628712054130880555735969857246335501598030566451148614509532957179557396124112539356038386080727323635755029431780586307399306150442087034478173511610753901469952441018224321389349471981085979164477038902232829040622050678147702709297394938041020088923332588656134084852645277993830801639353105983978974948929834755624520061146013718655917618509980994394322624016547553531556740806066654257145644679912939371969180445247465421052725895062885832869873593153901987176494295761593932911404995209837853362883056736260497289349440081509835623006225186526768455451314827474940669181266586627066769951944815047080913268532230581417963184933598953667977659488314465472038182407357201130868342205075582882721885475766529498586025261231204738801278886387296866324639042117328580016691184074046439497469347443138134348473286880732361931292817972421119595211995230489982877794183382577905150987776199194384937970822438156756229073261102419627563593251530456528280571806228423956126605693896278225529871148049338040579910557893516902032604079203092752111217435348655322208937637999216365829815428711188106511875702596227549873160622334353805045736721049942536795398354824251578491197773442587971603267701048617330026923757017915423512832377529297841220432101087616618982204895162618716551987450276307065409056465589967047544163534567582189960999465362260263415218018807399377174224346984368201198946369931522789567626633487314170375758763364612656589680510981576958328972367359947829889992881549220788435423222257099685845514520507221763285212941142201250946667071266869888673590764120865914394376875498085036309999650413254836552020535390655626785513830886184880343052186576447017173780215573666612036244900149895990176017432072034122060809256461629232313258812879833411204712197453977562446097387777316924666023639050025851512757551363631449104293082051489687505600933541110583007254946352232128338821841605738017161377221339224635005016952826476239318562534556403166173788865876001428028456612118028418579071010688593253304933532088786309702398448005282318192849038080743245302493344136526759760362631113922713430725132502844388843140089842630779913787280329103812454460686568431816384484971414088366528576982295530444390060042155703435514100753027542600622184566214401179755601391780189471559139009320459968624086667863842836090480106106115378109289952556856273134048638533054461184042265616064805127832476933765516503540655706568191706907249259678014690641765776838952379371398206561425566714764946600242924278734423113176526032940945324334931025135055088862656543172372068699729016953617950781780191786212593629011400692722890668808044396875572534514598318115826800271709170755983870219577361693049264342909401193456950409367176616458402612059465553298587955264508046055499398670412735183266569212380110094145073927307518252009251220442823518930692090457983982130196398608738287001021428660946408362330084983274765414863511597725723178123948588301182069880234279050111669310236917775722341903744611553702238421178199560294064277179482350352422005200555527622106399187464981458632578068913918822529186897618540275140191139795766601855538459907578814848184134060789327990265061473469547133790344254592667695714908240026311347418020417298570672925692647506267369021325584853587392873043249613054765938742020811822174145068758068763691710606172295810661061065158557390137826282708905848627311763149481873341203193450187683245659107138420760121422588449685325655819201236820097961668587975462829630613380609216323183985913700468614377051483263340576984343748898628315244833880754268854797051542394981974731250884464040750660963822564695134529027487024221814706437100175336853196095527429331246817698882259500485926536206003852659771316611228862523056668687428491377631849982490368002530160688071051502026908095489529617389682957474508138339368332060776604368690907233186037566802184234913096820396937939570671778898409897710942272964640012681426473880904385118719675404670854015417681611315101327434696111845225559141914881136587940257496460669374725485350194931178547153468862133952602512952192884518731033925710906932162529521069330595222143055348030602372602539406741529836969050335161314368025953647248635859727824249169272144983031694676114416914387366232000785451007326551519568844032721768230625598231787803720587596125527369053805716361306660263175000535257566951734228260581111272622370966588219132605631185469543082219935797788236093099910943231829305983433176591700605302415517765854917418389094782018057603490495824892336047217198109319597025760790114655035768964598586376014642043972536570723472311060138328719149678036612496836892677166557518131289880707523423507146604817993911946062211154582978086659278953975219681561656456631667287144988301698659066569725922562558579074057021390362476123102126924509921764183577515921451019995123060880834542668793628528654878063273405588469987474758128256998735281523074084445192887814444518863516027197448065727916014137563292778527447271803536608562406858755818733090090236110976433986740084146011392294968049968370653026756094585184763964356441193740676447690384434545317970589582344579083107403512810969952971991290673101375590674008816399586998196107724239388151446448884635347172325288059699883225528488293513795810754881557609805794746451620929133548081713273924293256238726566395132266321037442635176760200173028512118453744725037587276233575409009963281955961065925566574874551797466363356973197772779849578635120593069572272461831471774849494048670031096650773829507637726163831276965564592724492028488935941375055597888874150362391705619457098925948215193477081954705213487608554111880347328819874439357099297764709116939498649126284101808487984100889712195932951368838152728524465975141880953577054731609398608169048295348204704861660357579885691256961085315217655275578747732261350111802524375009527809041568164221741515129568728636660999776191069274406976186539744121933744260624600215640094669654390126285204657042336467007641185262147143355916137038067671357322405387037635000620606412323695812714820065698464417006095168919496915110751625612013247209266862802591770503822587187655824189491581758959603184247822964169399411798831559965460241030801883191685188756922974135541077023343447115235116376382074632014972947545739231337435942693269729921583186606892766441321201514569152937889161301337350035239499976334994016358453538443236539893828609456681172994152826163333311150342979669899134063570223834539175278954671832073393793698506153862115950528227069767213627249228423152067121358852131256133028860067110895645458898842126751110754924619555758783364917664562239059550971666128146847556188686980138377216305889286401560757462576640674429648849543403378741683392471412088260256956861388504488934951935368843991324401451078050295331783331290305422450986198205534383891438241346883448270019658544792903815173326166100835183780806709058556568271222107612845559961483001786643012861843025307172761821643372444562012036755262150816944611747303202601120700159909377744254182270806308609549246436967243209215408908492635188088492372466729105352361234104680809424820282137394525556646571245555836409237372283379481018807991097340021444319581232285193314634397798921757001130645301689970312597362572627184649453376441198711786271534145255957029297654556296576757929336030025107084602780884333682181935262523619232395969240642464031991465364561364009565864177542550600713633641961945951034105605494407694285687056204293003788445004414460836400239650075953188314479098123112153245285006749322754397389066806017991488522329808497088525960470835950170769812045907822304054742030300883249513785079726018324018219539369099317070694399644721277457763485207475093038788360028556304806801898305347117848204407864416113071653832117219835302470987630818316826316280602334284076851892139432116658689481740610229066996265877618950427793082160849523063640413847868567343630997207449517204133370416804731411356708914159878409029963204644475034223195292096125287976125784660137397872104808190690930442398206402436605173599724477168467767100927419319561000496692804328968174955623921337646363988991374486633837142332027946860260326140078198469542982334451184602833967439726537011241353097953616509862410341100300001523340074421276544831036049691441268885149929989013340786718811948712092175289995850215556776342075690924443151381471665483108137430814144366179907130318351957678203937998606796910822745915419212336644555101683548616237524564553505989743392975343949596123973346717073020112091319994646201850226427549256670020217334762070093277350951521085414633381183618738044007303317232078987369245271601260874723671102658276907511079265942160029793192528255165327924549834412302585774059901677700200057754177113132213680600837989002507271363667992799856621834272792726714759040366149946547579913894447343262103020159221840328459212843708281478666451172138211333463079054779013045164531612860536068162091362414394451312143510158973032715122418255743677060275026653474350469620062354332408062619222245125899084863923590798231718436501045379337304859315910093111552353613415453467093961006360450398721089014483225521947253590296512235246644766753720179262563628201731125125527354344514548432752545443830008600982484098671437876987112448925801686486616318431224210564450064254828157834571042780963779134605020313076928987974263519784213002429886384000667946571892562878643454312300665309061067413511941253630358886750469436145834767723708823654431047386210963538685633190328704314564502942864898953288098423756792730508090691923091744686421759040016149776377882779161955212446180460038397911608824274054741361574919924239860275896765533548127830032552067324010944119589193548967766695744835629855616833814727050142635764934103185698006213385036973396952054325421368286477114908979275162138304477654433609600880216247413892778623333500082875083887848389767404145821565473008764727275087323129314509591570593343860340739237600716337090307816102132332462695523637994193560349036577210094150355624980524744562967991416260965413451125215481107772255487372339948564190710732816028966943375277988177621045623196333024749655376037012615110978438616493831726197519163010604138940250734817268825143048272999222621232779244480732580977169117775353773950668669410617900096368107331871165702984716714528877658635237230130855372206314254679466862522231258322893675269756842542118922515334401065642290904059800148967716509616741167575687907523344192316579732422932045196046664705131467934579599407262960174167515918598132686435400786781653869174449207544116437976720584509040121562354758351202324406751297083658763468666664016697202063002678843202513232945014938600784541695259110726198560083539378637321835195032013248573195826378030766598700430881907117232115385879022996192709588754881335175502105278830732795131688717322822325356949651255557071429159297083661533753646306894883783439342729669262935212427900720569983956718873200206723530479861079596286236661636951527215328922144029573922660186229336265891799049611052729390131139233969817966798459226884931698043875435533801335270215273709611322305146642280270578551172293639950608278084647064903243337834376589552654213558660045184956370468290856120434060453696472922006660778707691755749761589597802011232721630718702936199704635651676808607099231760964602589122846012434043117250978764055707025078339954567001083475740361408295341037250548748789184324644982988445522639460396723869481980526629686051725117907765468222604493890367965160525559608215940572177211820187878142930287389729886435441041278368566860713055303015082137518001936797604118096715996215307597152822500290394297887804365299138633547310185900184415002856913837947165081946781732547933423712628653963350821724456638578020809077027993373795496956884781429681058722018765604664127057941128864315787596986766665302235318523496115770619446026278109829279386575783420944823344941835473776568153582434343262629602968534156576487668571208281915943126972424396004660402760861479099232539709512037544072327015224357150230928387276044354701565264498145352966573390256379881142465752592282750580745792782349271364085172325201856928129705779693304201537480117589915394219384948626984583998636935259168999817036286203029037059711030029950237155596807710517172433914443796486694650249392970537595441878112279292772117120885537010973389022740658206350230960073354070033780085491824587862057151496216845714921435301359422524644069443319492089413308138055674130414658438232115462767961571607347307442215061037365504405071104820737330747426168189392577333366641657287251321173704936554199505396173133271126608379110470995702458706559973429006497942770734487469303096115835583611269392121274370999984233235643412804536034554672149906806160560385218853984466739478282984601737845067214689784426012852606804625408217896064708982671281396049759921843214052314863892930589565724658912106939281768129871464157437221363313176834025328464789183170480720545080457841167408314203626469118933393122417444822990356434208233859374223359767520571586448959759375933571169330295030136479195762691871252510592414183976823164353732408639806480929952344832521300072776949534833186484119774726348263202565639416774138343198844247033059477096702434851662958560166320497069130644698340434291346517451556178726354144504364060594657367605522492483319648434216030023678122441639530795837897233395510285994338449439064000214013762015168734761750073162302822026833997446415364347330024350857929657241968831162878378755939457928855888668999087821917657265530845572426942902170559820314619160087865654228376195877522197131716072860090193356777905624291525418498765059771689590091565530153862985025545280044023051767530248004678237788840871691436290170363672519107252000207799148336363586430588815575287068958365541175001354822997143486452301862549524713133326465511634939181106062591732892573956334424196385225946703886011183423338617688935138735229449686413820394316220529239476963107425586926808008659215983981029807861740258569310019300023805021098970430813211435036264208494372067458844072463273198270189978036974279455664116494897323117540949763024223374828354071133350380411955510716273540438548200280201729332885184897867710486062447867786457195241277114798861760957912393039072550281273069666664490056717238013085132478259111463572884181753423258694143860287435310651801142426660990627699346255300759989797419932769920042196082994120979559678865374902594392478515937835129941752064125295880583615092917212058431987678104044725793312708216110673700665123255837155943073045416447978843345915870079037344776411135776867364073315089582257763976667143671698965185801386399307919132804733757296422958855811364460376766718946643765728702373821456930624870952551151328826551272416591882958080995765117433256905163515166544695579648053191105841656202282198619894276636978676103901793822790418889409244533037651314719137914532118503176163954163632283988573524770228077521402125133071942530149195794528711655989135286282344265282634727745844894069124377602610472053683766787673901754250267142275806306998943429149622887735406493358585305453386526047587486323917846481006824158752204950129694262214982214186984769451240784052531428920896536710948551639459747526176927676189136150234991280633757718425366618730355321937817742161910245559987715307211608925986236081672988926227319908186262018766277270303616720361981167790633171998025222693145122707448528141990096700432663717553277670975024724580899153175803120477724228627629934434442659020304979110644847433449621811373620197120600775362931436494266520115468333908212312571941075576626952115826643156290852730354490763369895396326188699143269854400259323343982254569386780481872881380017998161619248268165013246587438420859282464899019101076892553772870596600044779965907570098081103708992873284235283815111036435994218106648935287468499627832875841358000116668795442198309218630154553440861605831361179968617811260858880668963329237170514449169540149548437873045462332837611498211441711840473134767292793189950618905096676990822496252903460956351303506400894034517786246220119036141645522143945896747622634529793834120520838529853201638135161755642971773622027998466496589800098992467361408321065619391664079446729663746483438269032550092872970213406889561836566740914093732527990731399007861058657583929086267161128925173400029028748192007526808104638477617257491108626114888771902954171042407852591625200605704431440051966010458571648674922134105528785846810722195591380884793739144890233872994711473708862649884943354420813787092594308933933500103162890738319055642444104457870888621699413923963901800759530859415898877192396687262182835806355393843382910641090499616819949505473718675942057889418633040647160297021942543357737978751264775080563454629914795441581663119913419238050013844452816611133681111202695077870764626776798901769946289302784134743562942347472397391595957482899392805353757261378306685613759134012840275158743241264615843321646097007972855073796588222943806745457141902433350220476240600419184995211879468361244982352186145253189518137647819846161817147307247363357026702997646571801713066682503038721238648171821252791303516493296159446365572510792173485788044076694367026039516647866095307754016367138274056182146084079270485496562623577929064011886813148245184444728536987386758129215146302347146805603817783897953595849497480090064224023529637592889971924484425869973232986922321965574350808755860943610557819171377203071336336734811423403406699434768678574264286804741030714934078949728424522031799650385796766846425367811299368770587632868481893170598215641355163485630181508309737906951621393448709387699103962993251234584160271888004020541453916371076868768527828546612276600710530948418659008037221793491001969797260552251157764853276649746624500746460832049179111099123331487352187681386308880203083958368237678663031236144324407052083048493946199068611379604026511024402286928888583005313202069554321330578631757305028968480060976287112313748655459230090706257277392641404596254908918920861463709856893422370499315144188674434921548024280506912217291309303816372683735095590003072491034783062244181090309077971386630318738991871230155023818472864471682363669386243173220606509119076668738486659397431802090687198276261575913284893415909966582594705354441914775892990241461500790766741578959920560563811871284535882662305863251616955415078830150102858804987328261537591838399678593576531630272163401404677156212494182289483310952720603168186996889154350473492012654426566931242242655308953802474645211724879987599659896421608519943909730416755676063215224286918021943989216004809277276937708422844323907668481480888840249612734939008631346416660279006960142187199511965424353209116832225797609423202479816361114950767071671047442075088793744342927372560401132538046528050127116590961593779691727777678296957514879191072700452868235754351275270601479860383523400641621722701983334794326443022638133498456922365727092710365159370561441780230631207937343716551229631535016785401389356120198797878846546812610085871986041699262086161788770960471302348096454338627279235674915963790236760035873795144820773058544169973392574032240346803169425156454994351709735541418311997954563481926229342821168234812778421643454960528472255918604749121363267588660945960763933446643637510172241237199324703058490080426424261259117302691706374469906387762515481498975373555379395706767586507892053004090558597894519483979279912119091725727600677485812667952096007642254671899986502437417545518932099121010521190483600432974767088210321867294264999751628656612651975137188321452128091397864868273964057045634354356141316553980966592793552291051854193630836280401051250855145281748426376145487342991773150419771909397596786693692597681899452708102183094065062600817052655457001297716586941924755712219545400650827529059099323602615115895973655925428190805991215121240771190306676633449131567829207478967514083553851466312714218330928309794939300459229219064749277886033571757292688647034736554248274860733083187798498176809738911067826959433785182413370805302619555962380439595524796664531434971108277182353987774844392085035713842059183332832812838131889470585041030779563581579776486871646478998934469868234953371852879690887261579094492686019174884344025499388641152773273959676334347413083766971550825637839230366013439228561150634961744215171319815316391261133415009990404601243195160350227811412367784047948014323991534331834236549687919722863562980547143425137698218901104268648381000395531625204693261965598216046438868385686546702893911832049287796051797568782418198807418203852748584005378031817498113782926350564650514366420363126858422033556379099310835933421994240844663261993538798339559365759493024504454000511549014075175198094054707836530605076363509500772859405481445913181771560258580169204177064047189286079512117961996055648522072598328201631474695033519647416485000579398752534637041875608085967785889458699356182612419827309696380753781700945922714057433221142048349019971244905943875719445158773085830391091308935340462962951936183002747167591970047786667494144128832586647828327670422048211716045516368766664113356016812001920740668019002264198796301059257193665743425351619322217154840904738428084678910968343371357600617144851381637263051500864158427006524709025221723345925017236263742740510190145659023457315910640903702195281562261987162969841258561461254953209480680602365148914138823284014245593937113578468019637319556119223433837069627032364916838313842908075127611351678941937970151137246242907524649660370951114733508823318965605827050328946973804025831926679968258380009153067928274489736750614407669877635318786909864161560236804153260807965746055121389811075613427491276073417006394213392942184265133724689603073311725970130714943870800637499993321596779767819844248581234814053866431637490611558484106600581318788249636091191440918814595812947667309486803907426401982947233361664634483758526379141205768763360931157010047238493947961555181258992801011534634632648546498988174495287936460240262216143739826588499195287079186453769314145254814875126531700275173844120305681525774822135812672840157682813160759175493706378920075904348571146930789636573385323022248969258887138550285761349891230513555358341197721295129069292195339998713258258816042148042571114727337141951911751478231687415145142297127901620464789097658651035220463433708273985268591841533985480993407146479680852019321654220731881564046052961532314953120761745504717847046415174093956604407578972497934793211182096332040508910893339337719016210430564999692531776696919838979252756033290999162255031968386531945217852257912779785600546723893979065930289066865087611972879667870343672435353888426948033877604706207132719743881116989314578712307278183624244429484625619767120286144380124570163133641125707392432876432486986145809165933671384553291522979421236760450980891658396379578731817945996602006221823930288450349964128676598368484418454421492174794708837811687456519675062369921736246162806851337813166112335868508849001057871055751841206491115725235919870821231201041737032791090343399755089542700540006714656104935986506487565602468527692971507938914360949390145064904325954582812065246236036801347680302185963831468079069071180828705390156879862310288105625072811427023809236026605613599980329272444104725583772744983492094839328952636085980940412535330541457158097707455474889724085008817583415410318499373490870459024213344114901545438059761308544718131397066616424897300040098956510094763182907259060518027087696071998105303581932455274732910387972852561306730702380021399905397595892833168451020658394097279489880468001042748649234307677804464726565984279368155320704388429805771273783570923154068339331207094873495868176016822994804411319875794187893549645552525808610570606362503610156431170162410909519538817229943763834292553621640087644974313518016097612197915781650066262904318245138482007906149638652283724361978053079809078708756113892863963997364436825897533130111294603819877958030888315408027116400586733824477746304381165317965305423898869465209175749065564624287537840854205736804423922272029714582575642083558099892708071781175812891650110094026730520210548221388151631925949399360626919577529255421477115200644865264316339123250834642028223092139393995228136347011962016500773633187521146194169309381275764562310062847531343116743833818334276509292850532087719586469488801313653173691166745712996634780893153551010841835529043411034848564442787097595112585214503555051873231636334774336174066516554399322401003323816842349516162573801229514208989413847842510755981629442321002425149685887861257068325924460491180230243440700092357585077331564823907571026146139215727350786460759859920923617052600507893008229826941250052516398450510040717040423642091546854888399176189054590444022090454309829507518440852039865410528643109345178015575195258789016741844276059760679858511659677196057826462983679064978999267253879697731829314070889457940875801492021679106908203570351545619589919562444105211198665786502728047317634845891947190762734190745931170607888418220327340864445534267176841737640454882028636946535163390387736710215920547761496541513899718794654250413901576158638676468677363372396132327659290113397726120469820977318098432026028300219823452509979545314002910873255019323001173133226468959795169549520689749244916572784722418473354455604537075892926879700297675048224325770644785577407311871837476572648090836490186384895268782838714973784508997959465201340959401137453745729942052487391412069978687442327353036922587305270183030040165928218999674450192698416737013773209430134630983029622394358685967853742644563082275727844011927191731454111170448127130992158924280538031634822035274117408326030164033204253986897529835153840884625224479704931913616593335962469170854876795495467597238573143254166671319300429076010486011105516819221411676333667870078900451384326937372568962902913668242053283694727321942740731894043315397153034494806139444212918357677253964744714566048312071451809735757701365627697395884941857090801078803247075250693532180408725613034981689328337586472830756162696343630016459675859817569579093915440940821564171602843443002656971122002153099834184316627643060894313801994719822609096058925511713171191627236080308499850404365344256235881257258874805712044807705845825821267862804664659343847839682357424349495508124167322772485626401752018317423556110467452445695754572040643990458100778689976490744724259642043010559274123669443437158547270033896292330244325487228219286673694972167688398142072785816798167850239189167740993366634489117262632225530535604998442071193738148417828392167746344124536402652845935696222373926599461919337887752570095520999339137300788919443733712637491420439248671119196935252547876670768071941487321598595000724836125211440225333513095898926825304964487546973717736491691423691729293943744029629623384263529627905778410712310295976408253660399638454256995067408646644850321845955496262977083906134111932913776595484759545086045576339530116193671257695506155971056661404610813006755765455061809328271160602337186300561865536248236057333446940199017838050326874099831242635394720724644102747023309738869120031187756734801405323721431246639743403939798474690695501646426680453527475672189262062596320846995614586942249669523381559273909137526802455516481821044328065134710940492093712764199217869219703331318164979434379647583818549691472526461855149816321946428019548127669672070129949056166136015179895844106668865789452563507648929993072799970566887072406070966543768404998848941033640955044394876847960391481935113576898290761815681670369032121613091112827812688314870073221841660902032968159975784049101012533620692259084555234754762410896966999903977933376536328961060640788977028008185666516541608700981943399702298568962156495387333075977401220354199093592379625913433902285116577802900677294008451221169277509714722164375163005641745405950171627526948274574177546611322631398700748777969916125309642167720464237290990552906913130484753286630573742621605113049833073349755490275953336563637404074202201739742512025524530626386480857215566250925538595007248790366379923528792784869899006076555218282788367586340826601313374333983670542142989182289316072672571006076782590384311534321920653889108636484742055325849089814378063263787671722041194671726447377476299633057989806124167971368297296717551378824498793759871954887825693243471684170366766166149310491911527434554093554837893285719188927494448464342921761141341960554482075927219182457898735390422648457732650318450342018144777508832663467542730590802966224514632673469299122878702245505191331704884885132898218367339434706599406264062456485950647190169339720113394503912719392560859106246445314932887538148141390039653253630242757915829662444777135023958421027154995243710464790351058493119874731447776949889629415550687188965429768074804377315540579188342811901412762554142623527999033144285918240468411919780940372324115080496932665463321460090922198928613407664811254918439133057339690252249164178178606549359202073256821605469392524604932511076169864310478853514695590825342915976151595338491040889440693883439393539025908904257126155696956195417662736063239336688647137526657471395612326799318300404061598832552891641794042086564709427891770790266108719827394486581339923470047656294995697279277203287986387361767110259827517411535213623378416449657761454352598006934385690157425303487157183671302340162876060857381048990125771001455428455069127360024871958607755221992852090076526991344410745629760327825658923797159838114439910825521695067211930435022012721359273733183921288498247400383865329882012154601923203484192512798791222213459936587034439392078861833784434633163615781204825093050045901249212018413246915658718637249568782473904825495034506394822573214666491908174584645300825825344255314167785936155647277108957416843397969937665516828544933656635067081806563418774180835918564785714342500294411827406385110754221511333258962468161266338250434172774880106730377817453579412908747333385371637220201073859074069613501062694292091109394169140927204106514126828166683694613676714153245550037535248412645642284475815325429754332005218398435669602336254593448428043221979402280008702967435428030557367853791050671289919912625354297502381246175174272724881590229374614015548175709258388627266075848537330580579229849818898462478176826874354708722495061967562125751510782871544501047321131354422206859917824248508002761612604089175696310720474588605178848439454701595919607829243351309920559200595232162457197223957435818872696376510290074746954717900771709934455680587920213300480534918611453254529001581185780449324840409162452770006594701497975020061818465790439831194733031049965703693936017902661929494463239822645180673413677865944400149176355265518491871413154464845407144822117354019075886257022495810323490460739636196069332953190000516094425243229819025917325245735198156893969152201569233800071185986925567566906352843569581574468589915688131772405457272827962397627135084258700379763061548626605945354963504040064613296211212333187808612008907262150449282968411800562804194141788973485212413146133979449472311765237492894572169238020466332473552478710084640523217819886956975032052421928015975617313502900820533483811255752291463300089571138881724194679967975197972124680189124339026894007981236093106958542794397971147632154927688364600854698627144989410226513481939525671922167943148677578863516875691790958298525725673001041983755034575275640733481589258326324979182090495413400898365227393573319996387782954512525856644115174414211010040092114559748280319839150905202607808631157280527870998711669075934595973941947729845591125392525873361538363553713732168717748935768670080477748073805527051940855583853294802545964490514624212299542636365282670920198439923468521168093766945903004685657336048035778697905614307800949199183372131801525646271046541682650379987742514283413650044275778691645508709028078769415039172734173500656689649395636275305175083511932040662901792868043518344932042184333671515809591873207201376306937239914280258016439839021464687910884964654407778122518017282031847025238930849099675558371806582947415317814410912267760473054751968181579303401105997401213828246103722531891551203738816923844289093703188969823601695908143507925356652699637888622620155688253855220004925351452414519491004203894859200693593146857763742624765598291866193537137393046418433242346247966043677818921898553040781799848304115576617345311779503465104509695296894241431175544919516270943491130685368820145777596774811509864562405724219924722475783328946337589655697447600105251076200531216864629960824935554217778297247649585884606034790464946079945016231888801766282042316638341549599895280926348886791839005751804428640546732488195362565193386340651620022938413020821103525782998603387662245367346059482200577972623167181999620430945346769319565588822470401272086035574188861549701132663233077293655321923158461114196151743931273909184082939531096775106980695159739694018422211159232691303375644756686258639987200650415500143469546872287690060448017563413437977661658852157585331538110067637176223760870647433356996335114301920328238017464487272314320036433185434843386369403590373458194556853453733923854669974171797537808346830456480010751599166795707095722702096516521889969505489811719679252807108078566478323309992717588985017622168832804218300109909896773663412887618047665746184055454595221582854470106958778733558406679832352206037757795487810643171016783232503308140729224101946923395386397309412807357525501455666619679576100838862832236803196045751867440561610709724086345380711568778404737683999928105928734925549656990896386533599564697305946396288145172081625049603137347072108525234094085059603711817202901645558935478944792438489872223379395931268867046260317865280049812590830036154794659034815302867579414687012449743079596558823473124297523257466388239879801320709122605871206461290327150456066447463354832263326757463069784892693277882747124071843085884765873775671453664593863271158668920666843254842933388874195533467512688766560585540533823762400186171418904794798572548340809922696649852193307747758272447977182891096851529161145743879205702187542327810377391704218868842719914589557799845443235510106523318986376061548574323436623254922129327291729272042768940471286153706414053313737014701391881677628463562586092800602838492252077507440286154211950250975577280779689551216951773368695041113879585314884166242368788082024923235346837322517148915381214156836900972812936180825573263010237408318452068548412975927033394249548075992234387892278542796480544433777751317996025595388517760832547850805545808780350279313395412161059927428152245118280716255819390227552225329676540374800885080306892243628785040036013320736048011095203415848784837334925083890233539506836413558499736277549760162220148434055514910886019058721149788592542554099270058601524228208562991747101850840222366169272464694874533022165044455048443375541426656317233434952557849412894057377508293755822868457903277143319223857166281536313513433692762296033484136690966676648362055080844072677714877651398170914448574919892525989801552347616989207547647353928818653320139906820351830447271260454275200270733795901008999360274250059109047259090972547503779969815203478612491037163187019379657387381425409869067786778717673685982778773653673715545077126769662909250921323166858377997251604178791978740245762654257482763721973295840112863435753200708747335099517218203054030742149655060256782885065436707572466444686032149008100043866181500942739734981592664438628638699123252085487061860943628476351330369799342477141524521606369156124022686502748462307167931670327438753363658030599697540125384558146196115509088311479484498615188316841750387309099617101444661992395429293403453093853712233062086917811625577144567990160821018146785487808920531471622028490465452688522358507149103637720780121729039094703138013325463967180109532682488164774987181155458732491794883332242876540645043067404549991201660172564716946379423325635191238459508919380783722510290283740275890748602588906950181348598186746672071766066552522055149945098840492607482100250456845299702102916986193970430707097190456701764357738320032085202494842994709963040225763161270912544938771293413113815152694805460095785153738504905993055870709447007633562793894189532083748304377642591953991566745216536343406242319325593088863667843233523031931355035232876149191009328576093884653182074292152903857972301930666347104971492763725080908403098766945224806562080947792882149895224335681793778215261204790300485183107148455800420864241166869351815031736958774231315696367951387832550394967423064800308661430968274995273515855688835945223676142863903285568163614459865679500575799016942928718536663064656573129877397564285773898568002715988069795725876242280199025217677323651638460422262882874686661234876708108158298662564498526570634963782990572342067368577133041955811972893464178456774827763084383411224764599746259781365431166790703497829034192054800980010198662324060305987947040383451693430338275379352516386628236916262456069776847958281880145422582791188378983853090635512975954912362811146769483849619487403552799283977774111668444234269363377020257935010115466777880274185625421631213540832407178110312098164527765971399140120018563144572350746198638536125873656025916094773174547535369595676426252125972370312353597614589530830915852060752953552369109580489584313143512645672395732767884834693819220669410920334862060557423961804700406874219514282512855443658024196790148790124994770631523640422901551404832464518288750488322061790584239844072737935651561631233901833130645309007395816713536798883871364700902231025982775455746955131558828910990855656909595084838168404190656824967475829816797377689291577446564708685914403096326120074752662564900783367783634040119579985665840212323719167027285616193266284523752901588812359157302039939429879609119699508140819995724730417911521929932052354583527486134770673460952876803937542065352937189206574106578222248171945394870251932812055589550871379951197899674094572520836260624816937934510485816016242269363983343974375554861686388790850685904763372814145338805254805801762011292954959557993168992092009766424437431866322885613239980019217651022115346333099410813027393405176358440266424942627405855275492271958687598576452286370627730245228240657698932763894911609339988339608923588112704644612950833634300737212526020814769887287466496440853779033497589477408436271341881093693645788871363895277068878868726544073763950007562641334921587392247172026180664859464183861755203032490155488384178010972973473598560997943389767218381935997915243451297159128010961458236893570136658996951501073832631173056454338571749893929179092638294754922924888476446194700309925121344793960019935714804299364383897690499510731985023871741769867083795042607610490207577735473394944750730572515245909603008957757763013630022251504988405822089975122476512846465893132645787000263257308079665539010648081488139484239776622571471195172112653264210658441843509342003224903619958565561631719742545235477051289744852536269248134330322683223509948210036837782214391120532342100881681841625187371640539716917714108928752760251021223124879226917641712986232021572793140801173420346941853438120295100178401266019141450785143906627364168061409319565981983793869655037340502195468646759116855959581325599993624951561265919484746605576181692891101497767703747796064164844883705628335296514496661965557399818947234596334229315326180349894608461360536805677335224662301262732658102949100491394595891079498520304795408914391763673019477887375241513533168677325430584658570647181125377364808636951798178575963510140648766179299365790942016651575909633234502225859799917113010949635838093724420887722424855954556946174061554738362550554939227848958670294787546540963306433248779755950636094033341155613062655629978166463481913234880094706387519071110016099455480945250160140861814290817074096771787958176046633674094157304730912683842854487054189028068875415323275835948610858235441231661049832532512888478722870218681373339134248553314017251695021783146592406848731452611953848669345825109352796836536175910464960933194663953832273441312480520083812703049320475118407876207136276174985463385446136386517673744234998343852676364584286605375272212704436786536827519991972435654424549224016913661976829764475169010693696056505670959077747537698769302525461015180574502732344313501511890930410816928134619380812461630148245375399051141334719559211410205117543469024016173643586627975679932976067099975226972029156208185870025037730717264992399132180472619736607930979856993973283837998998264304174425660303032579555003002054775924151610849659389069384324824868092303273031815632583813321339540519736320346147915721350215830083774920193605194363360082415820246174901158088719209443876160023458836676239836863924535454525826367416658447238717694092391767204176117265420099613274597778303173096462292476422528495274344011542114096045603800171621564284119524376125683497299174785163289655050351722729154375088196783180849736836794167920211588342906514847302417024897399393390944655792363825488836157427165417588259487566559083319894181113192014007777193715658379307397646048894473805654843494617517415829254550164952377598573522919888841614415808114271898053775154427947358132759465376327902457721155201072835603772309104197907973572059467029690307836223016323058435996965756095073690130867933027615860998331917015019040367936640701541491769365242034162425293828281642879971798761975598386887326512701821186613040449659938086150375483466141283790479999265896228788826042205989243679535386600257902383920191880583266469002432341135135430953078067882574058884623859857551771620543595016348495848308763116166920354038938327325402918034082123041567045709162304186424505901528961116199670654052103296037920596879655456738908864914851097812559705656804500964828211877965322569396821549904255529576559616742379035801453713103217164203529527310488257252652884180665726476489661402428294876797518559061178766864854275413085445266041699722991304370514531717426183798909530708989274807867772587588942951969692145061165099714589959198676508391101790197137640280127278945023517851934914176615489753900149313434077851452178992566069186036480239029162210732499695781305860083587731403437952226938081292295300304236859060873273923419212214640790371666143763358748515689030258905257022938632473971135960910078854973534108070517332983197944735918658338087380320394131394751686481611823208172304258045480737883958514744374342600827446852144633493227587906399796447460791069825647480126264476557736645994492424355872444881670981833007930924148263876226844296959564514863008880184897778477497501543301884384984431485648085943723324110058475582483181305282881980693622132622333012710478782275087811027258535261898698512361781198605962049885917327514166557954608180758447431446881940736001501171856708162770009612834162795972925451921100909284553760887787706573680887174723864950436667351774761974786356126336360449472468266729114368138740421537321767574912759662638319268387675477080467523752372722326015284174160042532435623061685525493028003881389062268415508580791521235157748310510170047452531259598070770906917224334589585555926242115591066264608412616968157243719840324386096615451381401349033832738941000982962388271502833269060534155821925800182460713897262968162646619596554095398246042066963569807934902236888996477714036772176078713018115139627001248840370398167009196121264582778291039388185288662898756149629953755262246209067729535773067199268273210948697353537976703383833956148927414854566434968997639581453431889720197362620176835465343421695369785014480008580365319920244544464542350489282799744319458480145790104615208710195488680954787559718413963015858520503731895734634681562869049912107513035682225649143790142753534054967757360123499360479755463473666609871318101959500586063842493995946992319569169179783632924206005743818490956779640698862137897658167077400480203655302064586324480978647596557537814693945867762111029025200991265328952841519685864144806298718341011307903135804025021406793551979116021140703843310037195331163274836777579586424596563615243571683325951981801403552176384751109265493039003572498469022762169542737314285750838775859435227007860025111672862641192989444207968682069003177042554596184614244007744781789234526826345253708859317527748929143328419199254407048225216722174231796135399669558818542319411396307065492614222839891208511003675303789441885615591045391780037095875281729141429864532538483317031238319242758155431905235050914596310567768178228149160915914495191787588621761049443299845116941438318823317690904423985321781410795034178871201789390815741160027626428396603542315453617697642855229651395469744240336020165179765677593117072059333345542476936712734520193509695272659752725883595344796042986250830284906949039321762861276527819940344990069549435203231752308392535461603236874005859305651599374775468270109926408197296434819476613636209296888981634521315963461707848241756205210013257306397016930894851248824769731419261831080239198935176042027379654748301874048897835458695832373133994488881045500484827735973891980282537918769694305937604477724928690171820739988624535089705108473173852756575961060885588392320798897964423855307169302777400106015430803223928220832627177929549131216653099033085501192476188433249682055454061919405434275510858482222636279007124329637365803318922901744421129119890218239326343833315688825178482105577377853865628559319785563548836940289000114875655241819766665067268737225680520207254903717820626762655249668609015760174812960057659001763473257827410098502698409557969629013637365913778750640992364935090608031139773865453174723673503866151289006500119109228179854515868321748550461907062557842078899336853613386105351931962833054099148672280987311850546794538755098662398592601696255478205536997294386586065310762971651508881083613439116123636406932028144061841470261826133354660536716537944838083368053868686406027998957583627472079666287325776375229213823270969083512807616713112608313447287315709205858388559856237348486930384877922342725626121419376796399467552941731375712544883186791407589460993195568143319343267389473512665177867791580572855290607707484812034318152100341728507924466287581131114372999312216541556949894469561245501278167516494677622711210410781266695084448287132732261713878206618551907287934286778218816565849245612902237022675831969778854833429234203453001768054862912347734737465317815786187892500340531927219867171241732925547599561156406920370501861210250763667860823677685871206599098079646154098601759841475255245295212435464019078452978086257831974634214030344525908551830924595537735776275531236969314497675015287100476286102193614062305729711081278909437716083200483539775288094627994073651853472885173438301702985111942430111940135778432190195514310348164870493795806217822824663687792562574235465537640694303052910526864112720398538081950293015921741298576493491777501373707410372977800713562408366723229798631777065935263618776037513769080144393738884948118668790468572942594973517670653080705787399234196192104568969535708215591292876325146495332731314060603810462681278640325653710518949008452063300480156474064933357731904969694645162480948853442688321002179038918114947835818122423749312427005356620297645086866425559894009866409859661919132196430746434379104751923339425315925122207277674972939728591974421490019659705359458302936359166846471684243807892618924310311527374772393536144407004739985227850203710769323351017018693914658717505636276888985591524814254880809662505398185126541540614896042232227239144118308591997398254662289413796101637115531698677861020188236964771677780138076676477235604299783466423159940496199832894858224606429664052213052619880170022159248900177356658694356594299670577150090799055738514657597271490945800705973249645471722474117288191124811958236664143782399250655517926894966055703027198998774888778598336293421469740699811263888242463390804254773430248095271975845642438050429496446219372647954592818464221213351543261543931088865707439845713305244717600556523718040332775064247055723494284213731779911890587169454023447694792420753456661973378908598222158584187584577923280220574342415909723123135597985800294336156750365185378676190180263323374006335290975822699027245295105442695593323744629981965537222120480153648418224373599599416125198574902085254929203989192526658217312275829707119616058814132273219102727403363769524732263399241946466043212944273840526575888517506856367558457411012605660723468050083663603265770324279676346879878292189470654007289328804970938442368245719357212309671603448912702261140064370128543470862741436051258847087045361398617339628227867127521478730274615742571872795298874385515636816167332220916926605703117321318192151805558315147032191631517098082286000984308993882134133620235595538215725528862247313520795135977135258452928055982977545807382751188140469914761439295846310226693255437670908852352550477904947678607655210255375101125653390504153046963288320085909395583842891657746532462101494597561152897571981386756901688567967367942232357462946825295416249090520546941937674834062365283597972352294834142506368816752399269009780681113529433416688059900714358330779433948323840121341182245415698269944653580879465999142499955462651852924201201662380689298799984377290813001915872994007221776876720939072318041280392720536557427937184390898293737360027950347090789442802389957852953885256632990742846082731524682085519474367386856423407477306835255895100989106676953461854001691772992373802341713458599327831726480839501445743687463907967637336009516708383751496298471180186893120869702188404721614249839039613566884668694356001289252567370774955367344341177425773079830166609899665462339508685131432905018406110483979890139666252037094612543152150496745873800325855715519901229398746825126688918275427040869187088643686799385803867611073920091087883636292009687443088390472747977849650199538411181362932121063273341284852876921411027484240166884085847447780204904265825811565073517217623543136243342034550717697855535397909198994440700629161715622551590329765016759916406295588246938337821383852247473157890561627858138269116007985233504477276529202586031195243174520361243140219181006126474035269739451521769726957742687761631381176870586751531196591737162932864904164374041708167554544045903865560860865580767038651149594497707741822040320718802535957120183648415646696098712731973658835159116198280468721397638360237771279637647636196438056888232810708976108782265592610058103180960282921222555599516673305540932743808555764412762346126440776255188068459991421069304805755970799103499580826196678834103212400531096796418291079914841476298290560596499837556435607913404096803734243621404073306548077754417717658484331052224747183940925402926472262104092277900759316209604404443412403786353927482812009859199937940423951601271185061439664986427628184405839792757352664114397187089807933506718428019505624833772455328895833036077728144379946863523913416540163618022442404027253117413427124976117446874815749998121140667687440573709165282914403607856614870854803620024176792783552048390392896125808712532605570506186861069318799127686009907560451375534361546501266300235007669009237158174393357733375124334348669004856915782795272691498852216477406351000757655672528151785783873575858953697903340286190574070771623732174578514395424994811828805613959666501399799511430628610859993806426324419665249067810136856760165953387961226478429024474796666010217428608829652009036740328244081602373467272800211499445374575487416703463664454389318791296457713804301425802040081169152716615148638403203209303679490381673696703941369849414515776363923709277823549613716779281057672538637333059198312085172644417147139695686174983323279966052016695067508906489838239252084283399467730701777418519928441094410066111797119062357161856542637408415624773788881395333170092828310706930378369955228447461139775720634483083976373714200144871472095094712801019697144746150240435655763228985885342740272245562666554382686039624733743701201055854677012529014021900662026788198855277666364234691793799103890592961244409616884442558289178999933746928108576919071833643945224878966940526088929023067881429721528933502176153068548164553616120252059485036326297669083751681620531793601630657832813245008305995999240983784823139409687083927522314142149376532919682741794866805785671620624387758916463975663950472158506107636215026682560966353144637012567933476021683812807194822847983566208961642506121189260998261130307792118145071218031559627195957336424333245329034970307596880972216344006023137291624378912597291619749967949643004869920405902296188404627723220613519803136166645536841684920726686670178266694801914343361703350468223222809450618064619707010317476942431256667044769884399323154545322460740942075483472806071154704650118363584282386313514851591818664662965287028213488359996433480915058321314514648162796130311932704648564054706155932624166474257744486249235013238429818664454941125890897288149716880922589336394942719353565320998803723364684801871215256181803103644828532549768263263559256661601027480383471226002540963154903669740355475273680572132724102486592599251619305567657725098631606537661941682631509606451710252914737768574926283947868130075943486472074191706766184437511934467421435353258586100755879733067741625583692563099908566442273562813625750947649568743113722439600948030498132084324439428640128377582947839830258921124834633847071988881451361013306893250804365583394180291719894772933812862857305776180969706371679630872602990017846605480127659165057180529853119418793436145766828383922105237389360811288649678077547526380115182585097735529415041652910059162538195464195047377448415360810282454097559577671303349242789724809122883807806013056004725819852650735190147043451422977024385148527276433145959062006024829797400393428144796879598838615484379610116483551552913038327754739742103271117924495644539816326860806984607099815714592504509548665302360844503204660021376724236520174406784668489442082075937571590505755423158055331183324146774361793410612206373801292118984509955477699774491053074366068274440541938263002780842561328316790094222186576545326428755351096649248408547760907105767828597993858636135375672765575959421379896027092429948962686564402782239791800699534675666987829015850826724005738993431160850163903586478443567285311354457892446373598676816682187933036676859780484184321498727376974206654447818250215348870521379106431949748286006170695849482940308324220300067298307060591823414969782013727101395613444857730611454486646004630119676754224602151747152758193675262224338105026482446140835161257300945051325585708361501388268438731008527553863735900858634732466626188351571285445831876975005185588496745310003119754460911787348107771062174071632366388116123683722002601197278440490499750040969178110143713062807320930309851318475478227841947991945817202946073153225428105714370794433982018677312606028853559313579228560597909915084457746042861329220750549651799244683533853484117665563770368432325909729755810576203965501386807907715504336250069355351812045146936468417781168462230153071153572799379331288793187256163315403060805879831630445170728103569049846173892850143049174245711166582327868613453354994379320125379605464223954204248887118521372950161975773881302270829656399278893736219761288622185521885193574576217178242016173795803131271346027762952590871529077888611350535046604197192826106934381966666369071333751590986692753599598236143808756727732340750088972101311915785912782094059335648533850779584640298932824353052803802831980661245564276437954348503357359921364717058622969553093480730339616440096443182878765654402458611203846427365038073785215350070287038688757241617875413492540636284832407560618763427919625370049613626916793520040331850379813141999501035515231469331486320427938101475199145625013548829793444799796867642701879115099087272666402572231216005834423952902574908198111029463838722951181269443737439212144741476269788109626224483520542480263798087813624743865435348686241905272930799063281918605465743962859787688981860472966256431455718536500705912048770136590406404963620049080616705508923138746853444860874491468607966301415044554495884011841929369595951313539999639756897048114927079008584667768722296624103847630293668548426259753791590730356974937284626762247943136488392852099680650056488124689464216134975327005619860931354409088326239832438291172845298187198320514144771717492003258147261219376370549638386042882239639462693547596330394211219670126338583313363717169811137386531642695461727449828697813873175311154687997645536173966950172941066985039785964430288556708165652764450541645461021653799188436075968296448479975481013047347161369156967063560438181651410614779981959214454209440353614322305403095439022229427648228075463575580940625007586606887556176918516552218065684623374768930007487029975085865168364442324405869976693931629120118497261378377047712906950086867727051405749963505124081514059023238661763087179533842111752548998410665784200859521567093163310455253843778194180865621627474176228169793114902728555692266703103903926461330460636660479156217837428024558504160749995207306654572062182249059298286947527454905458561590406342127486635504886264818946314695008287466074926637286875296815802841059583406797978130500052331832556918230497987923818904990866487002350538621280422178843015794014361958196102072246687064363529710299625074276728060911365165648949427590510184701347901703092829669112252973117043980290073175067281971846395720817785714335201803620366875116125630840304484858552936950029903706817239735828227842005948626472359420593404703762549576229520433112560458635509115771429958273390670433233508817856596411626014955674105689671387681610529904809336893444111766610545509929997619075724784453394086823774909025470846399110977795339870599432190386998992124726523457917247039568957011623574409316218156309978772924042126973370685251972562439241435418572349893727256904115439756646325116361203348626800772712954180649791264598128158597747663551082851004381213188413180304363850809412157563543946144928504715823718249775420479456187165037258570284528556193357815650396271708111188528462060190042442870985736929744759280847727884150437709305481957465477109059717735406333081518587422375830518209901020769425765960761424508116934921508853571556281339266416697391255966979845366511345083524763939760394351261493735510735566112069149037001129172210622040135320438583255929768643730970990038280211141282962703209671801800513811698866878283863385099524700449493566984367822548317385919761433288790341031716754336938341473784870860678642874165442071121723763061931997582507995340312310498755162520825447514252727784108742441507641924525635221923334202818205421237336013924839006265722830423804328433768238606772432299846128979860104662419289771431728230262015659769515375341171129773925934045640017997757831514576041184988195418704444936501934160671449011447054371745918616431813746035731865187829549242792106876326380493693975351300217952409649088720594323157648097952430891175754322885665317906518162488003123773826833917732935783330546560263633870181177857091165097881418974500615759190910207339390608426294299979140715872111783220182646081709792568369561547907798475101144047294725954796242307799373440110972545740090392465550079666305885693274350497805052042760117215524197488881269262507183253228580959924164060300050182377478427756276537469932221372867709556494437396354394096485209103007169760770730236839317491764224691506515587141547698283522980978797858205364477259503015562846450461467060120523351163750166830466887878511706022548756577502551757645521367871990492753686822391005222872463418269143827362556646382927985719972039883033234621213889750050980032069707428456117469383874382969685696734110422401039654699980195043187735925644839412064382893154584459013256106226405376733064349218249919958632205433701543387643262420051323378645328325276741664925401981598022140166201281341713313642686851593419602934349307022827955764677132268058934354111126797705923023669450009237327237252007238182416305869500147750076526379882427543522939120667147402568197998593162448537831285182546487728679723528009936908648317950147548178870588750204464225957071055544336020708366346975789533876983207558916082631450216098904245233107018770074327686774871420268306865291849323843817307090542327757998397560697702070501388250881466964896838447175713264920613141143975378755807321982006755960960802987789010246500575958984438225229653127097205855551835049587419692123234047840813061442001081205740692258648143502885263558885415792999708655771503468759913653443614253066007877505074467450661831684055149999717599435825442726961912406841612488952800643891999561591286430510593884699899047361918969398925780693976558998501486036095503315742412005889692425916827961703409147736850072684822704097001060144769397887118534928010082017239096754900812536845323026074712775061121889191381126265941323277312466373324188678445086939582436762223856223772552215413057339639183197070596322664600183969343968238349421079602012755004905478476251219099888838072184059218898708922576505972138567811826473470283282922954928459113971094485956590403785427982598806926553212849368453760473794733346009098547017339794287085692247893660087690487558780254932540510771845206596692255629812456883712052885815126596181139718688071635638197889434431554092530003618587141037846248957995966666035392102861568090284581370107803426653988134231640146498190371529193399958377152981048865369103498653329304619738662751199185431528722893499273683157425519208992966696208143106830717793104311831992537381857034099296444768930891072429507066600633093368549719113622947824683507381644243616632937114495503872071627084436040296538291047431089452407980432308122252831482847432110287414759580236606782821114705778065449391657145438798993002297319061231592933243176565647646256544920603269089315214684791519977651996943196418325783614949231804694301710465680663335109632866370950838669874399684775612372112261747509864086341339490205334926026795936795929801084950461085620942736605072566725965870143893630761968376657630130183463654484187797717291363869680486296063670919343841219498272874154235808008672768237003036931022519635133883072268478358311776225581750318923222762491365096195272306270411663292436155581358009644259788911724622937701814971210835522704834748617951792631095390682632198293398117954893480521640333685121922742766524469884863753281854916008253134410959356881096691427004403909208405533871459176467069501111553381493340553471428406483277194758685686499140916653806502716895664077885872100469923210068533098499966757116474518715538272320005471989022580243909021888938705373553220284375461034308227980886161088992116529548126337472348445797737062362174934481008781036176053813161289271990129064479225949148240191557763719544670646858054263013445180281831623081315799955173891654378468806677980436909203889668233919948818578306957792148722164674366124866942850495656255797702357374271651737323190882506309103506108037227263195040368151768586677131198358892644391784364714922635081654576764288056615209395851651806704705829514340412788485275243757886023662390193661953602564575146783825677513337330029987172154146959945814957171547541529200738346370825554955763447185198102129057236976758087364579705117695300918324190912492279881870355600281843735632843118100963767552786772090142183534958808991827503517294910817388339236214637018777362441804038535358273353228717779791264086530359021359459308086127103155164996332597922311085873894293410892108597901550997934467942873444936193912220109824665836447313507004868956859263412538060630734263790449157502118623270621588554191388499334125025975888525930904872013423361606303681223039080946318877359095099663767362302153734249720790275483692555507514166535126316952678518808095673928395411681621116992848693307364775743839736274791672322060296366166272034982683158222362976830692417519448205649422117890590132028316339722545999075394583378169661651461304351897800646126950919368226935593407823861276598430285606703888639143791790665613479719361099134145502438443967424800511178424551466014120662478454820509942418089501937344541970731169906334939493797989298409599550524412235222407814511578870276032040928176190441495447428064753993909252619356777351810222642789701661654367399121543950339203739088483751775139551900028260298564668305870989941890985507334934048862058601901864060610034500022793468873185100020392728379758150108291795187848955036112265170782408985710338425961302606756045724078675660667210620831068837858567440895171967990979958963811665426176720511323550043042664823516838293661324012305772953818363083298988062365263461943233687424907249040693993391998560702401086761418196505817719918804963894001625910211901141979758050213923140307749899983954162483159443721029803517818481067324859738816345103170269117320743619657831346476025699475438491739069474398707451278640155813287482614169274304443041956611447334894197072990806066734997951761928700575639850931924452097421525014761719701313676443765347541095727806697181442217272782813098522867932599057675115261181911642090002596532805382367896859387233164893727227318232525777166453367830443215317032729291545220887226311879465010207360037005680877555837568900866695257499695875752918410576361873359798785439743945438535099802046016485934688945792178871208743511319243337334782919519552881809119642249125465594689755890036469896582872434726924115322657465275908013805482438908902562574482946479458965218643286328946674838615315273239932824579525396941522338972242176730530702754356443506458795739459382143740437512886656482825103234855779950116796257409907092927705899933928769616369642158888887414670864894618555184301409098206664383836637150637826951214249715993558621828306170282817142828284535703202108842020432716088312081947357315082707171236700962041296470811566222557852135131386888290567513346636171792799676072202754236688060360684670878935487712904637114614935467967088073367652313731597389420415075146079741570206689224557147918705736859486243594686534159909917074792398352336883472743939174665984551720055049440597097526507515238784931426374496867172470605691909120074398450922299375299861158919999471466091681731791598928348610271074823173736407420200522367566371486331183912603657816326829727106455108152784661172545774371557040625839314817272387471726901462560749811527588934320750918261777662012367940736590269839194371106424601176674204092607591528474394452193707455089517732672576225327721720399231808152953385399179344996289107757739989674328925846806221567236000777168247008135207962885651146588627206294041093458224614771949478555291650659979178693375138351483534772950942726503489767971476453245607205608233851417462792044978428810953371581248311617245511078369589003141408567021393379361168512042288452825279507897726005415646169704620006459003121210151643709823600819536840652863222165938140350929830309533198181899932345265985726387937217638613574120765184004598169895442942358717707550168619495553177824684394936158576588097823657725186653279786819217749836358277931414864351971193597470668425131029278047157342486580367269062662386078172651426316167741127263005186198620076379863959641756017109153273520295876084652416047134168681017872272747765370252897011686922548131605507702513592774561423528663498399938614230017002886648423363299195719654801417376880130617870975767663059311783525043582241255928967780209650234380377156132501661690712865337989412363893576768565193470994986275233458395829208213444108024710044214142166450100415993281432115728659487337213269518011006146154424561444214450380344164560482388281105580158581535990699637828791946615345991220961334447693235054355779444166893671842541471874098757563696952195307174931300099995419632288537183075189636216387637163334708887976864504427911740207454116492847692132168754704714664241787156854084188407768559362151571805733366280121963874148779238022966910790747342056961968097964515762706701709636361889374514933969154254665549463885191400949659082943719102152851102041787171166659133437030313645987584308009117448205088342885986214858302927472590427839643282572149629404292454770067740104123158996777636595913147349076156317019591708308039604948950482401369677268470244952186116787157961086681761269386752358795892027992129903820762642061215535747467783045765999779719940814334274558642435579354139572329258729481802055125480931747079867765410509911702234501518052078543159872886786711209539450870233207168506893649977029190448743073295293294069299547538654470560981343179428803324767377961125672938404287542424751575612404888379801113021582290108425618368440089321045829924731253596540597707025673667523603894902571074251804540739237518651509949935557587909898477143158000465735156155120918263897708313677252030972945305362591839482816378986598583919898444876331968757731266037718389793635830831290041084526769666019021872527261380270477903293816098593834297654718294201757986102829122415178593727601385133432050367045610761671830745291451389744612498640641848362150681768433943206410846570546007843445232730057496387211251374490823506734158645952315007668436983648067617727852329495772441354050925982807151699548302017411616569824645728178782082837518722176666239121993594254924716795281213690122800152766760154344715872496243653085139962709730323964243522769072091201614660833794170603145741954914449164003001438906002107411587182912804591091113998002910096546707548120700391446628108551237473923604919957519967724752596713416510277679509045814839322928954948111876553021858299497585415334212911979798640823460339004570276263453200714436277052822942426963903803142220722694518159394771187619039786219920671512110590106729784332883410777545944952548569093824875138853005456498764488766469746242641554844917845856499706631404754018763074882408428066562025780022419964744371361830433468187894913197891191661481120045942597610264855147887636257999798502656039444166802325606041267400615616685302131013365431738493141537202425750847603389530378778501486839813084990453311581724771935836564654905135347631182321655313810235479391288135873367721153126231187135079746753136645266338123129187421779540461315331014271783926008218553618556962668969210420410924271976955905282793117038426209643429116993449713753425974380125485142954263720835069119336795130523985731638204146752975465084586405232127726544745898843448224403588681456428724658072026300294114224485673447209521892201904276164154082311467746215482084329215057187629557067278981272070582553318227655202263470195363629266042212834034971685182761257809549770403891747188631121927743703769800915473579870060847077062138779385896821756662119424879599697531434069321420704167061165914173883559409129048368128735238787460434998028111383900711987326137117040203862331441649884070999827324110291398533254785276196543626892342371786046074948404027777043946822880735330063089877293690250614379921163542554700180662446115908540601453332461825382799559912883170972275201931420567148796370848427919806728207238919094713062946218394672340047518501809310875744995893703827615983647172764653074324336089377073604511371802629738480058171282594445085886065394783192143322576914433843534585512108623034910633667494819516801098819062209723698879928316994340528941142146337851894127645036223645799813559216791222811201550768329316778320214718035853733065209605023585699936985457730947647478803217069638541385729052404008630280802195314711962618516883668720351704337914810087946592232548922892705218473094004897202081261083191436918640965981522430693453127232172369088466284729524865362705467644029070681650654371427037744298744535451952883817241577752186427880922114941612024812913918619949387567508639120325366925727900788494391096099299397658909471006790788375348542523240148528893401098765570894769710699271804938081922530510102203037346854493997199404778175376132372925650732387720562077342815585973121475510164604813391667693181032985424678685475414817962545857882101316669658302623954959927085362463440261202325943963718772016703895385471541973481637911477879143511902502242878268450177078558506169056822658814203606103905095504534442719735346457281684700765437784657200219170024474189745729234755008561176022968837635174967462180449535857098209951267555419932644812295263104276745534450473351946112809628065570203038603833114535844115342708314565335456163280400463232040921013547992107681653951832219956362516559370210346223026292309489484333029311611675488324848472693154290215652473876325176292324430421687653964927807529990480344368003692184067959930380625139900009890119892293115096919209440045262090380471009356954349352250213393564590210310153092444849956216480438086313640956992620148287682878082610851594222734292071286393008925893005307911830960568318149821412334083119157787542688073125041060633269468156713844160644428029595036947238592288580105725822154948939216988066291556811786917670000996735653840511415406830177167540335094639852834588790229322592532854786545614265161363992250148888736859365665849819145073596712870594556254395370081383260343697880364917190591540582762169070964124880661457975370903175184247425938864899732338162642893304949678408433859926596731341104392279111199885274106420522243025675012340608139559187050655038636862873255586264300594991630434343775022311841078999127632824853215785043236057765708688875011634475874908424306479323115856842464186520644686547475735310434938240225413014930540061829449225721290168585446352619086966643017651115925132496065266893536052088650482155533455958856956030090016353365956818623941043200681481665040155109692753713599456620323112453675668125815179034325364914580310364076563625234252428815113821783619779843964899079743831897130689734975044393177389868088018008345104995951803171366880155640743180758108849697914507837203821481830642421055227802160981893236098539073757995988187989634635419246898709344210192341488146381766924818541089872694151366787979071775669295140429719170257533528596026782079832811119713688617039524557770525897398722265532246443974913889935503670487903718468372195366326581058609478109171317889262293177712331007427037462488489445889139466442417645617275440262006597823521207407447810925192024191202807871647224541095005447627237857457565132153650485841436497359920860878104036455584418435692512755755321084826436470233789369828073456904421757855282102481090340022593615124192920794937636436690886449670683501187028649019066259916312473472953494580389293584014205534593298526160881885436532747917856980953748180400823072267055477476186835466156718139432185424857039291427890045556660334033923332479455920792173909890971892553976538612846297078054496393519873195331720948737552598593663916396059333190300898997752555129399653525798716291424670497775967287627887102576375761763227615209474461085366370210360067357372467792763622891291030069166816514471932291169138551372251913496087990801993407734527363167886009356240667131963738437387005803565231638122425253033027680780860338508571348391077960652890511669852676556955611105735398525160960899774294248879026695418933335176909595704464927485439518690931440582234661387765851990292448642023232848331965393261686640172946187332229086135607844987913920711818075346867421802604023125082144517656326846072785179749664513679629498116671175830306498084409411846145281776524336670000953182645540558960972192579291771443816999857316024719716672534175102701131435030686016417928189276408672660759169484663430177926358936031563036474998362090926370829294456946662011012059627498567952562561970464078137952737788146501684863139214268582805442271621295933187283810863676786016684030157128655967535721228648393436796766210684034649373801597044157071477265162713914787655638980907937663805866199199901822897202885660517317850121968879296215146598694456786191858335337397374350481562208406408606803372453953615159848263147370325114630885211151498319461621058093238948372923581766359297390213847230127569372016804608102941767274230278854140907185674894597717606461265491919894491972713223131534038062445097753996438911104724240665384835883694549643739312540098408224473400945126557841708292613378131971601547650156825612509884137883860743937738820426786121094679479153067748755954236159812914821707130696703764362456541850983615870490483626180490521538999299855175927100901408120330446671761667552690051095859507150657086461706341881750751501193467738850563998523621234906210688417842739588342372218362010512381139385743636323556773570713247654139767616246657526935315759854014978304778164407365198285200593041409674852948245784393445366092670835851375060708399683562668157208714866996322423282734582353711960898123033523824413531679026978463943007548866708447690304943604098788911830753314258601423941051421205831676872877125450091752508234528894179970734432503970007088355086279170826873524090553827829916212419011322681573093383887187562680415636877292211958205353730834172765402416418862663218245265695304501479838665812916457619831389308395602706244095085273941553826389403961820977996227806613926949002342845620149812557877027475110841742338073595017756245763990905835381663455446342903885132532825382734812934694294845974052854960783033356805495392336104213121476211751270160942911030771077441130075681675999085484874967037624594498938983524246658812400742513691115502248106451606886656176753928876450685206379527502244755294931746870202241471973935964862394927813544895886017421727934026035356306696006800825555200595555398435314093981452597604623660389446894680730902183796998707756640861231757853840819369883924959753300289026824246069513315613609437290539274664969942305474715992980631993535881316426731253486404503947568956731912512264460534812683700410191698475600738490293874800849488500504509797102262119231615842403029381817434973765569987279825753418546545768418184344473071140824214816001290889767716097760217800494516267909366708693541109090364042858031020670646918798197024416362217944488851222927641491714650326688748688211003945915488618852659830935960988100451377836304356653835404977537959466805323215945960895629517736442494421769619828902345017902138106384710111834702483096298351894986449017963741505521533611349080710683759124734966872477467588988654839730816687091438537405073127032317599797426386126336229477751509508178808533651019674979896966605141814540663792929395871601096152616547066401966123787596419917272079648713674603429153891650767952997177080562130022640970577456226542419467809579399708463862396193199470530645336221954767804837143030805689497509284061098070682068732844121505673118697855470705924057790876303608261757349078722860536797615580696330641536446201288344562146309552562915423596648773125359792347925714631247581198379550901139559577510200132979915599370675999170064776817533939692601364822159795720348453874181712824956781208777805498490634514408211719896722530817770320751103793434931426790802125865416754414706424345648461850293243997820291478340611442019620079990868357747960846779510333854037231818012014722847446289228566104126346624225160246801489821008926104592144217639710035597962149433145729344928906508827028023064408940129342569812380407025061332252967809355465925249503773400285936317983332086076756968116572369773034903620407723787130351090929991555576442630183246379895027020330009748767574110905928487692610764950706296849291585055089307010128547901878912067225797976595479574920451516564571181394231456769585902482170485986898141962352505437956207724618970626678416971062181374372875867095345376077081669296988934764661770456073956361544951068774129484689289571917459481618255365787617694961371677307572302544107370053741383011457555403649695156693591464546031593375216856844958881044286735297029489421054303391369375219273282524027765075985268010400487697102896633657342114985704339560756711363684267995822762671856864728186585254875507242854306885434039570320194093134185279899425580266941427962383878481543143748993411943044677185093119900460571845857750613286745351640948154395566975686856014500910268025448194419000130822464933817101976598013103573163383932790374563111083094005739478642293910190771712140638189830558554116238325253381121727204054564171741116538752947931566429151939354241807551760893237822231124167271148360930946425082462427581984809899289530288158952299794707514944344978855300299050013694798146366531448062845386900752738374287974624474102868235422500470208955001871873925878348242972265773600672005552256725971635073297413977505074677977604397112005842934271728975368513899764369621005886942029115233684290995818949495477027024842258282936876634818976275218170616689399009849902148084909889711528644534143936282375702223359700260260213601825705012367405994638185971272294422029800514037175183814308378952882175276634947773284559951941878368051117668070494020785530807242168691970217355439559482427467979080236589415889315058652741317440827651227570548485749046882836471336757301975630109753757623263654868293462199787612629437529303223824543202484971782839715624171206087527571588787612235669208614129300079516333251209758440475014189359093007975025200025788494221017288808372821651961690208220897775471176862894764175785236243190807515322140209356415963049992370837689162683383352676253758725103082947918108306740903250862022870373698131481809950119344168123012766293715148658676455780096619232715323786149035352138434813163544561058181323441179185576901064039741191840098581364592586288339432416038450734366191511618245279317378097565848659995590436907944213535654221192243603081922188005424500451509071076123919586952892493129209124040599283949934469437872767213629157357368038818233703566938989364420182566480154695968545544012486841552676876048507529085539319998953052081439686891838114013832849617466552819557895028629656736321177481491712751422802186918839344260406388821137536194936293636659881818030123139498070941281737552016832573921414641893837690332926951941375099729289202206761021126833654319502572415720281021205066804259071428714925995574502826431148257557431324943644143208160849939945839959726780540854020086101183959523239802130720508109802429007463190908632492168622978374435127132063861279512698632960890074118143999793276660047557236569574726033125070046460622894048954902860567903373760822821186806442331003727773026444636842045139125754980790708066910528339848060175534431014129080777638364860667567889260147886891464344861881289902336431892600821632691394884359129064330226882273288598515827482161278799255966547302710776939969257400109521090071124534657088029944088518726887736956862109047527695896315306046700933346859283363331630153113976692479166148583355776016568602002227022535965005015064642234746735640659539520214078171964667121768198742024312110265050448262640183638627402183442600116986880312897893613160448156743813430517546463273189861865261939481906566315081894342832632300479375739758284820947173850801441327256757759278034927004010950567636151483361826356898723592527179832507797696306187314968670235998761693993920929993250882037356240309121860105078565119182040642999297147560276821139923708025307738419621557883409207208941982267616044986691023043614206341463811491179250637744210403865434674043025696638534995170006646029436881588489754442124561919755729023073796551379037890059945389106934438618371598047220561108175180602435634298918447916097023904113030434095461338931143379992373611578913500437184252353415573124820637641931405109294726670465413743871682665098877783310300704914377662323300995320086142875762149289065789444374592380101258360814867537639104432462142792422007790320391782095645609097650982684578704644877204648562055069840499232514333262893997250253762150689928052717149075197434192905900240218707582994366136153898243571822217741919426976329030748675757885254424923004824451735235205384588747374807898877820952010607447040734132616696212487082877307842188905373307348783407705216323501076122250472124995229877211279348483257953365378424788644552261099651428123010391584513228883366482337595299805102259457152212557620198719933158231631971035087273909859256819177135559586581096176209312514032393240535848319450705524098447744474921867613792531095254791431661760987962614559923664690616255938523690623672854027689800309031232746947231074354640657073243236469530813878480971068343750663979746352287442465062666380833754942735926896981325660421513170945100573180353874286504606675596223142308591909333304620101663424018685017020019317186128933297573544522000913190787491378371825819362806574974343204703661992948402856398908158603967493673902378360216320079690195625172172365732891929170505312280154677647756330112248056016709163996285440237622251084900588119010393236311462740262696972362944862859844839286537770619941935188833188241529000943774764495576652763513410290068652907648565995003759058123870319979046955785911656912374743233756576472699902466915820624200653478344411672496816624297513491568693423771497798783410378992197870626560768724632203604905033626499188447942786028944327947027869236950895867079022247866491049990457410815860671711576108311348388361878392964122706016318483793635469934603963693736388334447199990005966566440858094306150109768024487517076973835412118099280339302696299076824738816827432306084100024506532802999392955026153731896399757077758830983224731331723499681463999059274422489742916875100353332981678999199316118542603696869148852677261404178466932232104308974601267264902552110820819028793200486540707125549848104295910184473142368255007745512669478823237979128813179185312597794341759349544498188025282728855612744136802174695514388102830576485734824170627731609859761642876317909223097099502901732176280716318804592787846012548002402969907035711958554219184943739119621104520881695912789821826236485042191727631103564441705292699952331443128860926821381271951824309091779000409859471549536677455372314130693600681522414820675353558549965131493406881353506096763355921973169604535478697757311094297767617476500838504743277140837529676356204609221251932961048461682100225955498534004435883275669894018197297929310147276899396918145646276898710653100360810481306986046839164817008420336812790918714644364118867839123658205882090555037167133553428055399217044802056042335073193693958157244048711966882576158482139367599544837422119310887102055224017978861012243903259023438679882055338664830490759698331625437277901349512211545424493722867490216364520343502486996867016098628961931347551972204445048261399737842182843302154921298191458458038248631050663268791195331868263881142760845302791855386110597691528175194514253613716355443988211837392902049129526088333152490718340753466592479036734292468233151432809937102917951449546803717371920488581737859259978325087093041102620956597074204216420836942037582046557440456398911927184964261692882573031108372252269795581515851855731551381135829558765142686373165043305319096392543507972545447965788416472472868752539891297415924800246296776694276171029778063382383136073775319708022454315328248054694714881805177185176604268157335426505882754888453522491847522800942778367276043636921341804396247859926963048870713438747482599072004709846877412671346468159527046515989151771168050558094350262209792568275325040776233816141837189582643744440426155118036568526355672256382637346947034996200977936738165010551025169477005835600031933053788495042634432616876033752533738582239961380935184149884970832829432931294722936376508513177658084034753263538992511335593801094243334731767014842584871953149923837138484852183858190746393604290799319782699150329444454981642396203286858259699767330164816864697925381267660562747540197635242518496349541719000845645681915721726880147168111114056224286560276054615961806697143556442055553600256868322503818952131147123817366303598698673536040123656891944194967930435495841657016638877101493416661440450681585324002259250792913962625735105857242573249056682255056165851725022710176526207657622020420979706329438092322768298037259161866294717800389769056075844709596836951594016217666562376669593093150146283029549940067250686497226866904794987940462381400729763392524478040485042405332716910171511691812649620462660098410091065138039539974124118381576620688461908062204248082186175216620506628066215216648420126201258228255870641624956830075792692469379389507959790595025795807062824124443796687076909735947038179256598824883758520783350209872306635143948760423251326231402550026955144773303627623754077748987916158363890813187227485784822956792516537247890639060024985192095422237611219735139280360979184793835510117363561794456610077229011815048777839244911761357828338088138175017776738884517240748380828057725109646672058763513874765730009580728016414669582247492869182086019109645215274872532670494304049610102533331888990714954210215976789559845781295443127386544206021207061004034846516075097689210174764277001796038965764682448370712833394394670185568584488509028645309553255854308485278520932661730141001105434893355299270619587364341675744846151274900273437135875188073448876036263438432202906480641797268835009452715831457167523245731779394794329134642212610492539247617902914477048833330801840869041299863126135836961050997666824075796540295926052084029296069708485761654275545853768694567037165901455885799517310161725281620646549739218604900614615986019541964124870439466900031151715498686966826339136855071635886250616730041339885526351217775322497134855776386699215567716154091780614372706790850625500868366646371000679593228619869870846878294630002753129699515471014687534754753032238338959739626386937855203387700565958668735943793330211837533977910805961275570723377623404659433213060590359441730339482062393163162213081141248026261524041677630580642342098709889527328813076210891991797407016004477874797360769162322539082739696331668230033679242205001724062812280769611082483903914292042943107276350845747041551995848788433685567569946890582849666454833059688542257379373352272424520822357839706402246304257244411286206969290560377141358481590530568536015256915130181788045129526891244583096870791410914619654174693947259307724678996925230171156404738382935300104906790584808453310619031364150670630569012413861342471542485613559746725046775068933760345886833807864278489637860724052926895680284919077102841703833518286912209389017232233389810064786497054093953332106041931774040457932902932728710120100474236201938684615263055015949715238949682340280167961058203525295319995325288481254719124842370715312631227483911408169632494707997404714408955376303635874754404262124424820868188468571204094002349028233431971663558487826227518808781206134453607580582235576765792671732350767842912036002139667981110735792595275138643541765198189323911046511048086362360214890152253928110215980099553853544219501920244692290047384028971124823193545492351845349490557230118358172065321799729691905650046795530195361832263166751048373218332948169084144032480405571322811322831236124235989567014582322883323197199154042600310809291856551274460835922175466672528254274145776544254701808929006088035091457527314429090581860787475652560265449467007141938328109367245696018324280134138864955104156010798513631967745969048136110858485656419758947349966867440328100807308405949020097957580120110586558934035820058087091295275383537866930069034107589795851504161720026149494446095116938939040119746838981455606498390073667648396966233555393217582934675458842135834538235242636712536556823557472999350864640255780890736681467715595535154534059934301346844056023591033538178720857328807659448402146102158644961310068542822853673350256061393086785174311160563723694207448831880400438987279848774169080098756515735543027032797026158198873112510211812455996944453166442315126391763976906881761329470848335010357583426565790130568486921938014671627854830080665954193821007152033000523246526228006423451686395094020507468822856005379542334634894901259448695299311782746075661756275807281364771118792479765112365460294884778628813361699775680514029532917641062557343571548505417229370859682768659636614767309709390554747846184080010329047055966523059174667815619964382537785488514271507425699185887099082195470623432237376919480678032672291550958290477267928812698685305629301511024903795721066213098718896757787230933223205582167636524490275270741322952006830232122139333302166917008495408477637368427958646190684528144478563563758004323565934589227338988702670367772781214906948940842830478334783504537008611965963736020384048498356638562235489045539824968278929017714086020405750419751044531440359396354428494665773923193228920465490371498951768425543173125966334885849038797399271814133909668014990292540572038509751210875040153513499782924326409937922237872315022004149961763554376811630904261374095395754335466491398095210263520451929419999642852677979297085281560309723158905651502377071812721603046587740210898266456289060127048865980507541136401676624708478952367367947119978301352309718328638410187686086767455505695063036764925952639670491429569170843362550456486488549352954482476120118389269553621722864460743915176877697041796635491058535711807557199345523289122407967769995845958537962276794135978386948667939600661663956950048950516112575936524805463462415216180971088617853100428645002090954763517586486318445926626475735709357172395619399722271857286374206064538969315264671636021971322355626106673991454090110490112216291311347349371461889665786062582571982704757167090952659150136089646265290340932329321633192116614506503380933278285478565259912443838864103444688431628517035393771535219941059842583039151231240556308152051327668525924122712714745398949249407366131689171337109080836214788410618743196598874850710599973707106468358715175428365787027833286827071053533971285474319712254952332527760815684841404188650340035314276459158890610901432563667629854607870433656521623457395324618199863686958229488520885853076153860944420742120449481534426081619547643558038277323493117928290576071416350218698780907933395578414440652828832891399474510447818486004642416899573811157363797242428976101262402469120772289063629723414737887387177611896598032700668717015023378914877358979427900727763732036058328262245478743145517789147171632080825748623509036753555433048473475385171304096250440087200554591873740901355379632242361743033736817603997816239755710362613765586614215757480226585342582126600069920262149846027219989907715091766273495801807033448649319127349206767824754055118326968085207410818885545122267720555027526230305239155344619305226271942206369958865709503837256649376146465550242011453695835362791826609090852473772012321841390552354600086634683589774478177745976551801937769172864493254636244837489964322742074019405694196889813413804312884665899688601527038652126033453747784329788137769753090697495118344086961628731627057807967894915137512919134537444236184820709581559759257977115410042684054665967733597098249089162234645257461941992871083810668959074501013952949527635283618291314934996835802037814199394330580201328644396132184228597153642287845252496902177655933175692484197104582990040647310377765185951198519010750640056260563794431667872418141474830369906595052455450153769394058512443115558790639380782222203148461717145695303478765381649696609849484615491200141404952507607609180995601724678781618785884080788938609564550492613680730831107519920326849882128518944862015955821972454722208371880909442255909671151358117427443409562157668114988182599800520168414667614503581302696565438610357758764368901537009941531667977732584964061275193289616974392673270244205910417913493283960741134140011454677444404028553750898857284047488601852694395776769300792193787192328034423535255050871965196764257730995601804235723951022011539343299247750752736986693098962247915414273960230338971748564277993065937059745997432711256181612247359776791173368299523334351328004610561695584613957482437621652094065668124886999584536438369213675881470212442149098207443086139839942292278496031758327883226715456433964973524446545237564022627682476361315651298365317034190401279257134726255008493280574300398955625039010202176977279328196513559124886100294601268915282347300027446358454768926126399311121942830286066800347145273579768911066085361282331714796511013522595645373548108193046725092117460328972062543182327524339623679313525571350302176697971246670394191496635251546182877515489298165561997377910799246238963626431787433524308047936777360679813496308357189157224398573750209400043652296742016709547713572147797862793069211684293930302649157211440379374536454054000863458216584356594589307461988806780792796235339440450166319756473378911623593515379150296844723917062874296137800098978865322356528009415546575200420039203296948372618557849107111353297494439477692507551166064803890584360680950731202346434050576866362029860742491752020537945215271699326776617740888046550292061781162988127904782923615410523671761218492096039701137523808293226099419297674356184146347698219978511649536648941005893498520357228855366557323569143329215629444462832256076924011752843104886131706894963358244514744836363546385143362836237752774508454581744059007134878630901967726578774303547191071458090008877884646419960578155745539330966356402110645298702473502186975590449621672117914261370877902377362230995678969428491951847774283945977332386989219344660014397863942039191684137052117594222560669062295972049936400636361958283825484529417197230244408874705631977676227178711638634523300283370257022245997239442710646764522845146329764301135263937401363478592269382757711720118337470732060994349194206596919774768237690575207468894320748232208579085433305352030648951578977238382145225599136712200512316868917256319233882895899829823474829718315454664976221650057105535684930478301249417488075707163053390765673922536822236880356347462852306831114756425306600240932505294620094075331217741692521258093640132059993828457608057473060352317806168055604742893779947447009287343781222851634049696321081753789464788294883968059788329031771707398370301046776074873869681155647938525949073302572582976681735408980542135325407719547485638149075493051432310835203429004927261418373505689583621295190732277919493578803133411124197770735146238180259324826300073268555032221473274339987865156543788143492514761556307755806665457550120090908148673608401357317448471734144456455107117193619284391817926961691211609993608410473835421901227409189051930220088047530666988282256836503580363043463399535233942643755147387110173817212140417456295432421310232141783798822530295682328853490548341624971821032590575319750917669466332173082782217312196504917917675696766083320929719422195843257914104440991652811868890100340474017931074662996900392862286889512323848030676368857554251808550629372659693044681258467096783092442976590195432905048554660267336050532161062369360467870070745229521617275958113418294712690405609268692562326445121174033939696006624668669980962381214211876404201946111346329111130116395578927978495652480453454955699010806732190519312274272709864184565320892925923456478002395336977788191273549591916442315882467671946307859847413588072820573786627335202147816644706021280940260101723848240585926484962801596386881005536751478529396439171682668313307860662296639563112939815196333189014395200781086039194264058082653188828346510387971031809021646313957302910841168951175350845037744952992286489244190805027691938041094137278255167064635566611533300051038461310345715973496549682222324097302305116993184783097608419155791547839948824293434337037584061688528661540266958522466236358064584791887136128850944379004677241409965188226315499945660325746519462258310942024038986628457842847140781287814135745551670903300530827113726938253221857076407876727850775110867064508988253990910509844108692449171827295021520841275274230169915486120275327348999013776866072343378513602085835757724332042463624821832936887918154274524152079703603089976811108653267166289455063462036480829546073745956095950102752065278555951332018126731364673703929033705753725540898947564154701589893245053531107560697519137368545719325507363704664959633609467545805286268737821728874086801331267478506491427091674557064995201754342581427023935042046440718736086624858498328097453275789662760613379375243007316126432420650108305949128931475289431655000189295392811869448436883723972708089529388420018292540663203786677110740633523989815061705566802029541989918738281909912906360247213304396712568063599519579459406712892151844564647926218283373525459111959519674859040982496246883016461160584726795770776349777216652742736009763113252410716599983593167200199414023861293018342917726203588298663408094849558452492799488007680419068862893767814984089246813703652336956650831272964271507848145249860394095463529393346557747954515909937475115254688670520442226788303417666124667686781236817128936096246629633078901359364952618476983422341037057603564882085348653194612941611756412710606428473042792776404625868484805380663947875049520501317604035386725142500725451725050266526421138218797436601572747985420408203899290479949447123572596203503245165098492153479582455567669794348480246480587662807517672387704264669726837386240299395512517400116513517973043312915340887748126806550829479382102534088301681783219215123211332235458576760205658672702924495758833372881756089843619485887790194628556382270923545476232241964007665688146572740932142755978290442103589848305223806760901710445751702601392376613071855081819256812645423777798909921811597952377210875959979250816182349310148165160287827015826210192689480665746851295673426744100736332214888067569126838967719376479320203403463606412842729730671793794634521783197580912153762121621956480590332064144759283254011113449070558995020002440958828283325542538755128058094535027367405930408076560079762462184201062063665374941024254721056196877401766044230373360654818945879220149335518660934181379093197712376606836755743572364924649266472991103075857041930661925312726873826864272025606622114989424404959212907507815600611322859071206390763602974190925343654842382770146718899872196782529161832688527363165678015025059652156484802361252764251939701677731970491220442375592944309417855769307875038328121944623959603458045768359132800014241640307890720354830808041353838585374895451630245646532182679178700249919237655711763660561386119081649948184939311630880228434039366022845606401778561501479180768538269105201075830375502762263770425025556448408632705211512288198755125242524904656717742852478974221394651613302360346774007680597598943921144530079675827425567474237935765301947940629504074299594807748724483843783802374164098862218132031241344597062126890295854393630516767762539542455161991859175036177135207948411057508560503437703236603582660769429033620526132061823992952543695460293771212367945390150582212697423045102142936453643892382900055635587103727771427408442734533244349655934632305886205232878840271426231571426970887257845320538094357279852597030886934492617903033094845061537332123210170442704555441886529964664430827598464409614249280924482226713644866396683580521521465233889021455212809486987462084765898815345055657902717597869914650739736104679923509474184546705009517965551434913170709799266512969868023125143457333159931391599836054265305107468900219860786305888922719348015305219419970643740936561827423144303793840805993568815464222099391636038979218779718549794156617775489490375272002635105468811607413616507389555088647973398702872305648652274550669549808913523970923029970626605281349504449898555220801980875088818474714947008894794032159104729241903673822696404702139652603453731105287842350819334126071854991306296021802345397625468521983952612608168698477026558245771296857615829477665395261551580374988554942336040236621866865169372095596024109049548442841901460036326269520659937549446533308332274617610689857296414186054045927515916548211993619249006070078151100733758930887687132763942779605191661602022918657663051658587734236555474635534188874175810610408444507492509473372227438092816145965000701867170680511172769780358311373706436523490155720580143108315346990883711237263487161225772803623471334355507648801184736469402262503240630815163326403428078253658781764830590820233158012733690425291279839176780228498385931582502957468760344300025501604191957900913091674940051229856538094144179409689012830006170331306142791383851836563079496936007922489003680020506503362756299271053731812634037008160731410541521094479491617197922495794502152686286461484382713994636512652602290209828775535956846846709359244283293661086067713410530401921573858419859750180722409834432940144807330145825314824984976303501563444014343908249380579703257114812403538781597212299128826721600439035216763408938370406599943698238355310291885992113425962999637743820465430885472692251729891878791026095885698606264887577579620107822543084155123670140893172084820979690208616921543642442978691758411260594578575882137348044828764278784960451125010303767262629898072220651195782615262415624027023106144929280541138655035126734235949153151830896376777075501408086035362019469509335824630438099602790037049905046995226623597771233852912259092032819231804170807744857171783446390004363587277130462643017548266467824546860731345014315634965498467281199230795394441671704620411941362106359425999085492364941634440204660949093029791082381038572962652041937231500241149658530813880907677452100137455681475540695545817338719886284640059302026105604909466120504102792931597412000926189392060427644879176582057104248089004620411534665771192004391770639062134407815416681698893552776017060045809360235236580863607674522717031098205894710338692120707808383657777944750706365286694090473701704596162414366118792591670585864855601498310918121392414119131483386614457012694474625949601633787271511479584847285168909800083042266467493778448519561671558658178604191474567893685264121205297693575154392321149566343464346382340993484376205328443237547746329321404992589835053246207115107507824279803663068568869906758435554112165845755658660614277639946986555833231289679007115491318595654240201613419509487218111049002440218685680089651960593644919114723662048830159392811298729557669087937334331607965393883407761738973627393035761373371428706564229818251191397256604912523782272996075367643017990532649742348839232799125470738789284501465030358489895716698584379026692483990972097737158916174382642779675127110446764442910457978962989152723660573604599419536553811256636149413649042109327164347072433589840124373484414511897400844922270506885405360577986037523181083984837130112920991969359486979407665075344960657050345146135223958268518109807506384944188502220717597515352343573757143543600112109577373972808234737912750873889420434404537649928793415667267215727694141466109547797130668473460456021027814867953919428913200777311283387612777291957842750777987884938136781459586985262096436978208532257808142350804128688965072184088078670538905186174337656607014723629354027427011079284474228388508595854326965469828040869839204465175852915937458800645129133127138206633557462828409494811663180777188090502482124063899817072948607205662491022290993030996806472626627226303736349545312867292903294265240308253539531443315849395042600085037620646223769647869225672839816744527735193961214465080498737766108609480477676072683774484860004509069468585171095582504029931597585392385403484435794541706224625351401056151561599833930500753430689097926566183923470411369322059838650730182357832880849384253957732796410175253718032327707541602234947288868371304723755243486404025199191470474628247308032397369002389741408782574431770801553092555990884356913544091689056409281232356131253052457109765227451006680921525910214967709480031252024451794154151768184300338652869372228124665346126608417950576932259198982604734679544284197116767172822527724622458176485546333692167548581922262041225464588074228899784789776078990997341133727114722657483465237674937644994173359730717270664098058678014819939921462741666591530359561214450604826149019076576428863313987730386825780953674892182793107876672697335618493968482610561817319906698044657110936254139416010949460907889736255484021210847395607375741874325590374151843496577165563154413643783862025323555202741910705097043488215846803926962959400787941753134780698522056636390531091611518548043707056691616162907339399348493809129762112714463858223106666857503996846418084226266027760290869130748134451285185777887830078736424228279445627575162886116756290312604028561081755798427275427860213148117325462133817289851194860327944927968928097098234406294594968820801680677343022997558263647425049440790803332461280721402363842082365371459373116423482064536326657477245905555335665348196828050689471147080873701113945911406974235796569506366413780164962348250242438135836590334816492986605923403136202788301243645166900025838496314623797413014699967384551483530106331457031418921442562044269160382383883546738386265796628521117102370700966824078370906403282053052566381702807794128398723817789273230751767388294122499170343355724889639043588911570879216373005706965441605182222232270375928619920647850287442628056160949211582636663881211931481565658479655475081251943879362786775169529328223429116291144844011342182396960897591035205947798400763716594600402891401771685994869436160416234079759004198543403745583519800657425534982653595177171117788143937402138694730732906288705992801810765223753003927355711161061853122774981360008522140620043832857999500291734387267138032322465850485514067573556324854092293984065927358471074481558666349149742785203354260794372600870122742323585451649046540250919764674529017180303657472253101613385762677570090533324571583244951690030794156466717959338700830118807203224860677597215153847893578712806750501246761219251641421559658774870720724353721304418804231324383175675181356612217783104866132321881462586360586246391059051992525882025560987901564822016536082428731748250961992654018392586634236982117739350356939899285287933937758537550351947010810582553413177565794232481015734584877989946474351866531985892144713802775176443416762009980998573951909897910734587675025398662652273727202300251688078229650949268606252546309308681351818315394544280587539034686284892891942932676471078506964693347729819206119374444526420448865537664818159220837182955802375829784800641633244139083066567780774877554855902360461904745880286777310508299954116499726626690834324688539510401249950432389363288748311845935551967968767043927351472585059485483491525091634375117627710246249223067442559118783037104846884919825210472991671153986456354064105282472243327031273591900441342499539908025423980754034932356128252659309980679576927567020028103138538044670158461652262254396782859379190067495635589551922087398212298209066947530721400537127754345092901833827076925898989482658775419902651453128757518961688344484040322035895775294067448986968104640412203420254782202418475596249191421728864929199863197608190823843656498707931748240291295352901697231451012062332321825099415283208559465276514352238591624818178784465856018527541012799797418640863984227617090770020767361878969626394825414816077873871256464725292439162983641551415536365218309013176705703914529003915830742147003565613881457121463566565397676552121479500358186696925110704971639315949390439036426348341095215377846390999226561226087568632152189134848880370672813138753461095221931354223483524920645154187957079560352408852606079988069857005519609592479169961404014677397628087158249127715740221769768407403607877174357257365407957175682815394703072165349785516078874859817714615008709229951572437987187992512228137958668715077942289489287269785049262937334124371621939268855056272005858755988750377683173875304561391989254499550723331579880151199347676808404645718367263856300727884301906271245955959539225865676696471269585160849947762544568795551454343363825779023706948730827707028843365439484528376284820088521302016056968973050978700505102796482718582816618031608140970537050788427726276292373115204691853799219217121327895150411021002283583650092302910648202467204847593809193027196177327110948962436628924090779213237418504352139785702947843020248220931594476972491812756049086263229243374640798317977929376643984485561316751374494668657187798365620722274720948983209671055811680105646683194902894115256854736681139598403588462040772214873030358701674314398372561161119666299913698859742421773974394593824753956722204507762885736234908701892630286089213905114575208465218070824713812005903049663813744049980183247471772939663878576007255850963941827265000189795275512617375390950046378667703864106874538600828320137826420048767662163766600273853434507058694495014399922636808523416687350537691153256601524725523870608538800226157810099558217066024565744561724436159212840580134419452071729260260605716303147347074873337913114540751668406762085802509168174216051841944679893267500486268141229060260842137755598938251601438444880485872909636016417462426266066226476899534676841183439430484775663858098291346720157657641216058691543723459391337235387899903198734155232137812076979784209620270063665373564960045066398782455186839590231136748229798303542840039416349028764066200524398146309420312887739791067908578422060680707147378252773546696909953952844381826708947260877514295756681694820243511990512458842779473663858565526229588428872984322311210297324867514489711487767937572535324175208922759789648278472965063601094366720462028984405278105615321342661385660202985510730913317372932955149093182255007223522128710443214897239162890354559815923288632786379019301675434636408343089802133955131160403695717350787140571506567542213550062510208882838347060204042003319971530178464868724954916459818467108500226937792857232737372479002394268213188871516576608602520027581953568033945824978773475534967286952517375528226804121625892830010409373367294547381237352799723819167144096052970921721109786408881503694137101874222684786404418408415472806472612547625448769637144722913628660812221171460144228966847447095772480486558210028198147008575551101834000607288567293830278272303509333563138017638470540800917119676646691617366382300645250077069992473504097557105295459163127252876876242573925093434466130989125915634258716927127278218207075064909008694770676044287443685973184597593217777025811709403009934440170670644154694685307936032381514975496018673500881811875156875691200301228405983063307677986201626697157437940475456029773582192676160243978690041489332366079860943267095259356126009627303151557100034094894812724437604958140730065015252929824485840076866174475092634696768737249039432213346789243635107664195829634650073487364977934067008041468908938399016803684489918291314089585729067146953576998048569895227873513166314431027320561898762365296338829800736997768756197443386096633619410411347408300845029636229198908377589667406730823873445916316223188255614173521712142430401967368323188875709578687914385962998218455144917111117697300760390304681313944421483406900521546153780559211115108420545223821363742237367433279747826475783689134203212696182786722475448593325086829938894030833786952714824708849391340967791810297285639470896893408401149549213120799004803775260607809585866827392380682395784800001236118045837658062399613196265669083653784175935385870401165751506069719340147680012599144110771070131134758644483618282649462773662198523482596727106616353286229605491452828229027275584841672370461079627201785172634497182473282938935719032733585805367718046689031582851407022079811722497961152958986854943044185913398316588414551521840428484872397865819651146120853778111317317842200536245800375202360978652593940533363911309025117335810945990319576667351428832762878688607846386630677721460111798142276940688225328793723968002864515736042108149427348613714809281563945215143523508978890339817147470330471909526426479550571643036754978555317976331407591604091988500493023801403871526524751628685504280470353244311486017716128153381006624260389394493669674662062971515200431376211552586109353132258263849230639773167621112609968586877860783551690603236901628167376099532501913777842127411928162913475686125639514379299781589958744842788464947961872900139699500804992492683466874590352406135950786349364993535996630555033528887707961000181987514180558136194541180135312176595253227016701859317895141228937781012471412102038409624350649728032595072997710839859432401147148246038600505786210355864764592283029226917837532710120417455018477981096084551747003235682135861201871845359821261993112369183627564077996954334111589327941492626324774724378951867465836411876231062452322138455840563918640938820366840053970206734103169596414722128519527007082168711616262421497677744462208180634784212866352802035838766642110077912230613512437260534415914619124817276152710635703320905195423202407065886174759349543226875174216371069072863059529838901990128739380447176278028571738429809324133550753351424734175567475798370039681960316401296241435084648147836242491174995361404714057068427715098101376888618760510943321121405470066723893176800485654018221104234220790025891516497352469153599967213600051888454870309552447223794317627310218633914393271490646542280768630953575314292974100037683127385399481904553104587536509139941767742778824806373020621717759017564851904396220005353373255662791929645184395799172004212749806771071485670468507412546901902611144714526544040881991489952879903170124312258220709330519203749754129067957172421245799082431642649088579312027395170150158245669207586407244320728770729994740640600513662827050903555623623883024716732410451312728120732775770033601497233139423494662682880954951089650758708767753300497024054661659338165628345270682108659415332246053315408179899887428113970896951920425016553599490371223658115109605741793231145152760559830617312631936139949054551694199607013335368096375861063313501554674248518419997804539856164650546355025524866743336774064661049379369322953470335394009659956014108719525659393722651947273820121953271986399657105863660998465801968841269424261148273093569630691202046838801926090901827841703869677582931842040360920942233993516648188622549512756278037165414951749140811302394345902267851858532952034557531281046304137077183921968771942575363382953009223697553278850169446538661242093253782771998668053456772730960553694447450740965109997182923684607669703751003209690756027291654226623938420818513679109102585886234596706758898577171289653052481506560041809353614906447145895455337479449064401840630602430902792846568730755101486042686275753386238748847432517024076915622629029951455556726708292160930123115305628701562534321356200741754099685600732106774399295761246165156491629701240625588193124203060312407098820049318065677630636767508200828448699958442707631889809773837546824239923993666895891382120015886942647729598119544386006862268474707120221525046875939835233759080062675895896203520382712825555469213072041991690896339481366560944655539249111618768535434997812552704996008057223522545372441418344850594810485861328788058767639540764114678971659103658671069752088431542540855004121305249043208205891013308023441795851634511143228482197276175551583764780338105386434428363995499842033647804954819897276675814576588585146820795583230884942498267722281132821284529180194232062452873689551818175557931412773687952140348332005535335531477024272283878546101293067546606174170645297636559267504644825219028669854227197484879229961407552935080191026836159962710369297329437863300827040582282705340114196354412116235485937869642536168647328863065666492775786950517590619228943456293381048589971369173661544377036828258428118191652942206384342281986471056635357554798005561841983909608215303607558204723154840707405184884100512353478997209139011334924560375508472595751739032323078399063937587051521637658533167062737908025255979272746286584525241013072215165163430927746753608066516422029228999569046457971667791429793125190172046747084591495684856589425942299860007779205824073773182859009404340887078249006953985397237895909515148271536531506321507028384651845106238940046307934664336008418116675194843812104057113821116618164312273300720882938648078463831019003641766447867010628241935443008999436617835146014109919164467631258348520229192106207219827815390342421857864341266682117160531896947408807765543035145003147943011900573190625928861231196124751058159270730122286677385634940260417708599545123291120447283088815846582308563460329148497598834563101729299424456254695256301632070097921376402678928121359866492080868240986429107910027632462890716352185312807095835392186778980155729324507553527515692815438721670352609728479706423983654645071253043407812657854899563390563632975653401885478373434794847725066335230315934603263206123716552365475084973750457229210705534732647493262631406839631362381041315619582769814104334189113621458818697139220946590118581935000342375777345489884697199377398052918662935509182626768490326931943490864371132727806834939599941954842769305824587824123892514414991236338899074890160915387516072613731523687000774990126734439960043289758669903006147022442423149416618798579538942771708411760263744973534099955211104153384400047125005820841699230421579473049164147842341391222595950167230482056751515479476259149291583423953095142500254991329001338826155113873700228223086517912007321576336825255942253567885041392849025381033318765562975114892164892699490302717369641747564699758556083586464695369359461642026956743231689870869438905032520227936673756747272144977259756404368407604322199026989103508151526074018089218153351525251078000951877499011543275877475044732439665436102178720722686466225407296077146218596457543959291932787870076047028928291777339816878418305721271616453410779365100648935526886641316889237854041011099424814094933382657249764060757028447018245688168635821060636653417409399891261908477984158163915723566483151899668367458036198012884160541441908258326631073627850444461406426563226476649751738963869178380876707315145042708662618222657540464715666424417324466781531144666222120121420207769782038861947727054775762533660601557927261184817499834373361680352136360662549850259024974104791348342884176524544066970190290920094085351944602119484921243114766025895908941622089316409924030898670325219966973502256374874759269904652174476643868203853923954216635908125892894941521032530396415251729434308618818756372859712048384731757705978501318207904167225417400027867893191370887096124881743139145302031889502126626911125221632458530545666312385490798805482007162878736983059576772167104970692176088410174204647783771830443099674698331377710579677941697259310673965635669993855829683252669450427922867330657151382203797018481655712473322809313390936759999227637715316062594628820005830580708215928190451020201914840688973752219903613940635890267922672586061887261026325564037438245361493611806083303572113649237045565008887961130642776128540315364388436736109474665886481106747106983210576854038194035410491478988599842347005140795197906416029502508346840451076973969037112073956391723420109953653297981523588926573512555421507525160227359503694399149396697546247247313426327225824084325210229395125619469371877080575356824771607714156328851727129710853103824054091713170600726790340122364742441753361172669424843916135667525827645536105863827054109337148755392652809918303647121432508365067049675274038427714785197962459079823401008395426593228265700913354636464893561014697115325176757490960605344251949148238486861649793884844825428449235826025349661452863873976797875087778832984311142630348823248749628718185306751506046218809352874193478789539892891862347693904055939040225117233043570126699292405313936567860789248310370785502330715935388091683619818177201083315811707680710773425291811104578299105263539667930123291403598561474105726880201217167959862862616143093600227511308725780849462398956843152736880671746357805990272793464542611438845194448010540240436264666125727191750512676829914929750276080034715391695219495970684518843976624530139215732630696081907155613533776667716265559760321623140296104038294779790894180590427568054061655616412099662214065859950298890530711782680638475460820839699117281905364467590534472357548290345425852787237906411694278691612799540040077113246395339559007577921803302990942053014689178475352508154768344943806656510515443835089448777757984818878326314298403174931052078341045745636996715976409839759525611243377765222006416235900650814581848172780042494010851366523005786448455049223390450291623925275495713754168858956940180510944082650746324797234449533552484227511416435521241296302949986207363371195028735928505229802599800812201835193606901035431164367548181045062068843455570820216732521578828819674546527516891058531307396499296650641973379213351955647373076043600562625925374975142099671378021577906250983267694420084798022650879829764663795273985884600323661687449776748264576800734821568009991932718492427045093294544164283074989902966466632015147218051600065115624229588507905698473212178183695423699650821075440993365467137995160586245213584504081829490884788153364786296598053946685498415405348369633181387290080103876866590540066623931559400375108347332375536973313708353105396337091884562890698608147853832099257226045168598289876704008183985815664661953110039404686595200342937127723765556343290602729167444195489365709048462235930232435812352008948400631600516064445762557487199186886651506972662829102709422049534160504947647532654061061622656658344674270158137859793335285912813329968145715006138354456268072039975922533926066967613947743013728269162874649956190941564620602040113691768224951488957791651005138902466756932992967707780017625588481502926468497330331935984585315572915199867628182376374157998369080984957440009475082748387865318201925530168853604642226670745798093482642528305351221974223503311891424097854927787806611484538120227671430800069516252177597134682982223665060590952394714271335401267348156128343708311245981255347969670947997245452945907905747603307546910723318631919110144287344003998941238785281385427740511085562670662593077115891059924653255998565145538139235141423256996565312880005232703781682138246348084178804439653545191361218921215673762421457547579185847890929455117904162145395286350780315649191605418757653094782427805166155994111875895415816488605336362246946027442210771129747536754320681558689828812245476513231381380936697094022584253256966200944231923358214815166638981712905235337097927071474261017723000940863569231131889872258656585192317259757039030929915610271077266542791362390316505319463273651721822353841814023327092317577863057205132533295601581753862387635243686561364162430859024354765084449651910542031722852689332750744096934462987597864295876166033073476268727819394638363854874721138850747038948216936678706735352710050865363338616943562348656003950914261603867885093211883880287939599482814074983248858860110571613643708471262149492990831137685672428932951415291753467039329179733632102524924484096529745356610545307797550457916742652615864995998543798875083759374069084496577175447475256324522056177761006732215775631209165334605932695407485204435480550594529115415490710125135772642212253370329962478896114057869759953998457680317275736097409629380683639799716006913955987470648728092089815698035971302530298714904331949410141405349529965113832473103229886600519454636419982981078892657714554184081181359537107119234911003573001906219170973506578500143326704268362931233618758489151066613493323937321192983689740468679487774976837801207131266677695261427320101819343876430460967978089202782432489336329832569392638828850609972442105952501108269838062762156884048832672088924184872083128693430325213535408818847656047144740143909018874178217722148123451915546120615195702785193780556881591512912134024529924474182079710626821990485194283096143541498269718275145372285164901867641162813348394391412109035083589417500920602433288383694386491817957532092069127293161859409040128962847322956397689422910802536340166098318537582538850265708796168046510797576888309160604501021520734150151108329854497873231413160786440944153729329857170920670260451042498252165817693318716449080244566214401807913570944034737866032398008070880507312777783730782767300462014585448558172972280588059770859728634432338414283469213278966726493088613267387879964527148254179413293080114987483384690071942249626474306480394341814540791419810697007380096683488578151109325312470657305707074819164553772666912866439979547978075350698914918235930392948830766808081197990541291040219347339636231271483880722384986219792007088829086134857267999208031653573894182739785820895561792805361589914485092063336089251082661365042552837669783274705400862878493896209633644360725469349503262928524769013105217272174702709425380526502441243602171560756953618080367409190329289442077709635121946861143028429138424366751481624944265331706172695102146393851097010824679191721046365432585005158616252245796554343630121161361946508234947215856757305304359063637280178531649496118527328575697753924993158553351687410895122046330114619886146438973406801573523492284646664185729435946067224457120410637850269079814839627061333217391347079138071701353337093993305105208337050532991405932997456801787033309829099500618824079769934141796622509877069204869575576948004037624886125934580626424050762136143942898959750411631701804038397362384120500440277724004956710930849013042803141722567018738705954127894284946005053818855870140244616765546414073910890072796683127121292984030737547943063373060864552518576550034753955396650360353007103000048029081811012498158644703229893977707398124397785187128882116260077414565687856544741529985410536844450533952199828150171515672587986241603520490127114726803942199578705733606130999935912837281148527337756366678540489562821794391709434904897763231117347472688016769898333700198853698615792098066676668792729594796067728749538942906722866492152394739811079711946124043229372242095531489233545463680785691059617256974570170234254788090314587362442485375508496858795536594673476452943942912623895307330828496253605737110957022957191562745935756565348996719440284539993435282936128854924617908642576422385441599109583166355124359049459949290245634005188180736858640156275999777897483493130834698226203355504568652922636153470398219418612062236039532760734521650908296333461263840127793829368779062272785163517365791121504135533873448401211605465477751412309375411243182865432058409012172543793960312708908899131381630863773497685728917682817638862406119524873376558530041631763414998153792684174956123227259025574501255594234621701483067020963955836270460224542940497642972068007433379364280984763198315269841104248722111200326212132644295671300927888113267328299184358961463134511528884645597837869860803130271249674810548413578162771726573182174296870451027800400643325353827209714722321188622860997117480279261483972284973823773915148595808111718473808647437866142355912856795422117856878910280754370452463286868021608662244655248088588254531018620664091872555077547698537805422823789237734679140055669152672867692595400639965478584695076819079653013814600155645387618075980279351897487140374090721045971411057881723551968222603619653945119404448104598553514052820331186645644230813962516658277512760620268521354755920603434390956790677086568583220158206683260233421683411607087561527799627739674968545847982939207766734900571228139134349043939707237587874901956393142589523763580797096318554542899930876324610660302087829977130811305109549344022525231972126131731524389023438592550172563029667245415176552025320467737235921421687337617187792328375061778837036489111752743337037313400041184617094844588946108610819069174476580454670086327851778684508841206706259143932612863326005088848752896744286116311736920850400763190295746102998221014033943548708348454900544722070419001977118563614418021617722653238455126718214483433197851757912901011045790157561939108690407896182489371046701987556150332444218634996569450783463617105620740584136652743075447418220556477734880932498870346016769113175357958469935964740572793620047530033782157741645440472702861757136042937685595397716299671520589255339363769904981329715177933501509372256010356987835680625694936028567137089389078400029548292037639465799938235764040485038190983223151816292030458243585963011493142788819268454512438765518589105421558262526306175579165243214730507946289857760336569512122037604948418161569889377642970734732100765563656152412746380340993564513751807281677473746237940323392854706211252242821083476330192358679012468252301859376660661265102967414798905455248641827208706208805561613966548151366419594903967906352082866309605592399289240713217478091119654891312200146243828818432111772072182368450145517988892929659872977171155415066879810587477098209832383588847790590165302999399065243910657631280113402814706045717628575021116427509590137624167974648449613550994713194356331610508346897056367634566139022145387015528835984909135095023250157700094761919118337228528574057591383369712384048808971613996611190504798225058215003409882507046143764355145911023267730059730327183105358220781625509293347586470145924621347697557587771083950652071465096726855762562564109595434316320822550502254614020391523902964930943134850191426127806262092064335868198116045674844440730500781862341216366642851874047351286787627649973320747825178438694392018442229959355159243637599695509435235971227293829065031208654407205839774669850301177582427644867992569379664495960564130450391139878172792857615831702172347516750023310143454430073021459660356478251402177384143342425938786233433208553275932079473996014694653438954969200918979548941630715222451742710789132269644661549550608395876264313818105579740475254309574489486549004610861390266685295551948038234861906441659975542181955267809308848923918588568867042722897838871422549118024153596032164896816054550989798412012322275466571843063559047200188564187971583836005231712281843780014377453183206822799635876218495960564349929448168075897601978619956352418551473182338301368756542754046522005739855947097117575303169091953176255152986368919933746337211917692197881996164084568819774471980989478392661327548981651196693432265290955287689207266056811086006514851015960506931051865443863454219983211357829718881667134748700528172399215792762333460063772406971011279887577420454258603949298521561216646257088209115081609616083019533042587782364708642690727322787642169286017957339895001004304499891646595369066349329324621703145153707806858010626209801345324132665407089793859416503683355092282810628774839912588071105348150438989203708543208619546998447552595619411465320701427036957415385280900961308272265317814716938333385397737392242264166727716552804083291621736265387648209712992723900996373374977744887037740894265331688248625454103923736307725919024299862503457112770311786972288417245677359942265964760685611622307453717690308904538226392453956497910971774994558653500694333808297247286702448879503253169487051297378222778533403590138502830772081080939600603624176258228269947185606644765436611909441958190578192614613514536773342623316249471913035202967996072011929038176077734209116910967703232362838601518188734773694473824335191829090330172434538533479388093094458856820252448733324707220548143256307127795231769649694590582346556163999474540834328688002111120420062418334385950397611100466557342762277475797864741143070386897578863660311481918717114589881983381647782044493944331896945534018454654420845912558361498277290112158478117603112634907068484741265458291585310167260842711354876960843248771612461481665903500773488779729072854106999091381969174792639089999710687610635903047670934024083095511622703176029220922741449437019226688500782328369101820449745986163109137270446425806179166817597153671296320313210290018054659748698296952016719489366547417870108972398017185340142440516197971113442772636294685771002007031825271750220131119238433396987941574971714306083085014457963576437544200383418021194872761880502326597006860653663097359430266112672783314564890555825982903056660175201742254840953498205696283730476978142548617132952347872575333433380149413194553899324293684067401639006881758130349903513140297349057176753938978158193054985906836064872334160649121315417936583997985627468699440004852032714782229899418263223230655153397909158634025013332563097621563971259662141524383335362461641263643379507220698336205974956564913701138470565273508899610575804594847959679829976129013975720116601955230186780711196520743525868664364144655948568064194932541219864243312785664049439795422756486681551438674955373926256893770967199342572101217403779846308081918936024091871108190165420630923276838805515008125921753710174239291022695326516031639851613949979382864073877476272366436363654651817938261548568009313823788633925657975604841571836946890281129858058089754787269621205755788156193638085601880960283784229840947454523776879061888388664250521445767355080454442744587679232547928132957679329879120736699183489703182346539411614061659871254330101267809781713009172610507018372240890463760163497105213224305183063262415263414692790795855435043880885278934817310759506162700258396861415253393184808057030990697464158314713440902417998391887550204580088196306140028652283018027846997162620555709546498625180415733151531711197147049654473769422005091260755461933051105840089510749351146314920341161917359745405729026470424295601903161141350427121283256360937509763658940368050483739746732996129278270611800995224665671128206425280733868251178982686839907127103476198638535252195466611144280390541539518506842452483369459268358587044021337688703560618222928464187751465746130666372360469183798654282259694050885404686518180948274304897316739522688549586519346136886600163325791287257983135420333708221324422076386111641289099235724279799644533257192375285227981736761298154570416803153065108084110233406614859561962876021835752503615852691979219075628946529499367982288397044070157958885491221422135541632039613198476558638707260371740466635090045335314888761396735440373116131878822560751709585802038587120204826650932757091465011306095026665954296580686604266264333307544515299490772401217796065037337769071716680539118874811363717159649323674407920719539016429314189098276016108842091082976974057871768714730741607963470448001749246019611334972404239832260687582632018339911511952304163941770266758603881689915983787862519133675195266897205614337443591887474940756025902650554398709566332204252107976186927340082537202452488449695730357652213645291343114455215086689700210356693313478793410482581121928364865841245247671404814513120177506820232133064538563850270748613158606249447861501393851949638298478698173597481684272915278421975633356068124530702622753185144286261715738090717544990178242804429967998707175641657334174302229366858520678613416730207150982503803437550061025903889954970897117839038448791211591678221276170132496072554534523629477992371348344692359185344511664012698832821908635402052462017967913336232818028663223395391754310522937361233374774756374110881847743566292836425799090433138201989362131163972792106108564176247041937677953705005960054147055497613004625559797754723383850159713544236109172392314548284184722493385445201370028142901288144424341488355130081070517754628131315370571512625712660782562426657358040589108637887468366996831851473535197432797416692997558159410929135743378854245722133801929118853571468542212643291718352075133811637874814135268875684766947615697662171629324494957227032083687762595453947666301191678051567541128895110977701704548401858120495655043072858055924590356280598389785606748947393065467311517796843382411788281774689217623366290003213558276626060730650069487395627618179050068616527151231949441440832212826320758599948489134661419359344521034374083422042880259058978591748912523550559422388566306879165396661930862079576343122887751337222447518173626942547533070185977951843304634597585082723477293511738165005316730168176596869228271083009052949691836792364758357890442591068859124055969778713323195012677122272364440209508529667675969687962596836028630054331263505901213960982317158670491854185599227435363592634928455164151242561201147392917330695137406973647065038917074033026609997461368493685470359646992538149964668044994586768517151315852480912455895169797583158189322018020081382535554742658648716691155756155456494587108760456195200016476860870326069327610659466308299622688949404495934258333312513020391530469712181714712519774162315392154502266809945550593401655426835724286650629535816944377227610619807806016941972440991945288072894822480882629693655989375798592728867227551777753774012732614034627225361116680018454566663032815152647916146344601113123830292611167036324831782628490155104711058518751855908165153122489278458009887538401128647087888942483989525546121793117660308205120964622878301983952051450398580294446744016111033639080211893041103604705606317194274779604635313055632407042037233965850497883218916184155850850223508370155377709698984451612414885597905749079474215079059105496658706447238077103079113128364747118941040501639747745918697956683342713845634184425292762007792145938785409651589555045699677411519178745227027441408350708425327888499453763588419544384765439569749307965166490081421980588694836222175990283458914231789019038071793762553266368383991549963724619790865391084399544143127171231202377306790931757841899587684545425358336402122393640741400538006932310132122221655782444865401978493351696515868187701541771240752280959912779158544555309494434211364399081649219868928029962221542755946568582569965377249381809158967383907829364858246351933298953297000684425762346061905541398973012097932210030428757563051604079631823388485396177165172031410847419154442277563520714095031733442615560172139698690170169157371564730754175777583403820783591234998583023311482998745271440497062259982941914422409411913291436432821725647543562727024863396746239965535933227041378526321633567643089229534662303464251055184065683393054043383268436604069212976524636522960884084945001896293668175321317318228011792003616807964625708181503403332970148221493649642133881719614945377657462033747096779033031471436572872102068951628690490868833735076581428202302497726966547505345408902454999341447011177817871809161792406596148842548646496499391657661189344447198510441744623108566776303938533661889610651599091358028939745262257509388292354288525662514105527235873032029978171056730228377126308409217988646707467638033551171858614067386549567660656675017451885165626049194810923454376995254730906604814544612640724601185816758648795288320041788058245309406942901022626095117867024578295857244410436010164751814024682626313351892550111519863944411358912040493394294743541229967316832744901415394723989694553909841452383469187923818900918331847091816333374143475316278518138711897715164044058050048676045252658288260586063739196116047455962499601992139549805084152128153599618457038562490050401573409113970632456586876916873162409886306472216709643857117012450288308485699530976502492635550621631228762876224438532129111553533577571735640682865588122018750995195796953809700542168262373124286135606717672078987866673259201321703522676132860669237311669177416542441243339705805692141833365816948636052494528355896041726161076497866792475964699227318418627600093051232026057029669652336975487919553569039036740863497817926790666286068162407872974485844583299663800147494878975619368425041486975208052597291416737764373379343890138005699127980170897516399669347959685734949110892548279040879012124915530564738681901145902535222230414932550874966764338157327789319613982011522962698294451388654162882068617922806886209118669396504821900764026602645890128200534720302560254598601036924444747137106703098967397991257755696276167582817405140705461132351071754059171657435038743775444192770893750242171485831034125713040633975164502325655365565643031744991146511800512547312820078347972403335900953838906215221362888849089578352516409893026844962158782409326347378585876729627779842973150393346997126957518406786935923344861401968782963343539102797462314803518446953815636926155457006296394126027218799758338968307925106377955597920469697481636434113884150087176511629773595955352071235397908934710968065790232506713343273440535310911395427822179573943313441900248145835808042212028580293532074859223309355591809412908133892367352157305424701184165898380171513360385099913260855371293811427646455302355045256318697665083294227171998846762949493270325402715373948238255445181774574830383203253627026667516113720785478200186705253448080559883929725991404109912107814011081074941487888315734927187811401535982126118491068361114546602787619281527789755666830216901129569197539795192182710072763143941812761784929406290626659909151956068438693218843959637317495467947802214108838252629384035537659799512223074573701009666477274896991737601877609874126285888285806193185887914169163694243733584960090671690248614460094202870555269030957340487019994839241746313432492820040725533002536589655788626517166898112571698536804855739431615070539878841169716303087864823915831910097443752352041225452093598097394651688375842244185712336829245612862930289114664990058730165397582357124819412390486474480728412872511034989118771133292935454401310667898062122705988039387635997492946565517452481083169701305953311301269132900589085967842985162204564106781828046547282870219617251547029510715267773640804632068397947038914113124101870824726835454179291912089155292855894396300716156364068791811741931580852523076873258971713557634483389984293919074681011555273900895612570420744568782199523112735810879499165976169231320063156105595668984851799907159417585257329412452398057965420159621877756635420361735525713466690322291715720686727327371480788329658136475469874004126621646343535949594645095665781876126798221958853059859844544707719995502040134772483918683346229466518924504060226473441956733711662522338068748252455255790867816551155485044610133886369022283009812675217797273399592048958709647030791733869515341852281490543611234983421775907350214543068500448514995996267061354790473157256167380947973741641836129715945801745353283620882660193425547234012428633822082119336578361977812161188146827961726270278916472460258320035717238243317742237879120126425470602778717566001205061290645414688237379132898172908502995003161366772257908668689414323830278807908826321557467755867712951527593110343238729061353236548993077311285901039188871492788088714031413868457276948294579106237287942152550820116397018609867403420057920162841968450772918210895960585161379249331468950855979090260324900700770713748266525580679345347016993943872007786624044855826351340346665050319180942808904424237217748128163890920747612912441768738604656854330928746159337603660371449674101159052465656159451242034352329319167526233922236574381023764030103014409377125899231475328534447338072618060644240913486755358125183268651341286487670522718098911713169409867302841694512847671017278186549908123062434011647307492940689438748256642882160530626331234422664748384366042593052774175620906926372482243729734288846038943173171263471223288280802249597866257804758051912417206568775626822894892787046968082633157792246273933683350530106296343391968821330536516787334931910131261720771803776866200626338585254437922312511979803534914827400162663947154748812724901836147051870904635381768498250355377962400890240917254014350926476686579720134974622224978945153420758550977645829773623278517075621413765652061310228243965036698458887506940312236050103493182221346792854303739906553039476258294315180649496911675320091407718029805176169121494029120996582338691369758332084132114040681657768490226468161243950346447438963491506005428915874712109153107760389310132086303553695871593795347445239902867775467475485118515369563086448375640374753385152093967948481783335446098880869813961198926463635182120689209842560911700181448957306602637444676502355260537182431462529662510996408193917256002776995373391697541912790664207238048787328254785425527610486320534554445330483471467142437292385931959604984390036253122486235562092032039560493654924123978757463056436755464429505184074722015396449289088830443962335240276719443184395303803289651493723149039123380865199259340165404937082998810847959342993520665517643486646178795398403410211427389325317657282841322391806060277556924679192692460547360142639993357238062908636404410078117354667621894711998158160257255755263846855167323250027271533787354762926461725488046890276135402605204506766415236057861749816196919898089143664583801768644643834848704980076041578984284697022158852281619176348543098958323097809279471885761728145481051061405987766002816667402126572682565268353770885572843292594148365327489933643930444168509682051992408850678521826656094097015498706112019542435042066190019556222965624421955629685175128671385568957631493897506739563479440381535791097630471241923178059135140999075322314124528171886877966338754489533319487473731890089888810172064608877985327595633295632885997269388163841780625661680024092741669196988565409729720293269643759378444892954763422653956505865717144252785141915459370548578323972190998691906947322613707480855194886802487172422558093340520781913892658055718946499790605291253592900988397311412663776470317072942600589246665272070391090084758730122684510099904843429200082222051891126244344037893499359883710038189075265969889972997068871046658385518494570608707767807486864640347601736913705598730906650848301270153953545090526567238545953924466137981888898812708500895993607150764860838156928220274941220213532964732301216593346662567480787951767412545925443024452615175353072054893631646190531208415497870210728551072316569852795781806797907755304922053084719305717761579018512752686080519284658352749188754812836800899414072508490129985400162364635082431893508651096580099398431248323228627811525999663291345912531873335591722590337419040013529752133468031215474324059806770576228214670893682985190060323727755872831665491973917747577273945460320384923627306887063458897816293526226121272084137591306995400800546462263718211379030244725343436486898503992762777353011801967415201160884097914440776703174262913576133154133292683367292002368918610507117814824051716719614621434496171986225335719451943328394913318952594655012229230829162260799972396639361224182649144768432003129485270188116166193867395118765957312589763255956674357420827104821516160493732670931964981761658531877772258925173246088773626923880839118827976439289879844612989096034957022539279533573777077190505101261450634943792841552746376189416153391937263024150026061096204015223709226118561386635739472665838768766214011286154548689314937735255146087970198577851408711457923460459637407078864883430083405171470582958626348571254049833510022850029889884519129556117100333883647177305117873602117608478300736979128654419543493023983892283809842149523152545448911242516804995015777326897323967285381119871136613507585041227831595889912685138574322464961939767719102244755506101258319297289487446384421428362987184633295926754353362394559721932775356346675811688769968193462091011529057892637255569598486683605441691327046277409854239842376398988633136532357647010992244448080144268581285884682152209486713180171626718297399560161405507670398234433456232279142507986588765896092063240472914781476583735284319783760595328886495304100214478668646948215042293670750968170775833736091518707920545312957779811281659049448454625041039824135346207123275424143004324055417742710350089401759626860338703477394291923963029873573034652317952420353081716393885627090479687474880311749610596692904387063214654675537645234429847228671467307868982825512383165963953542505869659911235240294828687721375860522421794298373093372633588394427816675334383108529409774719193200004710600452961265380574660035611793941243687642357026255517621244754026916530679475408226122175989738335056932286023315490709696847881072846947892879319513313604626110429954012594660224673522642669730939198406764144470295400061013791029302938140480296281255898682037739743977427663238585899174587747041961040447926818558534874948662208650816969107089572402767960493628345062234650969534871579014019350813068016098065749827762939243828157769721564886329246606060497164410065227424340588633268511307440100912497958900166517886389868662060258507907454956777432843288351792406297963228171436218015445198005806306995390598653006590090013606315038678876419368521090415961108785561158663539089123071513536531517473967158024380509160349390853627770803193796644353658467050199781654025639489044478737507738899848294524862153299045419592695008877186594529005043013408006877994511032285235110794457552691006755521529991773544601535854079539724802365235653936886116477689302582901705237189753656618903501291580512204186124408533469527757136566052173937288035184924193871109374455057776389425409038225294321682834847102089842819995472860181970113544663197861151593288797308828378860343063363010349569845954649655231944216306330308494643332406979972685314626867854241471528449136305306842003305101061586116662949552549205054204266596482794542818409919792619155530022670242915793205858282914076520759297874607628581847575866774648021436374553326489309890435198125241144410008311716238272928682937355411245517267239341527103826615086623858185835893798264317145008149021255916009975806060689703475681315453521941108382437047117276798907679584560043513235447572672460178448344436304963001973579470584511748317768211785110295532693370913133786442509240046733594557496620988895160358252021810517029902299468123143371581841340582440166866014849322813824288962208324231072503690014065418774274954402962518983969408812563661068423621493682268133780920660988288341216305846809937309836828267829200258903183637802920330966688322843224828349071800541609019510521678608123404244258176263412667914270111946382807756536060530163519391562264911065533179597726448006605230734125405847398550227128887783911146231405758056560787111700436882365284290127202814857007954918792035163073029780296518616939305316672020243372902593820935355667382243485289532457377836577934382054273097035972439974437299795954477296269423751696698014769896374365826265898884691860224917955026218123135865438753165047520169930316358973797927099333878857073168738470423570190429116606186877200990341460688129578587453980805094136301876436355908517977301718413890733823808462903515638006237642946099349318289163604998394973573016317210002570336871364216065998852787695081319874500635876523571784120020113620342605203120264329198246352042428105285579907221538535941796059684598109319028056799030277043120706300055875236763481929092047520458023637241897294989765210348871622165080209923286939074847018089520341938265067000279050223029274284370861336755211084540483425195612886305507514437492261096766486566688306552151214250227895911235162809627985394537679133525344768394281671530842422011556463698068919376145402889804934503530498692095375682502985876906673451874612770954278442358697692711523111178166671037526708574959488250382990182666451930801897880505965442516155172641688785809784437337265751532410981781299671688214583863508577919972328048929690024361036434803862858412416122761858574548714977879706818666523244770848834519119156679947420276393849295255481461521502447389186187469960975263003738915768527094510854448084647775661797688443473246359637730176123434316039011810078088258637724855207488832469157251166037876770167640520453729173288939213709956142810573790890991084211616233464776162000465523555020124446697195994621536336209686830738202908994560601161085826272947873045710605958429051725917545935406543871500731140209970043600007042685462675591699197786231256505563063665579352460399665181755443804189066392796984611458403825742066136759797769527612683082041550873920151676482792765594141968951895143036082955615031921437271718953662231949540450227021053044470155191783110874331096267627522313525732925638392558987978777365529996855760242152868037427423868229861972573815115913671861802136680065755428216770618815254975133566628432730080659018298949866838242299852201163445461155261116677598805056045085838012203853595791248356593735936596493971558043680143855832734898091392700137456359549826496014234200022997323436732577713087881165086255554060930567040142031181505234278550502432576784712171819898617212461262896739178588338787087873523026488203154854015546723655798811199427499816566117156126192390618397692948544646811401992357059478213344612960951305451011944165540778690954169080198345903918482723580327767340901139165540331629513819441133364698086988491644229759748826617691272389307598207367535260464122481916478375861584781005257695518148424843678143293305235273846624893355945246680947975199119113744357382606859765980817822607094797287299520916236301541090033779745293709892630237092239911863958011328893423147935159310091178847668497400759402525336565099575628125065500220416711859492144219601735742116220871403676108009204961490245271136537694894338073806567428523504813314404082294050364122324719000399268477796256806253442052281218151629048989124539185489700357672394430610595955616969323780374899224231898920084267987618103908071146994711853074318822458992432226802852012928639274948008663574224749801310740973626385836847182111529169733580653903005660493205333256761320380790133217342971930083551892491502786232727603406787935529225816290735245123851186987288841870070534016823119025760158090868498493934847986805207044196960516917339383658664786840307993722872569792306089539590974182526798106817041172912543194746817580510531791548275970895737494315379132914144427200320234517210500258344468189380558911117557841352455109190212832520593874883029144202238299736930523533382366090000211614368989237416382484211102805519912436010219373630171271583033900477954148989307856156493057752257183312592470291875816672638382846257649260776455535291619335656101628026906214351086646263778906315530102619713789135727618587306819076699005600568174234534633248579145000147463592771090195150365631474216792300865052611371972386064932133045640994870723001418651896213145066727418820429045754590496631152609374101346973651903924095962206442960553425188401082461939455914025879240797695779726480553847922933875195412463546797839041917412864054050905033881505018189034520516211093600357247421758709761726038844430314207158724356768358188497984785523575097842308293869044858630795716521556881489514820750343578661987602313272041510820034449100083119591039814997088701169285850753978159238940416149203603065491373830996889131771852610901284045261591513970561216080829126797840617122436483367894827226329377063724254916797447108289571783233770478292420038636072270293241517018983779780057658102591407250441194031868432994814455518503355960086385452915667754974441614215801625811437975018737888729640639117102646283050482472141736225594762518677963925291755077436135861480444571043951266867145645385595923446344546936254541679695928155621485645982478957256818083830801596489092449269361195169914893791916489932777691888317945477959853433632397544048235757143954346691778096426794448491931105346639469720402956281030347568450334051626715435890932971113722187131097270416625346434222986146499887604412998346844500695681654330026316815682084605534651926534196296119241000961984293313690283842948081135419147253547933839039601690421890135025426202064342263405052048931078958250441453345148622240191506641747894950346958350090888076512121311485035323118127802730597970423197357343122341407410405917704175243289516948786105601826493242621808364353109779785315874021501703115845634982230614043065092810759470912328173870228201265316504455039044142789872075026620984516380075526248327147933550374215565198878807987235699280248222582020217724872114721881102174184946777493701716246406662254815288309049897205640047908548890183757008199465064475834283241908772602621854194630593172602452639327839179775969583952216563200816335561110623514655031139353533792144928802778036528224347089697583256619515248346990772691694399238358754358347380455192329593707693769262683196677189094654812136661032597005227685278497882730825853665594982240968023425347593929090165314740529431950573132938448551996877643279197434688236931480143571960507548101177015410373765102540678515542127292653538362917675175449375212594039599263230435827889667976255552373389499842157826806839676056804481427961264917421826845317401429709750612657977109954476079031460385913578171824593146788462295503368992415332185767040816108423537325396192070625857874117102245034398052926949887591530534790767738981776184024762437591043662438216730528903475301509918793928327520847697001288867758701370720352611183235708806146194507235535287102060020323543715665214396878768278175166338877269995565599201673704493751154418784788946238236767100397537258301290042942698521750583457911821198440318993509639955263660307939894419304618457741189016186564025658088534733043515962446793676436826176230964881753029229339029514031281947042466711415780411583843039388829696170810345454524041157950858646592155389029703142673632574082199992290374471373230703480465210853535483749616124421864135060769922700336599644916594073683861915766836425944893678714870465602843191215064661504201101307539579975753141544626853405217753257669280727300699363648122878803411215612118028999974186280109376648839732395380718593831530327810011898079769441843188603270184358041719488090249498677316678537992004156480052567095578468313153822913857638836126439652846645159034231168618198726787715223766482069206206969783357934385184122056559810591910507116806280061608474337373692764908933739682489187431797510372256886875059059392581748809537646349300430164979237235290733832438623153649854667038849420448088082244188128092655927672962476138383790758028779366692853369998120008507182901177368371850920688473925690559937761053473672199878998311322270183611311360270483108031559526643898237934618255146742819356012585272500438011287882713644608214370941867897817988720133711914721462630355397477627118448159401215888028714738280692126949640886365678428911104983235586810915362177257197175174264433603608287657335127100379043224599521911850533055918011246875654649892508723234169844598975580809195153947182098060641100301368909939420647542385338893919783150800500409172228130323305730952297121786827773410850983735148195374314766585996927105187476966152180091070639627408521484414642507131235385344458489695301630498297122628266014519896608196593800580618920180616280493331108501358005793750711698784819650134026111834648615009639678819247183805058859892641046269204556973501445752786304908569687036526896577916918985854489932314871841204095972235247963377130851854228461428369854109419215610736928199988603008486865790066738878988570329772140965717181139556256629675602023496713075139396318611212013855412161739824988449877985646133631166160167364659994462897979555274681392281890689734135272557169886133617898213119184501311398615488717033494516773147881526229182479110034868977477601131814811167616374468543794219311046980393997526830268814961236468875433579736777001495044258598313652072462524880817138963897440937840428302351601242182147322277513082381781486932889816120751729474681941202782043745345394851850667403348882015277479873122589043122174921506602698093493328406032111901018580032599834228411346127041826623680925455355069244994431711491853609110994686484638676484941405086546825126243854036097010262802943700544005701581011061230202821286632156841381432527707795057210904026639881110136436092739979878413273003177520584373362689331423010185100908529992902661002620856883529814766719223064757173607649582816819470104784989286383022607662501022632352678739411346425025402245817477366622155022392277696801671694348077345762257485241405524718108832433017116540285622073015894865735348158293959103337491974542206696417488558737176918488140903986843853075157956238769137976092655268146837387612981700342495745841517478589726804754651980774575649645620713946925717439947977661932848674327225168432811679098908807728636621616465818175320943275737441232344510652524350790569636196463181126476352262242317979468918329246594310526283594621867596945847667623223460068953422001877263442500665519117355869720932727509442561547429510441084027681559307115586922322057227394525419047825443118160109883359146264198237074489707984389786281751277580298428750115624345697223637635656790333080236896711756862388200235955251172553368584430244490589028891954383185746154272085029026563323012619628829193664355356881082061151173648468013043438690525618465213719709311609150123110817902884917373857578136212620802569631457235958658674479005833688771977670891214551304043022141442113168244882180588170592855549329363110424685996453000058564182307127043083256938325244137327006545293031484048760713037885444350512861180801408903257203217132985925222853833188718015227496932818403098654576751196016645211198396132478031448501723000576113108688905592904240074607468669679318412319851194564025697711637358316629811778190957881687604666779275278416450914093178907884963037421467814728372683171170502553622121597499028769151887920215865378286596046815292913973854858457234596601558330542548499730625004123217489821560987688710215996994508275363052553148708205199114972695203285832212434864201044786383394248083132484959206517770954356365340322820030938070971031746270993201511077574782597163252790066704844281545273011533504829158897601499449386341988966397879672422230361564305893477622845459228836307038105328132075590506222162444303802140809310047516627923706270286959675071831997649349863238560275775971074154439035641969358719122480951958013482551082257315065329967667741084249795453151492983513735511395740014928917458215484504483855513908521647536746093721487275038406308642949752242805380581800075588312071884146792703230809413142416535822644012555975200212598235907054090380532574848364125878794398901340480788798199482848410068718111695325136095934754060638937048844327253532432019622663526093876463177169260481214244308859563741197997174704474142573659522289667944050334974363775910484287024694761065017194853475729706501719764455057459650044075779039857986891775058083827734371531056294120108705501356380895856484326028159736329081424336345357198483200281446307612432238248102190830469385843645038457608620266677063693272488965729798033006853372808259752925603060328718035351110516290356820951997224711718457550300102524957191657911698514105553303728757697754467205597183832938817748223542313455596723177079731692283973616733951904529085243379390499271352660716468298525995622379453839457700696905722282127847353800869099739321735617946060134623821884981430189965511995474445446985746356104010639040979589833619129662770688622530478037150711520755658493787219789207602321252587096930403375406322144990827497970221331719569376684550832148926469366106569796190105716243011600999608981448992131597333695655661072688833473196168794018366756453493404925994123009350103551670128755565155904499612965892477917170470150867930349491249438937835488119269071874198774806392046474915296012686573048806631355101934211018247650978029260007263718812645291987128517840305273298370884234237352344663953500132252884647417897122008966004750212543763502835783873174884062538950159701091980910919749783082381896047556934561403664724652152576896908460379082381888505525979902660017124159431091390225844209110071555496648801457177398504118743500110022262916032187607674829180684661972623085758160870612344042392058084728405607022496224337534507163751246222683349107883478403233411044764811594434505831869477925292848382301819816749249654045161197699250406259978592679541226234014976464859315787135883559951603306935575509318393050484939678193561126538048608510756813349753436948275168616691483134116101100626461813429974565824287465421904029166693598596695591181370629394255436683263137387741776439443662723694683149348440749989017329579113626274350008500669728035179033069674203594217478222941027236148934780756036974811700313674037807473802367182459643425967817799668786911062382507119287044216708879915225695615623570425426117316124542655738776399027709780685460567289202502188149488087698035457180059554864885888558160160798276237223935587261049633642385496842137171458394970949575562422278089438384020683632570288295746801695360783325305182314872072345926694680575034162314369647103434504999814810031814190553454791987214473685024636075587508605695768378915326356103872760669066086251288590589042425946666954259795217607837663421247758191905759045704058937178821187104489854036834625647588874109556006209529382263647457278864248651710872989645016646366056258171859790417407425027505427200826887302948113600679557389469871491303532122518173283256560344353395657503182125221021035239846934775474085447067386523510210299936848268068691043278594629130070312453789259952126072063838891874312219485301133424233785165049687624842770151465589142597110901756407567588914457471029849904795500262221577434816675809276237664530858237566577551689873073889554238388307692025714524765613717373668326636811535668594950920737199205346696675068208796719795431177995526166811547155959865209427193919291550015104949944892730581104231080564637983318593111420444503670488863065311671775944928135523456300452132171593466045718653636193623418446105317991738651601350849715243470904264476569751605052022885638240857696364957957149538727715750024699069482831622959461227329577550430546655236847897034856316990210764894415719733414676479119137487480758051139704056890263384039162840773951485325170337195330963930484832542943195523091326446693165357666905037957578490510209803428103763639950477739160277329782204580678195333133630910986454081899155311148442500498952087789484230856829715605288573760942824079160536057264695475965895594588066294228859538772944076818043712962298104987970451750126761328995190047530211962959738191115560619445899592962723368229909643116439588157401073188967995191423922462649300029006394685000356592053896005638540544961236951612668921879555050632536799434150396795253319429356429716724626802332243562614649506192042817104057630563686755963302656362692437174309426166612600317390574858559699638605879289203180457339409387861381914419305322283418416430060998542196627608597216410711650627312204023730197227157486574328437676200270766381771661067194112630715646705995615931277021928527320155519143601163610308040577924800895336537382971528408066003128275802129345593126746235352738090876633965332438285424487627251403947303072874030425570096853973000608304058332921605892764604528290390833346157712265677368528524291806580504021119642187625290309538986489783966873755753566301380118209043719261353335958427506129875646538966401595041129406304600169624300618012165667212914153005443017690727956858675686948448609473463503718473459211026438734495724274790387004304595343423114494637467332035852697803045081944911849379141906284659407413646997097252657533088233221367276422084053374422847568912978382128662502492967814509802480802758189116784619110429273956325574290192091341134375389154793895663913637495778953272320056988041728836217363468988978289210307788266244581680438245806923779451036084003104530122709201496777739755478031786819518280638679053745135545262464130816442870340515010559552194199652789906918495413828237592617954192049725319394343496612791909761070225605354884266445563638924767601271918513175692566161702005356206486623447495041247928918586606582716076297112280759063978802997031872827763463391208837081122098657511068612493734700597530845580127452172898595925494276347527498989789215194547698602756368902469633172614382775015590104883616482835924537624260194508099830106945946773851506205214811548462016593261996730706937164778557819912470805078245068845476122817128952128302551622212381391706851720084959578754951451291771364992352255115433104428605439447946330691079372834055479888611234396087745228982166050271483116244349118589303710635338151626871056526839991448545943885894261526723945976518652281986629762088695309760282557578278381965682232668620903829104132415945346500896612265220626327588082554420590221827147419545761131519758670640978390452512351994973338129468509753140817703844313206613402256120347440217772504167613347457415724238952351138647084808990992860039449343917264805684776385523640087599585006891386373966103243739467104979582068962589930924661120282131458232653284003361982578625106064404929274547406438605017874412352845142530629552434269771516249261976967496505718227949364152811912084042233867118593207150731840045288835128924561254493707673304150307105106761669077303557854333203746553237472496060852754540208335032949115961964262603745028523843983215915650026190606094995673372810732875904146420722466208002413221089585751479159936594860337208912665469731651204608660778185208288720834627745982506263181227054452000082953374746488500119098006332161101367300192135995921907137009898183021695104318222656317810428250278936975058673454360979793421818993680117221165988235787221769665291267638405957953503582867285197947646112494031310782705659499966593319110975775672920850028375707695187452188857412084215492702898478155169338206511817071686680718245241669224870737997546795622829511047725824190836753910443615634573111310832586544538682462179748651086143474224149927782354662700819403811751437902629124160000512939884024259225448763152847739378961033147328696470956318472082491596084724767115034552488742343433358183232605986356853220357096689634510743769078557180989909942842367227587287731052520098632381191627452627732553470259294017668278306013608693651954076330248256435037825225894538509764769464463610407958591698489868973790878912879515206587310666836556338923414010828087233293340657901410450831295335823435786540210993135871132222759216833090158644185257238478520251548996325021466594426727085544065934217223529451406356251122143808671120708843425270514638282432749950457057197878588012387693556153183392605406946837849189338647709512517690778400248380054897420732801817961465660687874521321802397840793386445926141214957719087318130968398256254194191008358181603121427347134233851435141038239513023938542073951659509469482330157202497356031123268961227814816649471453806984942365857603341521400464314519909050645172587957293438477990913207673423675302686488825797022042944657540033347781028162920743502178297926787482660592826380207126818142327478577245029066569190780106068613679777401569185004326304845507568799579627852674939761183481238388675606211397638870517090572866037390997210354358491280860108923072671076426734054680805060923842020491206889872617507225464164018899272736249820657567062242555533787613363887835543669966464171125806983069416263849626295245788514566710496949164921192695894983522764807989810387183330600496950513428402691781694696957803288171842270170063971760061331686296618117102242440300768277653386611800226541117277660990941782855223198016388593701190824285743519924536449112178602416587253910181272025149961494260010886903650900110605967847883620309042130179066266936135213214453184502019740892805259655058327448953445062289969880608586459620200451341784830016163889994715611110534924147226137941808438165913450024055599953807199745233968505225285002479147213280232325674289557944791797696654092842230921694639395284619873312838146341563572320033574139470483548105193859101908675676738847752347101998201886798688340629697945752537249556204540029132914456498635752025108710549163878655442212499365147873459713189379269043585656559352847281916019114050640245945785452740725484705565406727030468159076106522312934498237083497418624646924197521182096691348136812418835430232525895541178046277409502970097669199892533957139054613012341458024274400221323444418244978538917431725066477916996468228697881600084808116498758150582222219001850986747193520345328690558473367877779326635059535756236509476319891299092763265194497974870680037046467889438007977571191525682427576811469478684607392907864428732607340642812397932533948115924876820427060790271693340018202459711517531319831492217040000032508230746014682493459303100180041433422584888969766438844388873092342248881675055406419500197833324552708956531271943553676391285257246415706249794068575086462585860886350060102421969608518786104982644392194794128563535444256131050854456259967727669399171006003985171809577480574718514173686996368794968614128142746861473897200433780330558551505815531792979878048855565599759281703761197800033153412236146636233003574111958415282715227740248181995366960379508201801123891809196304446810315490725964545942911364278936154048076828576070958327439265349920363068298181132691480526248285444221889458811862456175247425940336569275692774884172497389082290975595923155835987284746442968983274016191151355742899598219234648100070604169536703864659889952803955032618916701771517750854107603921860888057386859395721038444637419990243831824363068207912895322838825914244914384664335833053628360813078413242508040792706137221204428439398606594250581341329093012090988725764999813197381020668122418721855417593980071891906302695835910273007869056086578029130646748575744226560040530791856453007449341222207187313647460300960924074875555523005915080303843239213480737255492675604036789640548800698880927680785285453448612829013533037478464829111796776388332375149950658333072486500340035574614779573994499577270427736830987803816136920808174168948069948362367029577536461497254694328178302103153676749662760178763487499156535842803445969169493125055906723021256296576550485429722134178514093543515824568883251601088495666148716797103608085105380268448009583430104223169591650159550512513184436459436148741892286889604119065107941130620960127830113501026006867440242804052522852357837487249024410096086194457175571777906919660885939833007000278644134396320933272305661894859391658082747030567885829868937848034653395455551180136365084916520307245325688105703469000324435171967229041825250169662717069887929191837479092807600858460086466884136641327682335608426053244047385066029813766623998335430409403388418432152659360366571132795696153309432103637088565302146071790855958945204418222745107467758600597257612217942013813089198799301632529714608363125817165048311854158934526803014504211601537257493958845258184433884065610129521841268346371005673136484626207955108489735101971489079124081795682956954578809952999167464350452501700678357987893026100329693571824638489956474789391442552935738933909962482240788953882758236410258452114460067151029484671126029593740460410013576125523097065889391995907627553273541378222017322242350486957127165082427184627080087569305137734243194770567768436912783268136208957688151367745632653187258599950669244932614738928635194630944438409567514403958013492840360465374145966340483669766279042837399971070722312053995832556494985511562059448909949241468264508435327193546094938091410444251399918739589397087899460933547660616575836122896693252241250540842647501437079087511752547429858692503458811170997210135435413057941424420436615857463439732888424373792776175548901913313649661858577520147580962892906440387717135619923774937809684426950761566365665431387746778442928694385922144955110466607626062994356236349065572823823447244687706629201614972032506219937859310437034104948890793297426450772178580880699078658152146085200963425211168403385061928516245277493542864263105445817643935013395118470392553158846903864972710076876621314186984578760710514325448530137764903646028806605217910933649516555221989164777709879053270739974694763484723707214419618078027856499205993620188066603297330327124292599940232837698872101885779583538085748458170317860024275558835604570589577753953759842791940131339449517650378802822017728358939971514001828855868036466018492189748639838170044358803134524743360408922118534113245461759889871708450015878478211691139120344045760141492706359684582546736970489623569030419302702544100051171749583009932911882759560062739310182229768664882672710791068235742463535825543137676333734549614420149603387792697543779147556008393056938174488001093903184907163449715308544115999247809513985584379374808852194052131375198937912987607251440243284317649353568399402937529864764116948986131120029105593120524033368523614565455730543588642649670436131211061523376630329957755103656309830981504534124940047920706772396501968615983683661563136065717412155412052236042641904619254859716233635107735104535949044577428013969815620841186126569839209215273112475888090686520428723899095221947172257136437544142089158282907654536886038379245422665792217174933106614253823267302992926389655372787202421470525935436645912763166793665462904917777118546362729417888584953896134188652596131587751579954405755143833912723399699312416254419187368257723196369327673252760264361332970480588437085612816693263615358645219512653392637238057100905005729666015346627127676038395678376419852788529957806243949792437055036315796441599670319178286387271406378814143917632059473792647441042608273841936169655305556720934712857856106164785977125531882997085400692058185987317238728883440868639989144604712527778847787408793903353609472463774569820180781189940410096043034741789541573578594897483498001142009645324096981918206669313118496691099078063351711065995119133805045558042050202218706744647151788660756840434414581128419135835601095636464783670808184641597418710261621051209534378190518114757586256842249524792874098922801345572206031989193607968191067375787125817755061013460701634410502131030421744672168507972209913371572689458828613807273322214287643248963033215032776813774966051507818666625646351365660602153520733541091942774576996565960197191014512272537884403948843901681472471604514311395650373029964689257007829173368763979902642896327183597037189145591392851966362009937664328257389504281509462905556351520399076933319105476733053719463660436047431761716564498025740604431620212362145097360637540886461156844108741608898809213737910924215184318922809925169942263318094302036766961716749368788026631278581609958127750524357975925347767808349921218628358264321440070508653977095198827920468288990955738039314627247160452174090130716976421851294132552495949933694372438132407963238613645872028367968438953606367742944938063062428099325447538187083919499549917907030443670921591785827072057151812828346967294110526602591710689820102324395784264131534626561363082367491217192550900821416290624858870707895846063531878149258128997908761489702233363157586191382535289054640535104442731788994857077015471675602258606476621618426622432967471890326604880171590769779072556051721653151181828428216768590647888627150586766694416528951569969311594608870331321977696488112585686919837178722544539732130670720033030715208826846381029048703218656725522257893658947638565288630667933368097462448917965754434075104782137758265450120708127558928467205667828653391481500481373324910810981398251732686749347162341168065648536782532794860127901913531050308369935137756725433952985207606444714731889940877387714839897138937247133816384718448569114336269071358046909052340627917566695172583367867079137309748254913457863701871117908051144491697837044405229563842845358945062296646120490021630665118777965895549975667075817791705470935203363387480771989933375075038596722215776240690006484466710949110725914635471969363532390855786945696635742545989265388006988711175375517536222857862631664344734008869168463245608594649784149553394334593568422210572618953818612740697158616489542277333168195789123142694719623429526287439212672183377292420411561347827059933931633523658302969102722216640971351061558583838586920010684658755591759655481081318060299096072470435417212942260512858571192583007182650630106705471012607074055613521875322984977178234655489077512848565379924173200794631956667786530179605142125121782786345559143263042955840552065719447625906013128537410195005789490001493050221043212895049914643164783453844369780302789379853420135732900000507119539544725518350817668248187474524920535659857703462568480073472030289763634518636190328441856455027685903268675228556559235700885302509064855903807737264071003659666680589081689323516104708933410372357763927969060541671440125813833901037278324121146980301539636098749436110349060412799518721936850731758439186899052500792067872800397098359575008611955804525966899936452866675487112324306753509572147217421636201675984742359400014173665160916425861351877575060664623118831942296185654325961080936481563955735333117132713102652334237457010163848630856402926713561324936498780126193776461533544546037227864724930540795427303910957737890143285568891990536110044419622506902252799824378240669234498412911147617531330362262995020899049415600380448814533181718434379908515698672003188718063550216786554136482925460691509038874609909597973068274805373384819521522868057280825500218400621755640655903776874875288527324759341602796787346893730945376010435604304129429492954931927036198827431141307271158042144522711441748367007794789046600646503441023966746975548841282667458507547105631631009124201149755533991312991710281706516505620648434272076133320005173423331803315731971154471916737690111358163670669469469239058574551099408670941798567760759174440210783816395714506076068787475438185350094873332948418362932870473924112873348865973526041529803218597410284531665540497507218906852941813302820772624736738414749412422743658120219572156616922939648556030389019561921047692104765703810040982075658209048777602411072372456949083592062270400570639787177591709303390801073121222721018163876030179001257161581208085406832873980219654162061844015312191988580460508812031175710706636972268869639476658092981739989124906377670890605137068617487309367358588068274122566921321332032492765644955285797925964412051924822642398903881722451172906935675727086564957748247326608886817682191610768164071282829755556125306612325389568000989869246707650153552910900118827394833320239322973014906605221829112955916178609539677393929693557962214691008173287805771093851794524027426022713567485580363460853273563834161676439559930895233193045626531335089350303558250246130265287472753677249487973877782945544512735562237416451707109475366942038108252684864053995870453391371541637498546190046863860527885300718977514752952441883051565005261583522970942211565120438990116017132990094858237694103623939423510216026426771848702117216255494551701082592775921740059669725262638491790999748259906160546215108828401176184279246602241678556567551195472339275910333203159114297101968857333802176838810215396968310049236872074067094136553885763050801615920508553199027030343057095570013376758997417969353586511074251659683807773086208675345557241167485672620641152184445146705495157422494434582354856243435292493719737050111963533133324500183455659793948853059132211618147007347269642395826881558376048506911338553469769146003637008727626241166580416795975494114116982590532484636595531922853930712540789130977133520762250072615265191392581518150662307593218343541240129090672292188872532479803646162604830359344192341226880862390778474193794816584586221390594186832538930704282273594105173534052546371098438214064780823304052805020633775065000737391284505024673109138561781323816958794946245916446978577788157558133046500308143542106082722339121008965705672354236182348604958329857146320747187732313964159048336145720297280997999423956036024975101075383940155897223857783165725339912078988899799604489019809865813689214496691197257098453884914406649127608455080321572877309776514188246767818826097361602979811981359108637235212595104662370696549313116701563780113866662782834137453647468336441238728418487018919373146805951588105059183283752080217061204215640174468878413580457276652713342586957491692529890096275447337257571457115811012452136055387350321920151476359327745010164166093964297607051477408494894996069223674185852544923269755338762233483159129196224852728861360969763765895900883648565571316695282361259144472520172889269411233667495628842249138547571488688333229176439861668525322362087565367219110817522182891190492193315312571604767522627739956754585706721952957343559003235560577601145066560137006016035691294215930206402434322845686910567598404417533729467152001912988221857952779220063541026077687016479672966383641886558490589548681258238172617417175850648875157039785617828783783151822422488246869145728100638995250157184624840261278149391172560806650966839777801519718507570845649122877711541182176676448189733773832962384262990383531505574602904488478058963305412651858428247132553417203537724396422145093138552970191697632120419766012312050706285589003745102684764198660172097856443280247544889029482871265756749023176507324418826581622334365687970444924112230188880123804198233780743194318105358879607032243721586205954399107800629484675703426883375202688986883363358657430373897105210023741497053400030949415785740920089965185920678482988317676749000222697817493540893628166728473571822516635690724510223869466334019213654443677120330777676850257082576477401949289639531082419414762555535512608995104957370175207859212279252303106960597601450444719737081761734506278254594466914569272886154406029900462326024362523698879028285338369203437495553554801749911565192697736073306954941854216895416983005497533425131887875109451982687918467254217908737125612864983995553553047801783046105856178118163148195280088825577723583703799818399666128763787439767563454249827261191399949255569748389327708429722777142254102389568636960073699461753417660774661833314086136473204442802533651671296079761851729914124311117116770347703599674643279453262958201350602674923694855056028661879589087813508037743968195844835936956301754343074830425839146165568587190375204312981805182287921306225343002271942664948598582733423585322689846051472270009055349888795884414537181697935330764231500825201059868294288487089335784776292658223348170718901859010988954670891934406966091897503770475645625881825341687137297429436775262204298607507608694475258750761312737034560762228724477389546994379268538238114187038962464244540461657475747830491212026579087775450107927986743935533679535675114519313727201902193561524371839035361545233366657247485136777609716367908209645191314355304798782288126595505605365601159307350938418996750429448344483607789043560341503437205966332212156209826478000801941542805227580590356771439698254665567871312765619654738577411312881336197717712279579586350661018000437646403722964059818741892362363619080133660033374170709272274146614890356007862699699416961938580038757573954448719234660300474078719717160004107027609878185060450566826700267900105170981932858225429236076627204220915751690028104171685258357178658561607464573435824897823408167500265824775257905430722050988493283762383157640739126798864096530758162195209832559765908316979054348000636002747126445926569612079702589140968620459611907531001548299997221417335269175993108798350742542875932191099617696433779725220412676897574054029425153683604152309233907970575895063260060201705476357069076841151695246563338210156251631207697286640780917374298785104032230793194483998110402527864303963716970110747595408432952360884561157295730630644238975176748219840502582852440793679806068791879376715125224920691954788567926603199590811723634912238491895131659045747636356793346992112980032027445011658184483813990776512829662689079790288880272591873332498703828872539706930282029394732672079133869818977112990846227226201077540686773855632814258580477822377808314762276699319847291557623573701855077413964399827282523577608675272846736251767721614145335815298532830562967675941118252795775343068826305023356525122363367682972821231060092856036751799457292123954358688595005607656900039140876317974987520118020873301215178337511288309180559445245264415707263982145086398999360353348026886437146880804870686976979860760871134826414425356054355480799472235227384768613431574002316527825870064283361472178889857109598838750888993903288664060173428457464830728909866255635956892483736962523626916815215123619540118495066287955486958678172252031287563962717722168022032010173507014264668175469253584829912812025729635866851306374062917582289025184207510065958887731990868073257525935208636886585776707282634652374531210191380684999628583555016518245940961173842698076860868510978263475675647184685456343181025057032862622268173905897726885292091427873728625946674227349972355260515654895322822784069402324217181419935458802881736151098948295814559732343862004508172596609544955522865598803958133628893425814048763845953427738993018218021238805814473718235488612524443574446849372313398705504407436983742589659997257161581341395379586602076669429328892032776815872704630230977149578728343560300499599360154627773011544114133176619895207608013203944114127536012993668057834875128418969135459057057927373318972672738210846864823128743636575644815175493099950840552703812610775453570314692330657835714199070574050208255151420856769083926508732988512838952225676832719489390076184558665617310664360923292090393944293703907381343667811483328016044681082605138276201001827219172886820019330251779821984575857545498964461379827734513582199835284874913675601757880602636329772545527267717762953104250327000249250525323476741893560945504787239135059901036039361679322299916651190796953230773830681001918903435537240909805055037587188123237372556728158703999835794254929301156874273370357685923422623972235833480042887685873866567783163013639102019296315508208801280888701427683243334350314756038552272501140691766923713489861216231472000131909559103730154814834945532131733312567205817610773952870334713667860148446905095688498867179758506689737773176693030434177511596801142872110133955254999111838495191797005833859069905381572029506830993816449312420853443600218935736337880192711354088462412401401941935117868018708052358045656764051792436136940147627067594151566206918134154196293731181681502487494408714127502094614208394757360210974045050241286495976186521168578956628121356095682727930692167133238207310241691925503893948243966955645670719996766023554157044598585385243774805475117267701852523218006794733914582880508126438148656473092851098510368589559486711646186260808763637398835355301046210048888390567469680142251818948149021157720855969199846024763106121676238515430612341943731179653890441803921170253567941542848073632711076589640926477327357634075156384254628072110584682932693639649960959163292950966443253208843423934648340731001304759923478894624450985155654218409969387868607198383711118768450769650915286740563569349083513400067449132371129141916305944891622572222213171024354554221720835706167456880647583685560349122242835864914615382887230880875802850633602722928413145790993020823198232648397684271961690889381135901480759442038558433638267229653900605039157867463423286928577278534382172328505349091348260360215218612289066447244609113270693529295240214761510153472348831579147660540140690950129132350628787624401206042158789646171448231687305774589659200621547869973101407179513567323509919562066940119972444136603448777319802643782602510634100799521962617351053939529899022876564876446693113840571240613781384298818283126577301294156880440957169322575534665565148595265706548068174794133438533933322941488057449914167016060118262587154771120905720155806256815014344568353066038558741853011304227215105655948692894602806653370205404725848065957275396023579311468734553240656886509727160078527380446031152645420570209788242164373429530369691914227838848649559714018462512200071270716682658743257316010130873220748168695738849802490444160832588342641635366042401623938953985295044272842725900452009482295706734082426465685202702347565993965388251650500748579407652550699664816734959205938506670649667940848365796345543884968902773422140788115222307584906158402116767895226537495948874594734694515007677080401318803637666899188643751769925864837267571883815555314526585196652234409443015747759805880020635995700842555758087260132349179600897749182953889312916004888899371123340722151645765310323422061812659702722495342435175847210519078359148430471096136056480920199115536821702749721499807246544585150766368984074199499041584954665027228184131358365948754938486520417138235838929808587947443927547830880542700648273056894743353798570731785926615193948064970302805253095903713765535718499596574334117909033923805870972895727557548736325892965838163820860407248647854659929824211698307557814454367003683848329748112874965754448887649185803954487387502572637107641618671139854046414040589884529276297741213944828589334548653958392291734595525100674720508949838143955569589853681412713567432227005004766403973221269290260712397133947309406723742992715024721610684176390900838751340716189915005877112812741983838257917535652177737851291213482223262265103223907192686650945909278515847490663663933650837669665988837759832854179153390908337801860052638723272202460860978338702104672160945678320420846839603175379573964352653207719505444710287429718678413123369819484180065940097403550923371891848016636423071606355227456936331347257678107966187679810231105050531352720683593998498959298820062461258316441094105759051166715416964491175748225155312558168404171141959670683706864439382232295829288133256713926710851989662965312427268526683526792002091532917103721642366902235312345107681257540094614742691900464705038343678429280688645172942481530492055865592764628074591196920970721115842334013490316038055552581192816412366542246089363974497621862670981022253462357681378472194556400235161236146928709757209963006302299610412079419942096742224050546570867480848290136408878065942043933042852477958780436008812229246151354564259660912388270227687669964661196328099417189212818105727282278379326679446169747194315873220332447495377417724159733077484738199447482810238490591032641354989921294064398480774251066780960454990334175697064923275784971258978794643530549614049656128743106744483253398027661649039612159719398649708859713675738062138429628961439212365428461279617397637702357550009070814737648136129407151288270774507379287133466529241090094894218374762824829783643388151488044794111461066534478011660241457174610658712250068332704127131977627567213917723896237551212244934768080624695465008446292889614343671823937623487657790594270030556714735758565666463473467230760269446032860609661015013753933315402581721114957674648002311778730053519394934255772016512027485043230680610278331746443947382198055821360363102907736930010873824177095677404695487645965620310233454960096484205132418524228418542730138747882852038181450780749752989520426293581081253644690120319783955552280270715561583807650559240053730872014740454707618593011312593994035597119135783434194253220450230038795442605679633010687921429155360572025893743589506504217906941928442019241763686013738394609297178055242102938269935095050428918607049033765847035810600537632396575967812112543720908008881697450286920859195108054430142109476299904064261418032505426972446690096312679619170707071488390966616891335516582040200285522649734507701141456718856013613992292022437098522347811747311775639504113395806618626543729363699261684818579541876670840220561056462601846575322971046436354163259405169496251823163122810713345150526076141619744841764441757317639128023669687277711845797967191733852696644812880116786409846501481745257718199107192994429362069081456843882370232056171795330289582064085282087775733120073415489203688569210535400812546333687157550081263371624255239799243970112948912722376752660207926812839461632675740704650193638909821398515953458431332331622937276575311565114839230788122587380832781824489671605214282742789640027421056020550022986494156816916370287695301217699975917749039663489427314555245815793595675128930353425077476992394336330556262379798956328625708834335084661123150238101490822914107719644853586796039528977698249120906730000402651881013907528903852435276270761610200567946670501825372349924856648628753883457835920471107178875945172068257068981928688490901435146030896531369227825254408034902160721906788737731895632382927163594312947979961169787059132762805759486944787803016765500900117497559780230467846448278871859811575821819845541271606758375480830750032009190062167549655676653032987080553650118754813921795426086974102864821785855371836443438499150926967370997454126851812864779014117506014797331923850880969324379868459855840905550428132935247508140745523906076253055398750258044246677038259827269323062354665142462954260953062199253278509198687508756466644065326058799382824985071156632375094818105818976580188884011383032709270096601904833525187552699389041023096983516307651624868994292652247303145346199744564061636122696382198581856463775146088039860169737132563756412572672287364737477091699533515952599507436725047104036841217779837794226396028798813826648878879137181243177984395383871646223423014280036939135422941156496572633261883338898072728814356710623660820076858065621449408524087393211605652994234052122618113284803963542606580979396589042158171897876206735653028877611570251217667521530571211144709699469975695425480474224345291292275911516710063394048826822174247899649566725792823448450052146353404537579923397612481120783698395533727614089959215373020284930887159757478393278411427136465704562341187284422454505873807561728336336239649111079511033007112173212407568778121219995604242732140015579880491843005269075079602373237136219177750500341644698360789265363368193182475915328558404779372472847513675266263569323495069899724657388597219216347428646278691718331451037456812279604449157638150193723737894379609453714558244742726092403116175891722665831365561020784705740285288563109699812851989037577704983704813047709022308897913759504846165997749972422120657778865684399718829941431406634366697694499293059387256148673220071522560054014826774076830177897003141856965174907994817405049307540920404171415804734141154133273103862664062919243738741934280803742228114169001200510910966047546786294036872194274995779183259052793085800428837102315862758940465057517301267057682919950968499656613327020690312646428564861477857162681573579155256185035555974816057228040627083287512957181643545269886585432955202470478984462807016801681683774846481373036571409423914026135621303536392297950982396065334225434190959222459535344925640055449490793819636498995913097819854639191906389402752922286752747072540444831562573140330867989337535085180672017540954349563589585838420690347727683756122483346541373649302614167590710857752432221827986011393683657442309850841858667608104386021095222630108463932519843417023188624874378842589284764194355003964999926027291587937005985981763954762793359104627939472141828926310836153896060595463042932703632748866315636349069740779222611957834733256989099629623090689395473818549559125494591358519841634149975438716958306241822112492657103433281855428409931768730934107294836626482700741774828631635663476814707630037305283234628926661974819839107708407359618768517400789643364358843310971726099376140331875292497979273133583279230300457343762592055359779250011240436005150716174267905490691231086245165969176818891586320326607184145357263812387365311985079381188539527126464803022627966452805574092670938861345272693280529386481480094900708623598708551439671147465328400951020140279058368603243276046681233268859257934709138200177274354096157039149095297254344820232579570173867261963036098576829263656919773335914829030726564164451570829945573757827764904447870440016722368100025148592010944042179929018972601848386659846453266882990834081287279730610114509704101329880875247525487102870890152688935013933090890783078697907409143252645872512478502202705560850269001490773933219952618414058192660526311163307511414668977307736770623817547970351501734543609917050852826237750555870504610326559631685722011836688648896166776902522747774233435919583218819341352429268920287985793123845610775052788439863032072980462099806604584639611097157848960325732217847426504963451257818222341250784932188501083036071243768438761927654371567837745902759685431792195928847003481500150515789065588097019282500208170338433375018476829579288226900103058278975827592475566614709261362770273194749324993869927644811337553228564606441902208943446637476811872482197974448777105254556982668832247912740230800249756077399010928129062517673394107275502248842191317587257496552624482662825239024369824606995312842412037178104798228849009603149371146030270079561504140650753438142439643199397808185513949225233985203724942856169551234253038364061750029100163787587080199647510407230101055978162215332329661013429396631743838269800898035519563553815599148860275014481517497098527000197250627320584356838109559947645977073725858150297601579181266082316905886752691183803407160645228267939596191358037950292447024021350462640288303493323006233182877937689384139798844407607351749596354004318018791642787928405475268604522078813060904057446185570977467539329349048513572117369083178126177932744514156099522804776145380733676931658364323938034885654010571694139029941996243328202852707366508484520247726590146218954331242101678359252762356837864982521555132093592152514960221936908375744015795245160502672203812353752832689934794772627428872508610968865349904589347379438472661428180194103466265890496366865385906598544481096179520916430804817796175808951556184817817461696581846754369068640618990643273417922237439438263879685400356868999088174736582389169303896937953169263984555259761967482164188281310868615075886284658413209206561043735501957532639129823432159180453038239956460655967508002015620753968014254102951300282315164920021418438528374971500469958400796777183302210149208893354033157717817376204596556171027563898711885855767756883254596388448433810143412606506262695382205243509015377905416068960822568309372450759917406297705142729800379704748151567981935255928766662982180488842336944390832736880149330279650741922798197285723207635355463483023532582011569357312829801400837996754607161547361611016281811184472537174452903708897660631863515567231917094307331816550936204974334494121450577135475955483686109739329788315431662196770791146954902707013815584293651098607072107993638917637834806799043144878780464008417676740184057805930396031863870707865292974409714559511442355011541814261506197562248517143849132327869648139257721145306352780697361764810319613250047390554206509543578601042933829756149981276102826123983462644022175611508475454271193823053550789243413180518949336688931570257731187033856118015394374899679107895946698545391401512192311141243804366799397197233621279341170358957527091118401501910901370482696374457934253734659032982996445908420025120051202632479416130030630247006470520955202621484846709644663695081600288003984746117612454597427467913797091611012078792587437325639503996363828320762331333432016784537628956211881856561403086082750104641796442437550824355503038559203432404673422840866644687968580986133323923863356635789197697765487400585949720701703268137426523909648804028455716224795138808342058024662975631392837727433060774800702967281248653644497478947902076774044878106966334224162674493952521163246716099214066938350451094439744075211621864112079584274551321277764344772113001087120944827184395931857076032713187091165915488239774096633350815642456702423097867056463257965737776747744606307341498184686942434174728983803750342104773429434411376324806682504883611788436619362689487626358299883733711917983173756397999806647857136438009061903631315408839178000424702328749462277184889656735550124260446766960482155329339184071072307690548322751144537939857862901889441557185949893824298597942073277520774809844942600715540172082796157230454736915918304568793857481489277228970818897755536771634065211537999689895986542325268525261169503093431670145846109298967238844253135865537666824377553646768872750870522385513146244751751544281337633063702749458153077087645892669058325860626697635837027518560787354197449139700122584039041595025629320386018901322426388916956609643914834512398586096270433378891274598435877105832112094244688693539971211146873201830660470924746179022696316165080446108376794569644176106084761646225014523802551882785988302443543582028188900634566330351846642026141065267941995639731031694633363724561632892392272348452228296043038614259088498826411404530504711300361743115470249898051476795619344202473180227943257507510941930039848514811390470864103711754326275794633536346436314080624887848822133133065850760106551722487232917875118096052808368413989146775882583758571373101131086775837548313935302727608461867317873936880699834841828284801118196654491623037132518415437209866805639235209405863398296824940649547160072729363900880045832825400068238609546841900835126325545815172665520851551945677986963729494145671288225831212083869734830890801374612558717369925691573985585036288509276776500153450820227060438530525094249332038438372924649952195662940973234926612112019971286659827533868068042281952089818968754032378947255705790128317026956136004496380724408941447366070733697905433282068791184556731599364581801212780559982577824855370171591471518660832831240916274184800229771805036863846490467254010011742488456638518201548289579315364391290771407944561951610886943104010202400826532216725413173453088801871470065907910809528034937265824685513323642237290505557644612348507271286057250948014815907473107659649338517201158558468643797761283945814254273393304318497124004797330059573957761643921364160617356524178299345397100920747403076743101030392023419285660789953483045520073052930400032378511408548552790202468058260409468166463241756641349983450782818173828375770305778803321826441689019836220163438598222112255793607100538086057393795493210934148111586567090673553621536165105077148268005181306996222840167479849714099480043531175986860849564459072657945381765901720250880911612093493466629607335454249896194492560835824228765013033962285267745983539492806232961808579692281801754259650275776698495765750187975411045184731230371096309044994103574646045177788811420467584210549087408428756553601870280808421209394157218974595944726478428435453587588160721759599327574740803258033226870635441248392694779307611427852037183026988092155133439729692788452957746884354259030978172806078356791631487526852519957926552623341265578317730251470745726474717491138783916897662586404444840213471192596863988121510868231265139412647617726776322388175144350250838348599313798190745418788027978059841884010758561601260654423386715859291086091723403626997411285611792098548247637624776568166555163255260105668093916307983165396147650703221258237306673406755001087061680004387847525717110099984755135628366098256106167598888802539384361212500628967840264977852119226327664280154224581979424938995043195921691192374784947397456319673151770054998353616482797447874098358466805261257698676451493518830865988006260553131511623693005763490916355714674283183105337011330125506575289274883706917017718460430595557223149928016858962227883518639242368282932162901710791439012387461477745793930205539323976602064853197066215793262479203713849200218495392439200461719953998437005109668630314394223636009011850221398364884215071624016077717060322368463851940384718429021846122184392024913996379436945373017937510408999986828489655584052599595445297515884802330622790779382959647961282771905634915084231268877824577700413732122379093693760495735675228405620288094093340194841387698141943748338012124494081152773185496408895197843633388350794343928393326934485147254777843877424851839641275481306724836121227588392588709991084376325534724507553732758086251289457580725712736542509441033668247159943162436171893568828182203367919067946342970435819938242288691654162042496966328247607898776229013261722834573558767978926546760642085579730089448350430392255407820491613841588420656930052871588013129330211128278869874436409524561979151996749228941328397206170886132738358759829339852151556300218597880373707240198026039404254462385921625229422970389502811860871712740866969751359646033196664627007940720708059959201577082427646561110189492148255014249386534194952906168350491429873784319811972128285613056808853808444623137433929876334592728971042110319742890585816427006382707352392782911807933171438210846457488310988921810628498214385528504277151657071772932609210310804651883438967405976971606703367220622369120481623845499766494809016717786559695775419205311889162840841271121073951851482140086078413060874498972688520708119747322112100133016503646986249847531778295431291608853216832469345592176062381602384483352714303176161893284707266899609401551798473090491027495925431529802621412572112082134843585648533312784839658989410415873559328754608511079763398688158444496952180728049668952956505502029010387849927381207173614854426417218158727100191525590819593041520543977356253318028832677787860813461385800961119290968252483247977705278958239112978889346957378214821734787032807398482465140072005625502002477644676866134853493286438785813529649177799190995557609909238197446699920893860374671517183359996454810127947782093161087235819713373579473055601323635219446174538859494550882973380560976510442411022912409423755619452994736143960423436796676704490068760664720629406812855664872977627951737202056962625056324707879040859073546325430231424911099829373776036531852444716030675545187544540610651343189205685991460683727642620948435607961228865406999899835664710460707158216381579563395896284998415132353461051393393744585075975343661608806624424308913281283516452330238689725743754915158602950579380013706592053830510554924074900109477430202153584152310750718261708687460795923089148986556999473185516280813946406948101060767683926271401428847456975640372573141093193678641964487696931952406856028677411405104853218732340800306496933669734024937652312775996092582449759886086157066792735962014393273715886712336994743479714776707774451673583205490657076063228027867056636845429327652714657287669408483901479872030470029555094854374379304230213816003889817599492324479773607377864303896132285024667804611152924376672837417846490867099791483506903744782641020647252641007260833096217252709499968707503970720391827498033491307632320325331351719127803834813858425156941662000613053842584540582750493722086501567399404721797852266093126649774748132633022124226411712647876081364531068262637576980453633235470322042535119453089618154665710268275924353249701279838952429890074655216646772181511566449219484285481585981365392016505776312127900370445718868894149533045569948631574884928019943843043109482873603140566817032971636080272231627627459161091141343621217361819264686755364987281255225547858204043010064901312357644983018274207133679536710150313883036970343774416594200706175833514471326818950278074138810962514798164378442829458031841427708093852392202225162326807585622300355607082179377431890055711578381936918940436970081864508860888837853887456086687423312399728625660283495909767273445212996751001861265301448229373791618063311892022001947197313421786078885086829112227334364278130348839854514489461082926868895650903611291671903076381802005538082000624514665309660519654520362918538064026881941464133416669400159495055832339026654615172279227956761967212225396051198138147524794128605219397382493677956688656713909883408221254472506201247258815431442022578617299332946182454726579702401202777114223200207544907465735263516528116351697631839495000643058661839914863671651393735673222581004121201541091693301776427705669589496946448920445682348943884309278047891357653942798000016473216905127106565332697128361065529004033140703953496244368545181090605394151055226333642460029981260663556251080729405774932855276859519110932743340555857975329996123316115317098213308686961269676042251454907687465671797773484468966984547300470810666707846593384707970705742864005057085046910158485638179631285010489848717178263265388384922515497060962994388078583534256159642739433456617473440796982573182514699163050768625522787420157992924077389108465519992794750895192476515678224568502179745220830947968978691308019621047636052612244122548548424933364734222647792175294096113169358444493405671587529537822050127073407444651438585786748756339094659896901817173500456342200399401880881394644509844948986710042432015796092732278675313813944878243640095190294023514669280279260815540161659281610838559545742600686678112429074338332581111299461896822233552440259971708007430093281266699903618835573927068470183665686340156711465292644738205675089002772266670902605422388791341308729105225879065475022759766236517781723933526955787975035490298110342595237203573878081450143583422367429146395852381466462894420581672192314202300759770681596321902421844683353966648448668146019365198138993551730575511790686187001545021603354550220568072495508003874892025827943108422803244612778853499024795729027695829324906354836025805473781560446880125337843338836557127057978818246011280752151334081857829440813425851463191540987596418898787826328251873397300463926304996214021737161057655664785019132402424335022366157810243444161312998324257703064019735212769748513611217916934559573734943608976844041754816863075598469710495848303039914526621912449090967545206667608684197714688744205853114653925706871198385387857260649082501438801287276292072084877237938106765414786412722944513701175031284208512847823406171995135785660120598527524816323037832432535993992288300802246551787960134851287951492106222919051214806681240600527907682468900484357697303562591639473989904103344479529351797303729200863634338346934854378204568696760906904701057368611402733956417008138284239103125662025854285847685035523727781128040787891604046992184096861984228905480742203130132021839028907664989869992066866824091532447534134732543011641739306880512267007464840772733800271993457109041512003721341771502857276312410851175733218193276017066645750690195408068926058454118258317086101892965438421116196816957217641571407379172093225482686916697579713777118544471402336900204234926456991521121380451272000742368115609551393785780270282033451408713214786560697383815204742885920614206856897003844605611119687570357035030103336330071960708129375424796169726716797509031933554193147894868373022588410222682953810515471077532646336864834390239668485899809331911461897049245821404517344847498499191815070916444573896758375862263622513908095782142687692252810772576269695937728134005511415770786211337783954195082792223213558800593441548431190611063175364175319562364462701474054969135813456576191247987807117240099981280117788626998018510358348158584789747822919260231918140095936528105993530196228232287192742992178816267995535153927883026630048669543832707771623377449066722611867487174999626328242269478787730749823269021391888620251306158642522828407720057846719687311473116450631524480203069767724097445926837287530363298638867931977615631353541007250555572682313913765379282611013816619379125148187332485993560176773564084643631773668265006547564795242873884799491177690577673734111970972310031025714436812260189845747847266873009614508279998702025629892074928746243422456109320223284378147865249770874549464300131637268000728981346893885337633962761078996290651587715559398410508109422247944892881068856206015304257782361036900911809764958062900059226020998927206093170324960406211026217322583476588445878691832457003542642041875773364950784412272254305450261263712962408862867045020495027240335940261225963060361185898691917345262808336244270657577828047476191287399119632267549067153926093469127807721237757103719673322682230311405159521510308894921436971823496400430276624029148906848359071263034572405452766756607592307073092172776394193682465721515493576462048395201391080894915872778736702569855979433147678299080945536177540583196744808860759815433901073120567538717645313370267817879034671635290900229248634195225672204739023678289316804817078603917739899637103846793582230128676704298689162328807651477465332141875866770526244621610842474324088407782655324137863435508266301540126798147365141712213115544429981869808737728290794128735280195050215679468829170994811439172225607903173106940688022958318857752063949358299480452477358238333054039912605409594516843382047247612753842823965835507728892808893862088484129195366364205091152325579349022516335891378853238029564006223518257542690462470314387481826123418070544147069915597834855604549188923463366418580942086733532612485709567618950203376860407285955792264161517771691847589312666501772991080049759068168831832341690285785852287371046609941775249794005829932363827876397842391350615005557572405273450051399359116772331731961129315363394448553326185671675302742552952828145369052460727543253733732397755306309005203658175574716958196235868261787631723095787416367917574520281273023573150399657793581520860494441827565983834297689896020470718405089994553825547027546877335194064095505435410763024193730480927703214979645369215123026594500373114496131232146867681731964062741054089850196038784261041063490283659140766319477425019274428198046685595792879810238282668528939732246107054758721060618360511722634978989383041889802538136952651830308369489342696489807420216621199726685986906019107454174804158097273183577877544126557703771606688985576136007090437749617297438232809729455286249475741589090890564601065812914284622790103188644387786272940135988787502044927355427557657250563926994901923103586680965245783988977799091981861313731104463151243670159994803269215615601317321658647469914789685237700022151010430055440893491266527937680834366217575146985481660792591873098685930974148357828873741092910088339786060143657736479265310155018468061602121441342351648550502917559875476366385276904573349961415829666342194699326403937099167608563121691770639483799835878675254877526350044097639548684242883327613490008153753011444760245089627032256682505148439482402058575561363112181446369474697790753582040343646696757023640273454456034515622319013435117839979212499883300281522582524577649408629525658417912758609079082812461860291906017105084223413713906944923382043480339972512893310030598907755076483001492673766559811680032484304466078018929864101650844630432448392892816667500462442125465885345332541291160931309068143041736014251553268085203519032097957077814409397495954799139222382989982316264790982671269444734928635864426656322348264482021970340290699455147931757074954823771680457502552970235615570725255149848808624536975157657719248408311454678950352264729042595843481467128431928618992796244345821575235780019814020699100750842214186220640448819323971257209431523013464123207294617462498620401366090455439290029179252771086560955744413277558618405296665735214419366606942132206734701024297052015459116257712897086699356496007606906217091161873170453154901045773600373052235080954071723750597403760516791822571305641588986325271375742415651974073276737312163010678196189518531626130268684337166238256320661062362315739582122062232899609692241356428283837165741344870519668320171884189473231225755934183569122831752568459397712031886288744831291824820345584453090039474383359790691383668468038320928843304420510919834108570141014383425577838312547827831213151591476306985155559848505376634131781527366244108812685258884574299392594257837357008651485406656880122657355540843134035309085216295032791347737063988280959614460205606177118798239526924553853897319584584495610584652715363878256702500482671317547764943937209621453789726982001407109495595471072559702567167178159702104597986476841820192144770604378374915080055022683876877307283003139225221530392411715127883460823111179628005576991938438823729489452142196722111234369291177256148066845846939569404562175151372651997186586280749478876480175119964420495260292981559380818875203619659867893334542284623222574470843130356366348848503063696336988055158408434229187359104100169958951217396502060546605756709130327510744515537184992522840984139487006225303941017576846330746427500398285824147060911191649345148353901737467110478353095996125958125253431901954062532259091354130924796011024578789721105915788432010698551724598820595001660006274710989197077449933457536524073437013329340680850608002646708723772179397333856781397556540172308802908514603130820113084231100362794468165231068062789039827651761391352990278929120620506959319500103696288397498700595563796273407156443523090960782417505894572168139568903657550231788173759319194935969300314317513713467141979455896977750944243592609011911532233540156820421353821136037188768629821537912852379512773145032785794440241058991064981107389151507397477549001909654890252530891276971593269736249321275494496646357613094179652411715458282383938825414138814786132140585360450916584821373479428680061227763524788636605439516325665253928168876797189836364623153154994049633407924129232059837515259102208269150344363211978214455088561340637602686811561565928286080665878386494902925729066909618402438541402216434612979397107587841675472127397749944675083492840454661861682902225292053073671343173625191640934488681080674047009261838128242683370937631117340733605518241862012537416890921095214904746991427617780210392328080225174558295401779159266307708832007948547177280895673921157291078160476273948691072039601312035200033477967241682284865826404287404705505781753681243345253716555330989669975820213825268308481105554514322609288222458138965681433741410971442607823707594500865916877476484650500927967006532460817599705928675781372675363976502172276715469636261785049439666717999144871178628053747392511716307973639817821081434856740851478735159886381418751204359450766590538156133769910273248145449409537770408007067243213077736488538768652140650351650690513146713391453008270764219625691765777059392837716257893322716894206427482061145380417586082808948279685159107417938649863152848267377652486256650103984215235752077165992852147329390831811801357264018507469309051281779723198712687153905711310701379456868817629676552187824795660555814501791956263068857875461222674432465699665575578785030380403033811351801750588148382852255011868502875789954636894375687360051878806995768154664285250907694142772097674807023104178141877130544128990762380497655267421043596311206445752936416810104138408283298490625702288560067129004819242017428717859705222144246984786884662502164739336090029424072375338481358291956600110492379004396171840324021455750996196709222608630796936312384109295211103626148183204064520177609505132974110789004815468462950802689604674317820722112361705467486831454807949867886637826412921469859006457246026177897918372957952787980269789283010856776843896253302572496424805446993801595765843657709976449527383783102348055685698847537132018079603054914402199397051086884594976321762428648487825875383867145283572124581492680041583044480638162703545338213046831308491645164796781188671011419514210825558474753775505150363377911883609596326800191517804425785355887068881652835793548074623247375622621457832948792564535138782887518996811167143518418044701141148919802195008682541153754694350772863931404210770013362760092043867925106213862495821226628175099712360279224528967570130831010133500833283965360279886703779233905333173734967440567396634223367718889643572986541863716528688044482677721689591454154422962718918687603765340612989986125431254789628218297182985528167285834079017378856133179397249856597714837465471684618234209023920906816693390069745675869934069063055900577463229067630967937133304679054999786021923615491926300803286517837813653988979692967546755088284887256956842538561380202104125417437223694092037809781225909096854307459916332564780180751853243823925648583878634444965276242467857710057456732737988538094873141287725282146022517842089451628147392303786273205239013879660390630639984734315239461543268341203511772462408190142565328727299802094417908758584524015744949749253034483090895667412363629766982249291293595909366732138131579499938510026699204278949290447739550228242205608172059642708732849256080228447805670405962187728025560819975937797468748505510674834599623463177841165327927453538971014160885139439478249256595448388724631397140637114276830564640890799586587730755043785118054444488713691649596884938597742979915692354125795636384497863902391570874672236405141229995135089960448521830350039049365166967272935106139139100917156108055824478805186703403104222919950358875312018405185741561439803880068522136767911250181348656650174206045408749420247425335670452777974038265301595462242684235322274449925780978801049477370983584233883181327131975589329805518311399895950521828321669174946052994448336728612471558311980513880923990279480444168523853488045451016883923412608203272259185265199243467235913049928277777747510400630204255553190099620181578640994014978426821952974389968238442739926151147111416883911050637778304676900036285170371166494613037989895996081627009866916822048462194025174634092002011224809362482538939965423511688643924609478491240681986307550907622451696406835924078218989565075503941015413807962765724939249953001099820820989457694715243238961626444489058887632466088257125788212799054857134066769209912385710141000125801919892513666213650908156278073430496489874668148791276471164045433805047266098897942293489252393265357819159275875792779087443907928930612269803319551150404449720232126061266299687990872249230915651555058993372298127058138881045194455424088552838906990370433231338629610416824267560404828895489128235832937954751631503641853255223665975471784429853400212159445012700658865576745292342662599073939240184612865170341650866264537214307487644183394583133126422879688744256961622722796641696204571439298033976737411900614640405178650546302547884749614290272069393560921585202210725489700324667792484453539257864935209951198294031350656474380039058707342528298376067419137161378398605481627887683137366113329565981489214028701853282086945152448249267304671197988308961088886590555605063835904289120393639941475785513667060291778145106543513388865084021931121287057528437620025872796344804245734730595527412542603653674233689796662306325042330033512401856995043626634169017920719673413353097077773744012751159320673983247510853789817061350417853171829934982862959116838244835143652401750935162328903107961381665171165802435971599377362965411046940144208999904008161508137066729429627613534565707738798961532795563835449346954164027144432484563492509602489729129425641431883210469147411851095719196552777050451435901353861852079339759153872491125972096909349425122877246199630329810597375188511350552804231880262408550147214361892968021489516185562709808034156787620572546643365053364297295299434867922226957214199192720420409918613542800644665846391106633452786433233035049402323789717847427731066797719103354207256329967492621493970546210813108384278107948457806851030040483163150114468836620103153622484027840623779285951212428132021817374564162522836171691574132312133068493406296071341761712708691510842469431848045070497568889671380975829442252789507872750825258973991963525903464334327846843539542458799073644681942625883204721357842618026011297701065233636782666043743367128021386259303996479219995791438309366861140770852217743767007390107591651377682437585932936331198150191574139644074711085846757440554684594113469400949529841888873844519431563953679899624049749940064427991517162296597106901568190661435715675814006028053023403547979429937032193747795188953190755588904746140302353161517392014402115595619554189747301764447865363601076331706843960909617738746154804567656387518300695252283437920554468694297410462448617639739643755270106905793800091301312263582656118235883921724528348884975149478181312314959787223007424593619836918813446958202567334872789176486211509119524945341973727167020740634483067499959996491506332301512404087796386188724005125834314603481435450747155593153174142953682954873531635292850107283593262223104202805752560739121077104742337661299334767282400655681846653899568212871463083686935786164505736428769965501732160807933938368417614541468526238217097617039835325155467538827158987869151923044242280807467652903702808613843954271735426447985087183830998609007543326752133783788259022888394748629601992286219088607668666926173098604937906451822600298738587135434096272746034823200277686312635231525941465220068746571059275075150098021400696341113327582765616849121715752154554710421989743266918487002349090327202950263570378684437723177420673374360251687757899572688026082756917386821875957422790193554137581711585169031611591234354117881681227462450793686612835503549445749025389576331187939980270791565388723181944550681722297244980162548328813190224722616364973286876888176275204070281132102993013902455900298248880501477289912697993339431751816476273916537788639388976645761862733360445587943131544307307272155285890810356041253369442689279042566965399149213788940957277553586638331793708415724104101903619343392355180478640079016210247021723806761873375825362119560488952071051725915696414106196048980995751425669205131853129837456110726134899134540057524039102300900825679138193797827804103776729841261147385947950875085548959762089182270385340954551199409577713231155720698713277354425008738288961681735545930825559709143952228449622746450986609478315338227616116897954381575335734135019884486338588032892213650890471624506477169586271193639712573951390140692496013651886463554520358143228533060817620685526695299376296836616114855463267932217503800098032053524962859326624863589392590358698006158637496568868070208573562573181346331834233321348401292696701585603336304247452407829819169737928877335251269232996923343688816713470091116763038384164417735160864754883114664836460073047106250213285914724815710673116973034265125665249503233191590271068353969044236472149496698392408196200365787736071645185629129600715461818368129378613107794655609054642215058112522837861040411296594899825551280231879147077963312512832940169122953188098396546493957325852660276347944934340766724202073824515406201958731341706049542141735282693615310936979241785765027505194059977114347762800265119429954623884824776462819832905353603433861358975127335559283937373210324829658991820137401663209611715239971459902199146543998393786645624738597656190992566583316994957661128261193524941232387856245713003889537175682448424822573721608358883932400175676944396841181384432834209752284074614608395848597992000756216649919490162374141375288246508972017067896860590298582625349351099705585588736242546586500725526948568700597607129657099335906996140953175137925252728341064742725171046063172672269684808825075656532047109885754617709881664977153522635926133000792129946859997748292843529851227312261961969482899481198134932095335387341420833638535473875401282081076586608868756096623855951618716821789830571316399190303769442683482739768746690841294828803103622325053251851185536265693501816977877642967948824077379958503706465750657047423868365687189048361748930261111227799891478666048857016880257825614110770444956716501360084772802510286037876118283518651038160106406552924605070752196155270179220425834031091584315937286086046660467568952665303687687406115733471632374366728332031035024291408186323193482094076334207512055887180067245343612178250732591903211582073721432195787326318284118955402418185783140803495318924098114455896756072042673266702737068661067456321935137512244558516607748515499571341871343957046984551983220189401857772104374077497372021749965618193328489659578076274139640610954112151027085968118342596434170440536347396931677135428176065733808677411782836699989592582800267487245031610370228130833577097295351145734605064864201882128249921857355633863866120272305271972824251161366436641673702064608774291031090485330419199807865411544075833635619673018845257148215011530175919577337610986243046012981018459433398483640028119638201789891830485594024497664085054747230564041415294080451222702343398795652685652392172807005549942764134919883121676855767058993555215924730541315031710224816494386392447985471625437862824156094645780861877075999183042150291765828395123088856294764928651836347389765493702862263727777647538925529074151107131994548898671020973932623288595202287768246027871243247907412042283261596385202126500457985335291122557552605862300854805328980553737622691299684628172293123716597366410558155480513100599435906206672826538223069614630168454998220506217589174171998020266923941107545777023643246410261145654130573850738538318909703986610047284461008013746751559754089838316538356872258430185126842644324296778152533023472471035696600113267648242235176814817965949664952044205946371187198276469815342979315702366088649296893179676246781194090164071804912861994769834088460272711843863408882891018837073977754053221790258080178693830666858782549833027498094466323857614000924939456835812851160505565684708190568058914985321624204813216323559888222956018048282507839013547495340816696677257452256244696029555136303468777429342354088156846943343178154050099161630640871828738804118798980007908073707394926286112495461039758736357014105798172880470580496728000643659277452960234705209449956971301314554256159239582077327471781535691332344659840836993891647781347147847906294934034512290793379830907353364565950821786818561401321675295532353880026411071845463317564814450187227588794882187067041910346521348948969624437682186255977927379222668703112253419357968833249999731880720544330360094225769060782076922415306355083893504006978419856389376885716667768134767966671901878353605085000180948167285245248229992927081368910212845617831863420716956760507534784040590918684766133541380883533012046490818423935786952765801728829463866255315324437752030244716796544475770939816097713876998797403801808919273529246351081167282640150018765366339600035458732187735397202237439714992019684901470970890762911454917979351404349434546043950932959209067435363437178004002371788408965971840295915990879763698595394905056648055314055375383219162827536141875155137848400968493947814524260059703426487207288315466343698086459182712466201431158387833765137865743771316779294151688494026176774385326903304484894001867907088272360052070502720546261969642654500784741086649378352216682040101721722920437463645061398055967686281521328504410969948742006702454223134890554080371119657146026584702311902277363396493664949089253694179183536992200831491933172876598683909014423921950815643377101886517343671431584628888448802807683684831944066267993220131347469798936179835081506701916053205973204013295560844621191478809913582475159811889715191910969046027725653928518089838906313524293848432757798107591631082529507501607507717249594629961812581592879499118006803919978018100810396120384375589129648338959019833757181489813203621601962636977082330440938827548101291403353602746581897670243602629929821086125043632089299775460446742560035027847428566445646167441472053247829256000057000776625702460570628342065428859524897751273349472953347471124570018521724644626391080063875392120557014482772101570103211214721219738702024851143907018060438512952935780253067915615876995800203448120928648851830725760050539598642070879602158355656232765156762658569609533055181466988765533425519074591880604535412336457585916452116690345862754464177325773416043182788942154885833833981511570116910431968857654737107869977038223579653193544051632964604221889639727532796578321355058436532195321724991980023373188991900403652828656974013279253683818585931075920770651755373050365556247632654629677068440259480115738636446036438152306455681938892086901451379818326830080960229619279719319418394256418275549613661206098944772320677434006800853889571026325553091358205646588209347716248950920124748305382682419167456205775720430867188052755422214798746846891941941100435855774896098620376404998886284150162939328987492981590638776199227463848018042432676283371266037844382067697285670976744005896037541473265686181736769111587444852442987578801124897113394815710915897995412085430579821732952797792559981227603886702688417009959689902908976719671644326478126892710972817523443586953324635091461919816505294139249570305020760800083679982365613710622070922425754385981087668165063641231614393190631994100686374327113023762059361650513618974257695259495209896539201007957819483620002238822788807098852768318272325157979965230135749970018120961759675658742926706920393563087384211985933905302806301725016797983271390357498366408768259746129678364259499006690484898216287093566199955970678816123060556646944434130187488869332033393468393510414857222183139458355505672454743082929008299543912164229254277713335834281733083877200315298552506276667876278870830580308771995420957234652449621261227130879729492126622730497567339765043185884522868399191723701475066888977556021964337486721971049108386312734658081799290123024288144174099593985012165530469437443146083846204834452715101606298426287823643221505600019820189387054264083318179888878324585598958681411117518965857199536658555077924665720731245564509382656146687757804450573106766172018074589550302759703987551176182972284837499025539307326044573230828030285916518538825513332449191571441770545471579904099142785051827488016102901384767256016151032531936004312495231567003094532153418424177030048890020008101173581777775868509557200181037538248281596329979326662269855026268134543999188420436377978667678613728712850043402930156897173142947357119188250762221566560539456782274734830779490810177881800206506402984966091148343121790197595647083798892328873538477747300250092483377938194164441377163337197634105922697978215716203386266578112985735751107783417870198297604539521195051899002122329109289224404522539551386635670515864555166884946050272164161095041832202116042957797711857690432306079837880018833270810956884764217829172022229731538621763357762100130286144891672230850628275764287168287300813104138459688244446022134902130034351907232545150430238438863225999568154332579435273721623977985525286838867298011495532449643243281711678895451573616159766640320070189502953118127278404751807752286817381687197048869865604870843131472302115356082573428284070585136033760083356888341992568880473570912802770597131740195024436558228156465045780995593485508530363777748425625094024486691624942980886436574823042280130153358490520665685622855328158399792297259962690378319113788596639457415945575401977834735727292034036994117175904893126366129784514856598039145906657700730393963104354886517957729721033614910427191169853133357678474472692845011039407495017429780342182575967495062249247617274161655716540221521014965183510587752902652499244803212981093732839814233387499990031485205261054777173073441167669015200415458786780758185769946899505447588789067635383057215751338828580979154477632765268189760619235899490995710148167572780217744243446334159834516301107545519889622211865036763883711937897055150290626452270752034478698144401483721590851138950247290996952039888097352848242930135020981020679671959495174316327480334674219055120635064396692306134043947470547323128305633652898783201878807542918024617101103474227928678858230453421790647689886655657945203526368532942594625518558650535983879013260810779062333463178134971543758318917780277270585751300598666691207837585359040696788637301095527744978000581798212482655222945690750244567242199153161896934656750716014644720729851870683594647391384111798925838588724707453894075859276371181451219602302505878798322891054511043967182488922341895178534317699864775756022480301093031889744537613968934264059217035337054905223142681943596645401189064421743329635884775795565120626135627979137115702798990569035325214948181900708213158411496491665490261429340025611244909365833561348055322401451580179575621652526162562355042123427828647334755438225488869765778500188668931557742253810412037126405306581066818619949623745862045262725497467749329719524428329884828146039713630334106151478470136756665040989986233079957407263577094324922303703534495366869843407438040777586655176269991891530830926100769490663584116694467573862595360200024022223861771280565286408348745368827401461737518385175683317862807420068002610116582488956438513446899900355814090520781044907031620849308933435121287963543666174793995077045387563018325326758430946685360381757714292434871248962096775104977490269728186291117756784517321649669442871934568780871281257545498962507754920345936302932086980651838638803129217867520216496104489851022493839053025026079497142842301316333141473337205068650178688278344536544251999174876893923099050391462522672251996291076423348547989560473568746209169762061166993786180140325304676016567385079451934409260779872666552021863074112069217025325127074473472094870104990841088484534985113742023431732319259242354896111807125723047593695175848304269415186831142728702852464022278338700330519978109924604178300458532749185220407064795791768972840431393100547954227046096175221956323124097603874034640467143309974738718946572050972223278522252574986024912193555391531781012437364614678608635504742716138601156407208353260138153979119615568485378825721162956372955128382311717230600276341821314129637579767093492221777343036413235855434209512376687983927229279692688127480921011999756613146780478619193455903971695592986193486796769796998528226924817334103304637002785702440128953226942055622806708185944725416606908136886154117759602217236294661030167258166616934849668414644930062866482206254385201120005374109791397419988256209125515597105831196930682981260755048857364755147032278559000086013581280927272000238490854156208909505291978507419095886573690817471383226437621035673141533382814193705818702052260587052846300376587716281950224357102853289526007715214589727745289459993050952936702170935017132123116864207264448299319534983429569321775680322523946578927828391809686690775924069700994708405425086143714390651671219398962877990490322649810286746699462827789770745852826756210841507244524156044932576327671335839503649885542510880983478263184535468461603762794460400313382150001394097996428521057456681051882724551230727519965154901998465275233950492685984949149169163990495945444706151803417117382953032322647055837150466025761131540935875282617542852208561970752088297901157817036045587251839019807791161893413003128036410379236067323567585074878380673292539119322494612476049256733492398517770595730269496505171099264646031257220222598828592264203101797992133446463239610695251285366403816770780509904053475777699202430548005433296036873400612329722140017148919507136968212814305817692892406365532127346809136552859900779536740738945974184237452294851795554703964349449039626435388535687978791276287820846620164339584662586039205885474121792661111844670338908514128942217845929097179835687902451312992121345944909204553052477698531616798509224630881043516391979094134929877867956314524514291787229505525466127463507880246964197127876334613146820092386043693975732404613300868461888344994500063825635130234904939324545479550043855945245650555420751292716869326524998887715522788557368895424541882213629350033321652385511722940585496554040943708182224853795414141383509137578352889648452785698331040488602528476998251108526542847023466483271353890063046104771258844121174728163141968810925917621218288851834802856296967935296477698575634562163767183371282248397828188637749197251165435683892080640665349053008901231175919791265994888826578427587206528825485875232710380517645885121772283344335798532010655681519317502420512226973616514559717619026097278967344631799984054717274383731672175511533030255680738891146087317419862998616945830959645079357534694323643894259977896210671090591204115499836730551521865978716823670572748899414639726242558126590959048411944854620446906858734469422401679990037112050217489492884530148623493250210561812461291384111088707833075660594100642093011930172439909076900441904042209793482069527421508343052215217932349859515995908478276822651144743780949216227447149379493576402142555798230850207778283561594821533075845591721601246450809616825765439718292992331927097022118938564913712541462037745770345613422639404642113373513669675097547754359878793199712239778486281866073146783966496272016810814520375242907140787375704092850665368122076018887215900119296584542451782124769903591801287622311780906595027124888880090403909539014524310239851379342540942481564817524464060112294014256983152058003993402683628033853164107153284559174345474724216701170938104235002922207311185446759035582923489187207909149603716359116839332995307862056779476446655783421240415944537186156191915514330807367522778347181114753770663039475718542092561080677593388152087531750338924470121702637033079206282338629181587277484651234452294250692481424299223576291686876680211362064534914296515577300618479961063430617172838989873529230039176392957460487935795198328201869620601515564740475411562778643398751394529647832365075302165575281773744754214169005317277709905008692277715092094821533846790335259428652824648766036773500583538288495534264558985804111902106263913462001658596070203019683161059713967247189620375930753769091601676640688703149032591945768938236358909775662838997688031609855980860107095728903255779578875062808461794880675816299180579825939759872604745635383740949854933950599342142311543826591234588566847963958704963350001026223588225936886225096516801231696227840520088369025164973860031193189934694045376298081979191654354760808476780412571712057996996247106552905530122386032072992322517009515845398099990416739311882059778753958684525407832766947266573515454965724556087910796840441475793987913291204661369106849550157741601229679089763375690053577477725590638827163581074236155232975963540703142627022139473591449952526983648161907980484235971186970686767870001588180812922004322761129825223761966033515432059509501039893241955213291053702750865810750659250076081050165998868937769100693175734934690838089734090124855961542385561775829915456346077373249038785118436698481567195813367672114602891510286495550647455074419816571139818367993862747217757781102320463574422309416590582153652183463685550219609224789070305668686825669400789324064291958004946667915653741051673722308606453069147948131299909481411294933482046560265436318127632584447911154605142194055214590438144915432174890536551804706865051236993001766122188111385438682589680322971473074174738143789861637523658385131196710504976632934811794087066552368689536036309907364878426842533118222060673131436152010037903581477986468616195156644813039300633791148884250418593653921065563074673701241416539255311553726045724505960780902854237700323998252632600256247358948574394613044668326184811264968937987485714155453953075763464325777351008070740250133579042867878677420837442076921737055760785697550792055648326387376986136871131379140491971920480892420610442746597846747244357421581724176343257540743543293896436342905970458508162367181539013117857509065289866299239181461733290844572856570115213880395452831064497216809507736828390505668638499783587419032098913838792264136470645930073002122499840220619602961490568577843598127782245034067874018667020926709701615560743047021702772604192659610543506580708667625278893395797064031194407477101123114697838117295497778563676846724301212296317362786128852807150365216274507426138140259886968031853553664847322484375350616785157003548905124853051976844705095242430637571155778126904633338495219285182266639296394134819857400897891357853468932772870568828896367589649222705955520729937240086752012830586661712754156745859743537539154619295990912865145034078597380463355498553351234437634443033303367089047969811812566854482624407837123235684994924195181691586549004402039934916905335267924796045056969394343494659792635168366797732876722703764119639027533370301775458421168095648527681387489409891598859315436324813604567822435101491220025574544894501276457867142926410880115162412884878680596637984022991233903581224739051182994334837683366746000750564920435373174819517510568745180929781980230902213338945042585868477567493351726687540783010360966773369043554235276504120756215228403644026227368654323544234955530923484276522600246837563608830848540656160201440781597849180727963879757655991647946703471951123654955861153024144612244931353445201777087129128596890748187610466820421609261896305499245715511156523507826275000279111601375912968243133271519090195611135655724183304314894039482632162909719286873986261634146073467061545592410880782537098673546357934315897839523329073596103726533516226176246130495800586889275341819908796780317686511528977741848668861662666786102337763722245267291386862678206658579795746831547529637733623726542828038189333532665080363954896052496295081711491101451939791063441536475445847770777752323762572675700242797143129375012386436823299141848945135081838845069617977734643218092931862154642636729068797946799044619317015956449106636842395058281902938478950907174521615612340773610206932748077680370979452387142220068093559411156661009754255366792677594253597509499113690209629987830200170587377296731719861101259871089721732474816922232362005464039027861162520308029079743401227419415431777507426903759186354613546435621764482259101199114987708966510139302140501062097111907254004635557899679042591665311127186972596004964844173566142536063877059233261020083837734639122832507312612911533590221439227516231458820351071897171366926153489744656723116648206145514471630600060293746749911200534626676008656068642878279024308303668976205259877860528090605742113822717336173649037876882483589350050872114498709210099303033911182003806576821262564540304861721014486946025483039126483954996689936896172479952785811473118741370537401098411560297542840593468323940858893134878360739885666071040942145715003216066778865692872707109039546924320162523232315206351224893215440387139177274385656356598020855316873101869279132432848151792020175002122356293851623178454156401401812666679380269728335333992022013238524416133899143540360028968112611882137080868426250580729132788803842661357431245230893797507533735270784683436615605920966864660990368518696716216691526349513368289489941941278952967971420634540954992717338880756557712460073994633474594567970997793216587952920867205572531345565107367872981896978927117235166103607999432420960282671788673516437723890573686557701512669817105126325493682953461620820402280820415501088187625210637165037530018886759260259709644769823596637331197599848827029235721445907668204766613952197345993349704746210785355664698652291772437259041204234873248492782864834653105199453735212825677934500784858817812195482300282908000053878466244085565178719985394648289797118001754632575060957371231007297624553735012992502516598086849694030964713989902901344037523858799108855391471276649141835664712620156610585186466373010467360406843699908890269677672664661940100617218843348736152206382225767464153430551646738408228152956035645752097984434314672838564290113128719149511338980866769636164159236380525345434805248287804917789099323922266042797722123450835282696588705994724102550644466552467462913669813963661532375847439928032186355032597856510117946668366554513870358282894724767465986745568568519173148716409294299670527197381891910342275451541645622136911846644607272843920136286547386848908711143016144418324910953353098191054080670043700762881090423321168329215855418690301833460786611628987741886667448351867708294841522500058729533754120074426317102696466663431860842362531947385998181179691522743049716259643126237387599376468971517646045029216579605744149825521190035507310267870505704531529356022963278918659328368329433291812280693312695488216178243690632037187860552288069435864753225509404537221594752601272361333259355988044299641357694982006016858338107259143457490590614011901512647328516337431099691552970395952918174991422658616036066829415760019500025867814948035098523747308945177666997241528068782275408637978176541598746477368109931738328758953722082253414046006789924651256167726244012943601308294615697723327211568534496003664114520297839800372330859669852010719123549798697875360839131954781572729462612706123966818349196434668423306697406590990781387490401182874416864769754874560588997616876547707617749726436771656320161109638276263662397900401055219877087436951214098863890129360036518685967956084011756221180632098358320812194969739578564180351419058592766551531472939858260461047522087801793439551658106064109202366985580967201127123798226725987367763779528018158752435043042716146708122942485978068193325710400854587502414720730921102970136718266879100769307530984938721621203892265822847209652037586321543638125760634950023420486923795389785410948815699918992944757985304427550915702086593709445504268661693390451792647164024591858959284209844900259018926083131677229199590000665425860032033839379878688380806293973620486879187889712492807616255116642602348619445216207953605009742250946687529528873658897242157737523630469390952871188595900383306404819226838925174983386577337751668876527240119681159428300635336524520473516826139498701696863189150179982698008709273073148014082585565339748424621720135933883777488272507274355392610386708722695450084703421019288624387072791939516629339428212848643190205738212977388479246676031440105388138192582325519760480294959380822550192478557615193758613816555635468931623648169964678837550312542017073064313128070951847960635849335196134106521311698806284846819900840265839780789332651965507538476660807021994403767754793598868877115566920288295497609629701300263206046615993290923069304575024813070875480130064308328622656915223404085505093564653241932985875467969155147046436111246636647388382683733754768215007438597731475356907994275738062981878680956022511805677613981035491099877880540661545718173693707842390679574385687245774956612544277609668901825400148660488906560490663331558562144691930330942708332629137738302408722518462079882785852185952863753010867279477363963726935865903976230030200078850418112289597289689473792731501398513235603698974788490373147210737525797259300958965171216629373184254593309431513834320720519660385201774433209950335165602729327534625023363675396040225869489775454259506929101478252902463215720239928216065856490845708037791653338746860492215128989409986769971724308807409479701233999304954478999606853366733423494059477344333372592118724544824918039718319866825234293757621571728897540133676220178590693541899544931464507089586249344125886649782597632845484789319037567804400912738551407117241634348739836035580845377332647725050638870028495908311471868126264295877341918286127983071926743711197250904075681071333319561076744611447067473721585224219151221842844948381801720063262230394382415699891160827980077288822634224005049174247925829564639676670830252883439196099399806496526474561270099243613634544222842081488939573739991463943139977469172910014848456898285375390980694727842587020733571418889327238314958524572251669407763119518373217036364795139347543524326948416426258860145800324030992838704283064718155537702978142223782336445633801600393816918983621285619843736881758629428709620156980919398479375578271583557255137324161345046135056017364381153061208817942183387851780478929509040841289976140989227753366005482744006732426629296947039774766474384656222360799748575502836232418970180950642648186470926352161235915496968903227528330669076347661567198639957763551712286465375190659781044171113321692730671476219298389816257776341587164508976798935810680388188388624293572901501308316475690059653575249095400792864839325764731315234275163290477814854460146158682319590406775974254780308405560819413878787479241776849110190283587531676059200335309038673895841764686018622047399707466057519190355423545560895474016871814465180335047928698993645983489860624334587621742691493480894757225797009034097500488089304930631894479825925946164750961986578590718924842028427870214513378728799233097099465331618949561187494641012281577129128859440766499778538056429981827342106795203956382885479615608642776388727010305229286891523085431618203277367526396782303573123593840639565259643576513262288997818729810753738532487999591502212701434195007388392182592959368437348477517910078470843364663442148789537892304272790709797839458342306349033541242205593456490531437071866099165931976169037057220679925687261512281497505391541658800385636666702151932434213796808965059087698919589680734994830409988464889928322479996932502988486346139084056817924572229259207066548745829282575848925888132164674495951926863338396559548117554794565182055397992029268311272685759390969115791827836398591225528177005203715730116952811775194610557249228900422114033411074175504940456972357228305755976460984672704618797623181825175174154616067108750395658441648395223073609425398701084365847864023288176215544296818152181000578467072918043818444076169449646240412028030532620133984876235988510011477342313203422647377993029738684776602088958638148605903793408018395532130713624384902520629616898902962286393470101206426440949644166581952828915695949012652153086976113338547100134541021897489355171103876049764964185375013779166731811207613278114554816753945053361505973936784959329010456548214289246858839524534671377823151882871436912735035258343646060862201836248146847292502619019790837762677104163118723230952080729336441338503681742202547143733507854747049634047495783790645140026514132188966012450836818910591575401572377197780208110097443999774954474905580706548494525563378329921882941097005369059865958848168660239639779804384012403864652554105375027233408814656019300005124465178730587373256671791821112878129953492228232721466621976292469706915251665620297499146549568745150873078376330715316299571140269691910709324440213867293554029972630224775079600487223392330936623020364653920521209947671562631875531592003765160520319924506765521734125946904909481095063462050153396968947956400098162892607400611128916055657589304515135387105276855088993126867893015368207772873934064368312839499974475857978900218564732149504474666232450917930973076902942771620243867165873696772610324129663997434588016561794038415121865311646295584232625008083810824956712147041477926553844754316443323076123754543341337464845119023527552325871835977355851845638872431099938165601369263128984029207052058619229925267095376330505742628096142525967046522861231828577549366090199716836495182673062891991881416294120163946087375040038665769833166185083735496807470296260234879258686186512854816448667928813518237679708537422419199207582552035506814626757722999999424053775777397340294908841270377181700805434573479963745877896221725794489124209490724610182774126309902058610889017947954981946492215946840086649555401806123590238169170239712300659037866691420625802558735632060085547887669403331687528103731062135921600807772018800873409215664596861735470572493298782556186271702565757472515985216215403712699171101018143724680269499651759801144039062527010403960594916365991292880446750578409844143466889906579025532052611809345385537596453723124866515289139683189773143546397634595532009280041541726804551284899028550768643602330123135146628928801765735801592378266469082657921435212413043975955700733611423935629936027021779224523962437337093227522250787050701172528279825814034502258112620038906939571417917595040265460779971858923457097327533968580818928630002144371049736769070300682750760727046814196565780342696602587211989965803628077408504231748879629807920982619151882415808323441771421214371983126458581143519075481131385924506766385900524901992382821283174348272486696226882378818676960038267159479260216047305458759251966393974032406372135947465424835196772335519572146233568581254031508298798118245049929744037571988292411044818020706368388366166728457565937501745041641571654663250483087133601570248826503819724604604463426024742474938865828753509154921075879400295677096130274927824550075238490604901658911590243006545868122120788210461421072432249844037132986481591889386311727831064170690432943664778720349359211749834053563863212459388902737324016595845809346036430290997856244563300721628759478779432146899618540356266317179814171511584165112193003647199273887421464140265118013050416578504950100716882069265329669257911461815442299216440845521190735031172505336742098510811408366401824070292419212241123664714181574426450718360297873892565206920622103372085751858935990796299524565252179543263726023155523119443654624199998695855756495848214166841997971601672648034891355996396996423840939475471657302364901746515587014799025597795312807441026032974355204853527058094441450591258372004445079291842300531631188791687595314982031117116747041708537259643468608877440935753185204296996334665211141006611998549800507153225039557650378096910363746919328003445689747171439884720817180521619500440814885012150471099545513312236761983722943144465458263852987796147828914790141706693586308046497537412520832776661094648621563129708593107456502948828167015958176785350718165738004660590058212013309493942278888188034692240281605348325501133412319411279397793189877314822866728857250142479129621465609653430114610651654869962013700501974774301664345938677727127636544014347088016748648573280537602444967082155400491223364327746756501580068807933770569701564149195392931076607232600902698064564795435311399190770542690665593866107911496538341937223981728376313532396289911791020690706586712916575303363770770050535767929040407849922145193813216760793655712062646747610042488593111691136941748910717990480976474080536499989709950358461660487489373136092493011816949792019053071027337198262178663974309390839624233646509568380130565049665160785229571714770517264977206054233994313350306253327853209006750116185688565066188412615753579482280416889992462698566355698796437006065775930759496244707262516246208082018172036355210146876223030396072903727056466404317413795452944005473209756268984302385057869330105632699162512684989460657115560383869602307362490433613577646485277926324883165432579415306123496337907044252162708450363700711229588982426506200470499687931797017259310931599243771398585425908727517343843261041126666592775881430272523547414274687130859420363400403263812183343511857561589132735505889746843867317187348885335592551706938885596892327368980614341610575136841478261676995919266875518007796647572739179019349863519613869706694486953815242996814379973883672045419057694549496699296187667351076887413810062633562406615935595298065424710131971603744874713169118250142619663089196586038908376345374352864121271334722324807372027311685307298683970113761797321282694974051858093176980641294198993814775627569575027241559509680569880895733039120140900641315382348132194725110633693676072074497586663451865592379619835378314401461753650479056832816363619042715951381447763778765343297965753345547380206846504076500866131951689898275300881163257397229353027235483666539684583049865775189289818402234192561285412547002239838590710130980999515738179578988056545141082634055683806368595634715573923946377839724077583406482854557828727831905652307375093796713679924215125574840938418145242589544179926024318293316726916344240011271563076813285156235709364730496770233402140620386079017206925364574216913043078030160019392032229381067680626744134293779531186915003187769855937139615211921130935127912277524890497142433472789805523950693328646035235323460471438781598804142423203380517638021114352996801061807121691659472291681296714541941059748108416189219054878547780120260208784238968416778143993710391577828920603585852042444136210623938102306158336085684875346099373849787995788070688418148757292262664265877098295824583913629104923484054926632502502979055080311683460359983352365026998622658561704802843486248205378926518885971504456085793467832433422205375789250579015158244124963209850758501108820373289448219953828723082876486415029478956215671807689173482554641328033602094176607929232516124196315375117263930112415122778411310649232966689302612676279060722513765986006341730285869403534836758643191731976795815890020377760856472513311987804432401535673843384482800058228543421307633986706828568893354604318764501607868935659871418604849900851882487417672200702843632319361755350683701695962895824083457842841381682074319879219860218298641825293980164123889268982843313001705020485062247810574233334656099789423377790712586916515746736532385180945352992825281457667788349095057739524083001443649279735064365788769105423524793297800317045872630773326565105268433003440048298782410262660797035152475688105399057284973163428394385936521551989330912264207822095275778627707809131672137047017192388617980593574548180382080421995331790161545162314366663841170233392377967119570662779109831761783103104676287328083004534522319976360526452055860810774038763070919119717345847551905657293297668029115576404276689602732738707495850563947608163944489778459962962650137272362779578407490193540785842417017986097157335702033043600774600273773697453944247969895138147419751606515607346103262142366406098383714191396948051281356127573419879447127590351417301803977651697434141319039740321618107488702579580428079943075788875816309527258666447713775696805004574269854737709814376160980034677616339797830413100268374627809646451796843434859001395338652830163346984789584482269958397136353225895882096187971072194356908699655927915041996459398959823742425472066769954955779568112172061176842410442646736867311396456620117694010134298883713294709141552835904291272256988156666388689834866727940604299701903189579761392730835104941084013519491451111580768254922881644492186064739117086891982636254818319043736733081150202313423037918895718640070815021224551157149247927157207998194003747481034080487124952424662516877398011965049537748711802911562659448140104108087810782976077811562560046340428594759118969747861615040846019223919897847606392700785586390984111333500116986469123558980259584127030187372609177541770036344613550198966479739643900876865737623734486623682578597415046463080003187902650195026054665936324411533971491537812226574967118435513405226368369849484853356259643272669632554753074229916117408702131054026019164074034616774289164152104116178102720107477572217443627683534762446540961056485849279421076288352399508787566973646701807444513094965178668616146039829284661349010106325234024237426108289984020372722564412610584549281035813553485204361731217055078192855694334564278811079032992733425960893717150484717278907948736237956819476392898099989992316869270786024812863183701025791177979535181410314402263440836561247095567807388694398656851318538870349924942391378479864628617677266600808735137850462310570339533714371959347944346464660482291536759816751211201311788576683981795482699004047932406155860066333769581135673427324121963988888243413135582750987229966247568882856366910882530776030394724649940642022099795925991287399017731633299715911471451527783781877971744387381834887749546042992706547545508677302903212582040226578351569317774398300299943188993904823116239546460269034920842546992414419166291826940848285403570355274167676688052692947384080427097261033450988494688637692048873483875933389520345831269108331001724971374718688469979540820311324403967098065960990186041185076233673447648956458311854247015909379753644908884132217335135085356687606446328919791721862647716154389916085991583317388442567363155052067830079174181282835069017708980013508075952748845087333347447801820440341987018144871433510171061505607918623560747133658645595215295196200998614152175170279928772676798708841629408501694925735372392830143433925495954200113025438215060161502695183670961715228826482032593578219763558944061760787208895004801048465797863157607033538995056988894193945905868828719747653539813024459143101642863659618904925778544263609619331290497587346639307926004418521579185972736288194305218588004566760195312338534455654814199068722687193676428155689841209455566040386286088639188136182843979838189562428548589067367809921904125758341574442778919736615692348972959702232910320430514898257997849329123829102385342884046094905491833716349034053620311720752631151374745375048957400821890104667999705066609738503898921573339399253914307384131893157255122220920454752476278080342079103644674385902465765338264759055811165993434870845580697836206363413804035762906040733184902931127917481709608489342652833636781866228246137436474275334560383180523417537933178595306410898642393743395280615342545343436517808978929036590151576156790862894790350190406405598571879913475589054865481656276815171043861617203799876546347840897323978520439229389040546986603866520079877916334379477047911428522940909391038300069724195761827501609182307612207318339158981391389564848580814028359670441002753808721602987707857031375371255629452888647634898123077072806216279988996777726660813335382130594796152971956887511316911929157994071760847188161629764602586620582168172487528413581368565866857404587616652817352899074552013771468126300562084031973472666679959239840587672927927845293513559146001009432226190169259034443082243913033984283646188684741112891320799787867383364057746867170096227461090395214852037988442236216581617894230650432940121154501460623013860500298591191525454120507846417521918113591665536447334937958498990650823382698600902093474248815059763927461770539744293768807560074547528973140290747211654587176320476482282641341910854659553963667854421634337851631848824533179978504723500452621579101603695006254890458030026031700322766493563148304780232181716804538610011506310032009896134019248553409165844356498678355165662553983158399631169805188800961748052832797857055208653685067987092316963982638861591247322781349211810106698476776240047881723762691589052016210169897656487488686108741219726579542702334043214767926096622213365800778548460927565134359302677623793992377316348395370968298445984900306771486263038353086294445153204183796501658026832753885102237947081121819932242916441725967150209000118078771217457770611607662760838503398206375601375633642367217341763020861726012428557174619387676872793549940318873660599297157677451433311871179554575985486963116400801013130768813543047648921791101971958662085586941272536871181424211191210812348468859629091209895573712373657856057027850750056856591864900984492347245540869427154879542320074602083749416263854455775355131788596749145443438270463632393716462033039520749591233735305784975793831328622496263484004673040314240921017584654835657081204305591718312635313751618273385514405972115807079843158253631850156765752296623639010423520989045953708073527758997056795308378420303565811328321784690667386716362461626762829931856451213175073865177463730999719373299066779211205329689174567693619348634887852415240471030144940862028948667409336567111484907012808038503946370249173823751934269304088592566196770011290787831942275996602076312469291244634431913979687979402524358372414416227136341385454976730438402425615330241677906522355610913701182289986880231939551299969383211360708950703933971382460540735017363360326415190333342684706417626129051664601447371626454928079673579710861897134362831285056244709066143724668226659804123663203984147463930239723500282177985885416520202592642986915735918042341975431410617157123635552408960802662575919399925379066985004062379875951706322563657682080344689738387684397062503875213210991776766951173797253935546903774457898967366634456956313626557552990082694836018384155707490739400897340483513567700560474748398068196256148207323095000023099407598065304600739647746888486298457178713485639554418928897086823759553297789568588610574202289893561547337359891049134664395066398177875216109545140110935353096761257862119039516529171525512720484095553455111265266747361722420355017797877279188882047860592826198729740125634626751774357851349559633784764433974964088906536190277902369004774659305031555281955663051066435748891757669849787680147724274925725766017096033644095779926084539941607161007820530109800310586437296718967525078175250489373872541891000641123974157768972092315426119098073991406291544365886847141764717233988920881707809045861942221946811232916400078124578183562593690986074846865843299118849561816231134769124927313262166914529430559600382600959538965590190472630289398164725171609490060451501584391441262703738615397282966110514801966573488766151428949439215525327687374193493570835807236648958731799095294012684330054905445068173275210261932230970618129791120434831503101819326229945549311121324727365892024360311326407632383495747377029901923262290116929201746547781106725092986813819690268546417795590632583792171953030769827114566884080319115401368809782165249349854185539897248039654674074412670664998934224339711491093663342469847035749603019453975105532516650018265037013976976198584419092963611852137517198526651598837117971181983589351827585264720081613076427649534289930136758413147919812303047889437832583512771457642001570418058492203750511815549444116979113075734074421316781092327820679054544821815412732565890861341333270355430458979944135335259823833807181502575498546257404909141823049139894399278307522333412806583957627287206530367407698085324703116423709175349959670809654439551450219710988140965823572859531508858992478790567352744187248026356626026131781150520267211754472160010901423702894838724451478064556456804234852869796925955774303714242693736493612052570455997888276531353660575110793034069839269530746085922865018265101214508535121918379054446815245916200122970721960746528143217810661177708170957337060216724295941518011800732722425985214853365937721087459921636239660998294183729213927594983929732398281285372891305755330292716441089783691902299868239788012081341782570448693901997206722532658983768735748326794777411326641926163239039959619450852533243375682480559238665346132946464092882405686593580261391771648434665261531692682254328584936036476661929871484676785396874019145899127373232296855582623969665942179527606644219904530144956207680327925685468410039320904606438302260947445846253380463444807183062440498992081544952731445748911201972765716334538220581353334213944659605750908901648965830265458215041873207482572133275197196651725042430165762860609695263305202149132793527387899149302893733082741818356181423877469929058952175003368910018674223449596897829418306240577553356826991692640957781366606191706963585931433022727326811679447715494089621425777544432225162377846305254546290751583253896953231613983004160813110733437439576761888275067386691615737462145660117427108804274188291512891752582909204599141508390152205645905058764098826743768323145843720597268983795370437231669115619024014422657215177973720644872885830566157267673102499271489938810943209337858175206053430474345282894757875512068612268219375830445845982807431940630015473672563066275590879618261682138484428215388392404828941887773671791313970543781796309379713846890799865516566082981198165808136309405063996521963269515928420593900347317314617086298247971057850738497672877585840056216330428286948341874684683711761351672615715114630334344479419029811668927805200584539296283937447040128653934290664706610482621265361348638353205003037666649206307883328460470218828253511949785971735443724814734012543248190549584473209907140124549129954386274541529286984763833140772958922065105349960889985312321940881478391898785954536095457402555267078321364547931836890979451261182020200244877722725929706907289694668864003155956560786029266798821606629580995122680911927005124774401226808991754806726830208840050057643223106544085394836673257584697624921363652331629136378237443267616638375574954721371860515967293175471500365769047525273906675403825805356381659146659454565701939377712818056060588677487398445890751361124409212972691792080487923840017723544330057563964830161500259914788248708413863987851808424448724353171954822458878006269403419881012907214775693246070155355476596125503996560857002313415133985607219856952359687472433985628696755519197204482408247517992161441142739885009244607216798343705192170005673339046340966514600422174316285411957942180130457186931685460184951186510130222198611661647416028820358240407537333088731514190383522929083428139335696612866212522298826948134085956965198156637734437718314132575879838105336324926963055026230611292491564581013511095973013219771220836014371641390921072523360664343009876008008892098557768740540486561912297232766208849208997567468085165385523102831262861898872513364491195065004618941958184909610784213094966881023737460671149783190770940033255297790916051345402424518829627223329000612055526068945570845976668377194427512651734754951070004450952538563148798187032220140982968431601686344499363563956337365461172475842873102247288749224189865784687479940966781345196146867631731538452737372757917419676717784579035937099320487843196953687436447304136646389178900492251585520279619281543002453460101905945990799352802224468677557631489493636888990497367010342867530502533082602781409440244153804550994759620447617454656730030611346339942066475481581230112233767849464746429951028783060582984775732117351679597924596169415850038299090351923604263243762391358794516118557609049935476410579154826831529779229799425556980176019122829728034934049701199752556085700605859728240504996175645327940259455782303049276848406172633931295463795385549169440274291675854895585136297197390189964165262713340573459197957747113449202111025144404429976122247540152550714133099525085581181397822873704274288421775927150507179643220627040189410663493776022304382097098428746508559024344047631844442576342875489494007423225605726773922511118169848748409816738271915375955722901640067173398016800065719814849788124433429094970682170811154028049510476772800094105138224986712400070175827733517545163764681392017772140211153713912562883122534092527335750056930369920217214286427445467866878828336147628431488091655526714370473426586665950071298515904969507604327229548627660803693941607641039068347478429812060949640133082818107979647644355695503162189657888120976435735784341020251327539657753414078366843349179939691730744822044923197656904171547303790939159992621839658607043618255498289507789535646835719451210764688095997577560224125056233534628919506485911418849625425242981758582527877693153256799069861954079218460141959395345763450200974952459162602719146154962632203583797484966211551667741550648957533194733876073255118192115412331189775952826974139754840995296622795752983560551306730844215892628962346107865962718724979749083872416540105497637823061910754998253290434437953109597068948860230457618017097819717838565109345382214631055446909199799238763098653416872944811595321049262372062119211955268615906034300995827077985026880718486523810474943788864949455297666388647844737076352473294620047216505303956753324518791645057433811179533754335534845316302435720163675976372695883222356817938942981493835977901335514245156469937687144991917366521840309383704559360917951906964853381934910689638641113443411737482712488298250515050060249803406903122538566287805671826152015173287060062780171006684030401147603349597975394764209801197587395249746321080404097756336026246234814674580324950015241002375138379349704485261076256832981683549495471415987092416264595193144389151255790176535455082562411083570885252589741857999056754428601898867148207226720480268290589483800725635269716385749546128897555573133469823321014489865563564343415255157342452427988419101306860823496014886192514716304998239518558204702654207027242958327972281108826160758672832272708782845280040393417371744350453355191813937815445633522355985284020492089240430089246370922382025155982265534518885557984199013114394393346404344419565731052346647655735025625447190529691414108483743504692663022736171751148654248930361783863023637945629388306430333566427933600184000248546459289390355658862168879976111165986384617720033280184317239097086562048327409823752324231008500771190661967224372591992229567089572298995160445919354105805555686746053148256445203793703319867587029024867254338502820444481882388903693806645435825542902142610901735637905529518939809622441763166491833214803330238906975434461273262836436502074019778069290726531331635598454530749935457212241733182620054103579248321355555281943389613879138355740533725580164674581223149530167573301526710862804701112534926848866379145032145764857804705695951931247894840284942031802727377193145459436007439772910225861145785514777002319360983657674469434921786589580572241199007393759412510705922696924918131977441956082927030841243877375497288987656554033292326217935850431484191380848981025893505517001285937881397072215363669627617261212648644176262558309233134119872809280234244103389516007415952101428817798746056782582500389787277483250389311730970127164615826728593478276914440929601474872981418376206516728138579233238160986668804013963854417662953876436582907500867744837970350092526951792357710233051494586742877091045364061644497965888599579375836509249912465128904164727719398632138294980044688114274743053426961637894739162256235577895406271948205966394256356607092780540926996172467309060800168897488932376145664933142657074314303911785745636411962247881534750929996837629617796716334964838560479649043961989038805097888775531618042765916701075856856496456199475067840171036030586691864225306447686882529474767671954184003432946225449205394428425492246688022010195295407222095816760693183428233153324467881834626399302379831307020304267770891684795920182803669966666507273726168484355689594109447316153191102481687826180390324091442825769789143636388282564676817079571619385254656246259493562715201691566708747373108149268117299146637858790274231061977814300357726876246422179875761788456359247944841169089738083560582477115419449447492986799881192684007995052553528230925273568730267060547070232523548370904190320915605872131062446653595303047609623515365368018235017282321066950624569553408980644494859114073876509695626854958176122547880289725893693174188712774366962075984280639449620373379660280038843397523775135322735712406389020801839738426859899264821169734122221015477012408526439785077166269924758808112114897928998838896979195581088881619793111918473301123231840719178237056864071708294703417095475479371682763863564232665839806063878954674725429487083804222849133818921565899124960855865001143310394773645105164811088475739605415416106236819473687735733664624855432007707339152221138958946654989554513002283246264240924346552396503905329760208146665821672923190131929434219932928108070633844530588062899551720205945293635062009912921363043554500502168364467781510246159276524364823816985023152720883465804900969243745633528209704131666502990805412174309833407109231309140261568297656504665547763085939584949013926191911917574343432311693291963775427701349819530584714682066566549390596547568825970654158634259345989379833384803250107634255407510945761687147872032361565442585718866972557832472699164378682414486486411704622518033880085796507116173274426669535923822496133295853331060832169230816964893992955911587597053315704181929097112948533473530381624607330058847170115076457491679822391448936393424637904918935406444257436892930008265373911816291540148896748514583737961841978765716325419077901247293669446222137045269035792427651721826947968763057985958324119724476665548913931029763806887898446062339391424652408106704313826465179452464403598865360734096974945026064067446827376182900672105106332438098306215729592619887735882604196356037013559256930692114478483408083977895186370648669921608554801954612359805588443570872760028635419549792442822463735895025547378932525449711428046677651912630963849980465484703211405437932399765426333897333752768627471083095573678662015662171494429997075470690667537700411167953102834274125529393059582805111498020687554043708362007313160462455244785942596520330922533159611549085744536837279223941817478413156836907915466850120023832477789282517660645737366076344870679152632552050209091246126538675112788820297933683839089547238294829713530604414362530436394096277933847678211550586658641484970569855568500439399439528156035729524028779555464407672497500096983762766064283236273819742861641736897420048219150680970888782748372522768369334367213089059785682094622921761032745677212967427248280538552248075183068065219698336025113078713192343305718200567569384282354226021607191010333837320397301594782451225808100234375088848237097531309657465515159835788313927189420497516738408108240619314042119940037705077396466286869023222716742298740988404055924610546779897905738308449962430116453679264030690485150954968832543315653958413555557535520752226270142638630712318740685839198584336291978907124610912531228763501313800694790975915663703618543058259944241408775887304552810415448193344762331785800195098513203239802317239404063032526134584578807830521505666399942058155092490297280407080598440225906237086633636344893913450558228129593077289412569116035965327611630250788573018000553590346466339865548832553511407360548890033779700113238707382418948713224127072401154948519847739786084509069686064194063407062907773549768325267249575641201558645671065043362032507982095135590968199540663219037944791384727058737828755253588839339013761088418254631978769278848500335600889831584420615590792868227878522572185125591039599005146326301250786414703620370972596544050296371631632566122988293749502600140414687222338275907318594701454450882521560742719652187222988998054326187813410769714519491341520875766657815667676508320672416291491828408913912125430758867902565872329620877439618588179671151451050601981136101608023073364778366629979439136917045181785834458564567544809254097075913431151288244062411929607027087630173313210764780078744667293497854995849445089378010282301287214542918202313337594785768133184561781261041479597319989995630204921720751438783060413269342688633090115496783090994832105388042728562305519249938009391945792607802097998021082364167701529770042567625651412192323814569439850730325184395303061397733808681173826195858464760461182392615505873642316979867282231416662515117579372300458572149315950484734013279577895399320405501768055853604768632268219332696863778633721764050278692624526540293963439348593224839515864142002333941961276807357343246580332609220558696756336777617451518401190915086541765307431490358693978312037567970337155304003128447880036213650093665294207352232578695197678339179279654622201376224558534395663734318435923200715403272883985265059612949443848705871416811250639546681784090860837854381977826046738723219278701364323472076562106838375853913718235970070285433231352483880035315841135212109734386376283163250497553515631522838042231877341636189247925044971013130515750814108571252929414836002075535197217594345723402403115077430624557201147864104755751793830885207351655562709314667798375180160781697173070488780191524246202940664409209204734356121384357435834420058612411618664430339988202082557295316051695466728049878094499416305890976089614091943723560567321760229371727583356543535430322254181811484330661141027267392537539157324833200818808378220634616666394323746380981326997970845421140312513423057014747841751810736012958754824174015823864077229705713275878587528618877746580462650278000634304090605921546609983719103840972017930839369045175669387446795065116672668662103194080358157713074442125941923528479329162708403459778662778708680037702999508666326321224804172983816841712490781202770463614755312096164956986657816555401409664532706576713260840720043405388306986008476290406536629692409958673630185411837260538771123827217333104031361142626182985336234764946124549184252024706906712580743115333215644723961021324105224620363358354099260230048174031582043570618716435043598682312105551900307506106471431678633131438511637860616419328473716218080763280205207517579357610933739096093511738953499112524568612985969696552601305113450571148053713590424580286764602898821693136215448090829496218267190861074790767191217840341931967418984165048421192436274347745185279239754512676236557631643577022316708841635131852564876296101232672906317885953722663566411741042107853341043406186946041273234165427009361333861638017367824702224745200170567526589151643111111129947658262936139093160326863558305728465033542112457400001250696293605578438727440874725680958545001830415604529591210461246684075665823870276076513854389107957840776608727723865999513633603260527480510245616298312441415459022575842246489798678960654347153996552702161163861688968305028355102509400500485430376281729351484400448696165534202282861194996776349241395908220288934322622073690136407455761069746239452057215040121480470471290514277161187901783116801302612176476046570266838546665214982534424483587200838790260543871421355921473340235937286810372831671914345937312148195525464861848286752673003880642189335131284152152740941838769662130289247654950026294671680741835706837862549412579653395086298412821317137557248763235408445743681347848756919589909794342774540423412830821257798911512404274541756438535173483228015389026137917010400325285200523221204093595236737214249333457982598235326104358173252493338752630353254871171185824537933123313869907712648250471517817111215573122564164114214530500489953077240064317765595756303706668171566464076442066774026349253986369373405587736110889121953413273450720798288116987929516896735569106163090084038834547232425952051779678593437898512588298084175499818754861873405331596976188398509309902055965527196237700497151398481654135094054647109379449789874203097041461842030547695223638257530779332098524206324358756393138543287520056600976561997998266724060752430329361733007043555590288204766205430755695394689001674608883029016085670267457168127055122308307665364164737211390674569635470890612933955936777329763322199502358844425109636408082435405195314292437058917133246888195141913151107944057742011330211919856254684042067090334032717637761268627244571362169620364089636441093636276243657736963525940171333378731206672557926956175417802824754384133101149423326872578220340444907370263959375835495422378777386042177106417214960718056476105849778179448372915259668218029807042786771005330336158561006960153810002488812925341554959586257804482761724147128030197693787385386575473220175148209834067355477411298055406125467423757559365069427184885614898402483646329983940701175923292895151518143949546078133855665600379877469959466409404517885734439373203768843119397891687703186614315840849824632560032868170343348197025540647295591972226658962840011619704039632831874244314999139002601181564935505666824349885914594908465688620980975084138062337084285716550749840902209368490853964090488275862407737060918955311514645889767372054878139811722019975861358831419671777575071112792904981609848311492616581505823097359743462898196305182511048742386633957347984355332165099957520381857409116682064689763974564068757229570984576258929217086256012795699329614194764706132855389590904573230791386608731881317987553095186260363496685850917812626667133534537982557799851501710494435321205393866271129112222691257688883185400260667825829190435162471543497542174442470956451021541917429290718381122999179723579269026908883633220748862468528246020518726316761575916989980245091078781219644241859266490753554937016311729114016929900068564650847879558692398509958413051241868388578146077143871308428561647671772789133609783824473060096263021342795507556993852209401427831917515450960411884219698243907011906508955784058512732189350855047698207890789967141445242219065017861729586244653831945191678758062025534957822195953969271264462530747744838433692728743978139327242073221490189924017847969650416373609827927976399187134631471589907002486047759602808613334932616434643105776150268161050187827775422666004404312973133952708084291400572005648968301854103405806879343062088428174861976705015136023712157478272562124473266722277705691601970070838878462528139968564998072493531800146554574516123248036434686334882171965913330775220831203403069588320437202027347506828966256966402596388956912321677439244192683845145923660636882085128770133115438681116676955794558620699051835975515498442489857959911873144934370909510019761304262161074882127024319264883373403030931246149527298710189173953786932690910623984174775011173299175511335298349991993662968614181790375728724207086821031269325335423833306415735321544982689472265511313035744911952955684009460671744857676625465894032327074080200387883021848460214891238552510243767234732509066852797396139749670076461831870277437738466286848199947895880782239041825381567414022722513574903551531256347970326085297308664360354358105234502550066852956699301233435681874621399091850069988798974081923827258629367012259799385557384285893548402576317137362236615244971137539371192895397667847557740055978749978973468404377513671005137969414517502327836019850858886711757276143241811205405617856027273258812347647536672732124594801237716372127717584271653159478190170983310943415923212404477893457038761756387933144020486517063705396138191648125196483687384256436602662396666058956829065397784422645565157204730667723241632978895512015253519183618223212323191505508850993793223011941806059504063761026903487877639983079717326187370551591306606937957945953471602613972126965450932712222319923307029723865644745651066069421029608872718593976533594188417247656817147746927882419924882759784334524569965958892563912600606680323014033328718615574089493645826125126782359019159423342470805847091606209732001234220131773009979388751841796734640018767958943335021635675579338751058466075053426384299388821040398180457769328305571574798477283891132640280879405205579886386863872211267537293958090614933272421875412528828649498929975954002832287156777375151178271786661943950086835751672503720596634070707130017470069079865931833992373899914215583053438348465878303987545200685305376602610475699088015369527292912387635877825532591100960594608818107729150785356584674451976519751703408294051019879593940240948813428754846931786200441744990124889378696427304119515134047315429689947133531227030929081246181324849047858399104635090304610583832877498596693616663117912706468633285926536474858888819059755445528158318847584956643748754035765299966351003196970761621321624634809346799146154409851351171996568712236457622128183764739345423203710547179020148835900227881791846024053460226537265818280673310649755231396390224779077226297454040850672424361656868914762074747206759157735474853618120331104898100949273456484869420193426913568828850765530874138456638285567527410743844706283839279636961565926309356048251350269251496149728066371782670334013749436784215493278508758892448351164401340462007465298589367923091503833313800400712822209745579626933659877532864424783660086054227296350305947543986759910450593928400674898372146746391674751151687823111302374113401307253195964293536026201643569992965560633086433062220251112867156052479780327271894124311626695592267870873985305852300378811622957145158903726634531065474212731198048252033592716363975651924939178994486311525455405976141888488444890226986448413946706609228725819015088333349197749537965603860882321018516212725778104546586507229719725448779077427030547785419626459937741566902093180725404808299980159194932090708191233856026116211563800322958222067092395837252718480753166918862835290838429298885661404738441193424273756341224977160233614446719577561520642616991020497339842481761521014029299252082284664872365244376929501430746376752248071308558570871270708753772853847205078832939861106474798847315253580864838116449352596851334441054896365881826226472598274848565182203892483749544294977547038808424016891540103020811148382930601925431273864502042036899429339420897833466402025377316877764737164530483920418342016053222213872842624237332948861586364726972911814376855565423474164089410645555412655131582805455893779178732811566447786503403239456527303818549562002873928266025858872992447169990265524393809610587216676659620391491066012717504643179779208854809640655397094933017718506982425437114073784503536663043036424519184997130527676812958700710496240756272394833935128591493994075615167048834270475535764825168976690771593172679065731305543147873871204105741644776094177597342656925463220463690703087721792743563225879254897876110256305267270593709115493650518751121450980301467813015323085129162425371228894417090169228745154744191716881644524814358902791852681228721141372320464822759418427254537156542199109046861089381086419086765570849353837552642596385096682274376606717661658373394723614175331336221820178552633031748369535098024554938383688476805957634072770585653289417534137304533020979976241892527476903273444957724019790126327033613292213761499828023778317884294178831037783269430877862554886763595536705685581664443688099753148532682294255847012161982667357395010082152163125450217428668623741003031926896301207009002944786903329289028815056563353116936716235980812389783443760889737586506632807672638304211322130138139217622356771901318404387708141526166760399205124267712672725853094428382954614561597584461626450013740848083651209902057169214954624199995204115826273283408074508950112382373858263763772628510123193887394237335063658961132582842670669591346583898257076037156398345691213431168715979041067034873879847840875195628547496775983874311720203909487154908685986837620898379520014818117808901795919877829546046205664278085392621484315339462840209770211928403628906340070810197166888790858764099910210332272813711254941569789201816805362307704952343644425142159993615996304653706992501087966502527037315244358849042173728088237197888020172089071165583279366258222707597636666552457096607199512106391867321843879812426916012150315516820002403798596547942739116363150794844821179222252893608668812109256891323730482232324937440712296668102670970924030835477034551114727120878164017812354569542021510506373650145139066355342128039478439138450418535351912834253130637206706720782512791066878297482765027736910412488994401007908482231715162966071139871850840267880059351920401329981639641848139437545541235300213843550789979020556084304882111839981334167178061114094359660655968741156856422474307692745323676254973349070782460367404549656925819221258235078105973219468716607016795113306540003404828166709849476333364547035989612320119029868987849180684845170355733600018842399058284067907069070821049556608508384686237293635555462761823723304526215694993099559130580330039452136932829525444090561771283109048384346831225297709665615299493824971688425667110509108761468043773552818978810219477336602586188762461827995925561750553378333521175944503816746371682676475409681037768431740823836740429852455933381168337847533816295606036471542761584836860865744985709382900533125390097709516374176371463574502100292969578736830411481183964896198000556898533336618737564028679625724099088790631134165943582146581480934714707965743195592185107472367528110615296720872282462951955558629626971304619436659617784281117568183377904127049395655297852505333515635073002046336061605426717526529337866027189579626679188452035256333608816116174995981752463629574586168168659230261558417366555459491145299931533723255097531062883721524958687236329457354115233734370161982198804064544587553935485270021948948816096576463327400362491462708051939710995402794841389524521398101819556477338586910181421981212399394341386269949465747533797772451418210318510189963869464958840961158525108558395191867241207456801525739144220798047585964693920336124105819320104329567594442952072890338602483376270377640901256924343579052888938270258312375768533414236942780657942553479407556085345350720786605125813547834710005658467321824902611185456315405500266830288716012303621884478039083035438388983231018367938000808521090607774602738741385367474706144074112504398084831150737107288956830091921504965249760556519262310546438022748447831136466402530919054662376946467565914025283601075808101810782004058102829796660658917962231875083739930094428250808976126002746442987964001875953963101578910777865427260143754045732287915464981627038558787091105240187334304436623204607483168796518404750016035770192210722201123269353016099346143276185051608072969513315032391702932983051733748306769776131649696051602248918590955405392100564673427498533971487936235118893985065141041510419678430294820962721101115404275901770529079521743304889882803841607330003400060709736707111420819186591699460386286091635742078830209898420418056014293946583076615365659095791103670755555282362975480319917911168856412556918929186700208189837052672414357826030230724736305001956772046460300960253321679295599745061242889348725995477275346327602932180187299691173282363379219970000545609995094164175541923115920184866755069396038229005273096609949066590935449421461858901454716172945878481747002635194152767767432272983898832780910899184439372360955972849228903195730460905849372971804873568859697962887685655195681415850509130544365909764754837594401515175208299959432874441465087957357076807010654543865128036421676775354034576435617077023890380968808639723417857276926222891227676331215053232622778790107996050715129643754837553762293263750745089776379190386141234399649729017080327167530872373977324853679346265816132939780213622052355574140865558570177482353414081391396191553809053665976583779539222637230904225749298106270758076891263865045995357114645598060405323769644001770265899628140538938261016195806064241498643792057010908193640222284411255764030564639825019994716488229763959752474084829021223804642999060659048694457959746945854072032577047221203388082903784000627459683524721455414355158005257309515557987856766278448527242663593886666606324361451951399955590535243951068901685462905709188312105757790250004825110256359545519788961640050157548317248703375528571006527183222513820124555655106869293465934323297826784573291736781668107420275777847450686348677150939829424370970038976355507905359439977910389299721395461246073404325708843101669852652668697685055825757293832397003974863862008279553791140096875922873960079218167254162346464992828627770686979357542323983231631582216875485411421552882313083478849963400385182291201477629593804528012605584406019433976740053433459198923501305815466123403132163733282809276737721438601974619562402888055454601015134807808855817250384552316493667006113315692397104401402129308377918834369500995879037515835545826346084109156456557994517109221897695506893649348916585536967620056884532500841166113077581749729812674250217768047261508396829187157974074615890999044682408572822504643266654485201555898881862584725291265489936466629890126142047349873283860313341830851593998056426576149180942412683460945645548449587337412974508952179785218418731942280362748837761008292532682696973366104053388768816033370755126757618764998192211921146507207106449182327765099885517770078132594619508894337102643012944623700377538470408594766709009636259545833148002203141442839655273833879740762607208405878619423434716559133300950841908061266060055811337994268910942163955071704091264269641759444013810765047096193794101154811795634910261867101671970813846122515836981338055424120391482906995436802482652465604379733349718881004354680345332962868192265906018695171617151884449994055387931518643611830170875322286214439939748552647618104337741268910709743953288099731935901957590724861269522891394319367208903023044835628005169303470486705395558437429551290327546506957003441453253601068744893829006550915485269083119889339168405609979093795919515482680385352804283581915259127269017175508670058834274078401793374762606108474334122307177905630255763878359671755825330181264229063377959173455372757217610205328287724281483681643950779263644077377121067303715685863734187439497791299647509816627739187100166138995932970103388718037035699612618229853380689760475629708440338433369384152510399642577184776783853923580014619192628812233336555908646137898599172611344977566154879032015999736865768827475639914930757905753101447631179237185938552102200478182666513540915327284217273974789891786169960492956940569768679595100898050505744205971402133025699336224637147132471736723829238083525727903857310150994417652969768342646804625501050030093707664769969139245559990504163990888103659597498513112317832144365578928758581940382748705526956794420212551149211849541468490966066495236630553638752268724430068287790184963857383550560364129925658763441252032434949608241915938238351865308935638127531640069969180116769169012420768500004532817661884572257009736420148411475792564933343373410640984408163126857956945799729771648588496224420796432333504017179242088776929091110486638802730324725047600679447569920382903953278086465288129385970508556191803405294298184739441434406417691405757478066046468957154525051738924898850260272742603144234574799340826687442569631986236998328750933808972391546116556720735223837513795207734673971502481615347020930045692272966971058073188436340812490894202100986241156763405497031501798439180352177739991353140863840010320919435726276461264886482983015409663281024746119560309691423433094529625939993970760050228837670212989684768464817601469921865816225455525439294420777006299570000222063205345546794648834788852020298382987262718223609378092558020940468933653592415872636238524419372660997407672303957896216676460825127030696137479906605299494064759879261550401119265571972514568822372926952565565485210052576961679477740986236795642511987395936880824123883501568178643665783404925390247572301195932329998637036710209828354499472812969018990478673782368932842544598043417141373387354347997031314037113356152099539412050657886150683137811532315140277659723492666814118407435591864151833641278980411580986630207311360425678054111949840041428420875987742369872629781430054215782353892424367900457950631118895788251974830444417915223797143511135534792186561446103199644616078264800324595955678644512840747847409575476179274733553201520268987043890970846174668303637078003106109918179987194505273840164425493971754685544460438296391568597966835646896613940134370427703153746570131871447929111986143686419885294971296982281332997364828838329396307639494087266334526228263111759673713574384968188096297274341746626364974504818321485996038737400931068189370671832293328083836947159386279681376484017532574025097886521097084202425182821466851617135970238553117325086256695446867602170012302047627055905931410816680594405477833778625192863345737433648922455936292629150122855563874208240768868405375302331391234565162130294032188246283085925145109104656159122276465637138023142127596692339400856625653142867416204348216801420434529630099256160893921312162847029683729166542579075815615081995635495430220108636912939114569766603800116190159947301925024496632023304108102997797507346853126489420414675177047269557996904030802069410026016851290818935324624225570879818652581930098562142194195431467943354636007228526598680984866340421437505148222717950880631020524857162293307382010166347401916045231795732652961328622549848810338210583257916807743876901449464523164794784181967010771410654327790311488538841358346829043010776076522779358644628669629293306357735338167055048147845379674636537171019940944752080536652928735264537600850709151143430030993315095047138119543326336595858417661696966500398785570230945478368287557068397982020709054992147610825920281778583266502781752556365654128836342509127171784822855055721575099475458613735642383772494239222223422075000608468175921020684646621788819034810728206751771326359695137704770481388912566133468996591982944856522372252785134963629570814549954263932387815969949885704825291558210151302093250648979220882509776491335228040141432387678724358966105134720910593188554647338611604426639878383749161365766028458981015314518433858438245983486460068737359160417552360972748407625944441018917327207724176431137537238504650120703087147945696850872243833394869420616953643486387279832330452767719776863562704526669970896413671454176998706151859726533620760494336153598715953136411002811368158391002428830019021335997184993550158079783405051081687116134275551016915756351602140703257190667905235860440304159637220088205944855440570074586361787771518431093890829907517003462401417717808437267239424223530291252813044785736115494752502887629355919447682604740539963771978398834857078618783094486381744888626897960930362261521086000589402834044147204290312409022003126521288698537958131524709610945954236777715259962365686630083816453586584930749797544869232838944082923587041267012507319733213317408767035193542980523671333919247017903962277333508226020647769931888408847220757338848007564846050076238323957199312747972171222739994072700783644423883833227300636792121599824412469644290883165258147137811023729023274703672765691369290583524297835927227258827125641402460440070546190577178472593504769247933136829665915906965659690194522202233345148834640566975096289172991471865698797493537493333074498762214260474821106268521702900388180585885460327029617961093267763446895233132776959796271311338823689611060486160176522994393402504118815154790912628129198757552962382582246058144315550196719213563742707417315231895288234538213426816770584843999548253377088221994597967990943992458328393892857798206934383841270534185085334086235612532247804755964348299793436706283362017287081410684172082804742256045427107829817237704074255323632684909813012196845637049985837096599339946907025392782873080205560809782864355597826974650414527247374225369794877257505846101591329192132456459206682132810392055125106701305668875791188798984999046359431940546846265522071650641261495466097114535882830639902595622970017937922983593861884661953969076963686234196557539391780541174184276167762382029715729496638931879998521442371402914686420436658528776879555180773465980053189900575359495656729450551351298664604055345047855598184160804736487319446358393637923800119207090048650879600961249238807675106360576833291127265603468031246378379090631008247691196722370988197762591365371044565323796067150409420318191678513885132501531722491311291574405934069053623752858639848767933114874980131062169824978171406602909327426372176579355324246040126395838821674521628285993823952055310745469028336804451340426481233837550143553492700090771173763135236072076035583015429349287162862294279242726506373162340239085034344635213468209132800778476733637980972482249590930489101608665735682363834490730013827811420375814939636816977134130050357951511450538531893574159844799327665747257952411689774181855740139743523057666910189957358395974999727702840034350660058375404978063444568108848568139038141617707448713935122756565595922095860823454622676669936075397188381535891881317850185820917360782024446101316754222765812562679555017188789720115403062945155946805605109880714773986241203393648546244385241568471615770355637444426487752216658423396644019781604308932127150361811660581489226016023252102715376237648989233752396290163059149637063338493448021862188096591125601048988556996472929319704733476595841060018894853424469890539083562594676763008948713579923484022155573459240058401963282512940732295760207200203388033635306642743874874319745247112038882431332679768260440953670041429303478229547716116025974787120905610622996716361128183151049952303879746484403130536395775511528745322143928116183652679268294205195402868812026537491098514396070281304464646367892304722121893992129448436600358418600298708670970273192722351035783201629953162481514009399758691509892141001395564738230006054834097460393770856081152516339763160620527506063685366473383019907630181270077981606413384448118964530028026516539019555373876166002768859705334450302765161175825519397438545207612845440587572274686869475040948495386247660658851199712846771115687598112653236174969937998369657634684786330644656831774060545106709570093191260565060710047524856327698557620232257109995178357865767280352599484849962521328215958558018578164693734765931499175323028713704407981414296882697794516858803657087834206107889341581395693206180906543104021650791719812325740697866357842749280541003292963646082751158148175038526982663346793801813407038371831434178717369684712335483479668069616417088677810933291060480052270263882407704604698912667870284688946927374803454465431072185077968890277443893612099238998384278703938995030756627607131381112863365095523067581565459041306985343093049671022034490833113789472929785430366779619653010951692232467164146686123050781818903384506513945693704348571303411822798671691621610192367280887988015699602539748330796977154297176595972037719198295658110001259516910455379646739077405355098142810420160920879183679017707485296363731717461155524307697998125254868370745323622823357681606016252905438496334852180544641140754145705121241163939451518552147650684630573251032668959336217767350898365531066538069605667378743507969703629041829268179192545265364691553052534507304066618969583026641312451726338614955602251816260854005557481128423248853512933077450978326872633329426997756399052733439893744369578016262690803596008378788990915813159093029471429532207910330278286082911907418592187934867567257792466972419343512664647214458405186961010587950509469948360562291004145601239857431722951105232258876629271214006339511290419390519567097662710766593599863492826730548726836266806482075393773495210226635016537084882619113318310817971986421228358348432092142178008623895585776416021888662611023918400323853330112460887404432984239023750732409817234868874563200719345750063393357225025192552260388015160546195596258726103831405751774953007041828400461653903784251933154517034972702435208999781856133424987686846143601630421983883444882352211759688077213109960008757858420904272190028349223429158918887428215499062232602721702317453766894819423532715382604209245083233664200007953657880704401833490274423243028048959557910117811121270472120120660765517339316522966017059665317081346981076619984423971927823354437672026780103060266734368709820618734605539817431651476147652110813461255694049629483814935338585043957518997951797956612650358185280844144016960007392910589910312911435219602835406970023015500272756790847578676693513270529704686608416889854920072306046143305771988777914395519504667674718158919672079939211206352662150745116860110515819307411106622722171220531338464093786028311617789594395246299021928599955775017610247690588131702100098421158500238290382609648481509242835237593023143386315729302630915036335101919757380297853246251968905658218454116347549472223268989178896380283652602037324942547129182963377723882601154061421058897082047561104886321765919887130610887626470064854930545580970612154605435507837068750972477003359573717997076500758085868310279300326007537630501024754043038946317019278711791326756715405944085907474920157659514149405249756330875080130663873190474227696681314710025516504876199574176085463780515241750372141165231729141498100176870258499584082733442633531484022874396547681971767606362876196664680590143655407789158116133850764052750043424028901215871821412918106250314419241809203031575415583192784551512407565248159424468404603547341041281947717851027154419421929197035699118868100039870798010135039314723240540910888702298335983861383218206543563931264137948034315050636355568098545395086589511724062094719320717209896442172135358108250984738489934487832776884198980709157074013982359409722155504921494955659335754742008139137664927668124431637730251741179009572222470439339789755554621090325369743308939170896977055864858326265498342263656295370965165547959679622916802421790204468458684313995575206871752370656946508786440603021082770212765836436298771494299824822111760725584943308782466604848884253848978397244483228690106701030273033230866762570418998496149705046615653095362618740121731723148094088324650441582379933336895202599901416831429416694992547138831819312579521452821719016073973678570449514667874695505255182122971699959309203239880936419039014274062273516683066748454766979447795052589187993980259856939872500948073518034649110830919347809915882180239580977314118687877994717605597335590689457103795992563630513394150583724354723383617481579785905653318649585046127816325004613344363154624001788186550096830961202696743706073335341560129833680544903826381071349378719951289899063778563650384921930258817100378110371289624578354538204294996427746400041621240108513050230292472545708203078126022767096717214127649146803677297394126489371717360704197138212967535577938302880858245150988160059613501938617920267090854466021727772422264239199413734417374893017835258322390759043102084312636698920638227954732108040088933005279135036601050260906297807077119668072202444251221725115741375865475513849589180665896498989186718037783519637632283403335386742374621712059846248212020011847813478051047985056808935179449686845561262326649831930502582143850325140194597404417251975394363538869831594479666198488926350428143428357568099691500204370244039540622628298547410367729042275349499082603905481748746330345522377729145268632321945235719256472146593071414401838963992550914112322574033260799223105400878388383937369705107438376034667738983370443848452448335402785757113286140186870734238944572748502539485411953502472046187856216579416935440780917775657410739115980952166360038222186616334897987321915084144884565302921426759441404109283039502532523687374746757856705054051028158965594282468009672836269970818820743604943193644941622596082474836012154074495497904068616451177685230335134174687576989161556903112466638547556691030319535007040936982545709739796088242729248061479490606775281935912170782153278551299276650686678074837992599314085252876027879181616402827428087620029695640902738846175624153214806415541605165787900616576444708894157027860334806593747876337804073221443280086831094978955662932167271231150505833218505199887119267849653157053402742161171898747649774184337870917493954841962440774687781167699583687764243565799990850359809496607629215765110733148047614473452442962087727354783887072946940058391589432929387138482062546098467790009425585199658339291792018610984955843784925908220790533330631749217491216553829605979062191401113851058695618236260628740515514177906156851172210082081595003506043053082667246382099019321466148204216250825518532677578170551418325085011062524956940064163485285621500812529455430580301486272329416123535642600953357504054328405442999866501571278919798706711632843208194255136626874393644934520830959349586796618417509954465969668456885074594597350560604547570729438483374961039227137310850551510073689434620053674309512253153934575925114377202377492425710885063881019892346444150067824658641153178719734611856661412019910210098197988704599685835334070614439013698905884341158516401465355412161158024848965327108379268854842611089858978327082509000332810421457298521901083436608522054590613985187373753384794287037842496226873791045909995233367519865627045835259697191621522929780258407035347542750777113618719697765843880151938876232122487676338550192032662101649372365084708693092959515656431653870266260599330365850523340646808419751077725103543049428475854877501539154180974126312976182730724031501780443950399487798239265527556458237979860407605147133088503785953362890715994024221114522681704504099722462188739522202932391869311900260260895749495642831820906999111594879944921890850408624494414384473609471730336553771733402972559779691025213276945197414806175091618519196196040404666118008805010953465685434157647133385693012017287334545147091746389535232407156609196908640668526865676111114798732690957335377755988881099303882905755152839570714337320042011628597534510711014323266746588112031645771054668910433981732208807658761956097033707968749210029427059340381808134172406560319359971285639463989859301028536410692842583078744447077504728139692471734614966864863271368036334889603672478276643745483457954939541410732320303798833212801249603457880372122880745331549841473688668337497887487041644264245860345396320394282007439137122238840990205505791769788805368298918676440749555900134540936776394573732967096251336855021020521938267526749048230902635729747673058211085686981154593753288263849522409419513068753411924946951304157742220547213118813217273310281319066839340166646719276398596611587743259905860363464234808475398325732868910843307902081011826668720216897108289596231018621848476559442810315384005213279140356300037892752500938962113703622204449735294531294153379815259119561302360368543661535085945826264510554640936151699116582927256310338321592799558264625182223232783706540031136651780712997793175800316334452650602652672546504606801967675758120321388470538950312336213229287872304201880806828681643325591285962309710208880340979228219108434272058291406080006366503258538101791546539338619057002616058516925327502186705635568731656739276096963060027393488967178314631036831086636461843118741498137871021479778669404630872635772673928268711671923130131079643795627436991196358029477725518791531062381967462088302473901480354194684427313195031737173353324072784431006173476812239055466593161940842949914410286904068309050319605354480896998452442700778137784321794323413247032971713577003370106456112591827073289419210962722450867799377543558282435864850819177714833900423721861958059560942230716426010620889462140282708440520988351571510803287460663894535788710326096264644860863799492185552577874718574660563527896026380069743873374196565570067772199840617912802598863545119714471059715050265859455364190122073937898998879076027985965323588872585678093807671972634618540492940246378701182566393130668313513125740150093824137415338140080270627516388302058065673152286053054728513997903791286750919797483760761228119401364324906960212901215651026764813337957446302723191241776160439589631818313522704609981768109116235826822081407437805126197544023305254144244205361439916947136727595943850523722421310935149076598434018462071525592056642650558307453618370139494119683913583797491774263734589189480503417435875454730443764259948233604788716060091217984555009079088103722404955803735635744264738325715094917395565032190161532744637017090985258453223772734926676693755275613398844301847357748154178653729454070823823091323166292322333786418631000825688483934692543274453126019664213434694801043984369225958357589481702063805991282413520989918843964528930384685141447867652905461679916387283276425752270493962098183950881672699625553055655506554260188753074214272132874122931554782215275310673886741343139361536020875440287461222893792088800938908124772596697748752768524653089683764937497330533907486361116427873531024777838362594652515995743332675258805282328313437893664770809910063863582218058111012456698081515230696427591118071286969908382179830531579111365310426675836817093399854796962998615213711047218453727676921664677799455029890329217157576784046823685395528578888403000904693750721405815371313667206712193674700757064294099465787142473672663733681803065427527205901887253306398669303139959123792944753919630135858990834592729643010752648852711269030100938597114723753131793558394708345473073540733335924493886602000823282162121450756394995872702734804940376698003014087244419341858813611558514057661466773202381177752040562844388168672316604721124860417934231721109637004672141140948161048662038823961819265883663670557625955844060215411582166473399909232297638515178654163011762530518031082858523060091723958538023271517946178802325076822984904335112165055915490698065868206239643511642208971252770332980136858241559510711270350021754945850832396804498521799010743644842844712292868704295795399405714189613401997215391166874221107614587842787330747244345454646803355497071014044111194046340481152712047805668298223180602660542997126293171773192249783774853927279879452083013536732963899849929034359986555021873910259802119781284791941619010271780631287346938639353727687905379097662740817016709066144311038917747211123179928614244309466953747256063365643478414426239735556786545232475630792514412365608294165629640866108577156521989959722380173172937259050682433091448310785075661453031553432499945201418604175829417164911725600834767724049727610332396936088916338307899076857347423293951304537776500742790247062538834144578075828905552671979963133956417406325401475291319851689908330043655092400609953731752173101510566258471577267690286612163172955270110773767909290093130961823860463429260866650953668143204826495018669679968285435423352961540181514904717080128018740055639334743869209922848691865992361635925963862994137406774155204911381856340633113125430541041710144945381316325728855633478729990107305421454820803167990161990721420438084963251114333345722229654762863922630231862466821580714845800455281474258857423810943206724947774113919175497889652683677695422725702755860631092511744923130864000043939950846054051291987802863611135657735877114436694407552416042056107336873460251680609895027058276530291826860354777674999200979226937776838300759819558188257260771220501054732305603943952633634327847709393284534834224106099997323539606302462220560557218932670480903361575941461378290123815897969045605699528314530931187120989128126881208113977501272345048271756489587820833909302430409724856577717045017079341551361342887918147500475730170964829796199416627940353322160223917295377940468743826397043853866407987186760773184455664271590424119626349079809420283880904846824233695385491064254618455712949496188928658252416746202134769219478225674614328502498753012669618198092155938637662654251386694250051572927002912595609381894997584737507566138535610030939285296702466095197681505588123406972312033627229167360352356371398418085158578922351754889384069275912093393400951888622209638874292431427023834101766314754792640680221257063581207481890797003058879824571615892811264138229413555177671588932375545623955332471505365575119147706781175917936483718894798669347735005221741952874134000866798770834150967938337226982587420629032746410472061043450090829129134152336507961063441374796472342426750383486308976214537631106959354914790272014486419507704665696539721535885118378477107343635806807891369694926214920136238524032196824050267168470923547565651525707206800562831325419824397350838754307563072351633802327719468552426282866503417115561020136900362409498489462861748520431598874159368975189773159859449654760342830520359317963353472219232189363712376822192798299429342962918577250627235165651584065376249332554245259707135698390469294337388519406064227379595528284626568537419909419040306812661018939210912550965416095437560449001520374449263265113406439045721442397825268240168880861182671492245977660409406114046463936886855136669389452042182103965994546766104213411360917154146114917248668127056009491047633198984914562757784895447802576237995037972855323688695746264591014460528146520122193565282270031626270558188006444848280647519484284319837384513525223791622502341788593667654129734352086759385151731953493038640434321026070098297459265797882352825069007141617347693936172498784817956101929901220126274006849107481754519005413249961692553204537048156649730719632746172325542579612023116289020794173885084746992834774273971698769114130319454312613443181175173744325458485301734987186486819182056602211453960412824522885832325002153787619222790956404635271506162581956164356068297508803192806935218767000011865469547397282708810272409641053700382164025776766948952356826829927648052980679391936563372393068359309518779380308500561259098591009655972265890434969340759892086471851962023335638875691425313525139007211809860775786404077310268061453934640703709801671735985464859779137574599335325895282072491863531030673465423720466296183368192767830204605781526321939039535566287479369269255263554839168403802027160965682804141833724272106174610413610832699655260883600665849965118022845388982549618483988676966008650967433914752610420856805087124780969041397946165223213966947936604046650852134709165397673821600687216278744858563652226175360144146175503110914738983149592750120552909848681295621395565289574592406481613397481273750365831195932684951379903265508215579760165781715991088347168394032183334838995332995729225276735922802185960342534150598678856441192217739874858779818476867555102753881989196618648044387580893688469448058119090772559725439879631615266838079318391796889426402490622395396232505001993952964479773901270162973027364477200231176245195818760515757912989555823389242720578409275434929178639356763009274469079371611148273348599286352922195624109567483124469658168171365675435379820082117752370505938405136599806937809555425361881782858307169378445610921996798558461272355986817048581656852391917099660345993996037891290544733231181063677665967326514481962008463181329995990237579531372905181316392865548910520194824064605792736747431653000095618841903541902143583402267541835359028467629937040621140205888411373741584084471195016320734731872139406641948988133024683791397247459123068855197925111748521985131019878970407496445509924152664316178231605267744448503340937557880005032574781007456399498952062131842516824445368787311535602307807595384310544435479519424261264550057525293767629491512106793750796792199943219635372975250374860561093993016776149003688097521965331177058711188476194697077581374983795955776235293959160946921913303546073587722559753620692510192051810751446968012157017579944946420373616749857835137772732585782365675660446152642158786180992997421905835167777001684643577618249665795563044288215618566581459798277619085916001743273961050792490206345182188415118185090464878973279528282228938587814814177749404308787924516277810650084425546810538591901783813549618832410375861343511456979039405515121561207792572999011351352694533289192321488154473568420683830719389979767263268449046973869646346839704476242648797411099291008870683956739668988771166946566587946428701683057016564017400106650558951201139756750743457015925701866519808013678707151371572491638544041323381553496794082210368343636949046089210682790280977027394584156805610613578278397902932492141963472813416360880460197744568454176041173432480021731676982702699253899134339207729673947883594489338305187123033586605058908365658845626259792210100593279858030704484764502263810800197641027289936575048069205503060905648014394059303536036005051087895382637837766475363576484717470925387372215460498198979295892394353883666141201848534406888666880454032292229009956852239620859015732241313617373389526970188420986480542298969896880489802429603231002905205224348912189175059580813014256915441941838816719286702333582130201890877308717603785045931526531287957973610330737471224538072131936609788344058130413686423198120382345589580912211810747098267729794502818419772760532676304130978039176715616080653371766887865955698952077903904362107641065789367637437834977976973456700863401621519836994148316326342605644683789076847780110141132326542949249084464736039183146179770022527875344057772651541011251610143850156055093976088224111347177244158737604649444188915610319097476881857896847985178497336107992366575663611003831078052260291654512595996285011587711438256885020038280487378264808680034970952928476261871620468509567212325242301903504056254288537571377264529540049906334423879213820751652110748545566660548523525958566646010533184413276920358662609107176378521254221801968066209845178710808942998714720621467241778723793875761157164957033989991664891186337936247923918121148906294533908504076831950637355685984322596963637443336392210440199856709316888524410119883248349063093142133830648721514130557362354551241117374630697928437056804291745005962657400347244054860089944227242441675454089724176687972715228724607168721403324119325336901514502991409425476857591841268987437619464979150810092953568809079290059683262424295035328174838526440832337677278324828384556901851121780759365314481286182159374438199621907417602705482914999507390058373614681525840529122822839734939566002340261450488065759110990537035277398397513448536507725432405833071760335216778601041613511533721916243547870979860231935831498592562814276234984313185407708410318778121261483854430208808235292339036402068722278291191953377486486545055388344008485244365842970577967661209602583733393352092787821609789305482919502476888352406067967176213070911808485072835857491880763367699706917864376029685011278985937570298619536323022598718582072269409397756623937233158840359661734164725641288966236118537900911357920197649109218406076712147640992063692282748769315426461448555831549693837271007828759157992079466886441843748828750691180954763834964464696604584457488840044534123735548784065186898046517385832548350712311898101995054752278942753793584538803461829061404318095073905530022452659244091433000289615366194351436871582547100733744272347712158779775359617437814097760031152848538306738166201150659157054154477166632500585590341812957156990814004219329878364773483399800134471086546999818575870135497054127906881320561980446547641386207769905082845495199732162986454716670410495611339573224929739528490451562338398232539631608216565216164849489454151704848150353720085767123505325701662470340654307397123896264444433047785978232829124192967475369713356240236432389319509419690459869937523746585740339202050844725842101712954538402900953680592549374038207625700350920584251796852019007207359201562739013529175746132287420051622911959124129287277965439230187760471554704127163607819997945934977829690212774781736657981196174534582296941600289167575285207773413321923874275314112654427194081990245779057923182410148195543757188546124948713958963421945575387316652929843669335548360778731964372010501985531333169193223249151538952495880970317050202198875497897849869064280967540081884646945833201299754738602325154497400953538856530342057126915992505196595920709328594933349549352252728194007605217403173939522422309807261700370948811613308667761473072578690097971590589957333694782255216080270023784742653355918593161755482895609298793063165283233391349208682087782286695272530740838006077509946076775372113543468201172048597379438229097080721192643840649753703036585552126050612859347117057176735118966453508330064038626741832017183921560959809189096612077952686861835478104979236886281661944932015876983952092100523118201959670482687220711604416056232762167278462721733026302187872726009945675653283371787800860339233986484289994395322283095875850748357849732994421230336624430970631340301091738392273440139777395830436658129041564867878030490951111130428984637184693882129076853248078510201505298526401611836397112726315852477018699705882831470364352298236328369250854428545478822047862699355097758108436158196561688767576475440968713333648540869638659353316145835407619254791232128916296318865999584914016610327960743878394240291856678859259956170796552142699906483246914734575480047964647195841773161711184405961635081411656497720487675061416874189733894968231045113352731576556487640012387561695529435994959157732342457098911717802640402866591246150689222323082599909135929961822339399934334155015159749768859700978838703294131675042550831597407123308315598816727070981528807867999153482645959156327857146098564078669809221936288512296467786751935573898483804658128931310941024276739273205910428556945363074418480915161351665168044595648191791931327065129832915497539681516370279372656545283806117866431013793740891550802896220164027458686241203919763245804141758474752893980937955751433183904153349210465348588783370621660812855649912779191150020774736535621874358898204466183868957914122479525512859465370687045596068595529906871371696848565462333571068341491675231095212150492351649200708301150050600275041109475410678481890939344873052341849013875533436992765916843640853848261159927548945150305937646047843177693341313359589979894617982482325501087523376773311739208380366554181841161805382585134561976473604766253565199094786647648973712128146519400773500314891850165640614823691628666768609722632985235880489987461833603087378890050832471676016130186208290465363673668200438409162645352498336351255890658484464828214882538688955341357100561143962296049382156442650413213850564537692918050812349587012284557545523881400239323721324738341175813615399221392991976128793411977406559857966713115694891759908387864424579626632981547309358246319434632537414428843368727295212154079498005297387383986301774613798672870138210798827580716882265551087728777046910594431319321784146400784441500114614149493034783372234459700164642853812292092937796156969641287206482207218697654199456958790158996654534816435423040212775621937249762956280394667971767768665368409675408928628709676798913789354343808456690182737321887125713985999518970225989531015938928047601431210624134450180232290450145222483248333282469375592959971367489369624975520000982021439892095062808343812075285812362331043422263272798443097144261100309981275949218260997022222775147960125296433133508866149969681283055907430055354230672699306258620728801444903622554643374591657209469104653884371668597459249903477072926229270362883509801628597222730688170832377831899228425748695862329130611423013167286707580491345352517766577486426793993179019725731630642165289932890130922646628120147145719977012705061317356149537484921674975771644096856397335048337455139984384157616516419783084155503600423967212541214288821515183678123230035773050494133182774336826441188379547877446250696335090324328103492529660239705764081420265848531513478256106296480361871009207937028190557810091326020528167891065223811439389996565152334085137450292911061295940851098538870499797420851200329685878400287510701805924936628117800064318931469162911186096644143765683933877163165695944369865142032609835924326013627972514788087335360154395972681236690837861958949431593878658003852402790886333039956373572913808585738876902390354731121402279695025764280433090683156931392121931102803397218924042656559844170170955939704229394421271819936796815402866040843293163322150447357485007138191008818921644656017767517992371881898101213312018999618454975115347846744491507132648146441685353934753287634262600633462646974270294959117814785285480796396004902554337776835719745723894719726779670506202955202593846693694266918225503689035391145070243530808577133399775606357719103662683730806786702244597882402466202530688827330982176734658315168852215580369328524995902533958365129208166935550479802921476547445678870848465345852270815650475933440082615278907667273852201292494574504625378817719681058696066694178595681320776880519404194684621127224496993729582932825026630764873062152453485020111961153803643873617620343884821748861916983665235923684607570769315208300176187523286502137448284403210007448796597730640665473607989413610013504556921862241857599877302496124522642284278404531925049678302627956971027183535126054593111733010685029723942783901484230000684108961356811414486597264367999263857580046511330544885765905753268977691431832661193997909090596958565153358328601387543456911847411003834731871092265391262944041418028759233114874343350990195631929010266545701125242559613844483550701901724056119360257553857894054546063913476916016458697398630041000828952864829664790173297650547048513440332862081234886964660543423879342611880707216856446558186235102835370630041908785869140073030987933096325191152070638604512489711497422951373543907718212786941810962316652817801995624688427880225853288043666331353500186878943579093057022731888639139093917338502374179526868723129033828698614692125169488382767345139850049803549826939890060676076666093798277741830063350492015178331394069233546441528256496157490947727477146398217685354817717059425303519353839416535484502386905356228531156939324661149445529111461156742130332410762647892004961131070235245691890270867084095750448394400186012909500621988194834318194855271265492528122783064288892739243095119499062132645531386686716392423640445453774559381747707852943567775923723352980374075818574749421682320682736291434756074256839729359540474105188646175456986085760553662514085925359197922842046625204196982535944936228582823411032767120936483245255548448402971166038874811466703155896443862299072509177609320659895384763950583088088217485647860666378992556847240578674805325537124263064853679261742618764532888229564686470080689641213175757789820423899483223321028998701580825649420581501656800080641800255983980928723746379858177419772699219946661695505518649261717313745963480016084303580921981369742316758326908071098153328367023580556041640362143011128190069155430733766719806776363865539835658913461018775250249841072469479543459257886403697731305481822467377632401858077850774596313588566094224344071431085883654192425760922000968281716078502465375704208687257047624776155004275874534102491149419247385424917324675642114458965431661763273997828283540507726710862850430481136318141921698879507137753606117626282450685746399838942804630823127198753452067189598020133488370101331016167499724240919917536035394615538721913930896935354310347595302016495613329538473868834413306159642704816235619446125749765103339891557674547685814550897259153850442577302905546898077551185259165587616244658866875813648690835635492334371695975231272880564851648545721529095598732623029616068051144522921812905887100355320709430564687190937053802989348188724780276198326558218778484937135638232348322340285885714175699500413926832680958933117673774462906353025114402306582894171466270108262054955497340251840014037485339847781477071075241138329475861043127646207283479210946448633872280763485474352778925582748430067310411111462639640800063607799355777445973171518174378580867337321569670213663699588277085282265302199822333923349804171093623936094957287681593673434531609376760748843034410100807641408304043774386156361189730515000291638182398912425887738706183165034640972037784673090607051461661757266382419860301975080013822491643330111789501706509784607279376239101070738554696677574179293033319459131823584246919297251164871922376698700583934382388674974822216728096562011777973461006143890785083781767858572916052193437892324052729241074583571213969300743435197787683388091024730005731757719339427050636663251500838910752995434423169189184112534020709067673317131648985419917905456238063513937846742626791845312235878050347693399354644073987356683467023457749744700250182022361533610543832263461421448179763366911187948766585614072286171921787970805919680262066555114107447266803789689506687511520421444522352867922634355115345092914309390376001666522370694042779245038675472211775802496104328511362967554449739308112984340128704578488550282371683260297595637473487209056293967768405743751824433509035251169849763941786344320336702317130121067994772465765679270215848768407340315038811226634191181187293983348258749687721141917548810918048617109690505813550630077183002800434972249336032054462220839305735148988779827577650679348323428847740981857427710559268854224691637760207255467183064788040508259602305687201976116680663994730995808002086881546658285722221117583295439245665345284839890282515681179002347280189355047896948678762014528765237413818164850313976931452934161687279521473286044982397849207463457416632814614860118571248149944408341543258159940422632820207248169107537840646460076713462741221634439383240923456864431540776960579160984144794258635084456051455878173395530491228755328430693703765255507290933581837592885519245826284847352180862493229316637006311817165997647901979386575086065888240595499751707521917700460434493433849483733804749771721419286660061419772370121768726252014442471237065662622568615533872085116681003834430939017725022267379201928298230821532828778057842037298436451263018333468712169929992855709673846808454251767299191529451203046416177262653638609529009505393930591064641706339176038603677825932243091588112621553768844578139423708568666260500418845012114701030415308305692044000831840848336089862670024030534866854664178715932083574827114585113105976198896323266024897801919220078238864394768183527646068693035935708000540462771050253099326037220395380097313627953847821942995514948554613627983893949180995098958734142564022853705608503029764814978713163893193828469477607480634977260376473128235132306524194742492894894837565939213323137223673787832959785458365303188295306203127719428468222281386681617416567803897258947265849021288423825272042756383966791682523487540091821034291862172899408859453815831316666314217616313075030609428658371898726006633768045869598085406683722963847138426692978822551971717114700433230936574177168384814598136044660557888379963754923874257650333352684726088295812411876424754072993636893635981941096126134276242640489863089956272967182663086023919750558881889637735933049424690584977209783540075643732420940755022453113598132170516909672488323307652553259840655247306260076480876809461042486295963699010116446836846862838377713277565312168419692663395184819074741831422875703274280188458369937881024144264879542709211106270453873666890570098288952322287738173315732028236070686077576047230200385809802592171687801927462747000035573672400651866006346972592810446049989725774444171769605925771042758011641442275131822118188021242983842316017448888288814593269229818269404184018194615357627440541761974778450972726109233009521670601023111298251304934601847970069334464083193800287335129414011359822338754978657946491120793631099814377828196290358541482236293608050761697847562130135836644375580215239442672939488596029204878962887847664307699424816510339282397952650444006712079228039747803878928432225762662477182568377824028395037810962081615557402640660048334808353938523796829954318168259777994361550530529106662099417901061933324126873501709472972808123491659771235359019906062160697871386845878695305295075264600822934845769598113104517343398012471862472813396417599418459127551006065202474747317230321123138469110198658045006950595600161395526851174800360927449796959346046687490413022170015568197670622898025474152175797512763759961350836027255412286901584198555778418447145923730535033412685207215981971175368694541998280321643817615734641451088669702638887561639688809593767584650388301969092722232733143942161100604182206191958742336371685537430654943356441973229555642650191561026240187221565110626934114849318576587375917916662686816262077100999388464134084769779769463497880786673319948678363026147523844453667071338334978598273401959040858045397131192844126247611020000647435416629284881933850076142607223960969274967948399102025622718600474627493125644052158968446244141741746295722722847946994175216443845037776191751405042982308547513330690911624288158899497888702646354592829318512837535407508676689891464394274627776169430103438683263021623037752878020810776831305740809641515844398717099655278433378818157517019830848771899822192641253972806956364152839380601981748057198425488204151942589185170357968059468138790082924097875724293349433615635642694288108387261301360062425365347781417426257742625476324638731558569670036787643826047988161232432384715347789370569896806250724099727519870179236008779258549448735481843013893522315098466450271228011217168836786357158128319028254280063961840851491472633177541804588874617280637930775839918665553397211557681867195905884309443199621647867830300474345795394855238967462764956069319645644513461107166127967782556580658237294724215748902722946563126760584657001706613117343400455173987882960513038913295004965210969879974379777774011155600566958647419822851224361309584273774484549200749084899137537033736256138313070161649019409968355969464035162012514901805995780760477608862990560583514951338952796062582487835231689857317193922107045487775986178321489266401647551713343650107445342563258895188918623515555337439698346360582583023547469181324116206633091471926587694214714207023033600224891556017547861313194804280839996736260860845640262121354515695115623905559543290467281008062236994216132904122036022664574844932138201727739996109832560340741272580366391460946584172711324369140613104088853829789597475627516581734127833812384578283943436931421703695568251623188300805338844990154942676698262415074570019541423680385703268765307013881456592153618318221972791684935191432582757254656933324988009443522862803284734135453360101784418497448818782389250089118327675869433001798807053212461838326461983830684943864540827269901781812211262450686971936312313141972741318893697284767062218588904837955308632214000961800599902290139855522215801172911813087219266791606091264417234340451319087013342896459239973896727182624561405312654417964140171832959690146226621354737771416377495746193625227684784496713662942069733097947965614383144358564089113935210822897176087412943916208023240601500460235426127941235099908389900096892363986648723016005708125593463842204444466635336229402652317100143313114327467740853746966221259164172442577847684719282565721936490397881569112675959252068905633954598127047501398446883476222566466523712806018145583176296846943596392590205529087647728614671898290648834852497261653206803522473170990241042270174314982615680409432848319150924680078425306533207687695788635625742342889554455428582532371321457282798228394586196935503089982446334258824638101572014694540896444444785452456716334738997752081196921809999333322746134445308731993498735386519025600215291239312792309557933562680070154838106852042329618858205119094502699943130039551969412548250381124072596294558915602873715653623444518684228225162168095394388606773592775675872833549292530578002389892421015968015650470367471135598250790814228477644329189039359540214521063606665532624527008073395820557172688685664134189003354622434047794152967959840477146476243070602095992230697098242345895806495862588019803084356467148257691860403496538750127798803693890338484075101875836917830146264966591499220306548655864638325571908573433683370540459888247429360081529811917806095912570325994159280035335179053108580437944417030508903217637378729069316820832124309884411494321738315416218261967259476010135052108917428881762888191505242645142434115846636575137724977288716430734910781676630436754567956964089737109695829992773861660192592978163554392802343361398512706097730582988081113308198117854470803759974784536050226711940272913943008366148970895173352545233534758706274731439922572412117608219701861656768320789863067453571308353041205060910401689286099634729537019129534736124891160881159760923578004371293543999248140623587603180715802322649755418693286113113983110307245516014520953734643054269272299561735489355364561577989943038441815146362973090047541953823800347524685898368078574398595198141077161777844522358012561419315773866594368138078253090502170283770157944942312329003033008404410841113793049759295974292286917859621042560715271150218733332609308473411633588708200301907084448979049837946837474282968931919449835763692340318319113196470286847497971640574725600763772960986441939889398933121563337068285957523337391177735980477112840924396969771514708851019363418711304922575684583261738203105609059717919819873901065013443700219166201641926951084648051607870794812294632830820231203698183322378610934629030495970616656876367920050111678032772676009772127773552810562404927278960729337930361883382442137053199450415357975401982263849470007820554961031924923389208581637281797771589902750943870632069893606464617252544393751987674884338488847324704062131821171553681503062495712144919742302332296080313795328622503057716517758983593570325394427859893673338548526595462500165132461468971087865471656204234717418625057816774276677691456691765634223450818722808586067017019444012467557737212017634809725608629303083841274548217493942095838273128352717241414879601991633576736639099454426189212836628100684997036266885434890615163116377797186225376259086765740330513925674495643959844146190343486107080394358398652675979803994345198658348244612471717878991546217200338855739783073820925324990736308077525802515124880532075793274718950869127797156175291663495039729713987496940393694392459733623466505084105156323150549326348855659868596260295016657441445098613466482677653369320593897970447607803003981946092812200658503377640216060839141253256852520230981853274469914231221466676200467751715758878806321453550885498523785600800021368236840172899770661494750505085957547866115232505089457808585077411802343055963451918799455987034656172660018179088866641972405648746352042835825497555987572229456541924959297676388100347714162914152607087465857823474747013933855766289017135226742108459563702727641055148664340560353206592440507521502841968254320869225785835352273219408911997548649051086802483169559883705674492220933485489293637765064086531905921964098343302261290677377492444001124334591239618076397421489036957573993663260895783195527451869845246925360365735863445638355744725286603363440159475611745926536679119231077965092992258782794611570978180013178625230386723693913631134301256603927454230070288592341436250760515135761394004937064873218285025430392423755167246063168332421299820931701750892657660535928671838887009278320237917447719856497043507486352019823595806797551042264500545116242238205004412495841747010253555967567145989463884948437284208968172989042961890003826069450206763859926640238377173070335145389911096917791879367811716311406485177874381133588831314041750806564366615885733637935333339838118378342573578503015741158935108238898539472899289300094528410381885676048973957231851817452961880121360066139604277012184700167480808248836423136096647976230128640594914651677635715776992545312911144243904821783236356745594787004876871126192723947188816266803835935902008752268193000583666199159049681212588310455649229646618648059563779904778813884840776386874072015818499721326765137864774875840496619844038122504884637418822808420155568452410707600100139611602624869810431843719219993117910378735266582756746337224182714989514526824391641565417411048984015296303623738533122229947881393114222857697107690767271359963500683864630774583859717169677982929009090471880839635944887668331292896604167033157900982222063150913477214376109758859957318929383497828003548052384128456065600086410636135837319189013074129081203224766610292240246368469847038639071132617912725671032956073158389441325472726970550650563110164123735119778006884403103908625973365412169778268267811486121892505566298362268183911817867427076932782012472026812543000696042207055387228558654157874518313877599919830049347538269294259366518348205162490687845859656685792419791481355467136477249928130983439222225146546572158296749693721550815509533514974015005968002660169145419529706883518482150461426928626810014657383439892171944260231790499567125695113026768019900702214529650755213916538970327531422438039598895881839263779100459075860719717928911327428568133966302084302598157698708909811256149194174884458668159067909216530165010568096382326677021149989677877122140126164986019899392242860263848189762251078912730628854719937063699730718221854138293920606490444601213333872700128906465851578115708955609384799379634400187528151944180714064817037279318922325950974915411559358678644205145225895586025670141703988700093075608391945593845505616237509272687226785757869412731843853967246460302444471940381261035434913719422980524759045603319786424206767658266105830342096544423547053078347572214959581981853083511005228368769518500584980298133904729511530669704736801208816229497276589155467040827379409782117279370937937479237729864364509024557074929677022995125577097475520007667987933928871612830073533269492587334875548444947566069452606157949038904237334193317922729725124782589380253091506102215775643380698782450040919328070085089958334220991090398161043867928221538011985691824167343297268482298431293301624083256695895173144785989549564311998902212454815766325241103985500760570953149970025906587511081969883377997203796026504339044503152387587596451485507772676318247987513895179006315634289548904404204118489232316782275690933149579650418329702067400016014462276488851304831022672843860301508193067042598994417957655112593763779903584636858447443313148780959603962167663404089641795171058471192520479319994282531060131041516876229592479310174751965292948143552144014932285072491049391205329844714814070523289166255874232835723671437243749155451664287051200887124797170394182738783055504148186961444236641744365770410594250342427303204659793332228429006774774765480941129288180258093535794916850725252648814879256836696786454690570306405696261281164272298308886197548228831000840261625473633378140912257939932944365579168795470850408200204992888657887265364247937519179133258582858077675708236960984408830366564850166678849025564696906278037045150485076496529346790177188969315417480669666597227675413892050608418715076470843278954210731339652077892567213553651262747077313000100929214669953354323702574126305795073885456378040293753800789495244667115659211028178668051854343340482779489790089591836918577167477650797550006650402492257179229253654823344255634236260063728351221636126731739424604951667073643813192414128033381493707201064722587546023882521002216659398264598203266782275080022873861038355080184291562584722941898497316458553362107856700672432768630134797211449394432616509667333201238343120153610384730227625229540567579091591084317119848152823257744187818442323189776691952776882717666157430141417208359345992504758912791166234888740437285842316656826619749827920925462104203615135240414203106430744224214711397270368284305882405724257582304844741729728097467522932754804663614832072402557532877784800857097333818997484726907534876320134836550028093095082054325991726510307382431124436010759384347013755933627758430272011460882522275940373185765861809069966446635693396765641626140369274236323728409059223699672507358386204373743491126013584940859947833823171582355390355868578339331430593718492218098284018363752297594289249440576247475465476721761641097808890815976281180163149190215785176799004473319238959701719800014706708171476660281322890197609238218199431053680166104951883947102603440431602319542029291712588772817614435997943511645292675788120497364504978616881373963751856978765722557161529092356068217121800271008372839752872770891658495385023981659235085708274998229030865918413946917549237396182725833801853923345926591884190822092886423109622765927310435738995478670824927697359469570595547072594936648360380063767270513906580174042827644422356066406811141271375588070562568418661802143423402291780502812337137156798110082140798675202270680703123557711844016347183130068170965971309034319103472911233919918449193336921745650909103963553603324273098597393838979242154587274265204961938914944932567620243984427180549734927260399915595512228908963733377514669155101893425653037000510107879648072139070482907130507485505798239435964024815808979253016785007688343338021623508255898729925877985025770894428969818092593620935470192641580957899707424137058820682993280150242124827410525532595909674676733740329748868238245934933549866921173873864391499948070528436429517139194013537850239531711934790396504433983257918254016861329469243996553917183198258354569572082776773086837499792188038178604799985203962488950030372891792254774375404293027856225705073098958070052247742331303767092172019976989477064531135395030630882109014938286329007673748353795236302474563401990946876161642001356034883749271397752818495956764875465941419211794061386577413907854886458740790708556182690310602507453668065985193314751959242154381289227044251800251801179544869565621150534212953240873774583133804711126908059861612621232733254230355840357628601991936290601708180626214175408564119940848329327238760132779000510230930832774883013028104488496902633083767858575573088064290280283623097422920264598554034344187503077284494725312573223833443140615967125786373353222712594490800564278257489406433435566108186395834110192991534012903371034635830915800801733405477073166849140358791237112388313834452345671490343899408874143789693671168815565532472186102237888951495066577061401097869602405446253479841882380160868001919082083877984336287064722440596837834324642187849056226684511308393485982626451809770865450631439266640747067414153313131841843238703409986364629210209406141806225321816797617932563258447946003233374790162804431466936746583123023090271384766709110187489014586892362266244428364814810770824230478903535322202893215097989056908885519364340752726255447067069196807997304337272220041538267600077479959038472083064727880432729645877312814401793387789005921173073785284979870814389617528195245102218834809877335031859201087618670459600344549088476051938134634529013913168122982706208363254276407982635386517575343506066581391131943532251872367679823677649196425398525017665959095335683575935261691119093030899736732324720812059284450942476912023452513588193533058806133164913071755245048957809789853807003812197877542013373708750259857462450463068720140611111463461547045182298566235457255479247743121154446205223458634102655499192812468441746865042969876279875329416077399060151976581426695679594164988734990223206171002302771537703433386207287626317846372263752161024145032899191619065330390538132823117730630873523837754606666378427301014340649471150013203582911442787948836627009330412489232637552932037890263418272746091753699939915829609921337638141869661521045851610170116959277462672621195311808515983477496609490385828056629888676377452043540172732567540202215258977879466857635768687636447248631993547064850653016067059693419874767145264423290639483500942484991503713779963304002012360411308774557817958015308922901315076191753083822516999673603201372770573509054182000689774855455321203042776947706797584755847689932821617231296477877256682859441240536111825004450384857503874169998080834614150587804404593048191211048639841926760412717706481115359321320087801429920554543937510636590089389453837697972154237997084423185069441771457057714974624090518027704020025637734461858907874755966167098300573759785434649736889637458289787940122045970700463047138011863888751460801067679740422490840283959377666386443071422030161278215149441333780561903856774046408219622041530505461993795257601971214340882536277588591520108469434023803804215055572515626265715078404383231924015791369245839323185872662060699769497329914997029522542573663814509159083963297092586725484732030530821071651253555980814452399317210810710262999764268821475087635095471134240126331229836500867664391253901913354936064232899794806204764766581324247885523183576877931354231785675444506919275468862912331061172464899616006535235259198834954351797040142721926028743640129734547884053581303884364610226542554553345030131244917659844535766391101281313031664689998834941428560548110313012933914856305117853764566589818025947469104928463625908789528276340648596222924203704975283144882166409070428463489990420373223567468826441845417106889109160128171569576825849248440927581601765893776459776137298051570248762848413132741864292015181487382630327295452270184581267258438769777740655902136237859266421689857611585933377211035947036288562173701139159993051555460081940918477497024672038390115809015974317088220274740133439148014338617106864556626179368520213849898491996647288611990873082051556781342867891476829729474708646646461100175568038690917107218716759792771784377517891533772619883129998871604887359645521309792137899093026242055602829491881830217584177905748965053989813066323364676244483227638115062632671310668526063900031808952607801374526424382393103956834913075421025873710616332855069528354915758890844570727415193075482024187001301117067751715662404571564199757931742137706749932357412445531786011279621087840399322746495701607449402345281586136688878210426981516305204256768395535717995692451866539599134445035979602312417149318045416592788408324322779560147396852579327737310583926201064090321014347147091348101434289791423937273379540656377849250359133695762508577940137422992078360439830654251262973387753958545095276253399878057585813109286491954487086409149412730972074063757106109313661825207879828317222013511576279072198458738168153557905180195570187461137943323381353777761608075306940070002457683062114688616854665644681216443782438602321760317093330079739246030468150555519787497492334297387483852805955027493391876692589321670233864439876130405775863354861624956294290403772453026571141250881856964362856151538416949102787654126342192828875599851486305610491081464057949038738249856076077539089027569636226975292913837878612839416598179870768119930660942907261966268850930363185436517800645442193449941104018229316806808501617209600198942397814270691553227095444542681431357967764026608128050265498000341492458963407124166955264578774795431664003697800046771501982141083758063620943299651802555273567415063223115794553138310977377323695563602494123369143407553402231823955966650361830833578637150542355114336544955023947262085552402553835050493158089535971935321281727578091397713034586514317174357187154540854725147654915053622012824974839338720856716869311923186292718896674811779705919002431355212709257391744689052860632510922764279099117982633082668365336736066156554157537007835956924458601710602025205610560872288729959185111010283319748735996448090191826848369080168814942615999247315360105809398987851207843164065501603297403560086502041778466425218134382432805429511056191025136037166090971242766380697150283962234563880717550132204777788491777729678141926190628646020731889913939869363280963449130219433147295764507907085393185054799543428758512179048156685342595718407146288055227583904891185613057953582840474466535438160627166501219853239229149489701972865699536057627797164043790580308485884991516316589147962515425067101797805996924537420864612340152462372499367410199601388790033888427595387496374727813786350771210021505235466403209777264040447169537838033089781129179148735683819652620754791287881239623751986076717338322255849068578941223730130133425410820247664960394735352538304297137201259621043332693441775075525986854776049637400642135983818702551221623593901418438253411160434356370616000921796706326327062013102802707238075838453859005270631641056950058597093756628214332917040318073036800522017559677286467859388657886950070697035139041136990295397945105009252328788778350493884782104820172479282509150664757992022095131965706946390671855560906893969695639077903229884115151232830800188694063028854581659970337897444694217025359828959917353170921441716060032013706125398677816889101086892613901962973434133036474708070605895407299962354248378902686014930356368665929695599061992602381301770754331047084852820794222070995232844825905444652350895316332883812921347879753389721509481370817664719095615748352238194030364530549746114445939009211246051742636109186716794466103712082053336192746779547410110113697506485811206366107882275600208974360063181629372515340467744132782094164302869695565885610980312049307129732589304732457700613457164077938301774158321151729797539708652331378928606479321621354504152837262468347658347658880305803875363474886865172985579812062814400848903629277716541531068089737248951962264855053713761569510697498727046389214296699123178373471226156761802655728541612740448593798585303130772571558577056638519886169527104856180703899800086517811643307449265412789077050990599769878011470811546564304154726459978415854466709638300590240294464106394718531308844616910392830959009627948713185046803630187392448653940461812697538591622692358271822693865074341199459097287292589215911128447025382067279503543257731391851354022602730298395966544877860109467248254277867632507698634437189433226860192236504763991644745035264243795838218234405507072492618900015775752757102545152256150677029020922247971075936367895733256715688113435339153897137893814286561969395138680715232877954895297249774469581233823815123054351931588714723882076046170099683093426364204188341355254579272072533262370072444798108203292341088030240629161066330129922910813403151317477737006583026841012394020045367840866814504569239254486889568235996333999774481087490780588585602703075918370436652287556141331807055935080894076226337604659922225843245873508805945426312279288461697961622007303087329577133582153841717325242599625755676175365311003083310381424756868283467886456219110728528092259871942418321114572214770463120937968716219982010777297914896970898840354964247463624945066337300516674708885901507420539323671746875173651667748892063311857112574762324549826684184305226327390729704832569409041188528808420488310189741060776099940788972536471732786998325093341209226518206495402898283400482071890906760339568969017251646626316749378484325103103473561986355422626526029023459371966808857783411380469289759091237179573766447401155915645196430273791830227202637240780346954343258914935198436596814143872312969686349882022011627095553502639076413533971842086407433813048209410907990940391208244471943488995347954713070866124829218416415074859695281376761300234387010756690557694748795027794892211614675996730469182640718977959128209030193254730653903548896963807973930580387741290406847355809563829510382093702717218642699045829727841166486125394244532113217997169110842051060273988574444540247466024848195499621759313772832514031363347611654453779423877615076267025289642491364627326900126339456580988004034835187464179830107946409327178335885311157973234918951504924538194053712387379363395456574283692811618336899656734851846229619401193272220504917289652571646886663319438994793902306650131670929835833537175780959404042800170205562109951625010737299464843592160347956037761107423384509974613363682434726442673038111180596906072680000323772276470929548494734328418576246105645346210687283086327327938673501206256633156778311248256566086075068850887707594808237673846231699286551393368941604200216346572358836741861714374222068515709199945094445968442652130311584741672369102157361385999612934590595697695917861189787195996481138532536234330100292034941230250401242217333608699850116877620031817636180597500848647765413351842018245592748187294674755086993588131555523043372209383245947250017965334191974357220283836448802041413099158457380394775516645570982005754400120914008398463397610131533604573046659271848844987571763070675917087053643449840204675761459322035267504701190724134456459909673250477852441667024633057272063408387374247851980336592305286837401109477765118097615651473165134715135191465201319099688169817556363754122688698522354671036951609947772209350447299553677230067626006571039195375043468929817601953891057548750480041889657647746813238572961253432857255941426926891558483982431853197249226934059881843425209093935840755656742610513698901535192181693133308553793294034773485269832623311514017130193964288155823630410611630161252286809172489723009029983822419449722342215004400276366483493277853303328580189267243306957984478345681109098324128549000790570208802134447099108759152193145235554851989231534257426310219162314189397157943019315101720080060306986019001952922041862987933456130570316179231180006575708843772573498055920471255302065851907987912898990345084917038203583851672465208045886183112612659558898316294363842165163547498076519338573670495470316229141663305264266743143874568240499189670979039023592178622608987684436125154284043769738469678644045657198965399117401375541380769651098244859207083369739130713414231243962801414833029589479026256702302404074234383094651270408222391201819653406980910462262548389382807256557591665913179860133075341524378806937431195352268782147013696278762808415857072768415229269503502644210640720175341061639586680965918169237466848472597622675750657608652867238750027073290906827387216613803526673376147373061006928289168699273539111233666112481342006614678876872352081775978292395967747382643181380672548803456176415412591240346883405652541436851079966360999479512025895979444821544524932499416490571277871512879225245914463484406267730518993050134935292820873804136313912066582623485688359498008316682030363063897965792568444329678649723023047394796578142807959910605281892719754972231719883378532536863230543589305990866997445836417873285979273550386301959201713928930804058571082846497660194229639948029130977724281222872002968116701078524224503929326625175312440660882960042066579778699243134636919713617625564145917809499558314138654385631948872294051011578161622430291275044038857575594596431197881135258603372317512596691235887375207275591084985530419403711769204277546172611737694996080358318789540848004423060993395822281488278022060908530206232853424851530738368469196730057376714398506172191286697040179610577003755239245451642508720951429476404765765471168993950285447873863646818751930126982911262702379661315101829735363569527850847128315998859225330134793004659255768099885826559591575283844693046522210313782279179648655838074529774973724231396529907804959584599410926986334316332644094292059934032387748933426797903144951326501167095179037637237738480991879184209471170952482336468413766529213503918337177212905650349348777958843000945531605399415266340405127680441456487835905193796856947742900592606606712946842929095983304685313118526514483006576185940914975817464848159111641993032299747317960583222861958552014896689328944852039047688202900193007337321276458472319658227290412446293475453939993098179534917761456525877743350338938763682120003682368161311037024607707372633229733645434788399303787716585565913040019667312420263014451757038980813704813437450711488556736282181796402390508702855012909477655848312334088055425888805908526793055037535274609221467078185824221622483736368111854061375686772517516009054124660728606429771539479394393935378706809840412878114623641017482695931070300476405584046267084406795521153203492643862668159072482420696308511998983549903128782616268741825391644459186498218473498935421698936059445087302010420468214036679791577610545704972928137510680963355704502534240841369651300168687872336115350485315641659508017965195537932944241992640093563158501712913695414827983080354447542652962403928334495038295874674983540072918866577703575887320490462414684231040250151037987966398984034425659142105010631576295282585461007329632797101821087387882522732094861038539694393358012825129836069324784216477179891284685710342823705375744884580313845026829477313207409200507390603462766530071708934890042170044780505125151945904762617753212106254629901595991163999717774194165261635866590167270458818313276763079503760925089194863594362759133709422467388483887446600673989351141159197143191976349101108483006526857383744431309393721118197082272789286661460362570476434720120584171992914904505909861735167789680290088058314587107564491776850471288556152535623111245902401363132347327581100792586890870147531273854662212282458199599706741956518719321523805471948074196966312363478081808130513029915703746985064659414669448130967669207078135631905206898041743501811394213587291434309409897300524666210039877376292021136729516746006388903447463185988953256993380956296397872750072486478743102786979822527095596306769156828012941459276281627932772850715482525198331479491361447530453494184760337013193909804055230563953276567618618508807882763026290118363833533470863444759131538045591167042604210849889363802391762953553833760853767182717782758553394047618391383548136088206944172129189922804555411178228378233636873849422503810345667662658448092947262039530870068582618208250476206333757891489595965007179081864905621039033450924456595475537790193054027409667888006727738520907663661539450331689956305584546886222620561142823788393913109091057947067936874921850199871469312448757466168108754281790206238600084614882920690250842761662916587235084004663690139657158362139580538685335292161047898409278358786844483350316248210096128496421789792345982064175201964105672386652087343159946870106421266548530741154628635306934750489983395359324511156596230914102556302422882617238739054324332635213375708382892160998436006322087535613332489935622630371702835357887067713722995633557102988305961082456047415865739846255650070522931028204230480266748421162683581745057615913038383378411197006832165424579032252953494834321161014685584556489727234301164948983744814815882982250963111340342603938716701473787431414846610582585231314841846461076349489359788426869529060934771555995157275632040414637029833866058878229702647158874016628218715424935061934184325106126009989567421804937967249855234370048497848153802114378475561759647693391829977451133718723766215184606575343187610145161872013864702803002037400745740712777680985506838458739382216752781945386057972417426042980511290766395180526600698199744897256520535774506855125068293296549506409623603567859426232097844133060540744917263634184723556975530782123242320834916778825174810675844880599182180992740118801143843450265845338482176025700192601862937477103793001906628539922630023428605764436962576357183155989229808246541592322386671376237533920393931600878806707287421506531720080544200669481457380264238431689259694669719129573374118452531720981892206651083850288167106728393999455516675531629447922705298537091218443502102123262817944140649750499667747654855096280931214074003591898168721984927466325548656716271102524588450994438221336709150681540669213873637103210048108647740957248943858457042984017735177237625850213640556186935502122061233946488898764238290021786281883412773196923762769428691933749167459991871800825488263908817997443635024971048450994013045718538159756938059836228140320605955804368571481043961790188891519187445645067527110422309731713657829435212953706946029449619505468001148459826628360467469649478353501032523298815329200107745524277357185606137335062221405933273637986872707071923301670546804255001945922799345227813321740382768439638592467840502825100837655100039118789237075012641907735160239909939515052956797591799440678438764154014698475674426243186390493575198815252559101478303723903353189396814365510496666230442918723686293371906847698254978825284338258335442219242240193763323848383996042117263534483620528183443234623196970061753809023271590826959520241236864797427901992227311132405709167054705290487181582448545829184405716114154494758688968488551857971457972984965187863523127282362368805388890305616532302187592340121108998417009053443360608056599387820568612815956773672296660036958130220724855313970749537599142148902992267163428611312868740520024163320550391580595945333165697792850995226755854841442372751808828470464906322293327887817104124677589077437821454267475977324719133632923678160987969555419701201540597396081222781420342160346999340377099178726081565994964524896152453627714052850849251721976419543130927993957205322954979500756133354881740399699399928671618672972313727956206393588895127181224543300300220244184529799587941942540439886656227209190253794819667859011002524132618379537216538721845654940765404214245027662656590648769555562935375370278669470459537332102695029539159674968084941909273293797728895214999743941935279346433423633810272723264480608469263126327582630379661183356788211854398973902929532231123547488700278313633294055757488707666614329132749281832347087165512934870803169766011083269239043225953418479194189791615090989816897906141498988947554247890352642206193759015294086575229920584616858286743968641213270736684842854240112072201484993200442232389904811557133676760625983721022231195486519455276190066043319867114571509117903236665928242319596824810579296901174163637090531747237245361067247706665065060974423401309839918043930863204976031597888516989464644691072168322607230043900204057091766437194546270779847238328938275139241319006282306431375173357848452209081714551831214833046008471734998025861862201111496378258307716980587891365500310074146079465997528859979303093615253990824962305390779903029583908216696157517920454085394875526238760936658763828637069564316796678669795609053280849776650709826920543923562250678689665915525202311770539471942649485682013037750757141979856807036090430667364572536858128719400647262771128719290357481139592313694443354887249212324453922342104104960367917012325522502050480743981259825652161743183250606392127513148798645098868616474699936432429209123593097142988335882680996574675796769561899556153332333960403206713235148564000564681509361797746774283253344927423435767066439355311590514572923863983228420892065420560502548703893356893363019976127100780806942574480722480461543402996226434250848124273704476358798029103219550351353729785749297856639791811590391869189205436865039002031262343538631940659847797849429316764496249988019653119099211631425184325840444467483199374871846482001556419411463116490147104668973656097542601548854080676298342321627323862858818507961193726384391117668109404069598539401436255893317046083409793615177967547719984553445807949224535791972222369844175562524802284548501511237189458124425955236530465480942600865655931294745828586960148651682471717588801142332458030637549290313140804665703067216697358610875899630224361667083152234701760696228286092090544916622428221884067815057879983987338152318201486309834829556487793654394105942755132201167878099650216920350214602219674229049775153494387091823657445417814479766959437970656961665118548448169167209639889085649213387499099631608503770676374882529337231342538568105150355187121777433948608084239041343381374422604195712670608419900344785569432698666166495686656320194635462382692499597189482012753205227224811523441701418902723671330991404707141816123399214875528530026432038628890366497754160320866901564154012488158454794186516601533303999984302875001177333165794906760664075747319783129728801693514694834894832138062473265349508700329210770882679432354342420707237000532598411652509162454336896324897897906533480096456368179842626456265663647828159277084596216522325450296263005388546565992710379790976806438155538297178824673248512660076440890620596221234796826900323654143673658745894024626494246542564745235361264208087377730781908134747704193655286190245112631616487983901614773590542946606534830244669413073291991396199736649668710213053746695782042500807828414038896599032912816118699682604154858509630059825280779899653268422540688793899463616420610595092410593696708767658170947488248097081961221142448239959781752643326597812787011558260285143353099520318694409550030038696799523804902849817122775195243344573742065909028266458372522044039769789670022545394874664391709196302102982196173097348680116808501642743080570653835796524367384102289446466900952499116028461012354480856213929645678886452446702825532215883850446904242389814948226429042921305907387387741827531346109687494455260313860978456016545517506261349704319370226321427869813886856225565528452961553431163603521414602072151368613472913502666559744690351295210205512617424944496655597233773220940369377724710631310251422310192692005649690123713676235163573567900009670759269426080055084517220296674336334092116156888274834432071573570061666306285905272427920344256769772574463133117981640474328732097002582691158985437280713724541633569765045679255025025668680100621032448123885810771300805868833331493960531049953353113990588348804515916845656387472680220299518309405449252396459510460351023985352967548974080859324088709035395213388000149661201184584313625626745327913315966232813583523914226045678423107733919965870933351564494124246526952379290983320517848310325107372368972964589138978971592341329392019969248215530420030312447143521611187867053209700528401641036950751265034691256743870939217207043795340534606224510216932738227276559435183657004071403030862349715612846221761222662959904257846969938410522783965813809475552862455739635225889074871958679850113239357831548728133910792743315108589815591776722148843517292929539569056017554157500375830565377608062638613645063156366540420440787704145033955243855080256542196305686502164787032919782713773280419452434109124650219306313222479519584142360864240210629011333850849338980149867512059711347312175032741225983410924665427972522027778836132655619054195026233472908824183795877568237764995805344113242489059642446745245495982158744977382465278479475012213578366585460747800643200051255323121134551046744683440665297668703625353526504131721055727218137607149881376210217619019234351440700511515369062915055187951845640576911641677711973683055427405544370188150639962891164037855697225729189418282091611654397393490384062292189488229920536506084057706123929038505428839872326108595259917825084274712919501353839434676203496494773093187370250734986186616789788885674776113132171036003797824373226886882794704107184363683837029868243131692211901278495468859053395997789300570581755789371035303918522701466213348221517938652785853601239465889542889783581506597613806384073763419730534416994341459108580421492723158538762001551028937925452687851568465297574498241983993096884252930467713331222603687183064062434148097726295656858503165766322213195561540911325297797989498764233874759678984824197306449006476840433032305717216220750562694435633718883074417713322317445369291789104019630909239193404077559940434042618160945122055049663193112900499188929987512160324979183667257410166107890485964398809690191780558963434212255153307248582253100942636740491992564197584244524230720995350488594153158341515501664346865931551596419073186652586447809721024773466006007752197943707043993050930404482297902195635917461011080050820714414264836337080744003421348251516647557376367124324863819160317805253073754112027327739888696086707667547473784742792770797674540552357533238571734333621929109238682517545616918781892985084363367716833007486258607158659647917651532398423835728059131060586377110455723607268824826821577042775050461899404368549724000048733028112486530544757891859087470370980440219645730890666437664797699824263118424008915603466062766878179182400949856889381306519425082770403295353923623058319647754922052643851550261991125203480437151982375664194930507391014663454909403382245088533519371935826488790213700355247760115291785646261136131146785168089120759653039141912330068399980122588997972663179907805502103764327891033855678324857112712242411833501540162106050063672409806294781584721114122398735449955576733086991777263086124523008658263849774757781337098009665632279841080570726549069801229003347727043259529447341870066862518284869979320572291644312647068142259215577622059893896546356753591690291412995978748486065696755867526098375738410918298627246678628023945654595313841632551882362324844412756497399586474944044299477447796006367463045994240765837968254740886526427331276093228116175346874605660858642362020216371113493861862549711663961820075625016713057305223070915442128197067752507446676139257412395760059666204822295384295237867901100703985103068332706070080713621691706379588586637043206118918876785507765849677768079296966820127232328814149591664139516685784769584569154438485222177359732643511585996567342748775706680897640691355836230851233650659295350218424845409730486782295026763583290138944291965057499577376348299172420352076684307229393348339646059923243322628677692431012763538200536678473962014760463869531230907535685137746564839969713332570870580638309825828180321716866349065638056778465541721651342073611454239513955283805052842623657170917727137314665139806483010187372887733072003002767998063413549022054418938376270677770684060950015707794962390365236266638554493362711236745264683477334977214391268153305909947706812353837640731960034880760964344601163353755346268212336762328630255716293562821695188405188445778845541167924520936005531497802701228867073285673613830894184247406839516369656456310835505736720416605522589560373068666409525701358742862810700664274279451129993320479437431023529978496427194027965860449796487448769949499088148533247017204983695934360167239404207655931203036577716995877304806697497120891265527501782291901644042602299096962844735642873495100950067546070162409864972120950234116222684912254110128028343871249615326748766936360619637413566208505188692255030475624909872355273097906165275823265193682965154496694677760063626921398222374479175400232981938134444624957646349197525515148277106540975067152947315451912520112721535400683327905314047731800258294896315504633950381335486658040076110246272666269329602854490926653657612859523620844988976000377235262671341378226139790707879364111267494367829629053227632970569530458085422531841411239514121369689734028105409274175307756226618999218780653533074091366283509914759763137652096849544518219212306501394454425941392095399942726200637377933394732314327872039595135692868980288546373000545421116189114710987433145296736194735400669105156840091958380132535783385484206188992640008151699315825171075857600674822229959956052019784525924123004394379775671535174294842057349613591231032412283200716677826647501287058513559814494347352938096210921791120984181722376945454156286958809793274497187635973579290970278544838295509079224461047162943787806685362416772051863085793871953266163124362193112698066966427402537632981541030205758219709429052916988234213670041275258792898952905456980624548479088710391959703281700465706975982879946753777815729563078328343613547162903717522896009836643347197142796775955585441489416826116367469299465547961086694728519527655277310789450238127675405534482059351832854561119209313941753117486179425296300699938433411494651752208048900278958274811521128292978921777156784513488987916491574008205591450154338701326208309491081714692563137542265643680719338695557694935875884399157781900544605492545300557485300841149087498071521105761996948844133113819687449533788116387793695862014556242163935208134673601195767911168263727469540830352671051193412317386867603012127428057937031701239683514364583538053982798453599200356238395944688638292122625024001553929318414352791024246321299767052632304399532474133811177510686518041795018908125050558068937278818537474214259427942259891346441292105336114266064155223918613788080804560021682655884939030052843788697193939358541868055327660434028542378471303978239267999136904605954983894595568910004040347280492999313417558034862518216719964709422631533838611391291739025869998193126947917280574074113655392723322325844830484921393384449315880388365353075121012849193809012474950003474655213487969659261909584443820158226534155350657521494939238437306525251857003688645049799451248558854466281502255554625790654067436676430427730578491403634413341168634359811447732091157846687356833886564159236899541330782215021298224855946208146341394112700990469580349802507653326778169916585185854823715352643363696828944228775887068832130071991523182588742721114182267022067616977789831180475011915378487478941954598275458167194917464635606451031900289628348849032727837626559505259005583839735279745373549248070493043774582017393061463676321895658018195191114650575994494530608589622483716127912331170507322022491536843463046153542201860598582970432703647287807086662319097761269972750798933562348356867272131510439484544366840878167583516158557855634145300112819762108537994827375536023821601937639467805137107622248218762384576098902942465369522177823786218593801638024872945365087809526263942526829889590958073289651460069854155372486187687376101643201935281652945246649090860249928793169415550686691337258515546911574010822929543410527999866179155252825761158173752012984780005506228152024870933214781966232446371066959806992491588605529628314445230735062760743014034877447086222061091059744921043656541488105893665337823410155046749316800885506367599283978145738780138634021129945875175704674490325954508916967841025658051564544735908487684918476768719988566914462653980311368982030056779177455895121229022463996068187657546667961087648385865489525582531693563116919627554599204361219256227234834278302707574263974827853890525313713801278620096930775536863096671577338030868813501432360626627542677154113903631144917912096657436850297715026875354260761505770713554789799132192929839282101614873560771807191592328158179237485761207534579116014816466560538467366531403376295327490127523781130036104498699520656053311749508296425673228277913820384407436174521564168486601822945636935250923381970893473976308073415470978467193339207863666388413660576944866282393301073142117761945851295919550998334742665188417289479041165430213672821835131500211961176439053002266017788285723702948252541269072999267760212371916044044224619455160883307264842642601546244947068377273298371766854502988528091272564634272202721616925148158515619286588579678234346208881463245028409006532895315630458447920968250608958735393597125984056687420827580232359513615263277900529885952030188128656512357838388576952972828486037744047603747897966935120010489657773339465103608447776974318608251732988978521772125025552950937349238051490119892398591559323081139049749659998827074406299060757893228925276766268774950762747208533491794597745351148877930526693687772321776032263901599306239047522327039187900645037080986103395034404532081690791413836735343710408221298107630158694149659068189098062249935364028851063198395226879956194074397290357658479711836103074444730234414744628952563248765512795711008362221038659070847959996288153596185863469920264252766836827406591330320079979264103626734660784683210752683935707714316144140944961117999831162886003431893949080807334613245708535883714728219176607417177444814377383652205471284374079694739662008851946921502046565282013492991761762039174821393407493509420314326951258099143219515459390480526208342978410819085508674340890862090230851640753570097459718780441098395981185622497141103310770938555572158830250318475320763056659039146898631737819387489807379226539371322068390692857899289875585424871494617567204000119632796843263128907096696549622742798972433780504928825390070989020155342558085087544980383977005167247511567370831020273532987982011920002622752665423946097539289191313728029505457379064957217851980008711034374271375095824807210680863443845243240103245519898424710144787160572551494289579485327037100421088088584437079031803982746792659547115925895054078380688401883933341542872350559447329455916701980563157939556826985768625030780001456040690489368030416317716418425210405535115270285745417431487239395422017762687502765395940633899869565623575844586672513842285231388649429853721454931193131813661529944258465463040489384086667303644210527742684049366833425974171516149846757164500542890844161385815923182606262532816329152769249914663343413834765728785875002554412328246469968539116790289903381224888663865031732737602464042327064461949490800443299426728769802246390904200085361528975843577819503460900192337679975938756165562211403421414772182057308904446054011091105109386029460768291128113745918861422220753892308307677444761001230386566130692895525076156666791606267851823719851552721331538413640691472289589649434298262110196673591772279947782566427226211039375214066244157175481421958537921517243788491394797206703728864443504603546802201211540180520587780296481248604333144821369474036602757957355315851964587680433324879751960695113716483073958979950569419940871882864431306849744519486017508134896786503172587785837159967065235441894804268770009243662179140679911587164659615526659413163056311115891231361612179035327447217611397502032434171519819592415708848417658445994868266620909362963607775217668325024479913852131503235589010426893180130473876761365175517107563125085119118955261880471817952237925511976481701139765139439336858543028413280120258950207069091018061756199259067653588275610735666641372873776487311021019562654226232247615144902363150988599970219319353863986449685150009562177386399330107692603813678028249932634311502009059532382941268633476838886162797907736433495436585484826711622504828569041997199134960224493844921394568293165018126749865852585125106789611906468859469697828924321042879725876332919843620401491790426720263146333075262963423228789475447632957806413388601290868271410859529900051877196713036104925304971689552100784186678606308497885584555706863940809336943001259124611555115188327498367359116464528394300806927307011508920079138252583477600361319901360650229986297893197451110923217938576847982684560358860648420847489540179333095578168273855914314913859659097989087807815627533805299301472572404231108804950747418934105381903205274657362894354610542384557995631039298133409852211997013610278029321048621773138693376151549302336728087332505537488480874068375442950705594804843175240132639741631907164487309809428482831201163239852458236700384617683421567215253216383691470262948041355917331377858825887620652632977929807255340638107051084881068878348200483832761471634478373537192244315723964284128105919991682843350572693268542770842204740349178554687870532630426317042753703047701486086639830828391467067827508760698443825356259107802060181683612865326865225103768089639312129031541553038382256802735863856521802418623465571601250652903965506117390977571650861800062595839675567041271530086072288070339086162274527129006478632660964318282963415119788919434871523483436102389514864285672566020445873523731094015067795567581582833079618222777149379815917799180994023328581403529780193414360168581147981832441711591277867684552210320934269852124123447853735930653169129229844752905215724431150559051945264800284755653799552102640427960293191416547876698499180218860038656740513591970995658674581469205137910791389858875620043004647703875589860293490636876950202722196676419813444585980064465481035359652252101357014736659176810275489511214951577384181012957646119299001024306753033149110447408424124212383577786651253348910228715418151252479295094878293539063941042771397272431864376899075982000946886051804181300831118256288116534324646269001214001624335922364213829345234751325094512238075998258741513876253582229306785656926694011901474368980678158348045591039167552129338974970452197167784616505948049349174961802073551552597782824958994960840370973381681654318354029589442008863827155785450301165055903779563307852427115633639322872858920371860610957083754597514009154380460272952640664384517592679032161210604647798662154588057027691122464777065605038451271612910186105495509982018278503871052942352959638021035505860379666125418208413935197702965584227985231890119903776068337181111369957017330843450702885693405492366503229437813319922316575017556655619297056652469027338004973697108288248360301029506836792577081383577062857211797603242683955044775692829067841244850329753739298222183265590438139698299264965124731086631124785052037212239387400389161983666422409838023580963488403887181347565971625223248573602328125632200247282209034420012355852517249195253780584351858706428208210147107875955561245116124487617030235193417908298035557762467801981537365895191374423482371492270843640127457828684421567842362705533567228556190589602838740617605916645829577238245170787876089034861930459956420312977283971644129206910418150225678298342101255117365326045358978634275677561677039322988549067507825459272244933816444123200103696191883737669247855090030042775173332623577404708246681742767024497309263458523778712105330795787385659141049257240747839799558821255475121599162919876245548631665619555929754693744350056997818759955759737036226109171251811567302804531293184951432215922672312184773512016315025562989939800556136026319627018263902216639700205197114718001334559987430797505948716780369199531462936168814147963890203912410818950139292504845824979623702318407886666160813296277565092893201284219408343684205725561378034278834013011139943912992100763552984743436501220879980627417222046348682304188997512857893017817446015036729751134417761362664844053133377389546306371632061509968250371954572420982224084203035192005531248192286225664352832088937144861349121893380313446660605610047448804188693407378302520544261483767500184749419423352992460392811086281903473116297075922643117706384838211373128523677483086147275841827196735952360414435828749857900566684559878139996255948493363433188037395124457393951909982427119430165311024080449979176307613539103947949327076951107626062329221159278890065737899519215375938347591418536696251932596531606319347916934231408560767961048352053263121366673735866098176986726893575212416159861107746318935614149385621443446479155732290635769534288862829473663137689832639818241741611136060589679828191767984947983806922113963568926460413070687523860467727177225671895888869979575702182208095222497437377579347361752002658497028999707305894583106689131319226205255276374566902039218192511200404738909407892832230671048041869853022333739489201834266555478982054382420856361217599774995958011860279977621673538318534231221127394134436692392768821672578745482572117699482298343253488735988345439095889642679577037490556606262873177002393646024852931664582022620165165980061136926409469355475282227429492458532427423311070956121822537249603907061289606280097510000596624328075600294563951018467909344018880966414721961344555798145635733175078109272816157125902236443729932363608053748020930481379158874929854813805902715675583170768829124882319447186582801921732769727028467523765703895501649852949976781108253354997913806836698625372394635280327657195782229742853690083244419107971375418796756011884753330790586897221780304177998317864830878059092021015255138567879520772622296485708820912125403032260596809435125098003637256648663970637642864586583935767106387834724633824082750724405934798458107142144667865873665727262572928035528824474000991664632559064262016881383554405218171731459603934450727919745065428192515220898134772205677329045221678457320050385897654155819213647490159136610252764063286100608418567932220628546137195437456109539922453822936952992939928127742922733083750223297671239664863697997459715271761337062761150460425856500885634763540082364587844028069609360617102030452714293400397911246763004264022595376472383403919406968832514414877699781985110367157643380638723842487547718392301506497177132024218283179021906369462319504744555117211679273759533911242748102021368912681544453628091885506159293489121762164760399157069886907176385601923720963130663355823435442391269260639852809003286540070795858217989012485354216962955057244704754687290398565645930775548442089548871679630969152992961258930679898131524199045041293706434982325468212848464696826122774271313291640824447674374127570895858280629031052745295156814159275109949780165128166257869191325790516271835412803542441427132395945324895142605284265151956687616652252696985477471341133190105012205166620936729003344368975227615706493975013231207929276784818068622114870612202275620326678523564367531656746000215110935521599667874943189494821086213626902600920511254086054232321513436467437313963600491835420903929740841719518873076506213846211239950922427085904604101428699038203650850232873722999733019689669349962480763562046035939374225770236866959584470024975594429207436895595545930809156541044625713015526089797354690184265182273846043160963127508025340008272291981472694903022729309625168436910124752948593133320769921050863224886781687039059971413024358231981133950297134286593895021386193085573315127096852930488737660456290104664382723550403881599538238091539368966049011092996838597832651348830271178216342552925287789204974944384029240602408507996403856399074133012882174201654425945246139878898312190268966659777481401119046167311232377885410945991515104010926490068115177808489757638072714575783537345785239646164062904534269499217376497113400157854590517486373699429419494663256840008355294784668622858176052368924258087800810936651408640411420691443950125454733549015524050118879068047166482515673058524010233811421417471752308695850817340514885572188106167968389317053959859141548688238722872765100356342372005674822401003553124367606267990138825262043354465307472169136227606004233972269580919981200993222200682519208857392721267151908754522162519436296901017941790760604749094199367124600215855607516663185843559074132160985767300189741848416692266924557761442088674431432005353925835411622465413973395608928520163516436782405021727733022341651429074060423588374699341529977427242036089334892380123288800615480231464248274354342541836817685519387646215114822203435180823204080396478074316234569858974301557210829683711801630556595741932667090827714475472081629299862723934693031553186186105680027373746054058549692212787647097363740393720398531376560436501094611076802878070375920510615193650336479151512164544944245485166187014131759376411827664487434970470388518323251447499578896332546802946871073971013547136560406170331971504242949995945402856413079608339089729783546914213164881045478705734452485646818720226938711019131307295789754292330005295023081104882682873597929160194775753217777457616443825370463392156651545990367435410251650580536690961168637341728382870819352540472595070395358279524404297699455480743319344265508557565003926949606559993273535221775704822327545371530880429964718498622480627960970977312372549293965770476968693586291507502729498931087001132322393508738551760363814985739546116065918121683420961844222378618497314160678403078322135368291987804060950282533988511340217607885019963599256401187085112040034875371338790222309747859992192566536140195793534560068837216264866083206394511441008593880310215500439808838200363616076243837132672818916245733696988138344203946753318885688402172491598904219530499284490423289178712786912251206926846541407234744477176799654306567056563380234790233991091307499820312142780138132469988979601606405137967889080872504741798800134489398585730983781185662160442776560834685121430534627955692286686834505992850468106244756040193462295979181056603171993070285084039878396306741901281367635819704927280671056191241757454860092528364396207516511188361304315529631814239216658650813914650612124143855540963710897409246438604168531835060605624587056882437136491222291280725054322704836015021199656375670218173624565700418189630437420030557984224097737756998593800295254957132713126742714950989523903445636410806291901374618738678463642130113951585212381222795630008449584615596450777209410476055494593715456611756113804923025563037406978946708190421984294661838134998876811154435655885145761889487881803604376828786086473962395428813171768107017648036835080248066845817905006642627624585714117858713968201124999762877305415150505148979313555132560672698553788994185547512649931850717670772036726304806242942044524693879411196176402348981842134088735460656759638389049729761364107499578262162554391933197449851515992756793333646292605021129689186508416104426173576638503590007797432097182126120848803701849932765599789726191245229439107411560143271605698134035425382063378928744476956731652714103109158195755436721989732553911570886783517558697465574402751451074382496699543255235094531604127505593372885505461580391671962922408329911233353502866194135052742913794099297581050061512949846140034046251207158910380901677627412345804376226528565649737760487205965124611220080111839464613135425327317349707896664834205543153217021025937702258558082386201380443369756714055658815019823682756893604614484872868492336128847081853488086103827921394396069857980103205403116075943846592856617284067727355181953213125479628842545581687159316808270515359836677684032311097580871653533579138418826060551326990324567628784727745043387861445729100306717156347219944669146687533670957922209630149600284127676775417094852185702685073094407871529597854607256648181902925450118946704596374838112497371988754472451435133180957986386464493183115748889993581125183874280874043908908813270101568271254945932540914022280686188265408244488485724215558071972438432818084794988133049404327898334269940538579838783842754083179173938321294089052483977066979353396630796132141550306791268992538628470599186285801950351817385707030247782637224413304342802086285676565018904299658708199368103081328725512343137426129075627895065981532051869081338776635863316869053941612257879790031538567967390543207436148797252927802249230830782841221044253049490513718023067540387028370743807359056114980982948307711508692561536462271723533134722409807666977663394458934541489741366020223059413640782027242543480969168343998039323767484441515157702207726776689927346497680662288992970840860960849473982340545948572845888213377480186338807277133823473630449932450694342959318167319216883722579754748034779755528487316270308137047655463831548818064237208674236376278241447237491070323452655283146577261568952693062641634806495592252339205067621802886940949308851148408111768048949736984584431601379254808741726480832616060119327835484390953156828197510327904578603296716155443022615341073665304511719325524626333577008368712560906564743307243188126384337397622202498549118759926312555130690567824914756063570745250840716658833370523038984877292821044414675713466069809544659916119167442720901263965176015177473398636229324971806468567080076311643121089483381947361484927521991523271932540803430512962099762394631328680451984938597410764191448648593794922027768898199111092614476451868840094461427604327721337498250823564740891856902243671637588210316882140141905342870113304449188435729582254865927035412764703657434345744065263001420707185645721451397617722735945147005383889901190095292929091806183494790816688064965828218916638507582495473112775785086048172721744925670558323647532575985830151417195749636186847627832982650727005639096750098830344393717560736779259343220551802608535001678729088296086559327951985674044379231487634002413684200694443364132179926575380306570005206832017086979574838541115732057246545311674505202724912298299852703908459883786418860420336156329303806090499504562150048606346498372481716313422145841455287761981843703950822907132182539918796843374592848072692232143652337146855062903468197357722274412021939747287130841175626012879646064721298171645114701719630964760206352987692798101406611730730302464221099550521208468509345878223782112991297629264504589630289622561741175398447647924716920978096851308625116422328258813395697501708133663938178498601895837276724765321914098047442861220099905045114916769516965872574899935788742004534649438230080127267910023954551925390275826968958331704134244744026465096578277387617599097806383196637734751086364446313824103592142350221720534288903885174873763151792146313660936017204133948851699346545486838477686594695221986712481842023808228298394604829297726455249367228451856690965602878849023576804832661824108297445136029570123491687743843655353585973016372897847122272147747069491977900719653159808545298937536708150466191811811816682993558434568049153353049095804177078517055839486946136455260289774636575250601725910852921974264697712329675843092746075991435820962757282309763553914375897083560932927678261212660436993499573842473580390964521679907379251433356975324076205815849504277842342250389204990477246372902364859798885963856219277923184970128051853360249072883029486569544021440404323902581990700499673594234894124612694886732115423534059473822017903436660385225652232481869437876028938872760426483167257750555506788641830142634366289922150905506744888523256321813724617757528417733744619569944589423326660944121169239544423322849097088934361087888432207308010648723062209496471878730901900343108064677689705170063250971137729928630879131943215019365155359705943563589264800984477614953734795815889521758991382957705070784465652449370741920478750714608538943352640244948367049129684052999885466868024757903405614256195853418432584396799803754510703033510212108304635929186244311640686161536324900512884927112616803589167930805027095791624250317659183615938663820039912925055696288744210909967665907957440661474082923707644377465762100453208314476388133450428527988543485993077050642635171126998130529798988142525324535829158284662519076784094964279165808026561103537340511920976762884842275183258152888105886264302827962835151216665577500566407049717202112694098340185701251570978917091399593300099241532570008896632463465056017971546711146493199255717518382061761325040789222453611283297724458672578855538588782741123175407747780953051384520698312753011059325630726249080298844753737409134875712100871602224051851068491966998114262950358946524750943485981119611861420582899981674653960927985320720447100957790333282393358131118949088089673996975143447004381666636131333934137220963546352408270640298132349262029087595301247401922659653050959649333315151735689005148539080494201414070235619628232537855659746648592750534888979718180238028861473799861131778142184194152406178929097019672794660612942978408221051598953804387838501344576417467720011729781646696021285422054653831320235529628475239509414684594402330648172294614212881388950407525423671304665732732582274121301523767203996213626773366270876079080694720570511819198151794465966147924726707150515793682181506841125266833240933351400813807421966843489025332734541077601124759370595253539959631774444841423344558698321000449665550882696782506717302865988508520591866301401516037155969619352104725695978087287988560913779917961697960039497063154824565743926553502907782390512058465822923953740928614085349348005849057049366172862390843871720732411290488654841224664298305431029107046335287130914324116915396744300431891464900484583167005177123390133185106316906484360072245547791737403400965594873691242893223445952934673555059364931574651135614978298755286469235825369282174741250632718177018781561194972134342957633734954261145289367747760668430069319575059602829242078912717194189769130224371293811259963376022583689658979734003291186279983313577995411006378939943699354680728291240652772542049079466022810644268530872630323717425356029120921813314926353638784327571494673449246878137135603718608117443079787142356083771762612947603349515580717819887101860891920008392453370309106454673113626682191155104035142774650241125345924575770572732214190576074047570236753115321113394953045109951825776051792748568082282806935285006419972537937568907562277402327918295504612328330372988138325225021951542890793482824140511099267421116982516699082439582218543640740770731925737286794373160140631680147811105952373440455098520649061908751380469185566751239383179462844926249957745609778270087376805498670448850299940046526601887455382985755176621299294230609577795730545452450772246725887248258383190869333161751456002544937968995326626730747255958354051721109140406395067910711847101626800918507535875947412428601549553183912270925480978660605371544573181559925297453370473792632466366370701410503594365731390504703913545260302704375199888259705975931130712444841341316936518769605052090146509465044187775137463374202285062100205379375837210429360361225031284975466561580730998201991349773494329894884328906652034258609396833847803640372869019276865492059327741464355068073700033220459607815078376062089120058125854300678914464055922934609145418807721527980546196153346194008311714402937736457726776368911838878345267353855960017997377929645586214231025502082006127652387948864702629423427817075994412106880855886312031475395420996570271303534248491859469330316322584134722504564363683463065093055235646987285204046433031397611595208754839871595796637534087843220209423173552877388833519160646134634751222179878027222928795333332476966904033059746901609072888318702146664289126354637137270008695555975310259293405314590886285630950485559540176925647191059097909940817733246914471725836664434521185686022349359369934573043703734928620191808752489496673045032037349168203132432975660579178250418094520618756493424582909938958400167149595589393858930855887728699351047324308889537922973014147870335445463660328175890963551705299640470140942968810050296447710520606626249996852741520773714787465163096374714794148651375258582650760607920970219196854473869145260194138408227932251112203740907548733653803831609768528357420521507112784976149183130620964127224523483853901262225928375783940033606229060019144133377923251548424484871701798338260452034036321250788145532233475285806319495776592808149096356814314095693933269705710657996228606990654682882448649113070468202010646987145444286392837495745350289676551056896568493125110406110921198689348474052876902145885346041925985508040780110995958713320624099111938913575767507244979673223178974624733959283091746511027145894740117638156420455999307508479405509570995726053889112692582852962486935212693741908051097370190128252063714311316798640622761699500581671288379299721208552563416389537646788132945688652118982414071900002026124208141675398947530528166213980221073713697440982633519456948895160315158707516773853728898314026394965028849035874875098907834469533572996622498846877353227427704494213805316521400779756867374595735471324302533973216459935890178543441240952054946935801833287710967478948361332629751919284992015385852437267169032747108449681803980617840203536087114825501498669846794473207411732450560324834743890052710174286656499224027753718805420152226415722232328444666594607604864377242599689040850981745881702716515194640106597013966328809341530989913566101011623529034995214750422789383003940782040227400182489481375176492258516820720269194549796128306066785055589938908537768275016347860979708846069997712897514492001302614271163594043660271970668783965504911390856648083041024634760322994441902889234521315052515754967245062091109213741033261822710635000375073391231598148482562768671745107436054270772119381467527384893105050411543968528107690232504754737043314839759784829858071930361896424209517591803864204746491297298678455861452551204103318362538225913319048834058377339651485364250054723703681398808493563105290208048250926741201339900389553347566150260358076850262187709518063308713175059686003446467259257643190349656966100897777552462141384530206224528119796735037134299313029581026172221904034139073586748668180758942663848222465420367813057884544596781048717654575777468078720395223100163649155711342624746520527350080975258311833310067631361673109967876140015327811488200143562766881784070866992514278808925987019929135280907857912219633237898695966603271141671902522316331584473317745403369968312118253047141389734678889534592647973064279039734257956664317863120200679367899403816402569877207821250566762648916571561326775268995563411174208434772930939881041971280926371926700104418902475396452003102755397581589723047529745326368548792875016038760637725669654894003172407927105947922617149285792828001073471218435510250542801262457158031838003967128672794851176551505488784470413706067124467654306949869601197611716354275038158493496371888567008227550480640726440537480067880243924969454988420775250153318275282639323249346871489193146009162217786824738177252955769511720714762439789604937754102221139048084627659564213679434900375619921320615822996067722207564122104401899892699173489957629074101256655757337300731389895853492481044327606400459443555395144773464039087776403663221863715989716377355688441400510316197051025524994075919269893736980943074222878842207253891964666791924486609119150393139512623852333782800188909262645520458639391314578283308167601996048354939485389205267318021253654974287515953883002125789531213969590740783934488749012500706754862526694824204725118177117734793349899785675947276345250675347427721734374910506769972449293802231258492669475904291960245473104076653707326406660937102502833340883499443318640141877441855047458863345293804578533815867589677142746630897241313890469475834360139149339228799873802243766514992779504888235164728138074642466392510634219398553928905832098022681644116318818061334402151530344932157486987565067213340202458273941434878853501002880696773163033238883685149910748745275656657102771231553983926195249274532410339609188766149130860569093384986906696988232628166749578304216521464004842995639310403889380907877439159254573641220733722409655264832277189519051459202712139511105196068253042104640018209751614540557203911771891294105221403930630610328872269627960673934813373197463147779506427573123936512371259110289062637939801389874114038666197097471238535474588360717655034166824462096990292159795928111926437041925694873462352158903926669608956943686360174885225128820185910935856338614792626305461473972729973333522201276804714933812363428119474947824107342683830328743475293908900601653595886641314438434360248175728637141494054436628172466801845341880744841806463306033136772519449881264662951760860542558493361758151420304625582049242245020124233717644459067485455365238556072102825683742146229039303993304339857793861832240289996643889861430983216313223525440235366801401214802878978907496714946416167562867147838227819235426034997237224993243245261427780339238038191655274693358949244494166812005291744816289659315282855211433277814593152082431743194915652875774671984126045135914250812871270442030977375668757280375383911481515291291588525977625966852460999845700216566248073341526341099550164918736301411559450386635775811627709635129720958555909810792427755258112428534418529758047313303565720769416523244476976329673777074248272147511523792444623984564215674335423249891481500946724674054686491725730997938991203131264573669482663368552890964148825652733832490213246415603472050001843195909833029034187081603295848624892328917465123011051266596718800439613867616920387624062050580515302995377518195094839038507775917191161306513169444537803888205814500928845917167484166983404166684213553739529702727591477666014670109150736345773791453682423166418063628616926183144039203368312257103654520013909678157673103813309365711359998699613907465516603917791491652250704844343427288899892365374076471921717880340887825503484350620671966254765058872287586294921034006274283051185786213991085099998394010486605077036988611186982221603537150096150318968589321750447290094100475624174492731152435731988335220697131898015418637000118586629851343691068939682355035448433063126211793349200056055622841727402820939504746754230119399074156176999005097213157726917629186796483191210199099966437850595714904491516088972711684029916888087073901764538970201422716694652946036149194566499871004701367492128978010380167631809655965506417244370679221004218659259027664072312194521623954780715376532619525170536333151004499666652568895983090273623068406255328401293139795694356936405743714679049975377119075490457980413758495238877104773294986172765961767587959580744259019395801996264175259315825422631922029851889351684736928662788892615766946197784335012040388737298404351295878603167081918415434925255222400895327927523936170011382667764948326147093065629652346775831775290833208530037245214472201587718149232831819019497448373524825807578541934575306967046691122459260368822026702287247011229606089769720940900062329827147830955429949258270961493272255687661883152705296842413666367444554227615913219072179154952966103863674242240360852633361309492665318743507227966019598594798788933078172940984053391058928421606765609316578619523827596966282612199222431821896170256620816316284711016903631934410048248233285538316388713756898667399140627447476751151844874902100168212419900730650762479912458228738602690845628304031336839601921412716010142973330036203089238069119244023852094985782021059890994055742568459789408673952400199215229833446031830839156678017906177988394110564947104390894781462717543861707897038528156336731500739261710116798481903838446469338673809458962638657707622203923540637776984366422644552093098296789495856463584947681997123024842345290534077351484576363583268894677758061379951095067033009440691026367333634686212651106215876654072647604061739486457160822522540164919693610724720087765478086824218821302614965908066225752844357678765394328725013111184971868599507283980733678437009140732352259890857249501946671816285705631344101306271147984394987536477012541851776403445020128745293731224638330367957184863299822158504221575149956409247500272157194697939781529496445131310484702474141116828423837628895266525864061174159804454307921425211755559264108995780900161675352621802350250433666435226270108942596682042919898888573374944747256637893989988626793881462006100356518597277941790202924573931739950776182744203730917121262743871261360380809746036184879706706502346181152651672339536018669678759604505143853020875489803683105940803402178294528417139570294313920354053023561600158183628570681581680236443849315004249691984407842155686915483830024601172949937753191953803429337557891870053824469302075232135659040831554332390347048542079928274869067101520546654612447741611510166047159905058032068873525335464133196916831587082888416790888756006013925052943738746614588019256741636811189805756844049085492066194347924550285784365845382348210666798456539673436920849497808403095560672802796072621472556295910583746458411043724342859210759066375710793101773460747861106528072186308474828782816020077551283050416578037254731384394720002229264188515039767640687790641263341693689897419910956499024677445763378436995583310437059029804397185968192967500343892197180602895124407925609911985224681986797032374193807748128402639339883191420789454543028883259328339761773924308856605567053293467735307438596611242466317090096911991735892214438657792296794550652331454686591674206635957497665419052836842641975970165420046284345875935541344682429049103468096384406043998709147276952167813833961224092311051595627506660791203499317990198606530420721989005355662627814059196896430539447476164553503465209236027549291961797464311402518068861570805146667933064877588503089043896042867756464910330937155641325805951108259425970610613992746791409964127785695767695775569276886767046344140463178604994184690831172394933740420626899317573119384488584483290460556421103761563810217764497140378762793096956235519666759015948199808152972455783653974233427074404387698091053294486524705298928476426490610269096681738169427212531592270064642397298514982301924594410554010065880558772925334219855868268886585363410867337919166427148441129308560557412413566951400411210725950819023302479673124521062842248050453784350053446650028609256271917014308728587245655127148019948872737208055759757831253950953303903639292819034287669328032292749000414933545706589276499255694565178540117305363292534979283518104877787418973522277963436153585166038848600522860541111792732496344688515372470505334179943852615805807250999391937103127645737012495752810023933308890411564386816353613739753562005584426720050023107346476318738269283764172931331351096842837674800259366065765414494912766873268692323008851185419397841363317728497673545059128069094326387553671694825700891075895073216029008532090919078010897952060008681612332510249976243773804416054301654786085059614060097010597002077376221901236815466581026600247819389396271233975487537185153504217827538601703798651867651848205665184047033089435502198618803251144794059832376876915942850117662583771794184637513988654873973211890819963817779414253064146263360001366811526092209161961479414862270751618798322588247448966605571496702322328001160147946662290455727119485577584227186952252698852892308126726247358901037891190729594594206195679797492673978179432067359230532956968893478917976706132812742860647460645045562162253619297858099869888658064704863135810239260596703935279158022177255058598412776941239086302147655851299020683921148627896352181077846157899836360602131801386721201454827864564608788893742491710165231277221246673429810480306575949338146353728359471548272814787269286598709797565913800188044625295441228016125769669040834813903065195466194443425211669921873106229015328250544890697375898452075749891084066530076853077303591904736324451453377632495617618510246703633458245878569577930809013700669416130255831463698885093900002807857727435253371850839585347298700979035934143513144322435749964813379946797702413237328314756308038143160892355598012685905777064981634568284089146773098877315114188216823318666698430276677366746426410074192367602229091267312479455645471053066722209846752681047842487491548118047328689176093895181321297119299849497646329905346442919947497960929498553213404641997180902762261503002972139679568655717122411120339869876327768479201149521662280386267555912375326124283355638488253044094355412390003009367794534915905260125430848303759930214045254888770403685720619752194875675029434419066837324649653574126447519675603856718628015009435374008497711782059590918859648615176485403613820090910563393880500679453354113446331788138289060987385833407744768107474649027686168839415382523530259336774101864212219304594112193358491083591863964348244786415397283646180431256579810874721165259805074677401726737926940533074476420564459412820203376095536445714375042406856649987496213314866056345376243876788676942256133935652412072466881711770082229191047279048785070384682665325072015937131138982474273393924839173230325845572869767023674723885179945364876674141783547141516816463336074662401754604996623139925094812346391317713706127974805194050522060491512389340571037342473119439811012761417454122279094211009686704145027024166850600669619631067303467895765417781520415391874440255495336192532436295791002937920290065487488521188873127934791478356657274853425238752433562369751270374991112927077595535853212971121423587764019389825375859095433115784531014117074157188305861129596080692243509121909047753846398633778986971780410336575599010555275603778583932439934677317388803366242565334464558137707627047401499691592170080769167599875038979695438498098304775358077064674052705822304138259833478488747214304939857744567390070383041600220067149126729981765577418573423622601910892795440829346192271824678777302578665125353265220938346234074908963780319059068792562852846095109522766404635120071468186584898384417146491896220317439912412622850776507348846430533441979766515090060430718868603878074460763255784485563411353370929434514792861701624662457269969590481828072467425988247359747243179173559977438369295621940456147567801104933049848688511199502683319568888716517524150457787410958692629612714538941553172345788585382901299638449744710654990249547992992767601523519880939561141698623839476074950231650114387977570488068411953749340819773517970488481728212837412615010298375732601926981418697562568059490465173112786194706178626546917280517723630218737587814108161198851091711389527727841820878894755292408316499869388182499150271322274746934625303288850393448447781061317421809597404556736426477557061960459101621758102034923205496941572259507054073059327846976807810504458678160202430674220091104865795619730023265493034480496593878472781920001745780258982517857958599934401975204392993763764810835060249275989432915415928082993185103388996129013249381836025499292228622876136535224766988772355370056269567060357167975577637543909999106074051897559223295496570246549114672253310468554257444248585599870852018305265880052172172092786406347710636576680548224571571938023174498390582336187929820062955754521352069765069142757749630731648918679598601028967040615707333582376310319750783541975965713690928297020070334124617048373786822269434347575706870154593076928967601266106877421881893471325235651639130763517504667654196812570242746284127272868714192321430966230232582397776844351949084236091270921914749810777634074148645482630461255564717929890334074092578710531054712753628217111592042259973851898855139349446414947732947231253106575664608512685098104676132722200184066814631831940476521922068510287196075835909661630202055742248248635794339418981864527741967826158550789267794565072568405833930622789598953412549862274118757752145542492255203994120030066542007445649808850535338335010986434167451362009055874348039245350407744293084171061531560854020620919576048662256324598527519493265077502990765941809037237197395712225492303416039178320231831950657250319618108802405819829039335418397426711901484688112721214015587156805337669025171328323796373091756422688165735125278537828438880584706331539979432626462023486926964331752528801044103984561892567476918619195413427783006096899573249643993739519372281168965536767474841427981977133025286751353223520900897574996226240654234944028765150351831597484407521988853522898279414053011734623686847455011790512077425847249445208186766329905311048388277674138258952809779713202427944386675224817592261485704193619590355628797392411386393090284363770493528184455451966535298975535983736110628416215231168147868290632973165325558495269721233945203707330216506360353202635533159852252044690171312219594223950574253183557160469293387093020325062987224950739817530286899329591423551844769018589110447086175389174530986486410941379474730160793103265863962663327167105761321103365230779528291675446036949169299203974946189868980698384699420847967239798823541016303100790638900194527539453798506865235459712435558783775744454482062583350912113858323736709021739982276403965721788646322462115707903137979887244748473191647025630321796316162206611997873347567867975221987999552363964987387644698296728276064400083462434393221497576296956962168111726439492389748081830350321154228622491312612493038901448378027660177056211931440099410497815824452439633108725879330259592841783187082173178875101016717981815274417138123789388954854199831568245386782489925225019174696216529042296922636830553893404110175385642798937216438924056728414569016032414167673530778968122754428055193053436644940590149191408103957098322377926473214225351084609865740908805752276705554112099207189314475144625453224994288146959737423972087282135334137394983470799023810957455257900955310159985743053542501222297814300107462202044817598832343711946373197703836937791808651407679032798108544262632752059469158974048502042457164585980364933790298384267267330722706901492799178794820241531703408411753713837269741885302575322312012017353611083249156007029493448141658101542244575699043986511895399001783156198346587304276060871088567021076748592374139886303995093375078559483436058602247867378743530313063489569248892967437784132092181733982433123753923815438016208716443770836210175015786584412834132609038338767621961785760985195543526462158598866299906937719362355360353231894434436823813413062773328639702769075372523820687084014109252810618904634270353098963587429232743879234299359711969717706186136509454554457438439948915795554064335490068903749608486051734102240857023402493759290504065438619096172727565695532230735574413508942337041548724942120723176685978522709408594491826180163593519997560084029795038238134072612313787878405796158007495542144568626846642138910766854774257874492000993330035660821201946797577968101931289104289594561360349010455200370753382836179270985903119966350444866625282580183171525705205657696610609504787606291902051078934869327540495399789786154587173200977921059218325577204936964256970769958279408322214001816423738706965260798491291091601358291543464094929883025548439935528181987703821559147536387714955277606805527656724277686473486481668132366807769764081680909019195456070887025501692195479162643801801048636846270214238699268427653285908606163769648565504012333165492994014124468132659573127659183864190512363905226303586426205502412635521988617075597573347692185038895136358733266934824759474976821793405660740929679267386219374020785844673803434933401865979583039325679607797379370379626449629729576483246942489651189451080851458343052636603229883821741991280929691874845812912949098225588635240528266043988527481060038469648925164022637989436343376140657406461459893934931909227353390996004765864439043993963625714199396085051189500084978748788433460796569876749990095589213268479979626041471481404726317034743625951250857530637421492056042992545709825669151228808389501810148862747249869002981833520007438790719902593564626179003900071625981985952868542207797405115151203735859096722184112637886524608634625942077406379584159930579016990339079167414371469720399083267589769627770461143059780150231608705284801046271006301047617521702402003262465477622017072462743167866522096248944044527322907840489324330531454100691098589241090820260671995916850458163003844587391433891974650975110653639356611859154095581565021821548829755208777110245439583402458465792483936130467010523778430798641440107130962274849950825915547041898529832699014250336237577923491385396044407755399021996363487933571135958012404155852811473574834989470502410257773029711948896046404591031304508863525305248552612597770023840894483836508451636717492458990192632504524875153276830645751279005907816228490299614460780884621780801704042108024565050555301396554692337996244073316799837218640899882239048466976331590867684602327383774755834009260951418446164668107257444795855283337231237638992149661934852938252066471510162810323979530157369625778789878227737895987097337463882778511668337874795330606684453381203734848584278880801722602711736683022012447356884462748414380507557424301519371606792631846171781267479587122457471833722045075100086027460377994020934053813590886130049064733254668319312695068682668732165069245537653624268261139523378463090138771693878154128798625774815209925190975310788461808445649058715707118286041195129638638829087840133065724018644195226246138078437883799324489037425121421992783276588036519712471948724166379760957567957012854312135032638512051128853974827696581412669334092875200033522717656518062254000998655038960737399308395069490887857143361573509702888138160395036481513450928335727535932730419694957351127632104615161284570426956198200570647590578643060813111813847153653323027110705864050467366361076574175826727099369399397360699213946696969919112680884545684485457414617566484110491108744567664205578053611505970133300739247207094700470170772111738623471702218466423565696951063894780248016446496339371315001153653773837219070252742851159757532395470194167877248328484845073628822481250662068649477700746715324592374645643152427138839243430515436797926840030575734118758237331091177955381883225624403127855929864870409661697460123055164042018257040258668694434477055051433132001861084438262275553421883656601518376604330715578575697499994880777102479338779946597152367425936798957515257034400863895523314280677895738308736267531697729154222259003836959663058461187121641525376630642117522554276016480291790650168045938634570857109224028636867992151122011446000307098773511241135418005866233829571983383120563564118890752637135158517197268173626279611711157834989853686213773519298768105792436656033852285116918415753253072115638312787806421724469905332469370128825977880120668614556983807479118469604032506816562323252727872493013041233597870033830061873134502017062873723995049895193034684436025927305778748368177102991218710531655180902620593830977044387196436516139270795464009929727987424430200402449107510054662549202280128718299277470467396893890062733729878835883437910688758393691832397028382129866111256468395049018493850014487849777002704896602253132795614426450661349811587799941702926952632739586516543731083121862840526330833200418617416143754482738422296235966650013111959224871708810616589562501713401946294341959320361357091320486256630343738686911366635614300242046721122657487206549297354488335073173866535407129096517846253348393483882480680920429447576345828742455413574393214756486763725563307027891278284665957500130735462575546777952916128203917732213607825200911666792769830754740487825315987854916459784989995655552121053531657366296779036990593775158145884383541291766205948993580139643115105344607344186438603972677910190072426636426801803787154833418635303849195680856595883459434150058094513284029985014942122107632189845419005178314096244456088687449663579337322081406125835922221673858809562387841197297104741606499790240233846438982290017819019490743478666112860349169809141796246417725197326186800711782132306171250258559870592654212034983042610918770276665076759315940256982206525269558355384762549140274803488883906835937092441413728839424922455405336134280589037252492516881633580009283745886537247275170818275375216643504641740086904973952484579922262970305916293657151425026041516746442132392280661324976617113339032209584004685845481544131625592395664572797480308725929002248384420535452666610765457602305230529569351380964798353828882068467202997314447561928131313696460376120385112512111232491253362829470817997853954898295948206047177414562488541781752144359880709235303613842965240442512996550944201414201070635451371192066798489368426382343901803562938833014713502406305418762094953823311176714666312308646089877778384326667014261147993836010478888317601892599902312655828847602656805599100062877399303319843464163847564290989868532610763710267648791369745304276078892472203654467361840399926829516293442809079027369852022537480483734776529023791599541662045967682889653526729179326001501771386043353811198527620348140471927954713356334479370696510499479364200280729522068924689293958305006935013253130561264137720468502083084930356424578651192288611490372319446501401774684961268261223656065811871139602702670948730908960093861552350770637491392175787792702465681140630756705459701256366815481161474542786836706329564884983723231683066166237300940719470166817299091453182716011098112749286866113732567807598501642631129824099662120074194516293645793477859583124178006031319526953653086548199472024988426336023811391631570435223850986871767729967546677748880282423418676515327919120780214468476677347666632158599072054017451433794717919811531356720705499474126919110226334262948686095913503930044876364598499924984171615085587637030401102947488844610440791978583331742392037535598370527486705753387720199652498803753775676781445358662670821333036227501035546034832253042965987658277788256767577720049033215389794643949003697190373413438646659546465617358522180823241008762974036443749529949174495271519638915603450189816404623440056627033815528689973289835346539932243464018609245652665094866124136773638515894704919099079408065605805405874480562293597626710564835679776233962309397467275882093000594569363686875687186445536210072308745869544632421325400149487292679455990131391255349905382949242808223962922162099829751048051224562501336982778639241067947709116205964635455720343876127535568370406437579978627493560362454776203784391861356790964912316955883603090493204230434860710953079868784447965588712357356790588598988439732814355352890120334199358365972762779828338951769498724437674064419003731350648791281826545021119209667769493967535093498482259543798372564301004598800425591935274049914131553208388169711953376432679920812029043273379159795850369620526229868098910677221424456303257555308681450874778656751112831668810699818060069140916357717863865197775820245605958480013290011020117501518122932437905616275250435868712665187279220050422938550789554955428912325719808104078999001478338237821022304323634806540179951277875812501227144080174954466022665109077860440149026736833552082319166883238409417407120546576891154316995174768613870427238639061555154563570144718797071058654065689552440074012044646716599739837268842790982061235015393366241759072009781755407018792141012431209543724606331497122121195524673968851545917911814817021967759305845126013692600695582527871446299162439027478735881362253508495186277972892687507301361344972114372330326481645614979812643528976938208474913773625431897585286199425915635524371294763402157096442772982116639115324863053165163931719588162461558359105584286973842000039608913011220642745184443378857515243771849368658358571104177018042367265853627658324411207831967451781704147933485871058413749519330752554992748110191482652139439871152366989472246054510834001846463834353064904068722468301443030263535772779254851759626509704915165521582797844773870874226087869462710348459680462812311926597672691303946937606799986997791066934379451149535487243096357938609595047883302883641624466519109833669046421179845622621588775684782396850682745819712467018553046795917430436772966867112198975784431568744685264982554357955847758515582373301578275283527150090208716095008339614863014291017834556084000411110515527389932893858007907087464300581888040086244813653946337869863241354900550674716102640568854307717293646036020705684009479976116011843292469055599538572987012754137634825851365576539143809052090670115880380441309084800943264649175197260320812168135864856060842031779818815957623003144397277961366343099899188369113654352620444184588518743167368636783508564119310750795933742454801147904136822372980646666433284373049403955817211061057131852711564420967283845414479965981200199671777261304834849888549721687744554351580186240672383134709782984101925386153640406609300195396963161878877749196334043646529377617822631658576383794782174925025670883152983393718475933393914420782103039663471545772748016135893312905088038676541127628618307959966439709779254392075003216053833588377007349781241881655514751583600133376321818519714300473863420377296879292332749858596109559861368987785663697685252317075821372415659537511586406132243023563012672558706982337550675921340503458048683977799711667864530013415371033900994502960555184280556957546495160266884930321960682308492118135788978039515045386304390611911136412403691744811737569119864622331933646371956169538430961350107873944481437369561970983984247274217858382490832426139505150582303684210516637840987566488027151322899764090259349841582939524914809095405908748407887035691826844955553319252343272985494667006519189627592306360736687395793859159466213802346703633593491028427869635977166021406404258032355664946263300519350255616549929907252224814687336510564660492609627517577213695124097874722602401920966555796399418039748573777143463384147676832841017681158012383868084934308917276856575082478106736564292188490597333394008833846865184872997510144901046396048340393606812960775721719912271547461667394051976785566825351740706161750982863914227430878694028770743460939835203803927609654896962794978132305338788036473040376966213386169749881348478393147362825590709793901713036637147102529684514878911368413795785432091491494652149382877416523104601825833273484257364255294777082419009291247038448652480366762201501709000514383882623663661052623556108108938109340099152524625543806991822883771870623355035509869898559532498343105360268856249636512693261283702627722556159651770407773928982524185938156724943164992039493688335890940089430358779204739848495964196478153557628843195636339561800979788959284374960835920280793017120154590962442303825585429454960349026842201330711665419295997782944332457846486004822785465466736596622016745219164813120515509872587699277834884703840497036334100118626318498657749641977121984751645728938980566194923961792284678638810387081262620036754939169260075233145221904376044172222187311780594895450684838350395921879600514311949079643367238252846227078216160922615395527515339027279721029704256445492419477135589467014967794718323592000974466211316033286499004999655018421857353806815501414356473717757705814985630967210033837739422685641442169676656519437591908628993562259651720721729991215828891826344559553632200455249839133869940074720895619897699237310294054826283372490985991822581104716475766970535899154117457770153267833435352005055219967566425195616705038291110438087737795241292969807301022485212492531418723042414943201708152273526498553611728661632074727237257289390389834170913411110141386657443634652240791244486886507645780185273966412563197650702123796333699337127806536664153114827441054148591935788435954255317856952719522687038488451793642476901594548835376290027533168334555019528590117368815015218230312324857584605418582292733358022794071078391430373720249744689579254669491871289603386938054040417392225488943706007411889476371482315191174953090857960266837851397342751596793868658296304102847644195768090563673156463444648908451316762267709039154351006796002866558964419337181621318735374708439035191759733020828320987914758498009805562980445623751640574847720158084381684542796527093278082680272495198667959297108274776804000297461208097800549678284415251826391535635240690509055826446891486544162181016274095667364702239490782101099617799059599819995661396304738839184474443365573736915852109044545856474411932931563402862945328014085258999151715891564988611143054925941168607541318687901724644734291567158818218271614423849742550878259331109394365998040054605386496017081999663026317075982976737623485494122785227471275765444410031666692570578978537945344470303841383285873131157875952714095919365730094593256970862887297867813426980427888085687238078724196501268632140190251848739443508949722277523827044513228899683477155167923658327904180908589694422644761843039769757132620301688837106330160782134754724039435388968175915620397720764648939299283466968054804799982970116523005208238253588512528841329132203589652799158040299473094951648158046711755754624772247719781338734118961565286586313854892820664358029947827140347559945559160090615058078675869660752072677256123795282200607762994207511527753385813021397989218534402938805668176122197558454925684253571611345130558661549482690133737878700860391379072595600883528841615335576027512699571904334733301890568926769085144391583577405624904965796984797446317042997050581057430836157821145292393664942675950225287833956533347066434116260350072428251201494200983275647124604126508911703245316873331947024371723058476416805463905541028661568161000976703409267511235715595028665150191927671152913199169343310536294810122528984785951998203705279721739921372795088827123733087953812343103288883613585834304008462563920459287246429525613494447089910740304373278299641827166087118040553210404281217767533856024633760921672284934284633583658316101897830485080677285462513890062951895526282409064615181247248166787312741962601285647323764092807614543790665574079445049419895827285854194566735375038938737102657799286362732863858418273594922327365134108195042348161036008973522226887961931662171385466671034590392806756518496592806426117704666986005103732954526361272916910359874185457664934105851621719108743517056925729187946182337960240810673138816249822754229009793078000804476842788746041935326313479897935649127105337762707651730300150268226204555056821465759478151448244055466558079091097788619490663124496681503008997792039414427667147499896133107877744120944905048163577982095697240745568860788875027994034883080150325501853662404598359723540455419697627916194412240504303402776124065605834040341590501595873655023693372171764615836811905489820619593864236720221324009843590456392975636837253215852867106436075439486346314686340125518657110366536242587822357243545305184606527730142097972831735939253129772643748867344119122933482505854742893076600547454363396171196324709067210833320798216389309050910638680725644488123446524406624541020373087943920398088351703616772863643028493314971928841712602767184416374650591165077865092494316560677800156388029197339754093004504537816530664756589280496774570591660100577123148053854005402295449148333711618330923862112390317627409285033364868356105415126084544522504782578257055842564592750301531709767719529040723955790883068049648285067898975629501493362809760016116641512915550851276512024526714103824967556599590653250687998515847650396107899601549779768709429089371614803797066298980690171586174549209618601725358721760500079986809432901709386326313403159571831411144359788281465890643052197041754641228258719616671282788994031152356581758791610062304366748557651113826841476939905313950956745667229905545964469363114497018549942722298655836642757363466087377788516948131900882254982242223767868801579050141447135999862605217528101027496111980780575965653905843934453661019827521643900384042189126986552222532814861973572116395113907173593273574592207116416836249696059572362657065696129696556806061852851180816008709458329319788500720538159912028281273555662756272163397274079452809069665201053919293470041206197186819857390442079918643265164386895055695930368287519922409382812201230297756354120446741202836935155623638200714580805363306505409567377028235156780804736706372173258923274337345593152603297793806943663690282356133412956187527769011282289888741226369331843575760533460243748691073704004595095392172103997222226156902788529351870958992074290161385494440927051375000677907039530105352980178484594822137738258788824681330070037629399950293575026687224755521463871214001603054393456717299729419335102157421652055202866283810532467958644543932272615807036004998453645121129778940717859343945587006545837877892698029398759311837018944409718089154619095630522726933313911291218456227755803740222750239665888494562284945280614150765532413853492352389942159514386310685971976835675373024412853415943920185194060729414527265461137230735690127189875715549775019805083928608420618404171031698735007995188440758217616286401767454330408070727381498200879171120520877967796616284096498174012010492259587777719141036925266613512953767282239386308073706953447745908897528510146416505124094017929588609164721827143529279572912821023184187441934092143775551237496854269550549501030607368883148805054666619155518255596630001922921269193943788509590175394965456785999261189165634921946631726359171461176675568789344388562385562816665479200581754900791114724381802962869177485291852035041828904668020045773568657577950650328533808946547919347675524959644157979109152353762579305086521410989361040943328803578875603356300948745787298597836820931551628562290750254212695975045841308594517161576314625737874971389083091604688591400840288666648544477335701088955190996731885572242879608154202316023529645452795508873432953995337055936833628335384937948008377998985452618202006944648560026215717854441450763047783516629699180569504610865172575823028623683079930613886871082005824127359540696371017463554650282948136408625947114261561925898730225378532520913115616313683624446368278004953051304658082418325398516977073079783403589884778097167882303794352869260251592340315003440000008236139512403239529644340313146591284233722690293895835090312662775479870021388407876384918367218226848251226368574060375639165424120532637019612516415765628756109785264583495875079123558864865000848307441577081665703149963984298893322980862650347978864660092608521730342386897885653954000793671009067056713741983570936629930291422851956324390976914565374975612095292518208374532393247675945128381554854018855431573128466413010473591881397400319302397984488237104002223171577754097694831937377928817923338921377757659912842992487679865269444895149867630641626002335664830312071061760211590014209747527034711585692364602763092334382962927927972863536400251864022960869152384228887522259680785399993923974628600424184307722073167300925077304623300323145071407515140701958723858825335956692214728774091676839939680206284822153408892812350678315866730658325048848150612681387174200292658758234195648061864593295664884730958907676387590771828671563403892356567527601414389453679092127080873094229394087450381485933282742115222683787382948689771584941586002502804539101915640844383465732686977893444627391124560789527789175215395087507870666526293255981259434317322435987470415732268070644252052714497577062662602497600838035487974189005256035889696360084629537816157274963719656162126585878822510675909475745457499522539248943820504987302966378671774800558490842196024483413708125298517740886327528722303836756918886645819238298813324934498479302935517998902383268164694349802430809817356247295108368204796458387991008817195548334428714663183665253134582682746166365283465390656031719155275828581447156742391311873194034418636148747721554903988501095565523396469359359553438450433124662990121975743812064440213452029999568470653036301687879504976714048067444529804550608850446318016100653541764140099981228466208443249870410835838996752278950579576948503551818803136791952950697278493169438337063824459372462784660338646215081874722099734449214095587222170736289316659273725037579891840283725675140086845986184723372589957708938922736056549457505911357822667126956858902331556624367784666866003168044725463786193293068922847744733848801111740634719610268264817243598842295849749051377983762968527966317105203073688066320400996056708709541170322530144011569776625041435762013213020133301738211202903600477855825784115890077826719358327059537239530580957306519590762180115803480004892694870397615674414143138828602062682597175512318920961889596528509162591262159353763234781123642898461779331462269077389897135103369472647112541893107474414570059105165337639515544668742403246474402444498343424083281377480723388476134785526132387748252511355821243753323062386598754627859474111109109181346354733593493908270455309956647232333772135040382904203609383962564904443163517574415560226163908339985176968392460513994048903476269609894078138794176174253181610127578033379028327522762804687289499486940193444480920345432961698817948866967305171734490177808197594966616785167265800240651003779824399297317499793841501932395846156088471561562676958166756449405688003512324618844704522588086291798277754363840412095981526417277254305204451308269915283488862748855565334664520374376023499685290614350578309460970028750787417957592421308042782530829388978544198259472912599163343546237139333409762184375324661872972494303819782443769649573199982775025625858706374627093066505833241222141748669109517414890351529515512946159905350032533147049274677372231910737352324508222450454373244726370887508464682971668207022609039595007925986597952240251963830022818746369980129824656135713871216444300584437594964998624812021340949636791132487555604828147557321134296799867220772498053705393494523346734665220822770008425820143241652508147409110903981200001885171431305985025727609712397564523007989959061304213291916753718744177955436566527412358034860069535667617423833647590765824647545852406892483292723123508840794700400880910100647913798987935018494326571743394741223148612201929920640737592359594856570381029411046981728882646345175990647935289773343429172851598705396852351919854665949659598044437715560091486920859852480693077777404031333568005403186223427202192105877449828326953664616836762588174128724414658012690581468900015121143850721770393472896992348101244521934567552711074877660883039229227749718682010449446568373075883125294426106726352972606411884179627698819570691455137470585019904901985912964061343727484342976117769924610010181391940515871368402368254460079302725868577265138578062126377952480026759499927259112497565905865752919503992156056263567292766522965973398149797431826516547912716344768252935141896449423328661120845976716261471739099990675991268626103739840510303083958510249819865706335531240645604394360990354740022297220594532983315381984373246231268508529652320729128014576372391276156842976163386485616860583235607138279738945762222233778690548678815644958547122501578917305114781083027787693830463943343947418844092587940874695546460792080027902793691598838943584749317232384786103944422793082141893571894035866702342353276506423804652602113485599466828281638010321413707525885598934917918494047670043877865857845728829638986544426427740476686642968593394279297344795106443384267202392611409930110762788124349887371898406594086952771465487252560569021672386669938154315783687073071833145310476026193970806762865692942398849832445533497896844401826929243930213158322054501162545050420923582591451525778264860125420711557333951163480896059053218648164619449529078686155981533501662723172331276593893917940005353495697302289921717677944808108125505247379934495926808849376825703899008169648197506249230451277260031490953042866770937108589429566056297047752199509919444829518932026689958692398881446667138202678885025704142681656982868775958864708379457472431971441281847118047151987012990162553292055369720247894228329617642085044151904244722068386346866783312663702784318304681812704339361917553919088948918216566150452810605642114779613221429462425719888426003688910168391887620129907660174744936216136878683744817312612963031233650126431594938981040510443974517752033134999492336690303989617187251794138539024029397578270960690299566392851173304859100158012180450164024939130296118158540176977856146528419047013666356121571436802017144684526956382380370460790742784085455630603012658599140114768572345630368524488148117822425547525474280439976290023954551381723026923875765598674092273806154879337845090618257735257397680368730490726287637488716373532109670832099291542063495075408381086769950944226683262986175175916608377671731787019364698902995865309585141138054980471013425492264690518562701292747219823932598579663509137209476014742569142752606992759415556813726570959149581559033914314008996810693328597740414163444811243284243870476165910674383387926522915207688337292980086733649490079405781056947339980050954562713257300728296756917905945009883103259756868211015548027198781580356225987292564490847163042302951116930930728213712983221427275566642138542091671825159692700826721915916012126374507876294206298690349949385880950657684154641940687347966889979424000378195206225684863210258244795411797252516422548412786867252647710795651028817937148201819899344244769978198465882129114915525457976065959924190907255620981405536162351141306382155270457292472506376785748295976099581373387788630263991856637677594568733625161297267537939957480397469507654039086368944267226027044679949453587570930448449725021575458818705839867062571389467732385908497984153829940585436375190269936667823987135451587467262052414674232762422433802364359781086738420531488705226628624009240334146360340982129793503546822099117491125820871983008017941613308803712301346547837214612801993243719446946864850652881082400427328895180828639390190250448677505363641246540043633619948804098020541164690799544582724675593747498463060722573870610089651174716873243624408411142914682584295278829415889910980477866474376523467871053798148628929737193657886337668969174137416627916990793636936760923145286756827509846970331854473145867838435635232868035469873740885065551870372840363409077423452063504083332753687941129841203770505250832687196651418895849951355025491014499189854563576169015884248394269867164335702201758524308380597242606751488043134065901640472901738317124825055805263539076295266261699402443735899277313507372232683714859278223755918658114298706178237012597614218155443494458491372006139383448875727774128779418436622990220557224802304075989646383397033800203519732941377893031397072261124801939527709657364185895801196919505187751105161067894252023171907821942892861405688141298881085897568485312430927879057289866429150599529439153583475731816161739577146979918290037552314225939839896212476188887768293462480658348408771654132013681224620235154349530098732035923256634708732649940762774062298658298873166961319630916091472558185439375615636244547711697450718325714074500677678531469728429678530966099181351941817759743149393690041830956416793143822305638646013429737402286310828223432768835950928158374083853864562073364923970162726041431522530363101902514728972932441118516818926557385532655835225411581990149423049717051245474880033938238916336313560115877664842738725965975742693193089788413037508224851706820477035105696582911597561420021319343760881697631453430353526710493022892885722469296749278162121577603220801837185507177361818227795917781220294150713399768387363474783154392054460442322746207253875722323855305801227232976034219497989267515024983506809992521179715346015310882053981049091850677705036695745995173198333572958986069086218255505190687920294313486162156524870670613289510668038335829872550641412346177399534317374358184305850156174741469479150457023071368466543205967172093647114506193013699780050201693293563191385570126143153915654358585784116889759909132587354186004541037245622310342712911133457730446816988942714559351120217780631082361610120870557189124647814562196393744791582761250063346757394039020716859053774296234846654785850516533187188666511141958420229364317782950609607626340684731614351948537440807719486591486524935145771832595838662335060885065429047710884205144588769803009007678736918263695375730118778258267373159120244845499859195544664397373963456497211152063361424653616206732726077241455928234818843389001952760386334855168881362316644293362868675293833092252986394186331146177630014691799934250840177009088060157844370767077204865893531709974853744090121476970625950110633555039699089103665679544106015635328117538956048020755770668007923469927114539125117046855545020348719521567160539457247855298964117728392181630028896209840960411276162250164394780946395937627736798963702365716676674871689202586812831157798481795762735032942947234405234509007137949540558302459329911871694038810227114268501909373070444974279531781260884579969173759744908357475215379679860112201569258135838735081741398542278256076961430795742569054682107345970553918912389378775638838548498130291445012584550638008653111551782402753361046388205761734164894762403425490615883286742577396521911071314307238530506694558427267149633499938359169801146246512697871168277473330945705688458147197618469102668452662655115699255963220645609453682691370891962482236257521708635521241629537007102128571856767581374797234959699226687436840779102687299759666887426631130107519709306806691809766546011090654431527111872278918844430151380365507270329084637318601544193085006815790333699624196177342981829526399277484171469085278987049608902492078105390338206889153103124045245656011717696577978753975041901742760433187221388032640010248952165645789687460571400795380091704813412535235868433716488805812037108224081072326217507824166851087249454443978811707532088478780041842402591896779218002734850700752457574581760915137414547206836702140155947598457129228494023604855334501296840653953088909974237559913168779313962347033281305401166570327778592163755745646806277138858816158609483492930539956557456527928948211567593661625174354731708293870935685215323872760039587281904599656419917399550230054890213500364066369552130358945402972898846718576641106907129714877820703294516744002620238313513911296881777614962760636170530850884873829283514752421482545466526653686092655833766877252521843866024552926655482261789585944333952374665614536810920438629482400280264337404006433587059740909470278009292949685698157905714328399912849163801249628693199877192063155762522991209372543883155082150542966195751018145700677899960005283120626525639043592770336895376906619933409037010224661288368568402028475539999622834730738939632159237938980113752897529669384622467815497376615235222585638234906816947194368626100472572867983451223759601816226176358962508294890275736106391648987373388428785994270246338917761435102161004747761996011968611409523404629156984928618949368675195487903486902594588456464693739367651296614920922465425873396570296125506049064067014144142712418030254252546420866102931479938770190180816685071834561616385713275375744879429252602514591021276782178093912185183242485526014768731244672219891869459066535249435092308905574805534457767290268358857974598971714636486500774966842886977378932615735751725396752182124098940113801261890899026508755596738802351351926512730279754387657914313114165623127154204351331458829569437448958005143542649092236918325543342306831336668706432029801586956126162368859565490848707872188031496045173218633878431663827018046748010733133245956608901910454692847613257101471826251929083649498383965192064470144123429574254965097387644772788867559457295695606916410018608571135986610585691659091667471437011684761170011602523620676662352399621325592995636663087542409848059549449500385675064608280629368396441457598728662863301667695475075799812659336385827290529544037412024482088917331345861096054062545345602747029974685687931251806090006358447637268959186449549357345849170816855088458740100456176621822011227236564485930433242790722283334565998047775249122816195300119336329890001354460225397527719290855167994051536733311118376062328089236204377480093474631833063835203179130656231973326789671516694655081974598052426482221502480821368638177616907156689601774103631989649855723087270842327493177961994561626874012529591603106397627175342477802490766529608787218530018169309316488011052584501038729700676555744924720054279525666882094326431376234986620782221553779434352838279689889049031024451291863764395417876855185911413900822448459727699266933435608747994087302823522261480592853054114826263223758670665226508024078009547793532790389086096081385835419032001678310938645171526638887788382792710151980936235004273058860243858246669621280445257633940281551534038746586155895268344952759856309149987802869993435508743844017580517592239512543308798855135427203827047553178855653933595469548965575455960722510097794862433478339875794612328871183181620162838980309884911550019224871827866505892185148085407740740083360761049648364578943881628533808529327293270793510289433103848551082813864399674534788363088942265039568672739393897705544456359269695558024314962104319528500404946068930104605426742326375783541705324771751506108125464267735306256074063576075955025197028052151148746425585407317310240818260309098664397564390109391542582385105429785409970735566239753479603301604076872883457146192274741222458131068431449453809676512297459148720118007036657957456431347931808317000626595464903797911130784065502815088736404327935006378620102528671523629416640300126182125692095019130948934540935015750011136063748329355150029071100987788466121058888662381195955127743730850335824973133203040421663644781844807323291224427783102410808635928719766910304623705227650878933048764389419118853582178254832481834281016257003291852260787106881896367189776714044280905296821675959097472509536531589483651385856088918319188703951490971814790267961884610069912958413269997324655845788974029169785624476645298781725527992458606438482603632126155996887537834099857743282101625674118845535262888376326303887627858308550658778098464186067078516430615779750293022436466250636848215108814827431494592260421256549726037990192529076501832962345993993377357377018236385328352633598585449578327069184211577562974593127295184563416838788093725311728934358543269390367470587847520963005706488051147910488325825887553946106161208231567290008243188602232256803872438856177053225774330761775546618471022778310871259701610319055400347978101848803247697467230898685424574224593098882664031021579509146516129499573094964554950318508777600381947195023346961328200423505643852074134217406349060970602275911025475286850799144111535504476847443844409161184080214210441472769970364638098723081595352440098558699966742871031493707174591789248036974405784585666495227109357311306602654973897588160659096740593933751538894889201888299379513460974743308604692925459105894546029455653163880323463502337677043276480602853011380780405080515356635739609856283806421639047673170237149228219133666868196248062105470693740372468379724294650221099442051380846121624814982412846417294092877193925840620038508438648103932109365399985757266820201912338729637086993417777781614369110183623429135521126465416044865426677003652431697493963489212771400087124652754109016311372654775307403222777276683796154727502278837711272629992048495114387650592263292916608829650521703501269373764456514455366022867296612553710632751772157881558275066875369035834637338706235188759628854997529713533470883987937784642678294178674440751646021186370905686855914056104882918562700062373958470952695198203452831369708701287342071692189640219415260881581162016499174891941316048955261807259575781632834183738595985210061809766052857518267121924878118860868890274100442890194865617256287889279887664338121698653813581687732872719818416399587897955275586045875440224839367100030972556837214131823611643593480206833520061126896291934727273161981323572981094683815087483256158331774341443417540064662888162976642142470693946612328665841908355255020823641638078293367317708550916882643080022822874149574994099536805306669490464441639906625691207669617078621659963147656615600735783903375304560722727323908570575628110589550943493015028319849976730117604993513735792875466596579948808454921961722805781910878622673834932648634344386286219200149406589530136681984030684885149374678940636059392076459162293570824587467935508505134466300006831817105944379073349853187535578573646146757763988637720537075715353522276928593527378476482541895179029944948862316721976210841756830397281753970125565218211365139118997238006653707790614819899754335823952121252266912551516739437970178509284508144344397778006697342462243740596030984449969693638404062931453996254675499068008265183415033323036459647449774021113176002816718106136690556030414422394724151731057180539147637909724261364803584841216933210135469332011929964693174701366097083215841019316744670255364476829351018517203957864600888704456671255597240311116021040779843534574057568072776465645446559649551341165535716045270338296928363296640798160688750519753388947336922767270118867524381676571173321795684885903274175569247768583390710904476432567804664601037852140431868368008557206045465995663107273187186000292535792033121504686274088962978923258252989381589287268226558324809581621475635233969872345069559742362779793376462160527813545313822837746339416201862945161480754756405272349586870107456574854298954778660428291390706025552398191591956911273427091066141405211883259075305264301819654598990368384346929635128920763359279990699145676336608779240105880266953762698041274977855509866121015969598264281192576542500907976101868745305736508677321119729835235300630396237582008588756486181222675763606725586790482264441944110223695446324542047422302932599536458732838921221840500179255387069663579996158503366011886338375246783157570437669713755949046465055177253100207210034740360362736693583837022320633222008553868238801980833612404299377587998011721241592811339347405772926487836276232478876769704628556168972093200733987800551577433761547728588603928318842138093905255649014632558313799375425341702190971612768206430997575806411870489999927907522023872795687866177812083487941276167472539201943013327509023222282364682518091036407934335031973477278925095039744046393587390707389851024870741196961489443871058055461116589038350653832594907956139963772495975493257567591290553574365297177817237671616354418487664188018326740220880400425803555845879236444557728540611129468743028736709770428825041856427062146510016016483163979994458711490216227971984371178812570208291655205375375829277047317003584902678076843657552129595734318240761455609611071000469240085142186211970266059740478205813378078471656723715323644369693049780777657433241209258441184431048649326252080411474700021641379470288192573243210471134126564904672823986531308400641556054905337711743184468535043018949314687363015785305062776333595759871076185202902749659433108736831420398223401464542829917475592696561517527344691146358252731880011750841776870194568292609415526999889195262210422241286262638018975438879765649183728892401350078499998575698566676130706186489771781718171507891133081020953875177289606378075281117698248615875981934657339160997101983977779871963097775739919433346794679560801224701053822886128245005964614525428386387689716777869339120985064364146284361903610859539672879701193533209643837558897975426389483410931962683161969665102884672866363895778829671778650981636902164510609715688374049322444018260868979405170131354718753802616654609395044564192412711321201109518939195965422733211643579606463685859118351428849517840205397252375041307086102176364050250214053360834406701203083613942881758548633770813486340075951136191083544269603295832617319723454815167771616448194672950933275342709880555636784745661544525924175406750769083890112293706195618182176964038377167832164171508163492753942827795867229659412627544831873593816404570763567172019600774200940450368241379834118778305906733689300333326072643188708908499805130864376486946739711497838612493585438858125047611454259946809038944425550718331327291183454225810061332250583812117150537971334856814256422055972038157144257987400164118472187814100303558856085711950999272381269317745285859047738210203285204225095943417678238077818512412955950249650465138882363237148810699791072196214104276048050903938453827790017229324387834296991854523463328673522947628824839184458709274310994738247908784779806624587585949238417547507168567697646943946703658259398333323058282984041348564880141716668912276374643927417123797038010721829577755360162482120324807427651642651907041112759561501320206558278820778128750525878386986434990501926204840048295962239385954015608276451612677649464870279960824699041052095151428367963077491899282357671901463870558368152057644423775259810941326489626170824216287493639948485912165169892328763991633952389352561295889545381092904688517496710741595186836765308542973021954427715678747522342136458317352712733025756687418993577142015915767882000616579966202010771631975545107356865159758563162859319503257694757287324922410341407766015788976415622075343836411645468150896458995618441941335430085359071770290736396292638448700805122736642680401416175676687093120673647517910228451262256934964093796730931342959753617231901026731900714249849681976723271923554155938617088909939026041945260612147937855674541370995860005494195510523680002915892823105629501479065633138337154379306119035806890670127371676857357332512563327871501094371270313188996453716764741027983855518507559360460092657555379625754314797365711362913979488781905053444027145767341621450270198277952206919071362141931928612089121425051352331445792213194701059532237192220332117454793737612900031278559300262235213514117317673990254930932212140846040013600765455173489097311632091569602527404037760735323153016840100381481821601488033568935422354066925205602845649889692332501012836870043888210167441989219913220458490433137969514256029809716635333516637194864113327029486991466113537558554322770981956860490954647459527084769473195911633548783498973634642700047029617049130375278337224737951925135963264543858299957357889839496589207776158940089777104635669662644369461810684737802535446625763189015170032063443765798735590707722451658933910354922669822530784383461061057702860399375801776510310535473392041982037878945574468670919861473687952461450859700618609909945841177113297145493790328182639361577587881748465112895712040633954502414658619981694314699361502783217365072334417742871946643667619605253855897775793635682465073452027056376517818366633000772868916545165239910610393922725385479585058133369408725937663883455008791844022426555935327312374260302041404925500339248240516268308189184145440175784090856265207655443907584502105202597815872881935178577817739180284352148061354360605867121056428137017509055379163755441303101942158461311128700839712460370125060092564035573553846700366494170763064912727137333704048454530973617878040169847841192027234040763359174049785474303184884150838876504252416194125611043074371999436006980359254668825838802389026681580856033509106586248524187707822769262369000982185183136067487122241583375213963885315016034129943898856732187156598199942045289305456731293509605228300080792867105262404181686540764698673259062348001673378798006700779880092383358992982796119477693803937614680071184044166518864537967106821156220604904061834791005121644242741757379369526804709813146704661961429678206226094255869989790375578127577564546282423895526274447025509963312144690402709008069511488162788085682049715032101881713535274920663687100033749875277807145445972012951564088279527340256093237754460016428952738434911328221965175198865868596552650509592435227932366782055121646513950442226483310233757171699946518390674403401130245222938790228307817554709451855780253145408778485282344891901504053805551135021222065878941300456655652155387024421527652221999773235306976194348530046410370207128791847959371358516455961430240627239693192450929311904068037205313782182357028431847825090041934943872000413885194619458014020153938104203640501537538909143163700340016954489931717462632149179657699433596012483470741734021115711022608130140300723894868580162848029061564867889128999398271671333834017826426931188505283581399721423309174862536614146076914790650967502232528734940016285883213011401898472336507073839741393144142814647731910719463011185756697416707838323079671504038213390315828177997879284964682260432594010508404307739011759578774353915807907539810473186232056949969023386469060017487088078267497370953534054170017847474530874100858463696293221755914633123725192717185716449769818582940890906781751051332313550432287393039570675400939569808981557445638046842141288916677291192959808477029774258418398464733177513527970480969756832827209069226004597698517724994716679297197928705226646455259473599379557541878534758729190262520217612602960267366793607108169882235735674547456025598247990155372000841841938934374199739186176292910318672897674683766358858582716391846422417884957223336083489921423298731088451230539808036273362492907453779563737547919639728438999856414890663767179573073706579249088464522724462013089382036530669703886390367871854241989686076651563236573158732784330618142943837967767353942453663764960902258506735707684320102805946256344899322488430261022285874017485747565976112125027115349266188099601113276824252548918612387835557686312996318149320407235829351421237365955188791367026250342276674921138085871731273515669108880032255172598689190324013632723497401796394689815576452393885667994503959548086802029102291895555307607348102286589015373655870648663123018980607007123932175001517394548008167751161124394328113957538318284893797067270967878281088882060559552540145696895304631634682905488670792394751849006302431826486159215165249692647069739718040777589653228167760943096697331834568320997795570633582317219324981842437327035753874976543346843141265715429638944249993335671253584739511526943930497315265196724700293446099891663278216193412725187436458324642730855659533452082198917430272326961347514315572210715588104563209956228437240981728031896615785618329118471360539653228759526942025990428305945171110151108778280653178909474899254143925261479009044350416666166080403261186463612968931120340751907419572699609249961095586050635808874754264309777846057581791645632864924188056436379136498170590827752843929912177875721872541910585422096005287841896213385744135579253224044168503230961064029790671696661722875076230664844074706614802108635240710850468526897347627751148227577500425881760979774109192695518874215884613431875564346522591522299013165009099702448177137467153437372708830659821546370315483408064849408943851829087950328530843353853745848011258000739853143853193487833819070773014726701254596501039145681664973388629110256186827769319763905228512384433049067050513551503649546226109932112108226125111392976123791646875729031534272922115966722649664362379067784930774801883500306369301711355306961043521453424951449301588280267804923508951964967562920987525003696237291901541418916076845930771254631355450860629531290135122475089894501346606045605488494728256107030375885310729762733141601452310261950663525811289176587605698988478833325711631708287518315111117561174304911331648184485386672886705681011443075167774713084496127160878939269820118198550842340803751568861469509093019676416559925876233307504942847478231608764663949239318665671730035499765605910328303359835206556506049158940756092712346544814308842721476322593700054451896820974401156001358853376240191321239323942486393731437073652294648402771884608242995828737332789229195893817619179897421018394799454599091887440270235819725101000772467394560447883473091224401164559154029798528817397037181259686079451069380669502888353634370323568801899706438658708774672224354383763545357934979424288360186240498194571179655389982004695791861000394254335128864337845351792881840214948704679925704809143459029025893877607251534520814967448177917679049613031082115213701692346392239856001534601918246986799823489927387295194611740819300314939402415431201124497200326585362526907839297876428217766860379503645263035431050504237816164551047646181553461031167409646316442225887301973620611295497809215515447514787171366869435870045790408577082760024039071348711665015607873931061428538954787041943045864120632635831335554982627205137688204606821071296078176729301914095414333110907781662622421634384407630580803993409176813138327829111612210160117353085932469969526155465355318416026275649949633767356529888018629694894577623505689499724658347782561006987288641675699770129512401339178938508316514235054660107577935528272066644963608713131238520131240051736681748769074196252459835995817512490427751385744385105163354591472118107469077554222424815789426672354968244676460994504493035335742368240075313538846398434450927137125928735307957327050619119813637846503595477047841024518638298201622626695530783790486429102707611650352439226067080342362717690470409138990863303105474440688976567939480327513222030439575717155846348624014588458509681254061337867206939128702032242205142816757683408180059407471964790243963728272428463601753218501438608478687717424235373091749923051344326870791738209139824332438578365118077798927155532492887261355899650208028746298730134668487531382760636414825186717604263473937952128758257540241987660283812042631005507807544263110576450240485286099036943122649134482011990693824964931072628808225240814421242863200435536973142862453553650824576376386675420118383082126295375072550958348273541501247448854528324330212832554746073876464441074318912156151664767098470194585274186681922457826173792279954765465037685128264368796724966689018065672133245150214064233788605122644380569280320373700265842596622033201727590780815591236334312310644939391359024102977809010820562102010332149211740701449768496325736883747536939212600181351719136099894126931538205662558636615848498233759701933793221153401620116186867895131049574231815308354665928475596173719442235995853927584430958053876495557285215512181665880204374617634709513001564218116515330036516287801298405971970373606687789703623579228052342694973865496308202443242786211824388076960224318837279014588203304630338129001297136018138299200613819401436494814301386746824362004446225029862811775299845995359358141138108084639602971573552197677084259315323868547489365169700220331960610820264151483221817043740184517683831845137693997196884490223070622382442655351369838485507744491624671282536855195301541620105821951168921361641127526916731016585354935308431123244023405111724760938080035848623645475796499791770600609697647903628997269559478058374817707075357994740796217844825962727670586056554639928858779013723426331993451566897311479090323400314409863404310743702280106997929886486038623321420119365749827472834601731032492726362449187707740585735709095713858126273567867946301426728700844589165579393850296948963604240561645855809374437756582119137276259236549707058754692181846933778961429622733515821850682766498418154837151898934475365292016684130398734990158005366659994160682986395370399934869924231492041172211856025965723988336799437494051264613433522010063373720135879909326863387400788046584274043810610914262015286511287958189483274799396564051602264387271632879858280287035423835865418671236390835965511102080086009883416852521066414357323478810329339554242844026988493379545599552357006847081629905010103080271666820246947973755442702939951917709223009855289320578957610276182091555477968416466706790837532292458457455471659082128673815591427092683749327407208612232329670539611678584539014410605803192037105374429875007393441482835016744315396276058151422056348811822300306295339141667883763953899182288549155423794381739866533725515888744052606190748329171257591645112565331728195022760797934957584636339041109330795773616569155229363057398912793694615640597381445091805940112665538096167634407746521348385784844176147536298276485284875459234416179236956905164567798525309110499454485059286139365159059168622114470115746838806663768718021053690668752085953255482230143436833567595739646586049766747146709726476493857088357179754513982048241089026142414965185987848549193774698614313606159760166269413025469605254125248046004213436734088098736631803437836462365071771428366440807390890582515160962448766721906107588902206979992597901613180636231161980021107097352110944878485052197242093751210719310939059281319358364585564296664210482013218827947262250005430935241976129072668899405881735829679384565381717288233534947811402471550894558028347491281332523195113322106449258514129379642701115886774917718396497203295444187361905403981434566995868153500027677461975045059110165675681329946630943714458186045471209796580399478850764078169914895634362504203127033838619710715925561770725891331339656819146233008192706156438579740959016111886027355138512330423030662697746071030879210705290726441140874261185969898233188991589982941625511826096568609239003349901876262933141255974674888070195655572625855484523534996862417702865186248971049333494366315664293071969227730875002664656187113348872817988767352654439593845937244919480064758017833109662627892834003786976036715409804980897592402738729427143484251838892987314495756592764161764505003931623456662396704520911201241077695795114909144413644966369793308570051320590022666993676354413925606389861745529422679636509953721940763395033655884629438392703220844048472650318028436068921551121139091752377760606919206660015907819531128107487032187357248545360822120804528032042382491509079801345462466694629886299195493874207462776310881980843183473837751480860822741779565985247252537485024701054234186148383793959676068836585871046722451337517863124504920093970647061116075671340580626339634390825970458962111259336549656797910569184336655504268391049958466361110474563673903547256633687069387103488515118380272681422313333511115749861162639110593708286574939953702119768405090593015550347055110138973619735223707964670214936322496803196880567153527118741585982405968145075488109130091835313820908071194209885087771113735270918648607003970299787190180422624507338720644622927474741079614355221595730560781597357445261665460579147937524806738871756859697223805990389828658680789391056150667380149671451596046660586912747689121422394015464159230475791629631412076955522352166872584049065980877405606850125000191581440841270065121163451194067665805392167274260843494833275189163159796131381684238112382088163011396454017207026116961006652368121613111964656658386806605503855829507669831596367533900032673329220895523619942861271873697628657847041319555398354276584439914191175484547977793166445117660302233217338384608139725879615290059136021601458283675332400180953071085564958935925630401218646951051776950563123205402265437230811108709734481515986274868760189228649817158377109649180802839962335010161934082492052600121856457023272061177509145690576598156037903165580931492944281804692306697588377182082631649975102988972237923547157391064262009690336402257625934892732294112580351815585079995899080988093034560483983030349356551750720335255749551116689922528463736603412149761231760767692672685459660304818767287782018241694172770169443311240839596669387668820350620324945273379979376770412075308862177671893621647402486963552509443462866041554658343095958611438062968749539710050516391809771893279286990832808521604818562165074798367684472898631129067136107081685288244110196355969974575334950391006148071169189306863838989716314746280080575198072100507970785019653460419984243068207531287523159331445704816927131021378058329021192172867119155813035561478045131581408750918717638090975210824024549593980032338044067320610654881490816137924981474738164015036988025901359257288126512769506091072069093516303547621703490586379671963875590537899008695614534615158445043225127862403640147352325835811935037984995138904037937516997332713468622669426226967625104669059202521931975477792655220455548964774666012296026533062960816084284068173769328472460813041987024714554769327960441851361109689489814688031556217421124547126839515293553421753570827571633477808194486889428655031557292465795874658635769299099452452415856164534387064887278042553589143635480291734604342443980215922737817419555212425442366636204112189622943290076399179333127529876341159245103896221904071509704860253614816451579410565773867975642954762005549389666575566762421806488005434472967771056525772889689978184044392839425827127561751481377682410783954336147682458761985646084505650925932754685691714491953334851243361239423013135894045059696416146638404820168964754700419692039955894009356554219041452389550165991823222601485346995667785396359672532382547268269816067736321462650834129171247649783900449245342916583948344496315222923541006685176756409660081033134995659645219292693003274221479208960609143549886143850326930626869644896344169885985794003463858547677472375600119708361033923724173128469159874450102902728316510086903131458684350043932706546941354033951700482936213785100661008604418066311519823439359587101904238087756469348400746740620969068112788719542620774420118572876616993432951113412143434884767323452837749938851708146122188190703688568211265393179356738062703358526950335257709984704295403232015572435071155556433581407793000489190977839953386726513628873305472485795490077273752290427512809917201519342107712296654211231371884832136484868727724809130903447436622172048199056545209195438523551852263572112852874607105397381783553321701730104440610718929461506274294945191444454313820935600519006372806994554348995484442642196837512468894546792794607080600592966969309615391876949237784271559912256306715548439804104065672197233756029726628419801563173682717584586561476293398641063151243661313484705326073952202876175742376004813205268550129100115827193186550650107487849765306728621496024636864031611585948315525648813054044724067151879523115672611243982784324805869714866060798509770980773376446406613731041270624552842047437423466431033518390289699223840218691396958065738061492247701999461929362775095293762163847563603644623798541621120830084730418602530570350950512555209600672014039073341270391628027767259823426667256980849237960110418369594671371890545414740374556297721057958316521294694682853608420128629289804656213360569863421143734070574736889908549561478147512252570263298288587029253751949092935970748266297653334735821953277429225163427419418190765006237900949542020834930421602602252439661366031789911571374063238674048222653287630994128782187828626237585522367729960256018130802668534273440042867322398040087080876217134420504520140241072170035991099400959653294841177053288951843706582056202358915576898435131893880315954588581203013052387295256597922270521648735176675375464876050093117659025906800325343513018344721168597721605664461209312546385464624160676507474941844645106650655130253954167035353027713164563065065715393947096267470083057691099381573141912765949504344921923971458562123270692485909320041746315350167606910094340100593645009654141167000035305405815384238788006440325910160021353881031869583378831977013025452067276132759467909847194668255201683911081621933878837753839960863636149778373325156742299685633447311461073736876504570227928057139135073780111278568478209638780214293104518708664967845535689728259657661679814719729232747447102209812383968458872695701075073777564213885851220885397447283084645139906290884262459609091062064588699028497736165398369398488746167514297827141683238320155444896052527966293590385461104760563981412472932516394885246288959870475601566497559871319352069799192810552603455419007146411392644635611500902279045821215598959393483905108081040727941191422270133703407288474987431262263426208316582783305778107570950412631948430347777697082568940209091371887466250086803964101372898281178458593392360702706331386284029164640688733835477780439049955157906231645894712655625303046596201496648961049712717597222366752306677978738321639716053421558750328052892277063885171602640151693178038695085372714864386425797942667731314682540806516934864083306999528146125606469642353215290396719849460536407360651747345046101022969923815204806124164865220063802129067682420837574868707200381511567657534649298494704211467336258902133833772815276702891223603600308851793351046066139469671062301975489136273660178624835090340720883270719593470777731404567024828787040029804866615259632245735671843067409972589455881192716912833558415689054483586684033521471729354219179456550164620436745387256942816954742172400950720932139432288556218712105136656021912613363128371348623869935794928031183630159526511041495109759846064412745882637888947243893239400772918560359979973070575802065929112420686342751092302582614999667271635570164581396852806193221849836766093827363301678040731800434284877416545037628946452697632010794767644972454106507312947512735748130078491579611802846268601526207212430784423401546053974036300768874905139826587542190962387112273446823906737669678965662313286106366187625422505919176450603319593210312721036926920296783308039012982346728760509791689646095898068940831953011733349676940105535440555759743509998952934108860610805400918541201214494905800158400347768525645121744034511271444601876950377858252475658362841397714066437810369339597760704103560651547681685653488757907177859858394949894426090294928707504524049944158621153198485807797860698721439630401220395166808628191775517619010965267311784543815769792268524644212269040130554364227755957485849829305892661757789723772171525487372852607004310157880256521315416211858037921451509604802691933967932984268305666346957158945771052661554779886524213361904421887979695776182695498077539091328271975946333539355338696751052605670583447070600094228443076061613392082678428457265120065788535671954756600245353739305862156870453228833375097757493222407218366924061642266724606538650033297511062354016294495082697132487783342802913904017070743795184993865604674451912924589991140079800785800950834259077285302626628643231777781950994611313959229349430079223072819646508441645636307958881558676789201338434015429283773224453023122672102811383410848959866257778531016848321356075231486910474278627097784388974860061573568577809289583589649083957846478658761413438831780076901151257003071629317744558822051144462208156635029218779662916182569145604617306954906660833596192647173877366514466825928095466590248948233198219936953279929206440042791617403065296214762230134876557495906488382904600239628980638456517384798720950108715947741517558056275703705363340918723228490019284617727638982274016304681678018006923898468268970765239253965511925641107856724691253139333672845478059010390624998961210752470724350194593307652165015062568242196506612121035558561701534945207667886634323380240216342447181927509730066578609779438520544852220688954032086688776503358891471157752298669946684842731030616450245912945132408399988989370044985206537275500396644004682223460096896501998483169491870444460134550135876517899972492219048024413919519588482315216616110120166453461144117698394577139978041458087675533503039202047795189451925682631781909442758834249329506891745085464833829944690155210422391902844785759380997961313256458906043806350823015030496557236194164495134520572780013649419024114057656203162575135063032191750055967989909043390017271934734447108034336316826916991544881707777339796141245621406512660257773446662152179452543312280233551223190194606401601006117931088460450210550345236259167187164517475715480244944864553001288148656162773557697186753133250258960312713667464586951381197122671184664814914078240964294241870848431009867785420086276667529159224470637214655445641891468696071334597231361041215993340693876541724154464891563100939545077759163840458390978169924538647230428469953541631818241574531372143281754746978711407900933549962595685765970063144166043659907497279640214894466526765673754252541299049528779803376404046617747976427961112591714144362797701192160057261571966716701067447988195304603857366722740361439245944197652884857053007037232648850991336114575538753600723312877212253599617982164253696921940464840972076473609354295536276510057322696936775852689822497285566182030436651479620619447456501975250204784240049990083142215001124955314973670926791929734452111611628868297867409962705727687057605222159889342030139453950041877848819649957408098460847597091466773405777963181311950348377205894081757117437487463024173595963893341673335339221776139311855805297917714930600142076601605682615872992669063551556534223740073023343802789574173845573808190151163850133002099709386487504328710994771542688276272171212387165036356676089712404121500771035917016325374748233786794803705612929804396178661191788394885193709731812662635003574046162094083505483560417878758579902872161477127088401590739979170651079852370693757918767949679541551578144155962591573093539410710392072293688210452155923170237306680333828521782281888578299969120389719981499283727185191936629325118109527031834450450216384773058468307935355894682020565891989391612326615844081062913692239428393446266481485566757163455572432890575801284412422015370743266735180871478589935082559322729912847318107958002024967484936260929591810419267057678792399437035855060476124928757596580015595680095560044650631217884601846849056259892110087232515800383105489569565443364187257493324836603302043449437608599578410441041722204865585375117417950367341101997024309188445548291688742651670562945201183277063121214228752280865009425422925596617126516912730690467978406641410048458375558259818239480881466680265132395370190735123093288326763228201237659072810515132758928428293906792305981013172381510482581556144475206287844742404663438450626950154605464934127456297576619624030836723970562380295400680511429793131270208799563312468247523704254523251413513327233113439992991480770050834046852823506094429603683089506800152134577933244742433948858938701536940097386877957570348884819615042812766590588750901719971946955158401223790334657513967588403997511636170348385169415488068418476466629942612030481499277238377952060123287714226350675646472143145244618416449245958935070146435999079601330272385971809017337390848625299426792249592917950885310569062762936650984870164205678927121710101014545443330244414827153197240431732342277192085194983320780962147652311236517269022482538419449415387778955188541797788872511181245939351936136689981254329087578115493329859042447444007745566133571798818435421649972386618913028829903847008755635801107555665753272348295897482573299351713519669538835660822933978743373556673743128033987259828883186213666275146264565500487296289040274526075847486386263214953320431391572121842107430039271377998974371608779189336376289345319781183347506692949324599624753597258121382666774111112085018018393688239799893206334468891108075455138070156138471932942241002445291614844918498324207919090361308948782825079631253822167132181021628882981821990453560709563065312896288575076645382840072293169585940019535850609659313154656896347834630827283469965735134357748079593145229783662998220759078187827676772542145203757829023202838090649551945573770378028425980095280570802473755401930297857006009283414197647346912334511783629841856111952442377342588355861498561685367844215945586136002177438490505312489681435716690681990179950321274351835279583338516364343011970585545758291493908559027101734350444540259445374147639870815745743245556791366245595172682060375768882805339359781469538737562996302138584958369048549835288166000525952617299361922440413285268901459422627951048259402549553050530902527420122169285921511635256387265562575386892778567820351640730109216483206520452971024796033695159491545470345939116192770123581307225893656085743616950512280505358066504746944988178279821458048079239533163415283479501343661903827387684519914477242224681950798011302539815546943088327112508780649452495764888336109125538482126311777288955404477991310771703318902727640600428446639608865962185069590029850369465886980543511859506927412370466752085044622262248368023524745365740035567148549106840280754044947665254976108505093236464966830187358497191581547277773636907567189905292771432044228868331608730752264160772823608707312187553775883601903299163473131401037787666570729001927901706443255077415931159447915045712099680259142102676562984019545967419721692482508306640487898513794296873750923714474889923594321674641041439098860159734661911975527351062729155625089180541857680524742760158890847261299934877865039851265542971659522825196198664503630450011025913318223940161626506900856578283998999637163264055600867410738664813006954097329883139659499326082373423338360748608834294599334585883701655441895507486763378681837016999807142020887411046311557566201006881591916028414769407370656923345781550238760860604356904713509671691626547359423740473596359803766344740707051104209945642065001537407774039846933065281681151796223655970793636475927683811103047709942171277968625751086494580249610368389207960167266708075713054790454399485623478681857921280068188844350833361202999607191206921559262055939850577429302837282074503861477056117282559792222598243336810673343785316635433655668178319035809404434832270353505334566329949592372657307034322528858304257037651783349535272454420172012032491781900293744945443966958050833793280505813603398144831890951197253900710263029803112528364858020590037556817987721070818353020623556400392269113971360570463452435606145663562751698804570123489624819486966465293746635820803642885385466663330300435402950246035743700049462454312847732647163102661972462380822216874361557923853213125449260470886863471422351664281684481093913910571628576684460038063194273217374902660073246168927312192854978078891029095777489905372354888222301987957058383532897465530341514631432394006292842235921658676658549733496810937618464551874478321905502345261746870826672672571401067417008030402800369359950321865983237580903053657515267599156791821043568706096564453802185494002733326077488616568827648221503906036406778142227697703570760712224207218497152904054203175288204853191769271958729357958239952223176854948355519189199683790815996284909864800653485544260269742918010415694570445877534189482191191272439191750598802967608216851350253384917829066917807333523779616915114436175991755587321605970973992492978201787530323055869688751496745400035503741985530414250477428047882341971278450399769984621132159514142378680167540990556173213552686000882348634633626742616084784365834469918553301765063285206602497748062188223352181720421943028937157066398980375327152114138394282149474026420078500026994956535768435444374200385008828870078704507513014685061803031172298496678169620636853396256096826352587699859565535847118154808969903200482185764927195968772092988862927936695506872261649793758977455218991548655773537442944440295104564753409965710605120327120886408395343061864409930768135203171880529294973388881762570539227607467877399722056630965917698291237832727413366181421569698569355365539536294662709720990768039492809419182426936319425901568977644606922926832584554959862413657553072509206585893129544855340886479352004927812864883069967566030802089653569653621432027683981143360390500454253484274343835379282766220507824505154859051903193100425005323770077739050479898022947807108998561504489317977346253824970750388656928333629675576559595621900972046333107702619641506927978645907343169392547361802953482481088409713793111387959002259842901444019757014757235503841386432966303098511691942326308714941772382513186476954440596691803536657800116454411094384582228277827000536450464537612891109678795688087415990883355406844527568749974914343444947046468948026958413169122365025800522531987529236292014534982090790879278844274505522015201576074145232654607208634335453568759533055693588832472036284942857004740680396852040527667163948956673799089960300302922280257499451603546173893451209928418969465513516296006601718844406230701859685914899838740856880130276986898354913330581819032998254724361440266981829333506301019485811578094135317296631842526387397625480361229406258336774518801000400185740940266742581679383056593785542769112333372403412597723585881383925443908291884733765223697441049971905186952953305172793385414436119726532817506314226462399465429773715259948308664952223431675064625367837499615600159098154130258389581838935428654347507729581267270807217522242438065463872016230486993883819709165856014484942852171160493002735178873565566592468521696293296187266244521055729418523926923846935639944950897060380399888315586020852848743040732683747105293522720029779285797943103754591152012504074003332066377228082126133667485761116304474579799236553981369917162552686253069581501477128728186029041528513330886477286491856666749072515283081048929674603144595083069405739971523695248887079407430520136556248777590807506181743731498693613681165158234697843664111819148489745466909399477908950417355068544929834160811402696556541209994852176611514845187620863156924688061397166880784993154515547371991470144462040794932451919010225282201977750231648082530464719222764162489049370726698684934202719377925249752526563512126417815248381400862180559051396970622409247507143350402418744015179037525392243637525081763577585827621694334274732946030295425177500746957876115355527639384913116683520188943877834060929544603152791256628231339920866548257190366578017624698623863403381809378411226478174121124270301285009308685501366949050907230245472188008082215124364284747139616412370229460027743835468718377058497194050498215126475166720811137959636420888965637307439796436560077865427863824024132018332317767835524687779164733546008292209947560365276213904405733626077225113465609532674536679352739567196842800897539508464278383859986477020027809457062819888757198275113818684377224922990928618069116777785041980020035294480199715373379611864040227400619619708432824131644876896904554085353447587012415247135918351450628779375933127028964268177329177135557261727985994954472629268968679938764401372786393108304834632802552722910184369386662308253899061729886861813400416125228744180487166562706664973984561206210192569744333096269491164415649371552904414822769185494402343009814002878677018792622121087346898240735858812093021555004176169702726692421045188841208372408031516316382183456772093333642216100720967252774820698652599573842200752778730073862134777957606578882111113511524129271492051406515489430954103530638705527364135173723051231140546167436635016089784058420508543761080054299110226219650581008562644132616269371341107087139636346329977670678152369492479226961558368232128963334970777458321982752484789814305255225764012056669297969689000961805170529185943275923307311161915115947201085057086161636979493005227032002167926980588885873346712273762568205602084115682703563035862998381547255951460049140408158772756794874070603773090850782458175901869930223036419141163168176207114827344525611139842417185208424997130636661896541033335700356316168173614480308229386921420883542247689774174263602855222136129035610248303666675834101850364792375738658469405947994282254844605457470573756101887040724219368616434821030776843937171159202196857762142905169890543352448508264753343599411275161681978554639058010882771714275542097375516647072995807446943479132185518282621812842262534786284711991783814722272237129497397637651823167437168094353090805125033041586287821017089404353116592342400409308964457751047482218874883631830558429691763422998066755662694376165070483349974790336515379514518308328562602657201640593922749131190136278850162583139265901933514909751274066141304205176617570874723585573394505395881850574439546075723243971842419589150070842571581823963176358620414922843828965482427883167115237201379334264426626971425944090160414648955381992836079168587447117919880618169236282624155257863362991915633460985302776282879279693885536409607294798936023187606798853009606351229578120152717740393602026204104011528127478703231498769595908477405538094277933948511225219105386650808339145795854900175075776812256132152500495571415136835989935001745644210466589798876462044960540905673353187220160944560946139699432091880756561349590928021130501301920966283055975261232112795420058998704227787890876563009121611715757410182701298727903833890017253850356570541711561523192910307370244439499766540719084715505471781274493700016139383248829109830082902561162501331822866270932704896380040952966132506412586110752382651748777910913601637392020095670920609664570714704338690585763548865338739413211168959144375274202484669777080309117307462246728743938955739327209091548909227859777269445796544279826866591385341729976840561868511021062800118123986101087625427626507313956046165793984287438574456275280553949380842213059639338775662055308730137649947768252397788093869122210952599570887964278841299257591859093401348864147617163888776686623348095805795929386305600449337455048601829075666423193353386154224648734365001716737078573078335835986641712184303136137189003510467743885828684293564876033207355297914443239249949965221493019289085398712804809856859077500734029125538243866330659803722756946882006919942595247735269054585830293674351229552601008334360346030314953412876061105681509860222496535277870036815407727778898041341348495097068466960695639690288994410404797686139079803212414274800356149574199224496329075736658909797812002174503870592899725048515456290490214751723555301656707798876936926596164244394595928322078492273648877017273322184429298301856022537185927834733452627548237125685664923152609463587757015858929643919271857747435923781047764368132031669677286910656326320146695210997185064487517778524289509656180554686927831924710400966690039356674108455653776119691856008556685358801312930709626375429048490029747083076251266347631394459546866140864862464362712491149978700657488666248069379213760791751647349403075170416278838110072248976313941950643725984615251486363037337705305532931488247386827121387910356560642693588834246104168631618260550579050791033334164793008140932814323440409973330818723996274761776795106933161355424525738106776679039084543588619741525086410849400115754756015603173866766649059970665406297580604575809304743904809004336339354157993745273923054301494749514954244050803570298643628337821403218161465630680061747384960732618335434265497362622073042332472693984828444503951836577488753007577819292964196694339559064716387013432249517507311280231851433814173982441522003313662314678690152433101476390838653095794667609676071067949322110725372099297064183890665559163710112887048907211648937151934340259404985112551159636068800983712586084400775498303422631364290406840797460379843699759976919994028446828698454616360235505339061365322233829529935285280354614520852845873245329513248793895359189495135429786818596608717147437227532131471710190754666207820772474599534647894667673639224825091492491854367441393421412774587684171831906166975193865255111058825166895260883279339259409027573214951912867447154192461409167303536976514448219940787595257218124426174106372295297171343349614923052355509338581544559572969973309094222928463576457555385831200526074924761800184185561286656659642992845679994174318545979602310647815698884072173336631866108158222333071321613977851693060502242821790836344849301560827632725865100451748523845318732106785663352640511698855800061297828811220743088830830696915413331709193582343233394295008821058579633283035652432143715618945187172405319983559667640794645089808455447277135775223144430561835075593644460967381377972561400507542631404053953601230457289088393778645500035519661797590332803954215595303284370038456072202759455456175735276930430001281540487047522920950216995841340606688344541569741201380203511776401171130740994685849916535196599964019189989073475068378750069413663790710135102482390096739264363427956227601133192157124306843849427286252607533057597275719192416502105409740229043966587568451076585111752174192043009377419978585738149494467676163323466518562885822636977432301995388825381145258074968009164781667189663267460508533083836908071220991094648956823801990106724981457808970768294831192854832142240216864416510260957931750664147928037645118975472441872319016167031771676318454530830768799126218861032274960206093435986422093254858503100653646743729822869363345186749623223675305501573732280981525378236461890770009990725402956679747453623526909873125060469845087401380569093355028590786465542890619785341243032928316142740212465730517159105384214253510898774810894505287629129856928257275379711209661886896023891150700879987315700792168490378531729441218612523729306795726102011364161096028174552405764032902585907603247316497970289235530624316333481446217457410765473776535960745613569863235413867420102074544902771246913179472824130007697710215103534056722836002124360185346581532600723419274311936264343251990101092377489530866237522479179930310091263081302627485124023504450689310353967305823917305989206013336257765671412629037891135408188980859838372656829470251353009900635374534877853329330992199232443013517837496307395410152494063830701918901078354772556696095628898996082481736144658027613791337511097517293591044600266312341117446056625082697957997384565266378261299657561873370894133659120840240648923253499005493438064626100002693529658225049262458972665106997235133520277145643197275789860177073766022020969569910539415634900475470096737862655521459298505631244110134938138341965906880636768933139172226119721401420335350444344927111055624519333436882777452735435882919830264385207862814977133164803246920727012072414630365935841995531419670978437561483651192444779444020903491198046074855854446652293111688828216275572562120374962645849060956524062427288069777238356582513037482710521943560389867226009622194631347827883694067908808905001929197001646189763837723411485278046468318599804267434556505031482031990986937694365599160526822983437451240895009821923732120964806491459982799604856539259503800583051368650332951023965736582398028991970926334999850923759878671069949310861036403322002443977636297012016622017611051359356230629619007403532115828464739708385205729005666795248174848681899863270451378535288796326672904962678370912048530189675153119109070536530733890113888440473458466744839408708666331270516383836892408855821821512195421572156381944700899738306263275264542132258425785736063453899605979894276171274366226192006296154039589497707249139885166158680397944431401578476952633292174528107721121328830146914432600082670178121151962348638115562191696103181003507460586600803791095860824100601910572586117931711170823989387234727359614580333491494360981927748500843859310693754985221495450211550856844246393936552313134671574607059745720337742754711934605223395180815195382911252047241935869446013460083557686945849591491526976095910584436387136264397866116337632051346836641516427341281017464363289046629424398616870707017945868671496237340189941670204690879626087961257337003640871803288342152471082027059112930384084224203420820568213442930752081792727213754683160851564665919340917146236629334762525616484733169544271259959990628001956752176086661279268505845619659885410290214273868562859517261473612567959106465529664424628274856105088788026987239483588129220482742891449309179535974028463911533095805916163438261901860361955865021507082107951362938636309538235174469076017242665137287145204092524228370995171558881401156000925746814528861767856710146988662785179371979034510926533360469193082426547530408531806559782968167109053572678651280374015235601782518607015437902571607762277572447434372268944001795014891384228882377430540070980609452938825604241902542948823739816518488911549570299368425157914234352665669086799775846862017825329799801299107931580008510838322635759149084210133735188640564085318595174322576292030754072151240227686696986237671704491386684063706629476892795450796167606010699666119098541293435243541354805238909356047316512485292127474673708909212427735889442017739869616117016061680576782235057908960141992534026202729943036516530099642081637940872301182589925455254483441923492708841831557058062589826240544672101844041418608480319641491195441530452615385813262605285366084301336709110908955149233504872425460749685025978922368216322536312826495634205336665929772567448985841751187581491802277787334741491607242162969989670244195826084140896058906374142755831532369175628852032855729413033570720989060985302504595068831059707726883029134332945822673091567848513256610482180987382061327061366729509486980601883558945989487569278155551136871879755669015265788185530918425739494042654383247939006198206962710428039468774940241593723223011955592953587678203317894319722624632500937827874298531026565898072942514844578004000769493275921500136851401162334456388239621685950958221050022913608025082451245175261342072957168625791255987160736718360665452424359466728690706607328247670331692712109293953677534668761421058563723228677258010011104994379000449928897944804846004760502151155189349898532096142281271859665504985395376271110943967696467350160845124130243999192170753178162338732959798099580421159769002369722076107956178972141450294781984251564032338977256684999805430380757741189970965975758259727321980689204047869038728267442088215631090020708834729970365043967500670270089941534311371428722297851376882164230924271907949951586407500159115126308504332925509408417013885918123782967002516693532858960157269473408068019354076984731549459853297961165516684148106815038534261191161094131522068097432594350840359122742597809122335349825097045518618705935587382263955273576356457385743547345945313514072512608718443917001816659923728228523718885615097556202118761589270969442823076963159646298500523131099678864024793552887797115946591245162801907140089005723891389294561610177974770893537710225716990962725767418019408626486500097743787014894181169110603425666918441694505943870033507908534176573352813943468597800487797813353974040717689685921048059748776067247132326970807584982691868137157723859098614615157634090581668859247461781281573726548432901235129930335392696965226727250580876947950049638311139931232280192650595055837070754558710440043752366981605895085959250926740311050498997772058982574759097245678198294029192990746336789269104133830036343721596373398828101000751460332233894971719045019839060859764764113089432058020703481394413744742443778558575961074910169640153995043274307134859432850464301524156026157492773389507702626273769072432386967549535078713361595038786458287515602980729320528804273812754338309736975059278776783980110697764659018168867981517430067934245511456772205773838676516239900778205022839565727661831827449592344177677682565041643569785343479841747203486305091371679824021281007396597105319842390942781384737368909434879042782445643467230877424319286429341903523678953028996367799350403263079508644392712176759619852185469121372140644772339721063070358283726926075656630273836868874920970288900879951140318305647485969275016324527336026744324801915119754419831256158880895682588159833417130549587661497745918680174172029203375379449073413563841804792009287165577374749335013337112264429602691526830636847319483053479214009651160177016315409108385833070267387995688262861602912971561213778909003732218792931925306091295670572285181988192330680563054785210302395785167025699129275811179412688453101269318856522663933847789111095043477371095040394365252848450567271870889596725668904279772528089469751702657339465806804743912301530929630517658837141534159492651067120881227366396569322416295778185100188864245940629942547088724859875990940764350976135381291632952781871075999959033413642291997046658137156327508723319482712328425582897688639714088866920364868977630688010560863565841807343294171022500664814512761474516643163888913057722970491894577316448405491022132010919952214054615920605030742538051123687561741055286477962479814309958251126121635986890374597650774201319094622568728203723014682231201178919170828995085942469596618155152346007825489424233630601548498345504454275403998581837278921385974190516240804603398203771416428026801836408912953496666865997495304357975433834732364622666475231058998828620175631685342618559208624194750596083312849246316578033982148012138032596123375220092950834385092766108786911966872878145453601810372531151897107016183091005833010907439003501349470239010165501153971741438293463150363118336990445073767728146281284671263262143204541658040010970152720566357075811525392610491485573013129912445352759135020620311389427805996785518980693304540981647990611498893120078162617763143149955807469763844504127005859560616539333386300943711263256439915331051180146068801452529470174158627268328452452663334522514706969259663383376215473991739548215830074628599396605803470476502568104858243647187903545544435239672295440623738421012797090447108530586812762592498882864153169497178186631444448885689115927394923121217371101978628533639248214137856634183227251783387207253861662222662035065330799893720988293583898552820762951527099338532168679697241456052532946686415890479609640989766735353589669030259209591542391289681790568967873145241470200382035798316273592668156226528333092654389762860968199361942391086895608147434411969634709567777161670625907175978620937793351633585695846654982953171860842937278689610199390205284828908474682399712457911279981115181797700992397794610574889805467620809402008350278358897809318222586671153110097314436538952702032517735451471163543105583087720853883044534845142286015776665414218483842812093297830211707118339433344314674660814562913152556141868575229665736356090639179241620837418549280534865200066555028833815485956199643985189694768690729512608780986586311910572224931811589640778289568948598793919413244123658218016537404085031159357655467750743059693618323259801633184819139902980198017162503536857910578916816517483409849581558317878276442785926147841777653800254596236310889289541942865669785769863235350827293733109088587157661274521091595411587984492638587565326324786006669796352238937479846926899163338973815622429979040690130778983808313473092597219363602531770464333870892951648411533425558656001767213926533035815244955235615984291608435057412134590354514903311060925398254030067842700646480802646035948198632699308727890378122289218697348209128880593429201411055904005947140810811658023724794492290479923315450740213255150039696612524101483347784767686437321516338266602013732005851287042362871806765348843316403821738873866470980766161237615161706413984017930281045809212253684579923986535202551152680604705465181683587225582593077718595352809607796002612616669226864552050192411687303063044879905099546484387410307452867795250505829918484619252072260425986764984592066472419055326379307115869873633437543544638633943584563686665441284311824479146154161473644281401864873434094035092959432402583828447460922251225123015648560753560834319582394640961080526543791271533287018808016996768713053888562172957302310904043314889417216497638272436309371930694404004190781628479416510118193052138002779378995165489031716778076360553291306722065031784449647067954279920453960556927263459056478084916081870859183418924355725303465548408083428474651475303078548938049663846988281839412433429927042204605162293168639256540959110890622177417669271125503175809469379181431133786544511782841554218994909610990164811749006922250037123868033703196792746697614847258148634726059823823599230152271921516805902455728141430973361001233028854553509522068321879521972222936004427972793153389121120493252535050120825688171663326893285507153094735550640340624520689680506345467414119594713773198629762798057303467148940985111750291955122724940459142149385448783083443646932536008682319160593336694640944468162999511564734048151102707612188245646223363401947433010631887687256541685995654334412773904618404611695133032377750082015648797168020346191438994589748365869435790474225310264777695812118349834579356159946796716537159083116066757880413859853615857502281274366618013310012607340623086056221883483445289517507842495620968518777010575915584590494034653130766404029233701278225882194062333359386675418514318584943118611834380050713520531575947443856687371234014273292089565037308526038897220669698678795542956115903911574757624921287705757104139598619361104783497638911654041776622467157591418530328510304961839606259999054488725456936434704091493908882416689202754539957259070226973817260521519671443537156160404176524766930485048009881212635725206699513945855553834081663681100037757162402502725660938621236670382675670227288226979962407029244890057245570442652684559351234287311445974485194646597135452449490240881240634170065228250217878362164702249432528442192664532681995229552066127044897502652145797604086905913070808830717927069480295627495995914436833309641973330364887268456703612391069710336063935681331079417626606975693844729665417282903890704037722439265079249424281973860358867821808830965962666939734339487041118331208687419572884670544489423105041060911445415583818611822131220023394616902047031985459249714279915150385801081827457261097760418064965958053775807947562620388347113158445043626646897432595190895798637910936189119866135724615966768373939500132832105855763982099538379159635041914029321256324665632601000300060730730598470754203148054118844833283484667521416989889898128604652150230091629174284675656824899105410483998817640401160064357994184895867014604925237492605443440892127447631199644686151169515242225104392370029195834903839306107658466389126931509292189672811393233419774381857059939361543933400129075967190434040430895308057298504223254382758981146417304675159698170442503517660319448843807557850138784053652787378868299373951282483518755163603095157886614360264914740189433229631120952055314058221136013371779021750949144114946189463016259990954782269760464687402398232728913146317844849353182966386916687011658679107427221787788612595526017138839990685334147889138901845708114256196895809505016403530603477939815534496880861012491912959333784339850500199068211456686403434609089191038118770147198710891885181064884574823651633293599655915345747854617449258745563870089784112476257885292674434122636231205695119222876534532588586244401530839207852031164202407182801699773892975964026543237111716600431118165614536409355115392044202894738948433262716636800251622382455029329286928229237304973552100324890463589569167589000317389140615743840598702006338608397539415762948133959501434874301228040791719169663774558696005586213395408923495760429633631925040230437307476681552958410926116222167511846463540200798392012187757075348568878488968812025590389433262473389926544413015844126770466719398284082158130141017857309790646247436421079187331156613732339603205519909677458013403520416649563981820599772675598924598601840438505363387612491952921532332116838655837256727747646215026248239539487886419412960340159073835268475025047844844450592999302552269054123166035490058224523304151917863368289535453369199134867003873154073816698358401922749263139055637036337221550185768311238807855034314578665095179435745503367445662556395630955231453726546892019618387911199493419045208374423752512337304576055641279550396378145797262452660213001625294276421567294994757559565304302445805590942444902874527310839169992363706240288638178157476021025928347481868516268935329477167393591270847004551806583566309838873248477145126574805313818202791477702329458138341088600583304990052640342869870261932301685007915011310087501589199463690856201455779453391703235010772945087318101896387211240510034054963145385070829903968154706180854360478834279724336593028837183412252021395120595615950606836661769075777201824693137621734237199795930505676743924068255812414728448659466691632034277448937761211313057029357163875327892449269390370941435741810392869533295185575066296264117621023225900822870693308241310520249832209859733300686265146780069758070614709898512976271268922190031279853951909861726051786699333263975994137346372632137432867183072125951331939337805501758796748007389324644448476855942984544858964543445720690236548375497027909860568475579785120343299884587722473136952198205531756033695603433709930376846995358842666640265676299050730953847343939653878435585578427046273567042814108149496533944117867516541186736931705757487761100290264407746394113981513500861825068753997314698139137276104676869838573432410075302759137037651486488715499428909480411561534893135515320312952574582147327781678757315130295629199689529417062448318403810420354577058758852089378365474085228031080333090940859964802648989497764819833186984993164758664805681441734440357211453563612101367800356911965706994866232555013371548083748872665950842082092913666990439926916005245210701079982119430773469440494546615946734450227619250568746310999011844886108526356010712668638092936536910035757852887572363550956715674669014056511452473456447275374138955513257034830072653604160641842597541246926902838740477863010363016133301791624814173998519943853952847224625202447415997191265354388300198287814388539058770702002017589730262427662570958590007969972811706407980371891198076305226870439787724597405974855289807828897048321437043951664923310998128340303435331172039781169747692325433481868013151792158232815741420591592830223531251727724859511216230422060056768973929034301141306666930167371641320728114121356600213949929586399589641161198344744109934853002974339423752160090523927018701212439417296472909887822261183358100866837818989790582772349363842763091299961285667393116685234661271832342029507501717562595485948656237019510352765247982456438644317540964558521822701668353595924270679860618620495324274020744673094109003195014832769036273777673178497418286036657848446707083377232402953744770223808514481989223119892710154568677356990881396090318933159026877689959905563590013243648848893472388134967942485614326632901964604949103700368205505026636695319754702120268316895410342328059462370209290969873909848681315521608385469676593104914965601881938696262233192987141614010916353674209561373827799204673793482840219565182447520522064248806976608111554667426646152638363310119543012560169252458121666359738879891721317967199223295839270239515098234551148113469753550212646007517220547237048513775888518637736169836998792124885853902971897028881712968485654034528321349836882640539935187701496237298940427910753598655206794881435448584390610269995652090093811528159899861856174095481226153757468365611573260848965093314135533954091467685394186883199862026979625764432305728264190983277642126213861679752611364008295488244390921285414438690514722183996398896696571324362834520037498077515952149092904197261677670823257522782315418987326505838681172499399340353564631105828089604636867267168395866535556010037452010512981808688031047043550916322178919501690068636849749918077455398420129049385860130544960824840441989557224480051769056864192734155167875009096175981914747848668700234356374914743677497405853428674119342596049276408804374959577455717537652777617771241406484567390854079522449799875807290083509161332451348883876291322043688953260372017844174100879258000980983918837249023668372735814999563442759108018255805428006065422965388988623147183143636118267508375051450373162955939699172155299048817175663399215405643967180977932157845805534681769702532771703480948595840615705466465319528219640645777206063197631755128664453451539212289795677717804687075592318636513869611559598036842598337109041174978030509761349098029016413290855548727626807358771553958373851172948234497625877657642709143416745571804846753704402100079490906044688219479522927669641123628868047457903687176647065420767389468693146334851491201703899893572497275296422728332667344288140394391826397943401439162195477075055178082093078895052585342728625069498671230762343805771013242703457369736736651109569558833910735183319149211644299212596970657241189084470147670984627065467870703327787456044611774042256996216108955996370805771652927818129444486431902330405752791006992169500829492729427055115644890924906944861218996980940235523734314619911872625861666235244390270698812118688266494297541245344629669169885527396616687410914489387078728930569531134646106060619408791451323978675857261590773050607372454116691421701944858066951833915482206603477726971974850756815145423465592887078425081717877369681559244421044500101617099133162235067291841728727319374222152227059807463698145275063728963859465444253986861315652763055660967330329526624173800968517486767379058508778552648543405976302718311688523077794899985171408284432513642228964590148127352180632347556992118304128582963267165950652197999626437666410873718331849770306433101351805217323157159999956276096821717832143243474952929621107604496104249741647913955600385831934302727329384228233818566012093242766758379966607795550232597508740055547656916431013515502099172753016273087311317332422183399835778627850775635970257778671916139736405353898492799278734456002832286139485768127959520921975889537066791917220056643249083681583154167519910184276909840915576277346455273770014097653576247633229575841746527568318266417369336265512688488679644331008500444183732840133952228245478993064430134882457649229697571104295890751633204081786300950244975738646002564410516718626611459897229623222275066005542041749109648680291018276444236194322082008596885142614370920145244985694963883516804497247515901325601893583591938760149761578073592464504460713775408334751914468070789573196238457706166902397608189304468986597698675423244439574635886105696436595998638857861393577405334177954641170294171942019035963231343508278078980966487403029052687864732963124367142778125665978221637348989666446037461299064442717253823842236783272700314717825199970901262571627853827867680277080999533765223763237816577654613251952371551465986533925796757422613009474136896125437342302332275557695623174187786591605564725921880334635967320473109694092686917028704817596326684268268940081129964424789934827943590444729684679168726921139632108681704535538928485703250283822874012405068730448384415886914208466019153359363064653058938470139491827504409503697205021772966828373552858842715930080271123378820417761036448288103635534955393488706715088023537788521826942949261978195325842629973405633080327832973603621354104710507944228966157492301922509990118807713602980168379810473422309840127116765636194307150564059882005496483286388330643109581369829802586111789221977438004621156360576521045200882539648157502557202729589417169212160115020752237951674598649384847750744426352825916612000585481986352504660780599307787034764178660655863021660284406560865879335727085644603678699075812581897348044996900917367561334816327303310392894906702167503241722463932287858256442130001824166595279572727134682213180499622422747009699651384389228844973453522390266063160550966130668930442338545124327420841928001573814788123354833365372751347246742856889450860174138515375542838003446780835124955395726562797101227432458663763595299442907898136711430814291188138764901718600364627501243187437356544958157646014242347218459344182552083230299866904121530617264800333789766310204135715840479095389685556470616083758294983484457507294912238571756059718737882494080418611347262038452822841830129956683744113389308046093145874548988515633173249758102560728038089270863619442183532867382920216779507747462163897947994121629654591885644354265510253404607218892838916885754068068737266696583703162026914576989639733681667531320031909587661974628223485511346835986639982715169718710421499854070568934989372565824392456069908824277077691114531175179002319316428503653866004215308344206715345623729318761173337516105899160901538834973418340273193839328288154393849726826001868401536638604276825748690693887575059665533807024645025246963162240198615507581248082350339022788534830640266067183491873480757194178580397331840532767875669166064556580129043257508964550978644307232450402056554615787704664385220484739937378724226828980854511206036796024734154563054863723751472988118971037612323304490390815200972215330669706856601393634346507099888768195951203570653725652182538496388070899693512351697603567295948996582546050402978396112870352996917065818174781115580954690816648858973462396399303056413201527899882628722222614430117138869591603640090772683540921734597954237587908463468436204570423271779064438106044883405077876644781900331800896977784639896557297515512792591556805028607207579706382035016928867597012229768844812904119769575249316013656137891062283483102751641276723554496174600649351768940065256097690809755071652073224181540657059246779660817082157593428491589938010662653231908117096481076947370491097595817504409668253483960102846395890600422372583472623708919657839384704527922547529882954667499652971473367198515430630138425762162588616627190102602210984144785726618848047434532346288711382244469674296069078639434686490678722943203406577925629013966344916783463837742172527564767322702570170279826971614106187794072547271626659792449066438775507746006394555788023915927197809398278513621789981634598158501378566584337460567445893127168515119305061905779891958999771701716174705063094240467006324928507841772790170700632558464414907642070078874535373804682253185036725316708737192100304793446681816255780756433706398787004118272381735410708902889529419917389310778563419987026591427108526095142642007122420803583202377639419585627457492871656973137678710096355496801969868686307922419372438396374035323005467833910110512451848767243091154615951852194605390422864551275168866948118058564553025625206961504057297939308058814444827528186454792929082932019630936567454898921128018672925139646619465470998629197662498538071967364301412385670022953425012320261109170557965494797200847088257526964307012006039945394439853113384531573921520353997442507432672435148262457016703834468199583671151758825970369189649211994584114248232810374819867137279351800038388578197424945126923364803151280720098121621288143429528413352269270525617085791552622668791695134078015316718533474031008259311493820916766109878063842045521472573412334109598390528058499808902627853897101144786145197576311343441432103058217101525783782764127664434832125964447551503236558723644543362658813058577465632363075729456673028874466433890612537947532341602853336309896550809802884921345552592756842530565081433210106771290743150086508783281867275599356249435242061999094405640135947235442646658465733449374693894132449898050450545683162728391874688412168644609308399582212138232062984544800318607949079467607719716815073121639997456753376188802294249227586225111693787764778016536592591480908731129140669153761914706630593188123834166811429778371499533150087111802955971785244496960139177489646737190793938385304771676581132343289769651043177847702903514661673340770369660845774334029164349762387754224332093535249956446824337708966989726176271576129321562240891802195621657102002809060311545583330860643688584746000536006992345603976176057573246500127687363960491564716838983297845632840228451473550029817118736897936347769578368993217427473052271312361493375259319729717879720028229418999410666096444811496768657481965341367026690743633174071400135855462660894892116214255730185282122462827220690917243038922416205412244845989393415818875198654165294121088610679440904660751813589372060451192843022206143840257848347532402168502794767984628791502138415797760182480484236665410712563363538204270105882917118486325530221659014606030143603020344663224619009242298464809035372687226991194727676177729144400727235522410460890497108844526699122659657376684818862865640958396658814762423327223425756920033433689330789670298934299664074915709537140025708772598278293035877064317475861767108583412572202677785215903899031741602337978406254332826767432444834975932094736771737726497034263191600848522803043872409914189476229980213001017507849045787953222891733438524353188275315937939217168934479269373050424799338942583464707243420064579516159936023391231134106744444315711760388224518372205537088864990679172958389116791482101439483303771805084638812437704709886287154631044727186364513798138992072747658616406466950260177683064900145608675633059176381984566056802817637450169145019113372456391972707909827626800992441722998879647522099961723788565824837776480276420281392074012481509927078705262406382313541772616458419158870589521830700598880649555965584400110540400379704076070114170736625322630348669093271005951556834638051885023763007510207925608662680256022207177679380477812549183297526232484150493723562167627823465520166466199224809738102043167596723980460400726729879577116362920106064434828578043372587471290529152577208291160292916622602405842249297254399359156318846799324544196128681102772872476880495693108911151596939044404104868760787681235443807261157432269843111958093953041072703803718249756161248239155502187168147486414878753321561485919566853380466087463849113109693022309235819484464245723882732921801564844820493930702555955752177227681160988710784561966085853610832260641432084708798961010406608262076642954796941601851571447414136946774486491448439781036186039256058202510311708343676223933657911964731512063757856678385336328878497948448226594835507222711926852792093268572157695229224609616978869956515010414183457973268101397358404112448787855892968626934767426541237606655034758104630368508963309538110853583138486181230067257376827754852043948514976560185757882318337102358020019976863388675668625044745677531058432282065255916233753900731884071212004835195458342306902876133401644468901046023378903023054669634063350281258306922693552580318855291013776311279498657692226105582177901681191700674063079751387030229095357902971488192884648049076650116512698215565028184184150934084732144979443912176135612315405593636664933531503110244119680689550977858583906563027493823616801026864116520919339912193557827276791996158215559187910663251330329140055277327233616621900816673351269652582385329017530042395253230684985163892060447245103637998521755596972429446528380786999858592905900478789013626527704814583517498429698266214199936827093209095777864386252021793682304057695333951343180693143328552130167323384525964634453064132756969468981559440370794567385185576858138969592482862893164354119183741836144191708558168473638530645863876543705747088321737328364569304513806143079807246739771078385894761480235070158056697910872106191395074269313915023271368052927992985351047163453426176323856486986555470234402238557432907970527542301321707926110882546548877048602506906685959022788254173063224185655492449124345703300166253185305122569942296559562387224310058643067396943760938714465512184590836799734408717102448275869281036133214484757320810795377435985969928130821165206905265633774106559858446201049681262627118953961471170844411081048416722725554834641639600558552596847633068476902686074596612497522397760955724031478236926891959818678925558599456243888509796109219643470152364922044188960164769845539181737041736613467291908118821289195180639526765887266340682913917667000877598618568566955743902301979551068827734916533296127807023094153423997290644235588361204557896005468080489271690442327815811173091415577447706263417203287533066534227501610453875301938534412218515574899594868748722664389349737287403092686717652268269994435871475964566225989193336483406525987895632093790752534688109924566549968118459634183708132704823689100189289104357112026057314711098154160099829767025978708239668846736179732303784390537746475703441552849822224768740576701515778234220891212658076155411602248190692913738854761660716599373359252315861299215259771253992500713518616052266548965685301099448105229229702108425547715062603613033306085564087431072710334581950639804108481239225022685607743846196923801831623028979098020372596488211028685034945637522591557572142592061495131966657297990688810837770230411088095725322371220362256352199597245901104101935688570597456832296249055969082630920585947988609401805916501634340960217278028552612590963228068224904361947360978130046165856177122411660953437682408684117287866442650042458038784818962383618062596314317634682455317305706344080692072208200401381917504951360619148817885225755534015291017618241224662561480132489459222844091514693594902169493140601474683601541792581636196106065361616082524914601160029192445701153469772574390585957014825741268448547385038358761664193741383015811334711540823121408899213721754590480900692174691725197211082391563150554911596724445674386596222577530370959594677764043396855966588910881037573784170894638538004199410731066528568640589596654002864948386592983150300846195129556368995193193910673620670616228882188754441828714415281388610413153884373362244850861849640564718511111081646964744702718056915083659819447366261654136550838803753472978349502354876735736239827268316422741147094045338020696408835756853717252531927536243116503665680227705000719666445503019598287986849917379031954020077236146191175323517799473986991742062241753585421970959310627340265957300549816934433117113830798610852475377474273242302178640746658468327734222521165166096975771851048849690523027295627920411333777833393774949710625437143931241317548001725392796374363442311384797987073820472827936034980525366967783959625275633161755909715252499469038085949714447847534302450210795519252373243464936398979296254761701559056974245352459320540399688651328107022218315492405324148395736768433797104554918886348339075133396865726498912962928973873212341977627071015333463050569248868156195527469782156748793430290553759046330991055464994272458062849005579665501464249174009901254324479200535961986318617294990215348887380795173778496592370581167056709216751719756441083874108095082370851263914875693549562697693756540722344468578393553907267993818402058680501620987049784765394849702140209233329762500537216295790337289145088505279618087153156070385872636719765735259173029378716782493169019141488597131293722673530706544580405318365265458923146983258123918791024442874651339932909071603022895844202342902956934591430964477911407113723637693167189714495285459896576067708148660904399073928600123410717302503744755636891083036958614243613828407357076864929478153274858307583007559603024989799287827176019321489243037268551661573686292495921521553835036840753156156760569583198739459068948668684761515592186747891152872895803543052082833336953098643565344094416852590521270169539824421601991572571377560806716155449324942891926762916039684417595908723733279595543286374973332135893177588134603264005076617865167940179845531175922421594476854305819603287717030607630891846887085883657568396205408143623285024935465915890631781037222295449523289391844042725306807453375139298325557073644964447739440078899770538665579071250193706233867867297888382177696160826336333263633274573835346488595584893392093059080731433202374562963314901717151324881554551849391192281306103840239389067361449199003176059194334261530853334521212622538054358515240326226063135859866965900680778578474650475805822626090170993697768859052854655358749279632405464785825055823390763853193053341581288423224687500235571484568084180691078232285826107938899988045470117208883542479167096931790106014005859100468605977292302720273051360945189550075663484722237634275418409813739536132149064313014218991514719620165994959105922278919249728262654126079914483404762049729392901430179651465877181747193160607681149528567064556406073899289071118158873870949050030699504825698142347087243628426376019636074189155626292187143326548409513961770562393790810955915114967397518736094737725490503619134202930352467883374809560140295175210570015484522120481230416429712384928726076353133161144360180498749715569972033797512187220014670093936418278292061513549627155396235239553858009009430746962006282859483910281817923665243780826659145725401759694891038090289163266765777474139517114997950746920099088660355995101268522107733967513806190399939862882164466867744220425787100342605428831366938529421046967965393841797462423815958818624809909796568886197828011454389497584566286844713173723291257465926689625288365865321470259940478154372402724705402560773215160070824178450351696398236973598533822316132376480896401552189390331969962189505535484169365582342964675930502276912606082543091299875141240061461228178713807011017769515365280686155554979626491563150169253994764134441851344575330659399594630020510426492125276017729338305408560804911896344949210460477554784769284137119934594327088738355249835501391561124385849039891756328842406202685142968692423827196677760289442703064884323628545503383622927944427632060532836246637167490274837184765133024546442139733027511505844410644105141750357935476372032577521774992727368159271560282451562603183677018235922650764462937220778529463870421274186718838541347156129766950991546019580477274759205549293024766511458398652814516718781042654672347574515504534305217916334421509400471769583694890780047293813404650820608515265907278385710822119538496618302051256079005768887318840072430334867306861917668473401971793758999911972254581614272885452900967821388528044244257148318689935548456894728068872148280765212272129622080086893268640567631307664485010981634626706093712616056756751158942742818912402084646577946585347372802020599145880768150332336850543519975139003844617971103834020930649866456973319075543254698856905182755656367295970013934257709616516857540993681490557398912296872084876898721750424502839112447293424608609594075462692443979312023925188569682268288271036529758467862267335406987691602173534463310778536127847300464528610432485839656990800224035381083949702516188139346847264479696065504953193277105124510713602503438771889384258912506994181854027827441208813615852794679017047824280491743293780445804478130571371277670886771842487020157206343327731581947470425064303941609054096958095538751852496934104527751265374857966362840561887715821536686466558321952935111933308073740964682564273713548449437798005779360656913445151425155570189079496651734591222554294080083778876728685235852111350187775025279115343090673082676454174734381439178755547172294542485346025746993300642886789225455509031356362925550762893590404551946302873475103481479204525599990375731814941546979934749474641683835726405220308269923833010605300801961364284470356038275071203035881380249049929252061777734996674256989929406828725724350523626557292464052643363222384685351015694578713242583311637250437154348921717663494779253666617064109279893765582463842093359788665792084828687309312507103798232540596742214449493546097888955495203584716870503549146466313878931595817549589341516442499312023058946778435369809785724836514674316014288572210146985726447363852689905018539901829540843388908231301004929475769652880774162468182445535074913571550204260096733104830784944658047230153732401934220282101225922962270785999410016230667954550457817985898165223176512713622824822343724907926884637928574119357111031620795416845742340222647117071738157581006749205792364994394387733525023382726591505270375921463577687318715230811591162417765956532427067904812461528421701312492287187627881139076764320508528086322175269009882246892992838663564709390989521317560248908886677004382072797352535192023531075497725767913534040442515415162817209547062791967053585279965764750949181380447396062532441698610982037034666315675553474606662124269652022864090360144310476353514275594610460564556196491055454855762892348103749213736348339718688339998785497233227009729973049287663718232240486619122459732499647149691074263653440841251354333548845284059398482329518632471153693653760894646409918964297849268330233270339130287652253682418108877988854392313176099731934657346106659158386589234828966253979005302569367826872512245715104657624455020649228848473466284261964820699778129725943077038531305497895391979410900553900370332792495230185384439859015796730767708514870576637375211150721355800736945525016475483911654167164295776959754876703667387321169951780625696967015007931688066492694319017412886833494013668032216673843229315276566530605061667524626362333140943328578988240176693040250256434806666599606316051995658679482593000438035931289933241964247347923331474183106798917516178098683164070785476088407838170860346918471930631994515892602914503782683412596075823797175230790308481865033290345474820058560603850216717000818368184859201742268992750401757007231289686611469346780717887100225821994800740469342601524899095449312571380572302560093461746128413994784654894374811621825145807021459743335553049078160202538980255698701148045809738327034834363270170900683055357018932674399962444432235234335224966524600120412671421170158091335575236412575612590890910022819035626732722617535814313944539561147729209843826857128793561347311922439188631943025408434623433301407116572193416861595850042641211612730866143726173563941795484847728462098636008791709735013199269406199108557514196380198257768974186100130728406632067915929776969046390467804162309386631208637315255702076252713845917678242551305030776754304360979502289923266638801215876008003050451163303083798898533310750890940348457664773195939906254441646211405691974836728469223427638494584686176945055037360130121298683570360885622437491879535151811054211265047577652746434698986771033533394168863988816495375702848007956742487242558464827148378267191630087879166965883334364692956339316317186621400420182578502720832750969020300031884135809277144258258592327782530576800055173072188954379986392939611785736348631208793507145469891246264729539104439203491801220375074099649734502919503366158300136079295077547956591680779043079413078087940019673281252364709839382343915324286166801103969306479533665782670324209969494938649758317099012836793228232121682160486383320950788609236271708960104577306951690095370637818851261552192097318740830615956866642003248736035456203555652046968949699929843883675155361086069710546474638963543585545478523730724083442429066415266470049175973078477802058530852680448977271042426800936397347159114474898105582474593956504126938541619870126687366631834923818611058259623561253958316064983764145404839826706040308452957361416054932528744827790668704486210438934653152370293942151181737420858745199109620332162471604182000848909184623569458622103377559071692863004143017067830598330092037167870386981197658418991420485754703413267866233276986541724723607252993210914181589045120843331787210138620288753744749849356821495620141973667979784958495296144944083845154188398595680515846576152203437589855214865077583353441030363716580373239950884949459902221576570088216791241038559505370198019953365771485172962625518997590139153790390889607233056671737046078155752649787225065022776166760036537853554723441669916142408249553465799420618858842733795101845482438510754502703003885030435658644319733168191840321511590131858863388488930928961381917797324447625185252461719066100341525614825934605258800152840550642087770267324907767687993075015273506705498190690019230384463566734645541481277452856245615793448303478318956527146880058796943962431978012690349558843485988444505113138295824958322670095447187727269510799295498693002267419229465833389095990771696045730006417635587311391882863405697388225310219583935061334591329385421714347454431971731891988589866095914109475304637549770488433754495819994774161303717544271092689075205549266884313384570203055493129738672153770843275559059605354155456712241939870196141453109954003080469850001254976986466157017186003939567720705232418778070932491769673317264385826197855451711165874891501812749919897808428046972496421923984460038355358544476588635460155550511465675981609848603210953920734963975537039363986719704656125740267360998558989390677621665312043571896197557452744170471121660165764099746205805019030823850345667122797175940732009492501669619785491808670591041988899892353911560272007853723172040943571495894185726873712733545052439381391473170464505631045760612472935000119126057357345108895001538216055108886814327497849423348528063987169483733058073494101210872093609984563602294822236618786419763496951124117042966576625256571180811241584382747432370711272263040081192239507170459757759104014524587411804983145134389623015374452087953896322107816329300970774417401921027399353607745255396389513559310607764231086988178622680238783453996195243860081765394165493852191342492791927784550661176203080886012880962925825663586764523386554929836847547626842274837917365559879724603581582849095164584545250358787812171676735106250179298816464420025817535360868204571326153183128907849118051995277863996367791218429244576259195026191143764976827021926785469120225115287454299502058307725229846852396289886390176471397730644890580821274459340683927792244561519932486105041480660052762149660156947829477461091910929163568336671532166224277265511096521824134084070976411135149991515634517602456122870725949858113592029289916012786402362133030849158564695375036531599556697920900581947207470394802999651593337963696484083908799667612823584454695273122395426225642492020561383788897383726027318497650667750607385388029116169992226792328489805353693531093760250321207897003858389410993891959262914413677188142327388177914804877163289087469588049626222501658220523862083037244941638146485796166643013511823184045632467823875344176020837357319515155912425198597087607905746662849069662759400105113677341231004979040488615732349349660120938063704648362277578236936938120263913963406115080237906411436259337176292080034493173689947258761012953587107725639759976703189082275220847613888094994012689366376623911175056840204131735956964539390395246065204363208947983869871222818079677934856377229842236421678829132554490941816576277821818498882714412850368384442656863378281888824926278791884948469408210624770822708878078713942928393551836827375762544943976947111905452593965384039559609669232530211784606052822559437465708032992427193635737454144012875987180908782096420847308422969704965800576267134078815450704166318887126644953428840309502666071841813702455162872860890178649330541912628429407564639489922333990593835653396450334153382133010246236001994099866981948629251679609156841715966640913508585124311906340057952608726996806533013602371186062803943543222878762009238083915439069377894450404123767597659510125881867477960595566777748755519613020263870399670035871706435709281872789800604569671084148858925927865150817322538758434799895520885329957302023466069648523626459171961833457160639713434794506677415115461410502174917446335906558923258289021901186348250333101368910303728063689009158888270573685941795730018878812622148504554994197748227997529440491449749910153307292285154492747854383647543673730452451717824676353493634954665506166194141825286480529357208372199709714872195100156369457771531215259715461504017983676624852123974194148621841938336261437172070915012248883217454916191067695839953641749617808411532328432545075598713761577189322964177767138481123030788915183113683188683382029903889060945647684997332352668027506002318696402713023951417728805952396018441700480519941179009137456121365985527860780481800717838248836099310487881785685966482817433774050542140754696640508612408007229470331166226570468332305239869446672263153753798004483017525796875230984889994827015002190715869408898531520566311529001916534009339462967899709651194575791715971341803643271646079417562266531861992167273062774077528698920891157664048485883626470344591163941769768157952915003250934443596379908589103365027678646047445289665233045614469488869576925698548684971160437972764794689318743419016930209783862826105652081319733041571690284995395183827695003585244705494285975823131239405790483152739467437178910086940741566177864249078575218636294065770578412455719651110451560181236466862959773341308995766785606889279707548681833444654565437778487885336743161500370391573273500174176572061014912374905819105005306565555532210374977865474806305111648909028179504276267177733059591471381503131848222703750948924114263061852104359324357596736764114386904558089169441248209934506811612030139980426584394823659723856394429340021150242773534455752506832604506152886134802569087744531741873445148778613390995992423570275801484151666174825263868862755941473116384202181246173987190489345987501116374558818710765108634036585545416575019665911135310539723606462631534967126109244272626817950635981894223902912411659032275463655438603005314962747429722570494556137292411299705648445412975865097991631240718466197879721126465868238942712761375208678551313851267405400584448379496877917741949024022535609578840276425541320576727212160948579570002996668527363705744550129464389097689315481625479823530483757912396815010943994395799563515272588313905750187824354167324436344163306908251285755509212642104614172118198874596454687971429757656289991377871438490997007005332222736212287780047327730371716920703136910390019050113990909690051053583385262947054536327079337679245603121362276545069157875544336365580190163162772647186010560214830700252096787237738479068813158277987170204716454809800731404170859981652656546123698296468473217245015609071905218999383441974515668380724331255833095967785323622666836807957339634152751096483488833503499323327954129311531136792472256112991978606650606530197498540097548146948670226018034210219910129139827294504257857593263241689642874201391954467358077510147199820286023059502765461563360004942494318223423906105666667708757856606569318772708373282432496656509447624214461080378004006857728874348782917321577070593905275043919309432848510748059436171169494043337059479083991566961852411366189412673363326557142536776651697668408558160139046312382459468900822712737452006653599298231932296817974831062717257048646534964204436177984037154072624964713072011030179207380702871734332734021240338368526400343553842431041865666563205838454703834518595102583075369535041961181286962945167151297181248533780195950298590894613429710009782851506861863939489591815655178040141135271362398754814056121614567094779565340801263623345376254917337855458699758001571432792705496028108509569451719500548738053784345369969312708972755834498555343212995674656171781156118509491805893333099249695695322320967093014525131420111058958649794287986215858949741226781684143288296097190871078274557499532176333020099407099584695977756469171766346658735386694717444815201825005666117673401865677476190862231059991065287509105149260124186021173215409810074274448514769473510049830700845942899815401789161222561652040006089271327706194173680129065943372760676123484585163738196100870803516746387179403200859336912155459315434262249795497263524274618390983865136061504858117296740333142695083488618731149100256376182051986208555117427805432850227222496580771081841517966372407104526523720962418548453503914592712460017738179067529257620802061518414000162991495760841291248908950205878738103330730497177889295749875567248183439954847730090168751480592345861372742627341083614175109794784544313556783509160268509018604954799522044024852298494699593693460198705126414756549383646481920629760762348020217527308138494786004422258576824713365625916985228174829482709352387311737747303020653526700487432599567489392976098613663366713700219476377630900533135671303898816923031830459730216149437650980874422406031059068045213385964654839235470047302425050738169603261013411813078711964902713196711170085648959336979066956623229381775285182306462383017724042995601415909592152031760619145395543148624710668531430188806567547577851341781320034522158603812851963443607763538962479257775637145646984461648420828174073818588942866497974397783671161756077885006973290534064265979481533641152684657643953846714035639720108437371162381295261447941361119409627138247832865365391730179040146967915797764953684123966171526903812195283790451106900635373165309473769893693836527318065041943812029551331393561304969277548860838960302965282453428694243567675291417397143552538500414542085491468601688453260932364333183297595409061375860564478004012245881026798236211116951383804490174784789732146522866348160044780810160463817881245886539242751117001157732683880534175214965967920972898774944152209753730019349947160794932999020926911950620427598729246803612411961116664812806145013366375778738472820585663035605182314268221303246807840543557662797319190859935943483702240533518618422471887512475406450339825704378202782893464614019127851063475999007956839524530402098172509026131678596487478149196424933033108012617270550466409699468520589963067414805948794118855086523003788671831853965638996961020899962679523907614375619202259784865464293581776905478945453176314612039931502358767800301672359402279297813792708651222839719073514104952720649441933588033251389966040212545220982300241874872157673474755948988833551193409063200628629213590159739379312038037214762729160535562728959106457054600187590764099090101456879411274768349381376921564952126601407532341214272334544021079583295585936529802343445408926979370694713438081449142950683564145332144725776944937993543617554629061838741678795021718582256963421456194143314958568142957983669773033659332654526255695242884075961699864923913393974649038513761210039945714664631574045940109340730723208538441442783359777157374511965607901487457987653823301213171384049228488519406235764243130387568105371944278977449248600805121767717271053528044208886585452633832193971538520608998964420038386939937061487193214559874109977287049657490358912248619822880004497448864962764539234272969139261242623487329268591492807091527696283275200767587530420142447802483789964474772495688443424145261522467624858836329702200455440056097267804836342514718847553641991118724213181290500253716312890116907705964111463413371619958409511829555785300417688789207496286917896936264824251314257487290963096007556709296871940699478313785099831774437031520977790296110948501857804974572516260385733472182733068551378251087130082740978901671507856322677283982588617088479240511621680635710082499716568997050911213539335742657396661667541464775945007531994169067900800845325392247669736092629389146335249941018346674167596972556739020196892043255369252357174416178686584737096113410734636017648019507719049169387307364051263703238583860678368373739074848568642965939338081718764386691667404587540206237271810048201356068107952766494398934641353619339150481227426841383645826247220523004208570439865045770825354151611424761039661522771109054213903949389135570513845749885680755538068133903208817494472101999875096919964861542493261614330204636133847076208943995774773601722943482455368816279454346765698567710059405326310431196665109969713904420792427619524739025338504647905860608873284211854756419898446687877153416119256940332812186507348309957000450656673931939183038696805016500558008021887093634015507571665725588152900450042920439102425751060630900351941256160101944413686828524008043571642854976578954942443988180267706391794363073329330112492517507158686788945730293567247733421302051739662967933777211776456026574566164324775337118715413153136533377270780281950741929062430565163809601715477299410919534867671944831512977928340605266319121087417694333130626773833986976975709792879765443543691495870354082781586871414063232399706862424314458988873368224666564251353492591735245387667500852895813553595546852676676380176265097397915279585744087556744466603943779079826824250490782014623788350634392403583247506863252027638561593939784271145312809941885058730654527639416248756663744167007332301672050553092825375376737097543389170937224428408841581370020763130296567309635430800375256861355850151793232980264683334699542944720953464805274164744411750587846227114117328002164263363583472865570445495459106077213501634769554909522113048447840001572779235337496693829042454678668190713721869535115652349982910372899716920710388172245432659613887219072781681336239681716567883023707014371259983216337160380380054507676370835446957428418748677194909842650041254014133661651437893156886709176830609099779546744358452597074966485691958589853490760967338274268573224443075620278498366398224132849960689914993964391293253022634758266796337953838396547087630154034197589902291247386313407699687991174876238448495170574362754089518345969190755651302691340830551665302335874841320842519017197815725735522862877033659606678380839941732699411760816856472067344916580497324518162129356129843583814412302871111243203013517269253847298794136606338482305229672098859114259481002363839221588235121131834543230184231793853011874834153994284620682179270133473284559629623318182583729103736403495853269584153317382968673801797086613216259167227122576709240784278319524781440974551793051183000618937699779459709793730244359040076458360611955136128082890199903107432059319467913701647205634973892893342906126496282244300583203436977879191923763323119280680577555627792859467876651528030666152953130983935754200131023863104208434075824375542613491874003859035592140378951956757299367653204533867439090155652691017810124723918807341963871798924471278752630013558245447758144537778145320036611116277664595752249094999957201352512170036830598611407190927542637706740641306628642971689495877231491783723402152699228557138613528363184381670771025406038130748922441850265085741232846232895930025464804664623052604666681284428163000159148123739846633473903019734976292168293916568516884462690441194516853384457958472503148791733762876041371994972710679596615017077449461740444156499999390486277923764351763208274557799726128919897590114834030271512212771599528047494591809825656470003363230311519758550093737104044241060983182036631661303961692376468228867117299717888204703818146459910902558250314339242169514170083111225042081285354155936686786604334913860237938778592308556695986144180338025463363543761081478202848350945674432143231854741332541136114712897101846734373749434539762439105499311228293085445809812458195289941874486994690857940340362718879100232188451786676835299834021286707291042207790628785831949917998717506231963505303712635795182362053066926872596717341992532610004847907763271846360516379315346693591483053121263689470650876918514495607081291109701616033041979285122844018692187869815475517743204052359990196822466811429182914979579161183612789706215666103036600281547709010288043899130580362057383568759890828092565512761634289856897132825065595927330049044065232325385512980763713203634681994581698079718606447502162292932370819683379802895178392805604939213812619181697817260124279732956359146485673744773863592425878481018986052693257919372985948805019029943679799143258879022899456657461920669206652322780813324049230460416352167794531510006617063567695492564122795651219291353785927285209363726244841272455779274725240484525470886180606627938888023875887288003642098458979180783982986429048190396867243647446804905056584038762887521278316251091544340577295631616690494439363864777280195073305767397413544151710495831269403697962132823980591988115892630821233364182096457947445555202882364283027648391531234485812902156280459828201332393891383213015769559822791633575333780657687092958142320159535529302908159680747226472337839385064677319272776979593440816543936274482576813471899280153381936732484086956095463812578440916364576862606906096423536027511459015653633017380767352275091300592238837487105926839831672134909283013913193064458618225687308362091243872709829887901558408683443732788475177873691141765835798872987764964761499111034733026278217226176817014645960118351019733393516224629456667272740406003544708172794458984594119429668744758680185896912171160043830922986140813576431169479336563754059592311764504104109969099493861624922144828111663120778553465038812313322702089132050029922644009291842732634392704844895380337387573865833623551711229626016158542372883518427892007429396370952739138283237414069050523682324525636279466016585307173288994709466571045352602211360891844917009399940159731987868357276002724964344554605812659724859697313525110076690892464535807937383608284058848580482648525045176386652927759938199047000301623760942460186088154310654780056720919392207210791737956982356795252561531235570941922490716340991803362172061559559228707841348294653737318452815033067044229133854468452828237578329384494524411226057643639004144270943421993840233177646868723346951617505154401773110734437164218695785018436590327941743355148877577549093720804020634257795128485564295033885604857071308461858047748756925055468928094293955696581173462687573611611424922273773328315772077821635592567679578063144267470011938146688428361004867708462576291155877776554371746560506965823260043093287594568130012074466418408245318686725322091820667825283044226242321639673532229234992274426048383636416592633772393900929244257845075854701809799777605188577839828086449708372077373192847770164370487630561427574605013796613299950180419977260798364908766966779950049896950319956653427848747901196121699229170808348305617844923797458595354220340795567736893206234466368886918140399730219692995542439764534603866659213123854998040371857205142770934300560181947729943235917399021429282210188616980214643062311665018443654006101136442277838319196964773813465015542481674326629915495461834214015865198349235005180132897146484209972015333729600687823944131929627227164574985361288730821927140824261928692486390635578270635745534643856108589909222044543261895954785312934668338507908799943850419535488143045032560857106372749315063345497860052469034571280066985714921821505645044165008981441577796281483940159884158340589890863180200086461896244486701459652397989880184761164155508830152845148294469396133858517021417415301289543958962393408036271326861174140909334306152049554188751218509405845630379715009515265716701722021470997652340541439500643984975706809568563120290015653181489148277415366247711190201038308231195850719398659989253071918677720251198678155451201705048089663521644253762299023025500871208910332589914255606397873510624610944554770519464362421992126791867441407471686753525587020505688909891247705870564859938725533416688019716504837135141521968309497531529979064107478629383816738172755864946241424940355439976287899489320821758135162120598292941197041984012360712047235571972951838483865377917502683877087657919134974598698709631405561518755274945698377154771742245720674949525988480677903874897642045465389721811504468458597792098681945743375653811284993866189972175564104241591197652740596239862947413169840966581448400463586367414417651070730153096344928051484757701355963504134324709299603629238224503452773209115011149816327873700509159303723347462406542256385067826794272353809286663928561571759219484450566176886942855383487732173143772080668923472952236118694634282017014141552368982426564269926710077585479491382523309881003217205061314505322849160454210170244645062115678880515652082950083480228739408532122414799014620466872535020486721071100361997687133418141518204130971759159301538617150894873908781071796178452055634899314598660681336652245556094466031777389408926461153733539247720466335284557766323217375547639042439283166833752468221191501208359980106627409007287581786670348534167966758891520761935878812245960238038729982993897745299508573190893946721593121458871283071006966155882718019133523532650719648622471144959295918531475810209492763593844612197406185929402139560517580452979779508275072105751499801015545466516151747296819950596564012225367034778714928068163776466420304176885422121211923199137811163110417471684515311606849468834102249650329882086551375137876948245000893477784803029064649410670013950342880594511937846240165712288256755385775123536360289161845512243173785285585206655937622899670334423024231343961022184398025805841600389875042275252848606942328717924795497652249455975274740288672246118669410029442773156091550522601115716530342593583700073318863799137222748356074875201908628761180193235557674309584922450991498199339925108221984546399978930102304699829342588391983812522717684090724315521894489031344841693167371476884312880857907966191878132396419425988903077695943420523783771314849646093985711967610986662766002365716472317847090487576438891986741774306713213734325580666026445423658163657952109618974399319729184266630324531187221013083633645208905400849019757608830076144685057313339777082874512975934893695270133088027967882441256915707247295997720206014606450641410280532914583880738094657524822594435100351588735219363947317720706640701161863128423754244415779726993038141892421692294837968792867089394743293537359349724500399781881035866832054922277977455764784361336332333324872947115243161698691837132219110547699962243714729364951571382790356154857099642275179877475435374844980655118657279433283424619497820397275844372378163770567713422656840592700104879151037295318522658920224818415905085846024184898523897452100608754969502434721091245158257838230876726648687665398120523269606258712876765764265570919581986188393987852854147275212188565014081835167583065460422275247595384473856992106798096339809865065415722808656105803068042143893180495738067364604688424089452995280032003271500793883024563290770237592813177411544631114352623658937465389691959578608311828300955463180206291358947444780636930429765696455012550882744691199638848535687514796401726979967312653302207269209093403220920277372729383167120100575574494927729917825476426069084326440378682389963510197560265533975878537650520160086158715920910064764349097700685454431530500031880400402560603187167953307412740761504541295337506424280063710374618976918322253898727212356826916099449423383004738801949832695818574119769312095982453450336365930398665273449853149694172320801212451947526601044593073167034082598365036065364879470853002862783382578020808601347977919391562720280977237752115625602422041564074062742731889376927210396370481393526920024482322862931579478749217680077824403918260420444496869443719463997740294979778550518501714231042333925371127545436976164570655358395780464616458669318245450706279435777657174450753130912108085926740915521005794670555870801494528019384311082380735584522137777417414238900962170473890798471344007083646194231318203197152507330645741255778127711233924680143214642927887403720553698027754081809400316292494945404662670703391397113765305594370644408755270734563000134998210175407612620581438118046210354414738175311228733346888520359952048487331478429310374058307211644214797470138516866440822363067172074473310158455500236250308307661513667541771120338500832187371521143021906172545265628592923013957715091670298714945274616869611334140441913229425441656754945295346920228214542414151251933787354859866217159165670012332209085879754518162719742255429576386296897930159939170145060866862154557301147786300573219673012278476097893789113807355972663976481522807174589196974208601810553724636310582353550411207675309624409427493141678264880662367537520228990676430395053465770230616148307403076699950357847929168898979991820576060055575084797841535588062250050382796567758889051959891656801757462187731646946446367595436456023034749237763301880111293428978594413746795133012157539626914678368078204135704802545505145824503686277199626650907976872088575617114414930374404415686028426461890178086306284528338618482854139054047787795454901961018864851051269516249555498457280903028153760294619155515673108502071899469893090564427237998310660477492235677814458854372295388278559790564930645524049405390093233497706334255699941379182822916717030504147682143963745839277840343032689323403105187782511927241030701722091677791223504626479147710325933173316907725648177060189248170781673326082849564524551541235689211277885751373249875030898968969539337792176906836682840622918270090590241992289543671094459188260124663033943362691263671653284033618469900669085324043364436962781831248482231748909871124898267948157983092226291679851453359443383772000821900983395056143493555412882481806080411745652496528468600848799037031587734613505457228212495026938884806097151253405812214316851945702994611823872311895801267065351748241831619942806501881706459715912864074060735958739110607982016893323898623592851140173906935764995140751844635495138295888898518495780392295895711281584442834536331806778729888604840099844154369767188327714815639856715598230138830963143388338649957064824772391568411217015506511493060858539389770715641156119542960737801136750627901169899551919914795208904163690536849509051872335627041313487395969844377573911641950732736261644546200633083239731254768176622607411476274221323761385687812684595158569887968975771040225035929583727415465284980472752184018783318776295194302680266555188814560930369379180494853805074661584012144834162599148594191933453443584021968446333210160840051217830413104074327888544842861526687611461007481911493486155953158184833410250194150750073798318151507682787821661272329068064032976488873934787681295838161675000740918876100913490296740386178405707349093454563193198273672797152960243409098040984028350025717815451881770624665537333055507019800913907208001259184198671048729206634839115888101759199402607409919994305748704695199358053450757181501485868245919496664112227153422164366031021017287228761462257228502562668452670287548255658895939450506758941329636156128308894772478166729464896444248944625011311356352215012707781452284768546693374345102955775655829231445938105157893966168716901421125427974006338498617896931750625476401019056017276504896146058992380719192493176778106816310361293923614965808442759109180120494241373995147652632671633619402261260533044380814953410456647758542420514557608945818829044672076130766782866896628216218726868575292605303214725328480866979282739088270358241159345798277993673819840177960059720221195722026671154930191623051004017628077103437891627378893682103572978258781835135226357653466742841179176362066330700988372026333962518907913494583426130306185181277326160121953947619902143745756945595400941168104056804412854662010601159327396137726575498840530599845221257832418674945285593013164070552631392523750160647884853647495908528736511142203057698987942387866923846500860050289301705341142249157615802331595757417825223696038980937713374491462501592451919030882871394271361841325700562108281902615091407836424654881562835528185871586406971060462419872522311596607674219510723891831266338358898006496552828511391874227604644889312684750491917708144297343654519677507057992386437431340199815467638931265257905686001684551540581769989451991420687239430891974771355465672923218510522344484700877148420199063965394569394506582701718822092195246087824123110701841291736494525521834602055510029465777224551996886358848363537257897151862310091197359122364443018910992534179577051080475626656779679521694075629841130547580403936657933911679028069187171377917366796312623032757943976402208901849261032271315551061524275026651205977541200730612513934163548382758707477782341813063812696954820348028674663349276661127248467857093057101649731080161706920356607751597680313434145297766891634967899368247874516841449726882170793537331686530344542091813117817732731782455489040919718614505843889950871926137130854505661826474077712779670044587952956447526159443479204222481572933242841452095563198394594974242559360419729205632583714664802880092046915652021168504807203944242854056655242874485392584309697554152487534660891835452313555454706210112097226541035194025854743653422607251759602997053090726363730109549073978780068399090253176203522088019280017731997664760919472100862386821657103272085417412390550398264770574312511011854673557316261678177894237763917503429894184390609836425951110985487392311220392200137320978001247465794709881663094145604504488800317406098804359185212647302832841116046874495049941847507097333828924315635010169310315665129773058970819777175494050745153772217575115147227160456400974069454678755090795926102408435387624086224605415186766855321350488834015782690042077796482054869617283913877394712879430881218266757139874675722332097889841180902486272840666505113324194781374661779337994106915694154532421007380302199430525273061424651860060548229864166856191226263330870608421034016672595969066450175946069734608072308023546267226470100252358062419601292027502457325196478413256322816538086278529413499610411443576305287388848720202963826405870903384142110648638517367636301154673799204143519806132241366596187135143712414519751272078087610013243542724365024511417968678539921907031420525990479456588059773194922890710479904300445798354094005504547317181751451158831255096596438443479608464829518861210980367163662131636530087837617727420259365126816976085742936462558615876564748575814648931635979974798590082205693886612211256690590692764102133160196495530555279236507738263369081164592956044364534942089040059754073020453139282120295429533097555610434664729784414628283467753649349231614775261871485822555009343156266745281691956673598297842451412966740873704838509978855909569331993622302431446312880056250366320042504934519736139500908236894838671545560346944277755966856195876372661957480593136346997600203663507929632789798784327174311083512118435659059763020214425135128980626987514911338097586647793919237437852114816348746026551278374930662803626521993692499572275220411624433032062033462073998748405767521405824688357069496371071656007431527063526404975029109443348221000258167003326563009790068513940677594085492880041703858573696116982826101972931580695709286367165302950091341983857606353745261848372218531552260257581920036775930840677340043864095430626712756196750996228678288288181622301373704349023506897477542559298421287640991424258683795348058887051990203662292409260566408938179851460521733659064277274284356737492029092674755338691377947661084911015705183452985893805532651009490602962352800250561845011082068804313756267215447388867231496896244405938407599389269065176009980201202764674994513077120098859163647746847226144258610086351334497129043812599746313473972682675425940047831432913605813128241168288606177977277073343118811585173134073740500682567600651072786774864010503008350517572273138132830226902943326448892031978644393545897285591175037079435770768009960280412558334543664136403180612502874725665457674319782864490081399427548695708778124513390551398312790621476111667627905268230698363458468209857474877563734506292630546547892361007635428743494907099938421839067418672764216149047220133678594246285288438801652020986429762540336804766995966797201301180034639175831292974530961228946551227822044473056829996673252053814362178874966984665555921432553487682186351762128492084642481064977591053767395268258568368402912965852247870586139604539195455052965467644841814411307279806562168346017957592536245088591048578247368255929023822580966830649351405534394728576974447352276415880181456718578488879000663753961362510592248290914527868436772121132609873482459052776375972506723284498436837677119147586672882623086816641377366376249596065678309081294118817634349911770681186723222077628505015775884189430257862377645897968673859663010850594619139833910673999422921018573762820022258754440764290138135161759113519588400034330043035550238004060995761317949020795758869861822317467179640077549817546584466106303498547824336502337108591566565646014794929161670275469766288782477303773512521312138218850970917204479282662674559937248922426964222814265192212570142129537168487290048124694067173806430124828048102778845492381101893995516759574030083422335467576151762619550233877917434184717051572378823215112385344962154662847758662415158976234058037782342593088360368628570779915850212119462081156591327389704308024151675272328809117183859186971476158438594427423287777513221222813263132461013717350138606828738608726906662200728297080024066839920784739984246276226125396939195104006735854978210191377278962942683007196603458552365292444470320752451687241252426667970171323117029529669294405391985023700353961677070054029103342981797738438577719276705848419488803567094199907483652059178605191324905452873121644236139933038360414571024881461733249086678724617328816991982190846602539102443597317341376752407433606579006949555759120209155431142458977074014034345731682553151065156408325420478589271794887264614566039159913755834651069618167130429408621530558393968291151352613851479688951890879285427622398534867570650697826948080500281060746076452197946626558231128923881507743720631594455602060086431496535191344516531153811578645765176325614350870861052505202237587675370174436405055739419695413290571489847355708380051612215280387123772609963046615709940959084924629824406024742209467783682323212418919703614446905762536393315151964127348224460803568200254243137009645020884240655461495648804955954232117748836078745401111722596617821911283937654052350149253803993365446555558052658288893945752631995937947164963236850269057823382745037614470688813271921123452984852709748037159910219358126690341982157751898965798254264000348074061864754218439351389665469855686664867403102244640275397842577709942309480578237454022248168426663920551117254383674029003143260180510773887690478805415615419382229412095338691674372246380476512511720438290629718130025553813564399198934068963798197264819893921699204289328107857066694909465294130321513283336541906009791314773585618915497652847462760297180111169640933558308674818732661887418938186438570838263266458228708503999819900466580508579181326009222239359243647541195738795848871925092729946206473351610241764204910808659914367867159471266102796916376566717353186568979497526549850563994467771704831856248914908870053868286024286525025108558486763930462505344743804714413935211530725187428816138410611893784822567174270190113884937328984310071646896387657604870296268122642540137464986811438929126287730780909385216905063215695337711579012876125711150184101804414336606066202371394450971126036187593345560492150766265985279610204120937457884625877349352213127578009690550739688942595917805214499935707322681511902472686673673463281480991162667499126006426076662482013955159973029054031520840298806506275881021026354913745671463728441818371539019564234319705109600935996553086803424472071210527367279432609868920069397099874897817370554358616705411163566330798305144898131771358195907161051693238835042894414678715475706397332351173719531778524968866387623318642841005039415437340937852065869883174746131381954580338102226345342411090510571503366829787460479051391044884884370543273288567528506709108176771525712546693750473226111042301867375602878034732323585826742517411436938193375675650456283537840315357984000033481897431448115113179784998221485347282206438238607637639666795564621562114875013263942286538954663307351599156944989968755316181263336907171208438197781950203596214751455212615026599728506944468008027559243720313613402160330501334032144067198493428690440472508376602450553885625056020030265878939381321645621761827780217566528123213096520927077723526425562598085413224224844754978923850572922337472387451675217343504814192048189126051445047822666579381408956670251930496425615502518035384756738965487467715493712726087143870018502063550520692212796298620953850386963387223812211046938340946516636599641618101637564905260101247808732614256817999700669120607840409071280841504948247339213452415576515089033198595869671960673850140535894805099236543824243048191881611720178941325379410360193255328317991977643974231070762171186405226626201512092534024330209895325239143410599974574076413258056565843739113787734650796397621230614549939612637993344355617079091897101045463762421747051468582015334708672734346611715272633136941663898100082574382303643251134269595576781300454850829313731792656513112752216614697825205194850292128348387251475358579059299877243236465407208235948716831164719646551033885726288047592020358502699779089671010257759543449632936187086887534974342718086760701011094217332678079507408799931543904501161503843896957965642715884655621616326204530412291073051208183225968506364965318398992320946621399832490220192025383114302210230455583274618715848385203669590579869689748331219111343170555119914183247078193244606840944335901387897309985731668170556496179607229647996368305291294671448704866309860981133425372916485716225118160556591466509542660574180577723945030649960377342912478952264938658060488431460941798242173647429400743087116944031584731389458597197410922539924530129162926218312393660403352229791731163579232264093027621642981937238120596782699223587199645111808040761293336659662228090780344304325659676677816636564796258613677285318787597596258643650408516088677075472636617721473909492495515136389213684199307072409359419666990679171265653941932551545820420693883007250821353484863188697846769103922410559134705002365548078214162998689951484404896418070354834322577943528276174280371151333340411992046462741213273001828182661028912589943044862751774793427501003476845902784791522102753990878492711733603987259563884747771667500804975955645861969362542668554965827283985848017477142781748738524837737645219046707584653975119378831433906029529242798298658741775840071712660703861734772018546470911221715759588418169397034342985379317212641817363254921902469352596141275288621820873533625645479210461269553921689123713498683519073077857510292800054791432030106588356051025936848891758633890485841793877869659495907740396872532967327515502705776588102578736070093955095481725723638411161701417926655388416281496865712611730079494231740272265796012583724586509916688796430263151057452526863535324495423900030496343400154852108065471812146198393782373418722935123708674811155339979528960768572210037372998007303183653353878061527683431774108535921643536105002370687211448177242728876446434653141040628339394162106681880659567573434566960737665984895386148350466702209478229094896759821470919724880411493777851554725623270210924631453399592206137617153809422967045649274266385867776943584452500884899656626303899112132013326531492590390431030731393241311936033284878011117456379013389287565779819372946689825304382491134029041655609329722445448494414129945882351844274675562278969991223010955561968063283594881337341224501438178499646391992431800068294145310246684519138392241649327533619503569090637311726206934015434634463481130586829500804513344093811660666836662211613233493912442487507670430406802722371872537652465664762915007245708353295912341632244406046045570917008760569205667814178733529346337360080747565254589987090899021178414157313530635663997997224564207639102027303482891240373627413586130039526118551630473217950742970135099682858918519439774367291139986942361356111483126658929026539310381006821342610876174498696164648582452679896157643584244921415826390775251619299281260417448362160502399668470010249849631143451561250047158606233068693057602641858938000862268513777959164476700296421396786374290791302170165284750216720427095615685255803649710551017617982687491204859206111762893342291620238515314288010378638874220649861353544269606721953212326478022223602780090813133504715691332759938828993297146365393156633500053953223091677664023546589909806040222968696419310660765502367195094768720466725121594708146909194991381896508636266951254226330607548586084190084181351797023649551892769753335333606097726042636292885437028891878830643276328284390517359493891975585929551992161595694224751368933274877570027968167387615820238208700832641968714488096626653882468127229223188072775549603101450756939251530147878021812431175074778830382678453211954433917484126285528453532674234548682907376229404629698292281646736514597629478101766820538422073702479530568191986019623420574578364988730024561386062188541024703463782589617618022367680936844757171661255743712467185632869938931829595987723664430424036124591723343591527620566987921884229760501373608860808864770529246950667938991544686219463379300296833279990453202031487917461155116723228666226890436114821254595428361095999701096511543271750670477319628480763468799832093841864011569586367319576352302370395338387896341236760456864030658951390942703729911036335948566860851926413228070567689041027749337251437519523648215692514816185416591427586383208370359685088203124787055474148403389799769370853011553673334361554173906446390062523263746322547966587127129430223556845569208881291278074088828503054995767157355301189649823550702584457291468272244358196463159041012602962793476397223917768579314163890849846106273765184201162050779979497178026410718062368725790341529155500468113750681389126412416579703746396306378438809551456346823298162563475305680237642775541438679427662002091353420245162874235699461948545539363344397897190500941442899715344245727834736835909689644364280995347269284915038246618963175995561222505419377186217150897752638332450617532067477722178583239038818338793572005426351036632854353212784454031161985878685170573114430567448495318806280198863441751489624560394390763403982771174053417565698890754674408027043366672868211859825448321518737088336395596939484430858340049830682238383259555560357074491247938287002861572786162632377881959582477620751314250271215863764150041045193204848871102577307968901735684540976522727076276805969596468178542642719851877092475403457896500726183617861001066272342073406507669376305574622945342047879596233773382049632954700674873753592516832388851951930680468859939641623545622916026118601340809405377639652767684771786355870097087982074911809516885793099087907745996967005522426188047541986114414731826080099142892097202609341360460230260761928717929107698848302977407267237143062652197032511445680152576759401109491761082056060319649428020403283646788396738164673674127271441075722744952780304809772180846109803211104597406402199082395578583055736687201175110630239267256185922405540073860935443812986828576183924397165670773460455687789093760939944547119941643383564815065238714590160861580853708574177757403740757374756762644747355090692413709678771984823870348270165398593960625325297026636382326402726171637906620768459066092686809326052856268756855705443531150704651641328596585955896499978495285648694761425914315077057773027235020096296989145076334584959041017725382629253926316004261870413493167844485834841291645052556940461524411710670109799206776463327758156333681180756333314655122327157345248102205813367522340198909620103531481877964621402337836025745316760611959977776305190483458208199821884728560632273847223394275581517873372024101285785117876809122037941201495397324959537219213327130251049241634696948034969556320375538358755922444283586081877554577341819377326214821707831793229519241690383908881811425779513864791174009078644795019964301503325279086560738582112697343808429822075745134791299301271651773560814962808296475918808806760483328849048455925910028367586607738652114926712474158943743791194469117646371077125260437415909190819320169788675069610906553759086190663793243854160582261604851609674195468291306409208295103049985309495402763923427239669106747816582156672357225608945680775262218384094493089425145125810560443651136619043020140312730166932051879335656306221134826772708257850001850541722812744732543523914348077972846778753845347096014480803083997257881565985766615769369743442858057246737565991951395929558087683405133305007181899696014615093030667766751757534914984775516766159941032454856647477258718450322879841588109418650037097332549244863917159035247238330386982169195106407942727958150029597110803013626492089498245223047261170027559780151985747494555773405295067036071369105461366531272192725041339430532997990962554430908895482319727393235740134280616201021273291913283847223739632413475952551577130370185854106254788801952790138788880802671801543460769922522733154296961514662581839831383013047113901104957722123714703566902985579886017841455003301394082367739345450994463555486625827772833642990317752936837753313413070255145287945419383114227782680824420278451215271890351266536233861047785577205082451893146112364793612463390010742445132521176943154300171105608034868206485071546319815006769193875856106692950945458618331335670202775892463751604793634758766088064078639071179645260677358271375976147318840376648815892101255898344805866434775620130069472497769613244857816769016102317200413169424260015280466934525095602062805173187436346091720682077777647431375743395276027274900034120614420885479574885556921548871162092664979983265411106274389921501646481007459227667402454342025448317433452360393408588146141052731793021599501281999599541392955890598929213020906397226830133460673073693181390352948924308484204713519329880621476833846033114716693850177564870206764920922322447319784242238179702371400849619918800865981398242623199654088491546996067284375184623044814800411351707017499640077502561167377107905501923667399844658100319233863255305213233975341334384008457986538506456033925059975776902209097596360822948240773502635723526371322577487418070402483905139581966354324064130774756544497132606366834794676712932811977324384662584035227431227103723945498838046076240836368972748714743439289984051367872580900184035661958308029549410624944412933657093637963344324697390332818199017380425272778006888421302823106098150306064312882707931510705011683163835575405437290853281492919053459000176918443156756758202169372629156726708122625357863718584246706675576014270710607740870228989794031528466651766366228030979230830949855387327358891922607824783320231760579502174504615364149934588896502794900832997752842834418653961268676669308182829956047751315463149615001964040295150359043595664310712700323264694785963939596675828958695714130774148556989737560756113344509389589042914218907287732905370508549251292169388752424127780368014246891873678438635803603906238957242931453286895558197213339524333989560154176134212783685807554795122772072019112670503249136609216736003064335090573156767595899389226663965501573331192207378281548035558462023563585708742148239900720419988706394809279126803324166224850950679469866460549085159462680047454613830543409322444687967278712149093182945072159200314669659386986223174770327274969934515011625394156706681944402004545125061427057488644921374837927625521956144827122299946095127257307890591422079127970131584786662149250428492598177417193841267846251823493672473713149366104388554379218286170505317774702213468116819475458106482478069408551863446832328288045788256469478160157045811584568798512825061171459121771204496348165256784674407947046442387604397740441098501037804010877705382395354477204869821067908923405457635626301843506195614140746591404448558364798707609375492360048089141263206725032597347990952325388064054357910220303888313232988914964355318601917017185946701969222750781082708344542724868832446505568240733706063404480109036548016141790975132053580209704138402922957477232124293295607486975848673868364089817901382952484148059225497850167497398061436794998970206395190684644933339542138942920758250603578096441087464732223270392138601644580448566490371746772935139135890027811880209447222360575887201628861028259440337946191995567157767883203600509802498311913904160480883294347541825031782355644964296460672954903380093676495592956461273835232180967576700828606140711661516349389549921050896650648776512599632740339395015508523185703275834482936678455711860327163150467799734245264039876323498299824580848884069328545466294898703106668179196925134194152157948094002595152728192282553745791972030576088195319567274730254509067801787555383820497428278968692679042605485846588818408559933491773387270195902474463644970773963746724528760695506572855148362619503789943311926027520891888363157403521602428906073493614414101059241296218686287616015933294009303768453350335525983209370024979257324703194469153645883510030098354053820992250340385750825886915965661791065130194492595657155557362314293918306636765690568761401866740009758569373564238514375314658193756227717263228065288926770776332381168046302284882271339513367974126290064667271951269210636361935689776159169665137055942198747156517222681882224755364928162985994359644349745566169294352878894810172236539638644028454674113638382563899076718975133577604889822181604870970138111189151732413607807420764111696669274667001455098739118036638621135296965104066719307874334990881182998270346026275739324625629362008515202332557020318179622493987009314941543469061102065849154926143583348656439090548279040360192823797034635510686382931523775841429291964861042068245355674519120037336024602943305378049158326920233718319441768218692311780211926288909705328857075131650651618332387739405033564080754603737871870591447520689555611637621521622701342043838103417042575095128702747956022592701167755879313621328403407245608055027593140292365948785496746733710293735928411179877323391566216261477494765275449713571329324173978079234257901577317414984794559824976123443554965782045300539343640125741933824833220881600125055280558493340325043755383166842323267835765408172690623988970888245699312864498696690664294473703543109627230412121665228850270053776319999398139101235490704283773748520893279618641106734361728030290881011355855093546290047667669547149775665919806870727473490258152330082268528116640101314130598608863268296179798664639155531369518847063235093704023520207684412101676316399347046386515694650850508187830764735974673353899344604757644567992222145644683680785749772491524863688153099227295581785932668304049900869656426639898626288942255344242007527520404138178912054287309105180743577871588582033521963452400619527860001789916510926032420411972735663777977442387196787947386699769581867754972315657417066094513079072135921615469349993948810874764464637191621018284085750168862066706541111230182177986662446393094231246859837293118620300426270738684759706299860922838154195666976497717371987580896375701445378574280980806997154100448984196712788264960972358079573325405757491640178107282240065996338990833188185198250330633698967417901071650339609117697999120421014347583992788072679107368136955950312561935150764441913257139906694078291702489536797174073885103924775844434080835832580557127573182397872320212224433393667471409767077462116103562551719257101589229145102793144053156242758007888276168023963306483213644959638917399620056367604910992955606909546586661456959102550433787474635752632759242473001822542526066982298343528143479948310551078277155899351542195085626603165883890121933941834138242985393060763054044055724724630091659209648272548580688416435464707736036264873062973571307636190960323070346163402231190859362247130791261319248890335491621950592935760372372265406940084964495248444855300075748640608596374503919473896285063915398118644112411941777102944738445098617984399593483485843720220565431953337542452906420366103795054570170447453912372888857608556675239970389905496811848453573919285665338033878240831829370502576579661400122771862894885543318633273952973498500792858413488558054673268844275617765631411087611499844738389370285353906301718567608403510334880149658761991166440202762264153149282280401252060391812830174905953767232398625081767832692061208853268864681353237481886379030365793914318910251381643221918526608042478075272095634103036243386967933209275241073909865844449879427376034128741984600277175641709755627519319005918189186402309501918729587657100106358727900388923654754440298881601670132362975995847346609272862367162134317409606925147513319624370966372134798172173829641450003305881119867763304283925858714361479437924134444201452615646092573453075172999461318280611521539408231094467193581979450480274643986766681431417164751711797602570982733948874821837004143584974575130699804564171512484947414767966534413828205490729914100581549232947064234064362250589955911084910093444283431807596752689833192724706308949887600985402490728215450559543084161678347318903730470370436007161392123386382712540467279737360587676598476746540829144212745968675651459863880525006936055285777297672115801417994552197358352885131036581299725933133372301493871293782001449980834077669635580916331020822418085162010451345412690220279558479988379774985636540129301860617911699554843578487464502015258431145233370456359567675772517167990670607128804136647282435920056350400485647946821440894694839433057135866265867433588343967287392960394610450833105800733479482001807928645680015779347777166347927693431018875198151114714844531035470103565193360294734865474240214641064449926199847796928534869350382811080118189167363785419115722136418477603920432409318929529168898916175192227213070206355893783010120424170804698623224225894797420518597806006330815384308514223187832203386818609876963843928999193818318149721166137231519913135992158107904072659067124023473524377367313377522145578902734691627410577861354600601760794674029224568947619740868955063247486751799857791993305096884841314949264804781086887288412084314040597217351278428359931858840534867572162236939735904958453465336566710428470202764545612432438483263804055187659564204572106533942849388313319854297618955615997708966955984400772488940596666373771416407966441500088441788921498569508448539073685123428319549894266110058963874685292174490960977451400733995697831748890757787387865698096227703492842621172491596237360171727606609269988521804426011306456851415430767793147852483805047244142817344803882508977428843302858944563901716963150778750509589079244308376557683979460314233249644830926883715426098899725323936367852804979009946630396683105035526244056359733548258636271996784988847694235658828533734981137690601136886102121754305175344241140892108666335597840274591659126827739517028964941657718964251843100210796445938302579308580872118254496417862767080199562300558110576503886068739365553183818045077404547264889976969491923586677464157757564207975676019059639393404599662612435706904723513882907050252817503100326330342469210491644053495865402545992709226728531328830899857528562107217029958703438969208320031238783027082286813454850380773457396003504496698570756465244753385567053806956924579635182520699736935189430222693725452270746388888595967581048436818167950756899047621372540451398398250633412447258930920311710100978712100017621523677827331668805180524683701585682665130826721118226518470684450174849048120122204287341959068730474387169481126871895844276012602335754630205765882715316505751438311491949152737278333435208350235512874046671950036005559557596717324682110646311035571583911235653642357522161505862009176124594229062304552761351888804751193158535879766805471104020986157180232818553335316302169334162882285385139283816539873094914146993540741737065532476072421625674892709896807205063727856515422508995480750373267797237385300740103254648486662044571162621333739170444815998359462866375068432166056306346438934891842146200188430611801056362005722935921598971921268149201132100791015216161652364584422656828744384275571531580288735768468423242151754124124055943602363796027496452340287464351885417674386430668428393166147678480327765986608609782288643688406770120580163371321173684692255248398647856575070128293420906478402953661315077587748422728689090784976585226083934648427718468391537531321849075254412090633214351954127634911316984429075101630551052528194177470349881069937870869887425976391972261738667571692742983548245952590395114897374634315478426251781391913255790933541926680702945804830355241005164583857165902474922394369654736183037430729670964545444059936790947305339332344473814197962133414717968832555227783549850402450265540355365391799205437272012256238609426978817387452177610347174580633783377302622938072998969812035531151310599719326673035179821160697347945518658970097050981358107638048156129566484325054326615436602376768340213795303445951202057832965894710928304739602718462613108470957681921681540517910774863152972252247522971862804999908171190492007402460740357491299990350660284630793341366521646999364107436457372073824689846171085303165275249949019600462294185632140534295111270962429123295779448746253794505647515956916526325693102922163349164148607745278329526846668851922770699016100241699928537015037818007008024445502495639477642163143180351061838089396482538792430865079486449220157931408750604769181394056968765040138138657080238347424825350276880122475888478623877688741898162144564098993289562470269924554843733662774777466028057518399256868440843403218221705327455985055314672304390522881576114259346419681982195075105767775003864774272816579003411987406808592472305993882240654788564990115339355885206596863456417959114030918870830006541943563556269781479913224632678813427824687053849372553859135462871701328138905142498982272190742721612090380942206005096587076297447854604959651711162093810559957977450888077166687080634061721397792683031271376159302376561379785393948481413780120834734052748425189868557599001674320908693937816635290503945856276830542297337228570298423506379157157535035389860505206833774116846807951865036656402885180371813877291043151852438567316880210534572911932806144534263574397418747394911356484714528130411421581527553279653162748893578018854278581459243824191411562223369176176460636270460230311864814962839841958320164805521297037628466466241153228382616639988535059334373401164873562332691032813011834898340984866675959801176182365275632331269320186347576879212376922412348497341343061003149962121314657509013503723430595535707176359322324889494657666296440699480789816489568000686614774289625908921747922834294267393450509941770610382177207341793764169702049038894979719293736677066293399798176522836754374369900512314029606321292284529182023289307489797496884766597959307157450004384259624689767238527552780246762172018266340373355997204528995147453313953318737242550518787775628940342767908456576364075303052156524320215009269498122236159751886610464906094356387628357769322127021558122012232666937489148122787267239326575484800777185611149504052026592130131633629530745589242020335826327741545026194372188361955845853304319998271775205523709036266845912149327040304180940186673389023730575061054086554433713886486325090847277843352932013561275649099114669767776767074265479987098276811072269540517881044318414910654770407810226981237157654756286475220360282033207461971926299787470206945818771680313769061215327902999260152358048153279255590814066502193257890122598081347382124882911067040381687979294185093569596413671750910123630770368417409505346420093002624000356758568779505149514147236296493976096976661527381845528160801832912139827893829679214321588520891237645684702682605291773608770498930977405716407124549569963962017520456651938522285560585981253252448186558329046544000020020763482883687029668067091156667223759245003657066667059369644555913347326885936026116717578456594566830921410991336304884418291311635342394194346014832976772378496049750404603188016038219431945495264146101091852247215117645354241996851885253810383039870811666058214326274444570937648733356034869411488942998875998268822487635475114991904290035093351883285264466557022287856155293975059613550055582781192501697208514640037198225913479780098434515376093339085470015018139672447625494856349260205117519123885872342223009788314685914441184167530423034298292617944459272364745244817157028817089796161599659730193807753372730565138261202861616848789172529974135596011743101373110271299198324948063358829507477396901405731604945811064469952248902822252036531454132543271746006898223766755679095890441013956471673570839495657385221691492709922211785864036378277016711448992970562462249340578218323493608858743202979692392628100222093425353637644027137232665918498552681766008495164048177323779440012378020378422340699891458516069110712068797550584708938715756291892163508368942532291089684265378501417326736693555233530332899834031942307007026354392580830799663938474672490089198296653669544718244411842743754973439541195308291468667720689411687831504904229871052955400390924454779774749706772601984500270820461751982296608538570351010909831469655306900682279199918933524411572160926302032740142488267625692312393258079775793133684021064921085423128168788581215718926092672199291692894014900271326362038374854513783923952373909992330402126238685518131318973403522315800530264209714154415318984342587639909025707885239782807896171894664225519984731884694291802299710495803559973877783626164143253668522376985512208021344088536025660553743700632753921965903281200063377740195940513823390577771378743476596089599091109435851072897553279920111971444122516127152138556833903924026592947631828903521526568213933071575221529572422201028685292362523360317034902679528164193367365280631834246282141300518399885820115479330290886796609447675966409668428529486750050022823895571135492342000946998064798954039776491625761805950681880305460575942755958894150609377340896462223228187537907398885393609567629558390241690054696268123958950246034241146312630674928079920598734328150225585409112074402117752744480081741542938786089177860053686242036311751148735494483869741093619240107618639499278889225647698229360700216851871883644508716002518254940727707379285562403962036395318085050692154357840722566546687552179167254783060507023109761906466661732675816206372111797041720407095269966613156643107363845599192083776070107924777437757673493294770997565501018654863260155809195215700922169975439150119869719360539062207919521945813778849924079910977001680243981018274049265615071282718099673666408509307910678260106755390326208642850844153732120031077080853856629612075814087570227173625163785542708824156027170633325094603037569060066141666169537428784863587468359588753153122585841931901379475108187996843627969383277746522285223058301170923787920659255956402941611966482692138229577620915781099701533481449179124647969499788797961055733732588220173746326215317813604477538493830807912732365651910985828343131412093209716689715272669881792313789575922235562248966617167634039920838190736219020647330295282795558090896072446224633611928393693618680437950645245197770680929326421846308976776149747370828768685827387027510863869074627762116606982775242692900394571295890641900504573001696978651781124641023710516637048523607927886458658268575624936005822258089669983113139990938418556881971766970159598629511564298410626890688743518884581780479768701792838897134600330721074915615812545445393231502875260556110849579334899179424125150239814175781865763363450940443336665731441422358043846259398838418191365185003196472793676899168539489601389727416917094938088617978160849237227981867557540403377702562402851118449311813830704375142082580926936810068075125746015466437202877109114976829022806941500248165141513566317084663581510992379000634674774543192335996922351876491542907949323657636578711954958687374186836809522494277693161557790511874048480475835260816022329776775316890435921447218328237858284888357212381592194060161338435543133137536665222776567996061210906769060811642151387021436615235399517397744696307504661949847693920346721220621927975164770687003590917336412080023777939368668802398802591737509811093592528507419796739937018934651201772912972216652088022591678153097654594907678928719834571416620375834048889717242061645047205811977714305436382936083179832603835110336555768168643618299955061194790473619359703743625709199473409270677661667132009875174562635423448618015817539421153035915418256981093357700712676527703883216112804882740777218277701660236115115368321791461518035534931903620644675736575332170125968203431652066993839002137212536749626883339498353142374968998197149275406265228528416783877704592104602718984138857726082486910901670557105067261194700729003510100194698738099665044158011657509978868147605694256346698999056040966499722596016499228717316368413034344607271638734421451987239139404437607494230263265711120329324072641320707528313994982031897118799241861785025724698900796405416944530926986796123769590385472872264241370830013645821878662651406845757144575844591717796652507155014336533409140961498920458941451646163831471176463658664058040737036184795116378555083126561764752723368526063232323967432835858389472260306236329521068320581134585599403533126173417255419202123061819995865984447260219100293282384638874966734943482929546953722325910217594962003586386136922629722139399232375943498274463016141360553568262563546812007437218459752206559388334177613696431130518993297501149639344189646514224468514738248036367174887414230541052074757088182530712332560197620682328673884728729115221638955479759067969202375742205120852526673759854006085248060684057179904132475689176650910532606587386253661741826588667818008743456995509160157154585767890203464406895197500933369254490224634960125259634578231981979467526822630005725220325931523664883569831124180342872009121382156640985853652286308493125938857120745232099432755503469928839159507089134173112267100023661259053186819448012480873843810753177696106868717874901702296046857169950014517937457101752501970155603869698809910741742160311497868451073235456877157999473731815986226515854333673577198876315529692878859250390789438712422921334602617249486213771165910565617259206662958628648931475469933313773901413179087342278091385219148251625461511910094042566324612901275388814509408333525954362362789570665036949996132128061302285880297120902299337032947056498106145510504202689944573817844347126415561703415022556763777841612443005794435948844704513161238280471938068687496038296393102723507139455490250865745671429366336683021713316080270699886311307120916859297946245025139890775286104471836883486191821495146714702495775207773006830489881012202453616626270062101511185701064134526851511825092436646263831547762746681468020625782932391274221337444016214833711080988216826187766495209033825269223681291194077868326020365047735473630928062715370121988631090155812398446623899033624910026943957392809535480771031353393387894107570744765103011462498835885911503898055393106589982378074351402120235893933202288599081448610715523464936969520289522492647725637758271896737098539727309610265883994798579378116852122811711268593182936791774663387843638759333024007158223499051832549499160627425124731298917966958648972257397898683783932740816770039900401292822104768562064719604014362244449453226413125279094000185462558507872588679403806903632053780357211868075012547141546612763320464325084592253842222784964705456729829564656501363812232672644057794601219135471642403580798986134967206068312128418232544375672041084706328655715944527784471983160506297340331982229899508235282978007815565604182403848866983191576249223467843068850138738316085648021478665220552561950339461118560785722024136589517207564062351354934251545514398183485694539384019027387984683589965435678391611093120709387115446793636013823985098071555794243150439305127060070539570926368653680673176846245436095223028507545437569352280316730899629584676550085839822658701924201387855028779992832507309515798310581640051167141424624227373332224044669141093808684861545493471693623450761726417409769938879876893254340164597041661738080867991861800619832364217672290748692731897100432160284202153658462356319589594467129986244389003976033951209928034049487208345599877151288408535974755045179291897426779718504103042007213572679771078766776411784542210559646049831199564656080519633444003263678252533095464321210012467907848793526285831630331000254001741864998268248486462968079119036612603051240579053920690295067497903654877481885787311288222608469424280250292587748573737766107098320548471116220277318065635102679459554248256528646651700262695599663731127406243744169539469002939608169782474670109118402296885244998574754973310643635324087384857342683148292306613622904075174562463142203453628700322637576743396073402418684814069979216267432612231573601137369974608774226271110118186809574124804924964184328343934836652982517455662607191197391562310030596779210886313784706757682053270227848453044666042866143011575087369604360960163033187033066396117702754113472794385834723549864287479478155449910785077376186221500760426216054718210820415731218766114784940831183496750288047268189394645247988018657829712638948393029456493834909341061045301510466610999050309046797641899713928423954146806576716991095764572989861903147372350802107452027134945074789787851241151251915623618584032861520827907956310160506674786064228178749472374811044502182161352910859797175232686877833249021193671793248369295719524654252014828985663037085094525780088364953686621765463281521039052604699924586925095071621570731197392260037649641787216544199346024602381261710901840342424414619122306410318178338113312160718463967599944345770089363537478258009026146607600611722892396743250447691216088972163141281541144246036710981871882159931332455000809895619347939387296366353505512248679288891080513174360841444561841328014323888325959302213162106764833672866538083676663010240897883763771388120463165680607339800012044289938556958493377793862091275847798287854726295494966201078805974556990806820461050202636174728384827627675048025215054791097675124414044845792124725605084939180030021551212883545091758301338103092868276702908626201005246547166679889397276042088082832861218031022096825907004625148111304178250180898216409570653244367917467173671630495613677331657994068201198570651366277154051482475980052578407738497581786016056594090339504312954112339877201344507624913474524958777007331910914991137793575420809443377126579076212474722825974458998311976845914730852039864953836939032025093775737882059566256422966662578765621109103435919138236391061272103504767551354019504571846267232824639329465346080457446281906270893238136730743715739260087637857331589891336123621770391498889282328025976044812705746714924183691912231259553739905782820563191502024242707870747351053256235747728338537376433081927610951584886147695453817441824401695547694897344959235873092981801456534421952181715321141656351711290848354560423357235121139164633241793040371005828404540662997987733625273535841614657438646040555705726875870359312912973703901846845035523022956288997807624843102655290396572415965003569569174890179297789165217162771560582458150195532336312840199868674237782908748280597871160499308389216629387167106500068447433296383118110119870943342190940690527020944168451257493444481911413192851205160334796804940140196808466131575115216112808693516744010090946646637974722185384515239242469408322349597606999975443391938555966086720085063976215379345970242221346429204688291199225714815331786057110462541893186600390576960595956899043178532937219414459825123167595267079106048358126046956244136919962946077559778388146186255285249712089219603655113781419753800631625915435683504707869180958947902256658183761547954850984457031552036130150881755338268239297629148819320221890938451320479490760347232897695695166489533273304919579433577051308749396080600822043920603860960803496741532567817481380296123607539811235664267484700434793418942971315957661036644038575693024961724209019510592972239562945207798292325335482186760199672745550983637068265424029203553241857413369138851450933352448431989370334706722747815279053742800920301005161772627515695511302814533263502536383488584317920019414977005805347349726982624855271185752014509877424082395444123765570824760476415949592814178232029541947264756251941509443664975666381839381665721321287222642509238544599212474054661626586888173563043680815619282312694901970435893681472681851019978455227820667656762809069171455821930525212640210022477846219449893562440333807106251232980507911833325635420461489199643081801575669996798696186655754403366368368577301234385026350665482026549406853720049279094405834815097512359549116627505512079397566207479936387453689345635370574732939408908517110148016346305814632987526332682755068509689916412578533541049185656398115205357995481192003994885369696280378755676004558948876877186672316165653586186616813835062351472834171238516402603704147435365270893204466619365529334456620864563604370794066307933463640916382273994810966396328808575498489091753143969704625855585386622779339685540606519867300460352964227090295865187764401505684269536492456795111881256847976976882499772353640079286849892577047656183903246618745523629336258653993717696097656931182861557323961286414585331084545778560520599084546498612763039920626058905991016311101986279329976361859243617615905012309387638915616723921216981667144355942001115220178040148173409051714322802729715969830877014935868346163649264126868302307028598526249590872215256073320204981263698473183105507607216103756946945914645773493494606157455270714685998995070571549201335226699780210178170386602388446274616609116946409061245757284279140076872436421923759439997538580160893221311858016055095124316937567956309682351294507827150804250254161085012764794404000067227836602221546808009746003873960642195122902379812896621206903606284881585138780757005912587332912956906532490487533808226350887529238552169386752606900657102647461091453767879950333855696053363764404550889577637257256505437582394461121536510349031541824648458200080331478705034907057612947691041819920565299025530299985104389392658759941044478931409397083247996112456015289659132590959349767985813083438075575583379912790217399160189570877798900261502430586094437541823059483617558664073925382313895414094350126489242421237740887122336687521730362060572177582578460152049455215411928707405702622786225882048638821568997818333234359871118546075242608273474210597268989527283518254114814142001270640537599690450748451265661699767127596816085348353810322379903254978066485314118083453957547698036912368220546799658078385513608532008942845572209620278606523382087822430722036837840211769222492914465075873874586325326277072189817929963291913419428272414253364280774534733617061709357365813375318709560711373884689939416059936012088538867910504452267270050147762073462882235643929681792657837846620779118195723064444746407858216456958919159129884951316179705933062545011269916326015855270889425006053477147241982296449613672897176830506094986701076667433147500772437920639511060457434787916177395003735579553658254704027616665224586419152313330020865190173210342687286314912280114475697563752774122303040599974473363412905072056350471263425384223677092712018475038882257232974029044038492894970337159471163502394943321365691434540423392840064384906980844693248677242117557799216570724913802972144027357422659624475045459371531477598947031481909524013465561600257246034036649468450814621847310448277588423585647181173697552537125610684920421333792382486879038652886563213663600825596622775031944622107755949573839965298385079964561134723992406045639011136668947219488107828357638776242162064401025383431840560525873041778599494152292312984291184137658956776607589120915101734301170899707916069070701518759593459456614341457652463245136209334235918249856791632401512649605765867708808681504066356000069043070483566377729888051806695613120093726532412952812655113672232649414981716892079762811645916239928867968610830476168882354985245844077998193513381509685494329109549686572993471911457516380379023998174801223771803731972202536021995671694768650044757072508534972654029712093900436350870760915495350342110039001003249771557982388505047784119906287821971476668608195337782505211364133661948714422404794209329221997926041722230451056801776729035065458415093596724531424789152603913147034605966902637781529231617336305733355906234227636026658131221071722708011095206120218481560140342264665837061239275355935877957858136945778505772621329219425420864726463840627481725745131663634437758085775513390286697176818787372699546418691932461669232831326935925789426311573658794525781743310728455136005577234310801060365725608318154380893107401706561202517380218053273824906022284747668997280206208095892781262629975623345634040656694400112757308647715636444015536797999809803028390771403425992160230972899905456924168192795477084507001105762078099636072559116270227913120744476789594061934698105539636472330987903001546999837247867833286700464339791773305513805376292151384427030971747498132060693971260467077892259422219284242657599986962507884375501614475895399794198984848328193612191456498910823201853385271463929942836813434994468909562557579621812216035753400987802688010135120782205068313425544977507980554156179530445841902072042836318236742030956005988906777773760490865077352687181680640160088355319907012247412557752811124266661549230214914329544942156110440466275084854696978545519952284732604667627351728585901044552664435535576277668534261141445552447711098160775058595941134875737802920945179882744779616153314944530159682432995754092014840381301039335567730380284789942173966067274114117405350689739211042542615730542224645336424345593478514349573043568044331592591281538533457415979833363708817487926151226690858564854721520794908444204961603507048541660807302191202127279411378922912389730069971149151879576557743213379740183205849965639718906794557911427977043443617785522045183910547487748207932055164335944237189155081463530115485548022514587057698002349789428476250810871898458645083490207142521326403908021308792397362339283904262776430077507560883153190796422934887293516068163083293521720992149206683482759669623820367176866128930778544095834017679277480922164921163567608584145284559952155277511917605621502158611861710017972753208821409726164930940984317217144562661644855899511853657242748422396311177925871305613606904041907802277921558878245566352469117218408176471265156022478067696257369919878626731335619262274248123749486377192198121622809019990926228824311305234013342827250956844596629133530514291092461103835992791164782677036941169681491644061332814319810694310826187796923310463469985033995135569508562930328026132963606888528236258149847420791687638986887508853129887455009622566781234998808965062234167662699863340398494903791602191809535765467244309466342628455914959750343600957021144069408848684790880675298243003082421964345840766079628902713505073463289936672600714316963626382903476767828184445307798010848585487874284771701096463616566978752470394902282935069473861272806190819107553348162566157133478376278386861986833803963562204292976718684866204405502527420365824410385330050517141658566406004652662497757861824100806294490677923932814869902322535002999739931042235290280070528463594956798687821067888726399764289823089917974704494396116286741663898561403389305439877063468360716322509391716560011684540679909609221349525232811477247530626535687483300306972556039277905366456829956006063741086577344720579459075603219310776586892060787134833960699510100883982292645958475212343403748703082455110315898273069268844687445612812367462021657418459774697959426465275738826628950172952455348358578107095395916673273795140459038098903458937457769129696777841653027563428624509024932625037417060284273334235832836703593786051661248788604735342124696640665826715252187947083833753378117374820301131651476561892918861344536260811041415956628267441415329443489253293182307975776882336787532500846772761560586639823839311007069779542600036784480330347226724255465528692334225906449453500558607343263202748623725977840045606426303227174934122730276843754256411479850140382635664524873226282989134395387162404532722282894973697283207240656201256354219772924171368448386565207524715854563389657211978515706859103129473706394018778826517072378286737787934893927986425897769003533704616484962285766889289281772673279754381850758300486409791029489788449937408343560714610751719316247208264684184868569544077611839932659306393199708375201627062999421529683458724895492074497985768714005214782947521232000348059319342891213824659330109825109979481349632186982451965956075446570491198166542083739862525616013022755579710980982849742673468337890033968369339612100130934579357434171705515917681103408426967316222546837027780775440529843457613835905291418111157650317894503066500905385908701154583455417400333576717760426460808381748240938202704000923796887932285717512227013370125431247282672355551389013476591934495643383933466892188221017032813554948921948983681362039317381018285595092283225186223948777932575091231861140252276531821621390205342629652974229320688174617235427893900544622333183660102525562307649867893323575326740743753893331333090467842130068830062938168130747579089601324724213813036334397316730387031746308556262016780534509360997998474283332921404414731423061274829752027480419108904448985296430807924945289952709537802482632993006064214100554033004015698341095125821492631757056233617360149996667082398166930503225366166677981748315612995003159209246514341190159580042944007826425885720862501071837243230646755639428789565707409015337293413201764974212760456849961302212421863763681067156214276214904838065454198549883748807705649822620002409821864209929436646267385777365105236128549858144773316387211823700625631749533352966980418486952788892447156948797286741252288087404900375548295425804237709697263411945539139989906754809537706209645480802733296168352875653194927728804954605733241824736039490548061210856346318452712666307118691824779096934910476592687843810139220650012812028656656703878478914412041410615635419344741050947548839344760322385352625193493550690247436857245049664962883711866632482898871399634244837569432252166820917463332720245819618647174456048926101206651629932163415545987209460597306385638205055925712932711286812562382177393450822832555701476136763305309382686498511068757436969215055382122829654550510921952832915603501885071783186720956435220137173135816649953170221789035523964398942219600621670343841485942280875848918011218017809610661910349117361112557082084669177878328732317868248669455421152921353401804320580372272581502318470350815965798723330077817360106389434763403161435252839589936743476318596740744062946743852840876099289949861978348554859784658809130059792415274704703182815779442218961838502577598349778321502455415841955631868750675251268272145437920047711447819160722553773241377203217252324397075059001610842318124665684568765029197938869838221514870651049675646472322285788957123456157605824610885060027923292181906198276176906806545926954465867442048025129214149545433238515190034568189919052946570717381090784866087487085639331908849737007244458682726208413141432271629306870956871506571357197241544262727825817363000756408854674271129262420321768058599456071012872340429964174662645055584683381338229201359831225766626813663256668739536362424814196962879458570148709590405130513501800516877772587262478638718005625197992976916107024813316462880078106992711813094088229904993845604871906144865105423470871993127912851311325786168757184833706501361330376925960028756892336793686409283019464501005740612211949105436195061856559029265464278442168870249342657759184328154819931356563823118316006106308602384165756354265655877097265577410157690866716094092343306201390289756413181848900026702590896306009581860405788830209630192013003070657768456780762465116486324349904968818350673978453225614464328455702898976146861117054174899357789249614371468989615966430341242364896190092990454820296748055417142183205825103109804881990640241444229610191889499247726347356598924502774591894655082336653534734934134987582788808895616150819502753495463818125512290857474690715603451066244892414509206713104314584655195022071737091705231365088494405446565083795412697621187423001636715413492095177558821860484391942672172219460540904625744043590257508928459688762419524544674040229461362165321484919365902378019421840930416242175337957478883621089736546747610836289641025560241667973674098482253755733305185234477856479366132605866918765020396312088339405323104813806781194266674967794631813547544478368240744737691789029060944020473062480107215010171843511200296160839436615049838513071237664636438894097479710984584472518683305097647735360042798182455040328111701176791084632243473123815542342199049881211061168644942359136941494288783208752210411475698776236889073344907360105135089444468580419396855761897656985391070765649678599882161282409678953620160770142397657263356343089541295066301288948909049892164984674181588006848574525068508284908686316352123010953552114116245238133472143339215506099324361701871189810081105215079880981981416916899391749408477482895460082888955206201460014366514207096358332478096840769887904580058036139565362198173252045214501843766101472256471702102637647537158249826403508581165922671070113380881074416475683658390468226915198093536465812222887666998154255263168362540960414551108440492377737845169931319320257563488330375716798431828163053838523413581014042564363049746140697715175949911572199878135495029954641875233225337854920977978834605745780178079386146402787005283749539922065584595658034391781113386526231394433921935805366068790746017254254444179375950515413804415088496290909915219872996040958945629296187782767893007920900610585250206808474320446288598877515908541432791456672640631712922845255594122413979906283415400715011341957568138869149406708984489621976606314520041835957201965507146686297334409844995981737903509380108885381770981725982903530344550667314937649648925005582486020078142697281278090474317552258648891979297666600303195927173623730370507088204224926617166129021281896129222822887143165181984755906814764097324350077107548640306712311213220687788672391093133291630794400217131624196808274754326937036980365110198799905125476143500024701037229698902071337217592444290725191462917064836570000881682913463256338623510267693297646839591951939295517836488697865978341239704910692330569259284165556045022803596132739949327576496033690805231049952139730875751659342153120523420662349282089122109958596904001465364565211778398176663130642800257640132725723985328932568171182061889557902696886773945623306168565307434360984699430677891299708794228412536423776191358336983457990732671974640982447819733343067364005161430379410405261089984636394814502039841233896193791054049537880381451011004936375636195811161783545044478610066210049869693207612850245065068217886764589252731870175851910719207468062986884012469953446172312995927502805744429751474765627729168232596088997478120347636631315515057774470785270096264269291980238475134132923827436518600142582946212290223979119874155828739620037824972793462613461569752711723222735607932110905072478135672667765707263807821337548202865533756315629098970216470149782792690495658553961498971327931513424465276579849869651636572317805953859523299096757867072485054151847625582863338521074318458162052917302818921336938738386036023090323960915960262662332313700146026118527003690054056642063776315866747331443528315010305477095445530260075733890849359673887763570110412957741719106183208669029944159766649551340684641609009970207321639437833495864367592628888578983827162471739431449849218039460672959940007365043242659187455601494480676694406396441672633682235295782900922210498684470524881331344130695611804612842141538947740574207847040906667179126268468660482408594899028821977599732714947798308875050894104634885045932929062004105532960502084707833345376301137698944241967352715664538800877144425508433846370066977500331947846013865690570831053133046420229940667855291341826167340174472488745525999317081897255359125586835019042631086644827700239464733741270187294996285182472113487689173333855421449285738956546383185248496819104689432754994847628503779524802850430743440669540519333630180418986252878396641315365770453023197882255042418830744433811813913005771407773005469305263047121711934260164552505432032194990235610239772162437345139023832505126478011453421149610216373626033447642047517518765904073933291962156250004215797156279993677454593717769773788607739745427300564182544933173011152691396890097598159117003653573641376343292160105268875875828222711731582162394890288165654755691830616104247847544880954235789071538072510862151485437228563896657795461195465968064320486113950230969335007374365031598378409222229648091265593821357711367647182316719323337392122565742593505735486006373180353679863275836053289961330348413710271238089177156193130126966153980108975149817972483389367685513301707494442371582504848178500963586830739104996289071131155416395264162491476204012784234635270948813370092212618665265143484754373489499006327430063573605266388986524651075415181821932056708779273472789080327049086660875791245079067592473472455638248318282922302127339175777087536848481641063409027804588226450914196057069638697255777225100238175759985976543850162494821202172821254848128794664310732810428607707322568813630245159638540501094062621648154534265782973451189391303285175806668654243247986348291253484970832657397888552982292320986386244215839778781319988295878547489791911724854634773290261714746938167556961607758106745811894456393587546800218816488303265887758489807807094890433263838373017558352586922689721442490778599992727819565132273617821592172630509433323567060609653992259159898841992305007388974376042365835044421125253301231055172267363849538713355249425424900767502522684629041846589824855128260102978664900519717961795640381755951125545531556097855115929565074991380311693445575960319358056687539408725239792733409220020989491756035322314354784509431782901026359228075633855400078379382049744182365633225252715362570162193041862353916774060782167371268069154153930437184066885550106941696374841708509490085894106909797353612247754547979148052201234853981981531695256938228428732983490246821684501766362094271506478631162190643761250970132957919044073120375206306820609733506235850939746675025189111086839194089962497651407489821164806368583350242504930060365382048069523736091842599243354178081966866739190685430658990266162393778827143077359519733789273008301032361750066980143924339810322888922240558192660120525146042367465608233550389755273349817812616762178916681334515100028522192286263323883084744608943126263400230879662098464304551668365434736701705172257946225100460750589162832139553380879505008929685359236416440135859522818170864759076900640140517172624974834353501611688997270095999797263906110900726058744518820663633617394454872094449650152707050017628605974670756633494901606877675266175822508404096652457360421462112254657468776527554489257285099025480740900409010970186003277345810682286404833478319113628058294192622897019644066660632375736042510522879698967246417409393149404777672433636431064871603059080049339521044175096305982711369848406815430766911742894068966090396593740170879501994656383254221099050002569765686534934300620494693924974078577796598665837038742575627839854254656963937902465412448386447640233709606219120956552001669432411231953662743555521431232397757403575065927243318289366655811800032987920502092540976802556257584717651686085157526169430479816074326832508305393623048395799315473109646364365753361527588836585916825131773258778926101838924431644564381704632917484819034109375285407305460715582727633257125206383075262188742324048434352763573793096691772677602172570909181700812806207042661857216677718333245789000073862966840788510077453582294581490266470166401014919457971281104439004783654505292775867346118069479727303349607795457617038757012858713853268706777511744259184297094562068777913316379357918983442038270494735178463460623394202894325180983129753083077499119490355163902078643922210353609097740709069801876893300923347859727070897904293677025480440394275140554103435895630451096318303939604446262774895270356752214811074021715342023249134737827283235344350202078948445404401216775859212102495502012563335301008196105355755713826736513627680834776505246021234524210673381385264803283713334374058501527707973348376442043730021481682714316612965814523561118367577769083323750232890235475082144170216284259307398970155454627717380884036977477307396669149751936363654307585819627663383301370054244409012412563059780349305128411187368385629014929281241103553300672558847082378586090015422653125134965626118476289199308330385745082704593653054923009999276020722625422164988295354568088939283063289101756077176351962224999575501382967123202153046063170178654793694158239595605079254172867553479520661778112655575669750282709903918116305563950153760238227137483869813071593777513442040958323276761215502586112563854711405448905939343706069852332974443904916715940863541763491738842464444936138604093728014289761228311022343793577531476622145848546562428027184248598927223538642300594776018007205840195680965988735174121501617147297920997250520072797311502123027195260875537162446525399308913581288186041543255456443215967998226183320900205034002024067356757567264126685365058671694634457617259989386963412126161543064583795906825333031763885432563540178866786546561264093136362734091230860898534821737729662937442000840055882837866155477833516817951057736985500149050463685564547695375678274849797198069839597736104377054427363423344159496603364089482318691390011009708642195216491785619629458832974344955107463986259288232864952667817341346511680537704631714001073462640040744953323053480122763070244654093330492221740323577494046235427991506907118496032442296210251201597071247118996527998318433783328132697539036303186285511001015581902319730332286741664604046312552312561617053335883902813255115819943531967788572806686004815496987410316808996544547001811032727671496673843503853940681071207138676556096121359364234517930606782648556516797539171575074305014230898627266641306471006067906507338768807965232380987937180661295288243950780630201259943059530370253714739334187901660162473152308473129643393345786233163074722636916885102447664328309099535218283925906751104784984327706322733368611334713454543563691034331241098638576515427403254069181260505705973425368776256446965514046198191467978715839004240317641748896135821928593167479978327627989599448898724199211793958294551209782490844430511490467218477348525067253651653413200768259698435950611594203867959448295787778274774347094600431380841390793393875470498808565124322172271811192886669290128085725147107736244121086702525356924145146826182749335759735733949923586276474537670628132212129411503029342300304011620567004666033603988257514079101145913070125026961655272403058337338386664642261320331574010172874147657549231684736889482012487612954783035608362035779576353448891551479304985482611572264842962167398692110122839802823342102491302122595645360206957703031187731569395968512082820369254149122837718943274990727911011992790608255952242492709410650384482802807756263228628996783464200786070362438509168915089994846271142518146777349819795882329022232637831037956999341734884258460932888379899940657790296763301765103189474576281205945943541761665936482587690596109082247415169993908472528704405564884225010311516765761366885410042930723158304780193098477073409595402890706956753735149416481972269202980689421067422662632486008151410699335869895579224431069149038851725686657979574192450120800666309021561596874987743949638753683888558608028792675407559416958103193447901569466082183173642268141559166682114794054846324671426784670402128634624864510389591595159251986014285198790538120226488058220777689270495531678929711192615383253324652316600797385572500939857467385694162451736724594586851143281464809972237618456514517975924622817368196126035636210744104765367576368700581104871289279983987547699817501152062588677170068933336859282874144950555639005785831588682576920486976927846883056463876171208196214658845198925267999616923139978807842242853514987447143136268937073239363359714864341429036349282022606435018556526492324108152799055415338098832413777987287933845984927963066378875757010854070144052645759915556254810388621111531902365030859636237379137386654506804416160364106019882088721971601406934006115448018809101048771819982931155369124500798750377127029689396408330564308024186036580430231786396739436113003296075255595203065897472709350365078922395840003217575488116879461851295628846056478121683005827888469926288298839806873879093026625232984459178329869698318798121271625145277745192391150646221779770278249916700890280370979607310147938815548066077439538498669332022475911935122826439610376194147543866301636212592976865660802257088189627695869377792842011334367560984673282526495076551094931076694689210055000584998064691670768485974672636759728405422930176245849136798123790057398747974697829979279328803565443498226035933552078715665587818742896914808449656487602503418189500482617405825892105913533405081137750778899779503547250130699033922886645697810432701039145726570705909576557680853815012566011014626125165181960703607487185780668211982350706379189688582980300044831429738536350364201891995308030497919137292644224959862993296914534328543320073645178919304858316863973732852000177227108828038705178331788161606090371859386798916498474321381849912285652039369140747249237766840206579564749642288314184175000826818243942419510812962696907699335067612797457217954749294486833362113779896723648754585789642679642318693441443759848914932322099242942175708714945874527335280717428032001858755511761400293671419969137689839227144027392262873050734553439317940947414138648727504220880187113535373274473876816446972799456347671904979185129396791712712926726814763620407869218923901482700528618056146107549636922728326942380283786031173752916428849842174022963711792051096750483514074916629442633639689169429332424922339494479639060165469339977127504220697149396363629722652015276786011167581884317538222280112538440878036692988978261555075223468649156905975839874499880736764739359519852724648763679206516990827502602035106456149735039970969457539913550206792672879226092470520051605568269695756793305539217570559867922767929722918414613394783009512243277605091224711382799229688890915913506129659369166097492160316578438811124639369175921637493631196637835290897251525249855236488916641498331412133594916210584483699419998329415890895864352240530316959605691501203354279752729163747076008611426252123623457489394680535773958235423203545840250100052223367276713987054315429224637765100718541830430917195056054222042862314302319841074803847291356913629912597952849223977642298753860667727395926184455795691876294786298736231098387146152795342100840219747578594055846091594928999621458344219290402864224173294419849618207128207378105844477360801403261500874462511011903198402568178