9
18662123597383873153765328212333122525797746343559136571422555176549941914748183288848999356974728742945411238759765774791698261257451214358426524992683854763989857987522576228549828495883314381999943229934717991941649972639629626257343744736749116215387359333849873277542146349159511335478685573182965281146944294227855933412813938768773688927458365851491573996963862342244882848624675643944743158272618998312365652228633118333363724645497736391734629122965524986562331914755837388293411284573332456576152554515636897235594127465944868924665339831765425847886512987919668313516584138643543194413213381122673453878652818231571993352466743979567322533678655657194532126534589214686146891677516961283746314346896791382562223831848142874428117778938475898371375289678141144742866625215254382932281125121527893667297815253655766199524695496864694587934589288127962551181896358927849281411212238386614695543444128358598642856814577158613168582517366449527138777412393798677839758492566398378948261669647549727558737576414427545521785569633589672329982344297651931797879139387521638873285173287376284118149983165255783393534274182623726646853679148689154593891285558343238787623772887258541768236169475465136424795741516615731368527964687331933497779639395341112819368223528887774638671197338728767718353143119694551781424287374266292535957816484554827448287794445889574585423791473229959752326897157595949548897128246233674376983935641697676411456388558976794198563642392254298837982792394815771966318734154158848221669972449656417272616222228942228247492679421361421352674489614647416784728964918235424963925312242841434421832857488877382142358742795348452739699799458772917973165722656132913982828916328327643345412346437855159261793626491835597923688373111227429692443646327329671437937162993885928385117148325369153162452769352312134769582327333851998384241393698164143294958454445264617858227946441682376431977525897883716629364553792645935879482489672244282849338522315185243381569683332718642513965485899339478456881373139411898466156188247993813849465315327273871611435346657833199532364393891851825549234239438613748381662847151517659382437417791831816311917267954173437277877252265886118837842362715624532446863363194988782238331783245571289628247568547872695993238888927181995762516494685376829731742552744239513444925552355329514759256562642878571947462825876564778527781981737953789193899655935196776167161765255174654522346846643542357355169897255636162666239584832686385364312795593752674644237415245694327616485761841527242193738519843524463951364537241362745885791153781296424976711748232621282528819229964353933238142315554997898743638266581914817261637238931914587314162274557595751475588618957711316655221992467436985968753645688474995217443318928715592186565435924764421953757849382599465239644129653958355239161232271983977371466763817522721764173184591341386184486338592598197518887912263193551473445625626698486499725256431668215786461329171733714432184251291981537851188162354986227755764153138745144962327747678553122647252955459178229194871737359414431547373292223235732124752622254531257699824158531933699782838573588559551165849233484653765744995973947256932977216594182766286875279214799288829798198394212929438362941172966135167996639721966122237565671294919621586487696329643411888228711995365823683437391843142166947238784566857389949345749957763618516153959689813939613521489759522337543433614928181533693561742966841493765377175231611889955164879919497134833665736926233859448459312924628985777591133448584428562683247155634695718342322953729287424139724473974729142338831941713337519858465938963328394387471834676563599195921464595854883886443111663584298364815499199388144676835293815653944715715766562258833363744491727488968634493617523869333873977716592376928592453658684161687357929378861611877345123421789726738655563756153976419764163236791586354758453942582781216622592572426991857342523983115987138415568267462296677868381889715557214153789118688574425635516252974678969873961749372157617354654321329317725818867263836772258572834886768441346185498267313263665964662696833533183111762399755372839119893377698831916255123869374295277614676478591318839448385914743436195743813145941186834536291664363758259663457687379755486652371578695582929788427614163837165344393851375243296267684877815558981467794238579298257556558914192341912455412643469127983893234659853917668125461584314584136583489789568579928278839489882652291161337186397147253191191475686693938648481495222451652899388979463548377328133287465646595512559994952873787297963629398968326337632139319349135629541557671414299693855878914765631686663714123314588966156424917287745116741261538457252916318247922535398347681545469671413337949325746899651625253331494827734865361252219593231563824395291577215532775844267235726267996964885651859333951684267994784491881556753985471561197898386826127194988288748914324915753657558489878818793725247739536723668716615718617189593498544245413475367938711518681259316849682952777571564647526741784578738954124181468723595361669928782698233533778661112547896787687969872357636423644729719499359276286511576239594897878917235273913564833548697296996726731347759917691875746686585189852998973965735745439188658466344764553969554349782913978736681156623829174697698989578554242268133444343814884692852999323759665898555835445825212493354622887389264849315187719861386978258197133728878378261167287784592431356747824864772817726424176431756459434823411583275146756528596132365668929269417132998561622344672368272117379274474449713867447675693723762879338975167473427197568959558745888788485252685615483288463238727815746471649492841172229445236228614341536666862299511566912725785139482149656185947314214398968591631147135834537378891541347416562766781293558598517663818858425814485624981953714682975759823616976547258353544913329827119569168732649486749253684878598444553457814752538563934623472336814458159746299978563855284637228755781877588785734948468722654551232429281978754348196987474759164417546566631966996727755249167698455111666983694477344778894666712234522222474141877466376963755978531742211547844783432948524933888174217563246737269466537132431449171738174957693831414118541516714988716413182567617237384564257655558381519866558374924471997774458579551547392342934383513373747886734919651184479738388518912981776176261381631533564647747857126736574793858133612195761675387272722281698611964183878146886713916145414286585823423556137819421154586237977581152396239912954958639462162839234386218419526134228155383696812552173935188912323131771149822989297683413393435951939343527745786677217439794519513648983889677366976921912373545811812211181146634547848198342843935176416439385869645746581786972512362934255641696192741939639192258362888452714543738722917819144181571345635171554655948721844253423546911748815469963957941677829184916982885522531848644891695533136946254718153367343732714467992696233823851116943215696944845916742934431541354675357171457279764888432597722282817524672681689187932391973293314167755116476495317537635246476815799423969622153126178715454254735877196377414636436516964489975554565393155749583145953411319985454885311975955352956387541538295674116116711358463384149315334812435167949997833482987839465155228825631839535863254867835639161275838823186764982598593965984312916121328115516687637935744396487128343273926514277182566817458179216443735517945946324194869688511345631181196611442754259318281525989129429192345732157381229363984227172374429293437357492549758462198427779691864889631974868716835888666746832221495482971963565354132715591834283644943951417254566857618624133617231445587413771656328413735987899864635565165132984146318928711916581149765379589183624517579661229545422151399397678242891157292348191235456377355468578685635951752784439279814343493472936641728118462681562125466914339983277189156416575687445147669771391228233975642113958675463561791835657266821153569427875432533716263299983117465427327163435895644976175377344895849575118591166674382931765166843829521573691288618992177794391572556715187135216998297166716786134914535267889788529237119988713116759285175245927152975273965266153964781517121946366773281737533841412652476672598187315397252656989276634292453454194646562948549476139769126361991576222528692558463439664312691857472855614969137563648999279257116391872499492349634636843979681249327678517964946611417615565889833791564469976859989669348826922513769137226131921917243945849911376411155957142162176569166269286949154548563691827676893721631434439716755244336194814377351493858928716231856577287715569791995729819652739517325916774854965468349535729761684115973369856622567721412418468899616134149813178161122452429329299115531644843769782139563584624736372635912298376518655825577179799874466586525285342956596513795613259829671222848343814457928599726621789122225941552127719651753434414416759454521734625783889122784345819157438793255946424348516842552769632723949533375629492298455753817289575658977762831261128893314134194568668656738155177958482814524889977952655652469376226627961572768566721487645773396977976944421366161121115673834442441965598547453687987445947514647855515489146616695361955935321316869327552334984443549333984124992856891336744381554779179492194318111435938678636215233275576836847173765853917531163693149643558476674369782736864423658835382149819567655931637268445558296331423581356759834553629284993858182641785563465841324332642236956123313859127821153477551895613334766142276977375722479778448792478394644351288671149937771669928741414739159947141143932288212396449735742736669665278499439669525698184378844833649491364341483854965313498811367317443986326534142672144944173725671879693566891261486171781972532849722398199326574284454441626822996445245476954564218555838549861495231661476133445522915951967336749125263797244615835523648471267379186455371863445229484543879516426272812227453274144618987868631350763174932352875347358155937364451759253399488234869996429348913278315744612745254343995251951481322997471855589144456172386636678979736814384588144663891673351159923823261822646213484551176191125399846229383834365749148868281642726558678981649313236325333326798473443561827748373925451914686643187453736432461773438628978643853718372834271367629674792557862162181264893138912279541796494729237376766281182312485556315987893859547366686819977642394782774262135883642325232898228626116724857555828163718227131824746318724792293332712623538832216869953522662216386748323198321236144496782813553339452671435447354684255667132687624772144511535195543221844112965353778358422933498719186417715533111857799182553343542295195551953338937135383746182522922596593746641654294679271442846215756351946292533289129373579299987722837556811141375413781892711482885559242568615148536728988958137883726275155789643246257142975853257174592379336769684419629116554251822378323199281723777991675923227444285787735917316198155848181926467848831531471199127894632826763568372326665884886886251663341519636181646236845446261328865145191818885791396941588832728422854834925586546241291294465219614999621162745471619632977791853475346643948696657839957928236564929696119978566449464378481239833714325532689226172738567882786269611153514437157239398289657385256452915579375229268377244283729365777236174887723863716127518566234268895475169676846767621586338667566216733919595292255296738827584324829311369781126537232335994436947978927215318164818332823458972968989691442259761515916254161289387267494841918989579397924962282928881266368487355516498724134428317556374233161531469261764438279124654186684669696644942475293324981521179738797574867124766997618759189362153121499321797526588574784613837338681525617388236114684144346272339673134783897728186782236153488548864362553425353124267882322268255591667219736368676564827156864523819633728444592349733767564927419484866632972417593798657348282241758312731182733233389935155461645596662861166678129925639176232793672769785345367481844853675167424791669426162939944539818536498867956289788981995579673535475283277915286976386944913478917656896687495924645438141499283968557138168562145581486646667274932964761738843691852748414342747155554838643925321614447191487394149434319733375556192732181922436581932816253898611115414737862711726217743354445455218571368532734466363798234798419389515471556212748117132423566614565324391912187118824277524417753477837947378182285723597137814344137943991831969432811733514161595491711793818974184467931549588959123324525624153681593549687714816257619372798258217782672542935561524471763677621412768925237886858295594771744194273264689478976996777145441149557974434583611233792738272495443132496157338553943217957386132355726424176143447871695524138383155918546352618316497149654494999782646483756617366979136796225386562321695257194621836427948789357788761517317898174726631592656457543593546255365836481763831785439791355182827393263369564642187287334942235967276722878255675394238643968556386857247272842484916881488445184681417356543881294985343189687268591256122392622149564174953878621765576798862186352861356743637894551441338546182467595161543353621665811664582621692198154481843239621618258543792822849319685828182364199273544635129279131623723871591427862357979286499483857464514765553999697636467338623372624291677267258833679623516154238747837846761566135197569365897674676651228495119631677633322212598254567639239324494256699123272928586559484526865273152355563886754431569831728467883117666146844596645751724889571791768585479138914479473851117317695576326238221688757353456418361118659365318486483128656416432445331558292951898229296747473848561737647944925167289863723227995268952848363861778786371894693212226631758954953123971951549873197889156961587882489496541658179751665273522321651592266453459435614152626877135387534181636681452779142648651482236765849618745133268453421761896784268148114649166192455723932691118843976639657368434295591979283187516469336173236557399316326547428156212838242996627741682548311335858261195284178974943489332555263181129631351377693264116354973293315589717855727343673591121449781369343328713446926385599633624679824357341586417956717663226513715332356336966862752519744326596331478912699517673925289542183938296386677528397729330484824239969797457418461132285256739264481369127959917121541176851799237466687385516217353671457457381338897837697219266724751516567529319224973826842513111283932673826767474866562645245473975165459955613382158544968426935542286113693242657621928783576153263973262716163925146216684598715934563943741144877611398649631355994297664691279943282378232566988499465957974289499836659728626478317924941552423697364366329976129742237473646216844381124143665841274823497111826374587883279855963574814817198645294214543631258425116516418282793324887253289951761333263972473796115122352277353685293521859438158753818125871361979352349494398366876818418634632867913152594453259733883656111428112548781347563746945512134495398453352518354651264826142571193861417667485159188699513771993518548226265682881771633222311763537578286855945332596717158126499368497984799423874465462594255372112832422475864239868127762581622997361628296648835659455795867289225287328983797563428187686416337867799881189837488499168922554452444424652656485527453267532298343697162446197641317855518929853345961416216883224938671782669993511741462371584898988956423544887184242579731142251975629174674473917166338352679876437666935583174912534479749636391256862622821511664323227382831277174237522683741365616554649676683926979237624772234799456544294626515429482778213612577323952344886631669758869223599554749973572246295381476511753627292118668192733281421161367542362492469461554984126335563537765825381538693392734568226479467859611653723164467915858527674468649696278497833756341114192449523415324354158454971391713868929371712249746893292542734131832859152566659339771926299822195512717975541684863165796678119851123731276565853258859649649627849424554411817345249313379362955118556218312247772614232159476297374985926233139219633961219749676185888624936867833358461365532151641512996773578915763828563678852914423323591583189382447736522935488611269238546485751723494888347437445378134985689662921591455389143671615124685641965236382922125494665296756233538244882294517168724254951684866873251693243861935461868927633432659928232748832488796511473816993986732215911371349911947421249538322535246273518428534577781755889354978517969711876453133428239366663736452654934581993357391428186479344692126765756312131375195753676348679247645395699927436822372926973829776325786791635546965177877478658271971669645128817435342189166114313388565986868514247668785395827177133632439291626374453874667585397679925965227176412611988747469259471898549448171441558554523438587797641786514859827972623888949748695865446122923641194685491665444942518319514797998466228286649166537359412791793558463283877113655693533912194452598948248948435115468661193658729715839753818328856845264451533496212176678419317993632996348611223333181832172983348667281361315837268263371791324183732959111595411329677866881581784171192371713166946822731772169697726845126545448931293492891789652555179834361283493864146134199446263157714742183572297821352388994332092698997566687469616846638171493852673439229876166849595323462749119464317325121996976691168555557694126777412794311179186241615476991697448537851867197811884623322392347319327335146728137599943273536569481343848431366135239458733579639664269912331854567634696975231228755657193397646428781519323356421897826157822674544725747293757146731656359726383764441252657354248394158922651126569797274131545587813905282285161352979574649498391691331659178394583661255286246325569626734753234611635345169611457431113611923376568915723893241893936487572811568579173563888881493142992194262149269725214314354677988191439653799662284717134513492512846722393469879469275548818181467359671946826862192756668686834559738724415223323529375354248596788753224637288631679415928179667745958533352326514544268267454427944917344676348624239978713356162453317776591372996114917442147595855734395553844557167711246888574348788363759195734736749458397834625441715647331814591545587562853396489163898198657624464123227576337334725545519373819343567236168914477152593732945268636378987917446141321716819645418365275165721437489779363447281936753452255588258346574817828842638186231772828853419113887683947856599698791887149151531419716421363442541621425449695745838489746972435416568393373968453512685515649211886717155542518779149883566589569362167833293299416516883731619865983768997547779339818313466342169438251124714736839769228765871126953966446718694782733719228521336633286179251532824286339294437112359159265547638269125935479393448676584141923132154758218437794751512935938534859224366292191567641734558523917832478319429797471766121193484498556587552621489556369488959388454234288341518574112352176136164687125161412471912338566268194554278884927375377713659297226862418218621348997778935866688377629541492638658427429237817845827892833218193854598733614621213112386738538843515397661132362573823497351334677337116138557735216656491636215947869483547231663537189465218794719758292914281445455612133235595582392714433486232724137662313151313494738197812294638596747943375535121849831253846897561267615269964958253471764364912339121766655263988528614339653776719975569178398353133658824114896783369489338366589855958561163661999158914139618715391348555712133158171473664646286432287969394599529668145692329853194982222583765823757227571577198729931112697172659584541598531492324546696634118167422663638661822467157642243169923388674661742111136999225542636887944431626149153644788332717396912567638533469656134188359391182368223188535619245653499428439775789118283646662136578431485384155986196571157372231985224774472889611261496246568588919598938137299536777312189837857139942765676642421364562677482486381676466243394433891261928366916294832745175639838975968796617337842926726471386293899791352397282495368818237766158149377526345785233323238125832755884546289889523856281283677163551997545625877153891249428235679682357129619437828852194138688876222936226162743858979684664463185591122928124621641721277725945715726931945596681864992883319871645257554995884179581668218425672129164476276575744732863616463896793462189968535131217689337827519957178364349144166755979653614722759577232337665269857845427998283143875219868414512225857558467983281822131881342463149824862753281463666644987335762646242638858185453249738753528714328772778687334568443331783653217997365443177726582134213689292891759286723796375678118476385787864985589758617277917945785554269851428426488297117833594252597784846878648671472476848264645313899799563639689147731578132673164134912487455652327694618868486191483832596374725497967875814435573178259177461291887594277749218716843759686797876757187961283163847232423292899767495322339667241186527758247236197631964142876186648436259285995877976681788688474537164273784274993673861842788331257677148667987366543639927143468247152819637554419884715722259984711112194942475386756539655865366387686383542991785431417196542369931861145554533277538259713169355363686232776224168274176472539277745477777481996916544293576796669227226876878791454984551342819822753351969748895495961185477452546192318292294844441668215163349948161991331644181356289995428534542654789964684821558661334477832298688795166649615784826474276598478248966633693384667215852694551397213177339768246889564735171333263769585661495184162635264526733211282648989711136499837578264675995278278249263814926766892369971488517322549943344141642888917166917968115312557964221438431257869756886528664489994958893237834112681532481948149535536749553255443418778763778744597174341786242493472367847742381299526616429789238455242135364585758348991978121958482796324893569496425535636842791172723233672834475949694318698617892334812987554948121554613695495858331649385711843189461932581166181376397997392723689884142261982918668389311673842939355563663774852819731899315491555332519889485665541742762334381134274475423199675861168581141264783241894216385962977848254591171414696316154553742456582831959991679213928673869136776162377386364487772561957169959557714535372921681757172719996854724287926118299387986386575181564815797629538677696245884495663373775446412572233157766297886234612275946486839146733565555268632969465326891916819375832551433721988441223345935965667825879354644497742976672389776769266424789452145553412543529317256188478513748294734998472494229857826977464375679169118468812817791487335653349347479326336718677638563951414561397452294866825698747945385631783739151457241721895811338924312687782848764166167748173995526996676971179477914918927336988687577176474334155445446289789749786625364827323786442161258334325986515196829319244479615449162579453854667589513162123778987455581988375224286482813311221156736837764488996567861291535641413115994434255193119138494887129441241786121753153957999477389343677867692766262679698547488424894889849937666956936992641694184484661764552357969572646836356625272258725952847124279964619491918435237924137139768765448387417443865779282997164859686435165819428885896997725392583125852344595584364885576398547779354611179831558157616566312272326989216488465361252897659197231828941582447274319612568578411413599659923732453424773542472442982168962365792956523976246599991196215451122347822329255725926145668493495642633757872474865479258227558235617985694132431299436247113258738529298613966987821746559966968813923815192922734999856755651651955465967368551851147744391466674429138866632917223817348476366699812689373585599111944993631219199561519987559461656146528552581638919891876934191727579645883978961273379173475567224417188696495524161968537976729351388147818579977174146846631677615629621578676473199976548726586379332499366836435345891993863681626165194998742588998229596864146655486875861312132255124622328114544343139263675112515276691414988325639578737557818527279543832865641527423167761722552517721139686847698126823896362635438741828414484385986487114397961756737899341688319257251511598583368249286255395243957129372149667484433959692225439454681714871832384592662895351426876169776951279559927327865116913532518394613681774636333945638192474333886455445917652156741851987542821477211613588726589666887733937974787161429413363549229195487115575212355428856199331363993634414244562123119738664919492784134648117442844827993326466545969435456289574867559191747593119263797338488964841873948827331346736779529436923319826737662718372949223276991443427999957237986273326846765719362973178883711641174778346946864262571578962235335832676571367715974941137252995479656214532432821244567294585952119749195458552677944876537922252228349184858338132649282985121454287315693746542935156466287442772713564869436648355281732665163343712399353836981592776953462987288649585991688831337925481579329393361953921125158942483562615545163358572874478475835181344727443761849956685554237755972375348537811735686263675363181229766749421625474389567324534877864637588752329649696541193573371634395472624778759513534183512587247674856425313464937467919281824791418249781138632589513442425825165879178174968319279525889482927595632731348272398441921868179742414799924852981126321496526599959652554239357552483554396977883147224849786661792258878577375789733218396873263389467446183674756289918696113463522255955543918728922793635181434859345128411412395697979587841327274685657689121882799949636879787368153724955135535422516293292121135628924748512244424935366698613467371644715831483187736415495733771737498813261662666229768563731115947959586674931573441416912232737654693279664812177248139273547314774211397979189125129967412444834444793481681715229245896241645999671139481662273128898424619299386389259315635156838791361393223154998929674391986975313333774171481472361891911518348684881587546586932223214387321292589559514374876381633372915135215371333661277195171597798521963581824192138839657617318473771141123654869863741523476413672996139595893971454425954795984276978948637834871533259632339969578493458363972146562544688877755894352387886219857292669749435136462723591311325135423487542975833917577511762584227577434651334857595465433882493271915389622227878325188468521747151518483814783626244272236329237499348728498683596934358911145185941824876644995518266156381881585589266733125897623341178377447126932817232821614858957916941772597989693786166751568488175372721419491892417374553311248667969193262562834574231452767644449672889356631318821985364141615764164919773823817825673297357945352752652134444348895344191985749814398634969693595939651678242145786858477338811325471549554987456333181923895847415658636234979825234447728435266854746668977279894237222285793388872437356374255799734942631961748114949688335816818225388576661793297377111882594616154931599889111958771862211763481783155154286281388384627795234334832367895445766526288871596848524662551996763536244253222718659236484613391755682218531831788833761153593771359569324427697681276583843112267134267629311181127976252685891526164936888888821839475843354598134526336335428734771275699262996467283846579663139266828946366892843126695662867193977994639221414648418186394914524314666588841326458487927439871412768448435776314243266918116248647671735213855492827531333279233813286818313853264918252591616927235927768345561274199561822433368762757574242561992168142277794692986935379636746943956485176468686471918893669383779331141798566124417216775623292455551751726441981732591983415652327484457322312594954163516181232173638352793872369965327146171317761528681177594492944849657798576858837164725365571264151122192998772689172617386392836851361451259629547621551299574489537775729974938919986216275725898667168366651444662374112616395262889725593848236556967239169595886887657134976643241284283362853663428434943727962192733969464839274238842114112232615991857441689232918448948284344756852597775788281924718856279857462742511319329431724621468456112585868821843797178751789854475625414597692192791896187972611393955497176478871879779497751899395837664412311398488429117187226939688951471793551584595226861753734738788167343314985527335319883457358156112565863435371931229657314332252439815471227231244312254686794156149888822835168428734184974489926196917189588459533843343994915726327147298363216622146445957629351275816932375836141816593355312521334227666179675987569896547822166591456963133822899791464357676326383898233525896785852478446389918328263734246725529689435974976991946329754557192361225722248941155788873538551688621295538434759249236592649637599731215178645589495376631524385459691297252739882349914267718365325566374666756991811556236172526972628987764453656692246944126725897825583148495375419396638492992815485789751378138251144885195488936525612968982919134622242812627298852169157571793156461754916655763188126865135459316383815461268678489387893331352119322888195154922161149594542855196395316123434651676738413629322972692295449195374979912484517714886296863864514221113352813595273114792299579982282538722291837341932142198319439793897938111946938255574616561551842764565861554581948591256534538915473969236675872732868721294386934342464142839924311412523142966619757273567679133373646973188859724754212978194333796485614598693368612798818251732379161531692849999199972927282342367522793816898197215398239463718452753164963775586218154989462529825221727384765577513823861933936678742662368717568951358351866433429596934925783578795531818453616586371672441728781343546473844513461439866257227254697355661234569735721358261297568515191324663855429666512724671453253394882179831999661934484658965215785222125426572596244591517159728262484125775145661139483397362317455788575172748773822154892233179751627435629688993497917423639896888733384464553713795537922824522396736183549711389865756261513953847545711714945943621346419636131877568658154668233288842734448747486452388867773391287372845718557215534641428667977815199582667699253739763759766448949128316275212675572858744588495417259778218678157434328976928558466353294363468133555463964138967725164613241154412868386789898772299881114232764969928626696683894782112444822211233286865636136596696169563916228768365139642314166975942432156145972574649899598497811356673377964132497686766697387632291748435947319181767626377132552525678374316244321992832754921375855873525149573583985182714944548938471994154424625444634939474497356578973525818465958551511962817664572726538695181867229316518275822926899758278485398358129159542946545712758887349164287493376662445917382263117246775446863452896519339766198715483156834292693253198377896998439854447178238573915134734523487364828555661437957552845399757576969944623667553599784235219179688674365532398658849264997294185275791355675559534672183793433259649774253921296754862164527834128987525136256724399737212915516426391793637239761956776888539384223293658691898184753551436565177418875747946855522789142728237167156622545229861162976468271118724517761275254479698434474575378928894933641911289953692169728511692915571794813838397596687448699823589768262644494465934689659743911988195461823489272763748824424732664312414672781168453246588154332852925695774112947454134141584882383844344864258925531854224613732218864269877689344458963454746179157494671559486941149474967695899569848294262766189949548227899177262113559747555769916757747965684196441335919787971575351347927537263228739819839986533868771533442763856968952142625223981943587875183978194299571913313336876766394514513944194425845299997665326866347553253796389922923889631218842716144524164366679889842165861163987432167414283472377685292429727663888621269797856817356711672469648632641513527199926827876333289252635788259161385866854597928865128819624843273769466916999915428529684288735193968861673664337298268577679372587676945222657387425275952278357334121645732679312831555685449163777934636895758154291859315521911636998779574691949324475848142226726815974434637672311985191233136818416969624512934135736879373165825743697377661165668467485913785489741588556565341117967467736596671749797665281311917975748527286572672349861812932928585548469117376693711821933335475128966189936618981262384638376917826735639221239458576262918611523486142974116953991838939713164322238535838754155338422425624276618451166952356111953316198415968824239755812615723373984927724538841116528918481738238641424976773185836647587779794558791219887315889554424311219887668899117749428485928552882971758568668552594363977732813339516373241196548184592276689833975615159471126927576915875958546139534691812725684375153659415238113693715176645384882349292745777149519918794423823148251445222825866989761292613939954188591914512391498429811423329828799991541983233166976218539424424433688987219738335955921282555198679499221315238655459481855467425384397557161158893763148595359917359215233568359845152813648748484617333678413419226318783656615377399589332893134656534811692121843912846157359825479172141374371682778613351342912111226464893972371133668814115417738465976264521856234225635386261197724533816291933455839471296218199655167686992346928176118922742918635495395648333342263167262554447819451826968294641966675739466468314627234365732927895399537174926579325951744847538188231269574434686111474951615533576682859225676496433121493878225996172323992532196611661259161879499733144497836589775712721927267349765134819677846547932954772427594916618596593268162467936268919539393142993438265411395244954228248673982226142792934579886517424491689991626796199769657328182621798898272861471648534378116261449349369566613889765383323162115152389255747326412853395613723438878784387911843951589971262737716885233255439755995923368531434922657262637713522126342317669981466185547229482895641862529549776694141165123532987164528684681341774982584756255284657627175339626926465861717435713584423966228741689167451395167346679296818812161298254383992727517737439411828848964513834296278144796949944129946588891242959166467354477872795546425569986115651418747725894458213781872772259529516371161727741338437717923884145884991264149282225986699818534223612849255264687298968171943556836213257775454183972719723371854795919819444753362552634173267758459642588275621966452968377373119376556365747164798196936853184312156714291916596617391117335766173863583595275935787989843638438644285665292887577487372554487453862438169547297948976153412458745219217152193118898693964199996636748475794195216965273883794576363212892323934632369659241728644186366628244716855842176277944572491273287679466971179887893369691728969826755462699689698825187271296389257724984174934147547575514244469251561268883488164912685228656662947156156686422814292624779447762667572153694195545819518665331597466661252572345138971736389331277956363449774578367563211164473299926261247586644321643668218428411259475446913444697974895848792126965699321756245233634329398723438191152329953476831373414395538669774116192561166213656976551517596937738214223754338938793746625331224135678975318323183688261995936632399388948882192579488691123796928169865864183363493383597886791626735213532177329678229839492674346968314622466523547542682859493222143636882446999663153239382894929482161434125913517942273473976825144378779492962988215645832525241878668821926415345891315778423522681583586428844546696186238579869818388929794271939668471241456649477488471917112367117354618465434362228429249378391257538677132658793856861999122267921999632889861166975165278415498628571989967296113512952122854815785173282213814167583614822495293622131341542251918492893245854235441485762179172211521866354867424572268376415538699775632929672241467417358713782882644737725149297161887889158366622197968574716542743533431377238658357336927563957499742192737884722674265133431171964476779458842998626359882881119569448314311433516141159559862848974896437482952568685561549944753433297168253412571938292288784149558564312842918214135464244869717763423599622743147616232837791486829462554737264924768942743793685654992364372894562666752222571255876913652843412669254698748884561263621937567736862331297915554899354478125199676131363983731139265832756487457979398526812834853567853681437146166828528892298766471949274278896517572553893962531825744481263834772858248735198273656914323826324638474367976786971894545139672236193548445236853164448243291515244617563386984429863918248399735395362693411153962552476427623144691979321528845219479232295491781917932385481812161914323775175175199249888981388311734232952468298134323121341492686111526685796529252475738181449953394282854537655912476584528545787325712375132533981641324169659312984221646891319565516125292253443764151959173229999824546761227525131127357561683864421119131895327632576235514792436447462663225299357282745314759425373459994413657678972435192954681946935397763523512774376582152145958618476859113511158828124451846716866641674924959941865591586177975549818513827941137576836454372845958191383398411371175623259553348169197527479628928691847983519546467441378462576338632353724969736489749777944579454511883491465224227487181731886368646818266798349178918172381136993895623313337556558476726939748121784334569535382228983676551673873397776848376718898177755914491943619385142913914722717319861954446567193595986487867511498714251719738981571149928991939133749742715815874978172271296418775678961551957667475785836666556945942186393159828619392971536459965376295533436387348638714368455994723365728659593465337673649359621269742828978434977866229275466783678969878622139925849787424112562589766628741755542539273795152229187742727113658714842321827249471474548358836726291554755792938975442479262854785932317186482391137464413517176689833743573823157786446629438217211694253457962753597281123844876856461937725811463381424929518184652955626439585924275667739641135421815749618232748427493366382135346722785727814956916244185291735536926487491795516322721562534288979648591699249974378424787117296152232281425623979914473413323951483514666321547749199559883399568111597128393168989965165697563694645376215634434641156737586965539158699472747292498391962769342449338465648578949769158434377423545472167227232297425259797668925575881824646988642179159145139616116398775664649877715618424396216737837485949227819671634964774478471332857161972938212539818477535668956652769854965348441387331816824681876774399144177137153355267536725413764967365371295523939715578311716293951699629481716896374196477918424585768616996686233745492393264734393183973653496972442673188762414632232417646446679766197265526971195355242787667545475113664474613231764264921865494817383741311635833248651946688182849324657831633857735738689729824977634328392886561165246118213619485749678977855852687318439822773376256354138646915968792875372528264799393286797585374683112254191582622832733693241598991246857126287593967236543722844978855679299279767471357521814394398858999927185843279842234585815923942933843337757753168446259641264359836261245133332295919896112749623261396929472511392513324789673119151972812182442813136516663966891189591612777257681233888497988319279542839576235569778818728661788654747884538997874876851936997973456346818618517995782794625323659295786868929849629719472115482322829798521494655758716129677819221213164426884678552383261943266317645276876244312439776973282835518238816732362526784573923297868681481276414775446916418857636614674992752431284797648455339993681192477749751441116141776765936256486459434689681294363152656481332888743391359571138434622589614983786136263331545481862211481872379183821264527167166576527826944952566573235853858498372273879286442219724239626778626745124343898122284626519277339135556971569464585266919956978174539446585653123739652576166285569433172558861436381558356876434367894278186422942116844631396744444963191935121432238694723519973369868154585848363222526189976532611747117692629954317215123895357331352924476382844666188579395949385517847697982469161249261866884464351229949475614647574852463828354367581621473756715311458731587134974367394782362783959833113726346662311982117518935838338613256922175463696666651164996959385196315174453939897913325912152562485812358744943645266687713968299811237134437812349999891317459631855668933916161272262515379434648227339723448666814256894738393436269332595454254588268564683136764899958716133771599475956368265556561662494864226175871429345119886964424199513143522764629241121946677989859456627894557471795718478486392538121912657316577151127977697979172394451172831558662669642368567886241579855939717986142361338229733199375789889698415852874796691923141722799789753247525926798189524697969939135351195826515346587878565459663299538911783536375372138596783994169963261515243961276947825337844862177358884379618433416239125691821767546196166929459984296767161347114823431345471691111618535658369761315569198367461643595171118295348194996132199164415932265186641549162764863191642157573971665811727284593122285593269568845555658369811242571332548526523167743898782925272416583356218517292473543665174516285432152294846293649915633175825578713124629259524514377797288968858353725763924487926717658644438556757354747398192863857712376122798745319369181577764457884488789873426563672741719275853513384261724671849213584423817378698947219676773713254595797746718692545492371562178549341925686467711372691966366141164267848496487736196284132635862599375346985978679499723996582953891434935722519541742944514898218444166731813977942447729339162296524499699989915362953287183515177728677898789337633961692243652554323295186239992219389594952426957378998512413833872753168391887836825796946422721186422443641546239619323286577688249596863216752914866214951922747726524747632735224954562854239821763238283486199516165349865776942467377745676547345782967464268696356232788652518299398164689662598223511488851671612439199386555388841279965952333495417437193752837845863567613253823887517994387174879128118426637117177197455484761995735668251184712523488126515714276755582892282533891995666348666554213382431685296586965788677422754284547727346217995594474337433844397979935545447918645991733316658475669134879771637356341564239286744877555434719644278526968877772161116571162125643696313482178416518376582723599961621152282332995832693996546454637955373418829392684273939785279165692164945987375983397276713629171597123631671271611437928499638791612894252268331463476228381271252543988335479548175999739877113568778533271425243944819118929587567431777812536822332455359498156128196997252955199545961991938559658451166474984838456647642617662719838676184579436181876347996476352149649316452171367212894631367691776617362569717539838294442291478341986365436418394433776918975191189745411941989335893615533232333439269285594658238621263416842314243483945691545597536887673735469818322873147888741459349744379373114324627598673739863938368516718469932813761253261786513666266393287679978285724812565921558471822771787516378678747241518568641729888661519567364379549498453456647623964912867217361523468733418171697289396347976927266251712712882732752487394897844578871252433725993333982363178726725849215687296631821177414498172676716376216978162482143784712961642499313839857186399781261589666915137449335144885166193453438922757481644479981688227755987892968639924353561539353327728697926819814451797871997238222984975688768233595293524237171368868447243275727347788224131179957811746363834778658781185394211124397826231628685473692233566779112893638789751318878983459238241343815896191222219921587411456793185797416628851975223975229899321899539123291427849136658869982293167378711843636561248226237556974712694717163938964977621386284656938528336748765264947996716383116951775379446852548367848579889694984521655263628465271249159318627171237876359295833877912935187826232848664696271689389793423135949155824573311671622623155381974972583863315664636119335863182579648246677254528421353951568738724738487122775728775163321283276641699334692485264993234264781447597759132561219618823468147273143719943289422312316554457397694194121338493833174931396357319642243396367652979584644278291257591723651315524663136666487724474775231263935684896773343327686173695833236886387885338862539439781484718588419227871958231465356595895976719641557845657916642213995482285162446332719729385636226676997736869685885759999582196963875757333314912697699567997585183669314854447616598555464345754232184489134786666433179593291644944413535813582325532494923296823255498891468693148411722344126543194184252311547679671125427273573882528852225914863984656373523133395282396116494915479226798993533351691311163565922244826845211437697847956434946163747341963126718793787352746672846581718133913972343297682348534315587629819239576827876911155717465128112244422193881613837328356887989133564986486458833685623221221135692281139984779368842363696698271629634823513448544869421113259214486899442816872371414515742964315114369549138476418869556663315728145381315453283182248894325829856576637464675214327439864567752339992848528941695537735312179313324719572597859324227759157119532194173442228171583489384225269592191337551678848176235859587556875811785845839769612288348994692415483298784682752981125926576639377887758346421639631334994787624695681416179334317542252531224884345516133367728685111365517887524965591146711891614659422111874572942966869151211586727251457716921447223359472441344351328391913256981426455592747464716645656273181322868537612459821416183839337679867721712168263235134348463431546331523728745387813546313647693546797982868526397563293678658912772789878639571436868347223245414773889764834876775791413746289578186973656955842524565158968848746563849655331573851565653767733381785971415775971938715911976224595982244932438744735335644266747348675377443518872527372689483438296645688139948182139221258492334228778573696727923844152921465987976854235917928293639743989579498173418838731662155149549628568667238941116393717432577449517376919115447967247189239993144183783816559347272872126916242751349633477323349457852475328426541695835887123177175245666737392663378877771387117722317173132321759656554574594598621651866317384461145625294844817963371811851427523394723397987696225438413747612951435784474464287739589166138224276755314769388973952977772684913819531929157177362579449638252532516721638655511651817799734919371243337314754142132722996396443657993833298625737222512263816174184386818989583496657783364273511268841869819369936635274583964989186162364221425917725196493713921739868489744244236748587881392476573523587113556341181982921479957418979873227971189311632982996667754832176164184226381678798454341734163769398633571541449497824218547116155948486632796947849453536269864377428273673488285132677323292859613633919441468884343964516781664228438373638629974569242911396618442391873847864213447549669433496628826311116639984859738771223894898539759544454139235124435636228191267312778493325126469223847666874815215945396791648871356134842335975572222823276985223846522647444911334435745544187481233496153664797449936493912669793265881357746672866436759827187423891256841711116952647741552283685799514896837724187752818248517998951639433314615613815938778688515868834354927487681275275344314792874239824562552682298622243642832354436714161348481365682155351495949731448473541688347454298251876149186125599859614462773828195692739543193271251796986487427879372237548967993374164733765475594819675671361719128591167735494887745332651832863635963636196796571923491695713396984357988758327622171333113354153489497285146928157271693238555795755695128722737566526149886688254825346327512468131936147725633215669323373531366552367948592815591624163416762337656451332735275568865238196359226854816378718456363117817554677375685315315453291592314268828675234986437292622783124562546333166456129931122491994469646278797663296489422883985541737376446192542282454735943497762618363873357477814397793254259313248756283249832372253689124957294388916431433873987558579277929547368193366844265112889198912858896917364249758581968888881195887619435762967725814824935935735495551147345237839423815421185646192416152886598742353114325899729852688168618594748258872371543448718834797567834968947294541184277169439297179486383213687687215913276386995244885396676555277889396945746359969481268815552233254768432989295156375276651175311978842342271996636165939258719998893328548868423259765982862984964528462448492749936626735243841282941474446739725599372727991111325375931713997466394777476688741481184257477313945613372843746185315633389221546399558763158858599364522636811533619575999717757675956412322387757927417699585354962634956294178763423385233871378661155785294283544974629219267325453124653373549967521543581415269472759277734649594561138191718776261288153737787264269299562369215425352825525352969812977436566391757242883647856968155129975695899534644211815411448959149521312375861492582242285393518471693843551691759275526366518465637822178459555665228754535361136847366411478134768645218946272775724364622426193188639425332439892239811265787195157928554787896341223559937658456177134625534457791166251245993623655929792149118434252367967542796428389723626689214531358394474117165936581142962647662622171692327931881217395778437828348397748562752984724214167851975726693569834334725348674578868361229495599154526362138516685443657516268493746472577637488152319282917746343899159934765869121931153138953352588472879457571764899134942367635574982848686765344478183212195755245658437125772248147581712317934411353277754187213163446686371942278517214822745343688447187211521393134415811335615658379229574793138489262324795352419552711213615555694725487244397553925955226984573876615521979854248664417398866353935489697683338384855676762329713563535324746687274752529771654111673126782361217692154224518941998439191359381251677399642758747813924368217435494225312777674554177496316352921354817914862247646685236884977313916636314538424974527435043795388861792466297797169712538917535544545871511372188281534336192846492918159389517548883345156351292392229459399375366511317842154595926872824961718368419325743193516226627936317136986247812123494917598582434249761574365678937541329371714148134383712478383347481528881426329857441579698845893957965217852958792771931847347755441283287583385682777173726492868118427177625385463381653594811813775674466186655983268639122393682451986797472182411493394756945372469161918229571521871547351778226243566579559711819153881288992838394274328312323548858868988364123751485317462815621796515643977572711453218592173155837582891548931965518557677894586344744899822121862648515315665321885287288393471755815638124768846367295136394498872636457153849785415229852411499563429135628587341183369429462449872816387468425423841772949496683985626382323766173363568538288576238788229627524741319172892769314383124385168645987885296463526966298758574639128136756314867456186161927673696492376129435462181897181141322184313135997636855246847253495614936538927883598212728633992552176729732543182822215971379647154748623196596878291728767732657124115337996676697768755559915939332885795375134833917673673166312412281818344726918998257685516777987371114795588697434282955652553373393672422483145686872657114351593969324664988456966421344678841366391876267234159613737316393438379377294838234494789611469695725663412917131789179353398577251619979391915174213238477425142413523752754571191435283937761924476853149497698741452975661853521317532581451446783972458546997249893162338573142431896743344288479876921177383646736623848486224213935934862238934886182139952584877589978482484864682725722279679357445395644242693195776815163218174596382896177577956857475795713174612882629569384862719378941368858139523779827524694624629766571616879256359312662345819776556616294231956978165429919919754427268691926736562114226428323957695576667433918441955718549756716283868894317161356726672767441951566667998735983565444821776992149696426481218584239633811519836896757398319377793876488652644555123862824854844344874849324871473672983689164687295692624211579769277646664135954734828539786874712775542267684967678444512181582689436663531958717562124455593984158735287472564341642986458958373266696544711244421829785872631267939684376321965148246826972128121172611353571994117621528653484714166212671699293265338496664056672285562622741359712844692226873993659833216344434819299323191523881974324249513286495357876939428447768485355694235973869473617451247387745594838646824881144781135775651191696759532939364645849636223243534392255679896473968122755399762184332988989537745659944766842361793914195977964751656345838167248658357776783257214148521657363159974854532847589985937192141555565161525822592729325226642698444873224628978169283916591663628135568251149156294487956114397221876793897994513261165798338161377246447369712137363832986915234961814842733138784399787479193422423128382717885214414344366729971294345625314156686312731612592842386758591825786646932995467553792588547549341895797128755632921369116889124225816749625289391437641448673984685462434144194258124371237457116852194499929455568917921785696273494956257325963974785774345165634249765718235524823691945772256869948731553225526888894571817484679442528843595493492851232992352526689784965414854131256367723866637626922682178674621376947433398971794952361421713752576331882679878384622976149544794546837117294242615913736783374638533234865388762364548416646921993226535373259575121973538351441664547966291457852268422578713972447334976113921236981447227716879625314136438463362397241813723894345959685452699922855148419629154741992458748753857464397488513999281458232198314379692453213723644979724245985413574739959524817427328832453184343946851195498441382275531842477664368488158884923453135238567536852713747838241777989623571534131394798591426614332596963117621763344394657318644913598199164359516247593523598898278211417734994519389653113285122244294178788362382266596117522855367976865891121467237839782998744434139729741888792615616925781454879941847225127519193824582658256151264918632683812183434899716322561971764844324553926695797441597886882498731497698458127752134733523772574714485342354342756149693891149743391955182736113747897218415598721835643718631994816846797259233336781383346458761465936871923348936275712649627974489178399835648388178432525324983113942245911958786522996647367567984297881976176847339824742728528158148168887472427521195388159965981117187856317969161798524712229549451155785591619878659223457511648754444914266254241283747481754541175688916644267215698438426179277866869544872795364329481188927734612578966348786248178477292294757215191636635248267195147476842782483777439876823655358127894292443819855855757912668681372784257431647254629539888756993292618544618643926899179856576195578455835681214893931938616427267924517288439818413726777541568261611642475367429682551215463218381646784422474462719843581111139215884557684241423527995995311441941387376993256417219838551687881942769578984637669542598667567662859738857511268333783661526394682776661434679415873252413343923192961324671732221646898335726257463485764847279545347299684591347688385682511677312133922562697675725214566653484888199258349118771524879666994572584538582514414657946223714372533197876327977533359261654984456658645298115861416534889288645431597928139735896641329469546919158972876759558243567413679271415214681387235378527471958997938778239559473999174931238337149847959825865456675978292926643836643725531988846355286581275689243737482699486211959619648296142435365525565116494556422554187549277739398838781336991147475449567342291376274217926243982546692446785815624966987722143416978232999613367785673357771214132144266456673573931387276397821926665329917464667815624373257578434888798434129911484142478135168748638571194187355951318211949715698647747476131627977781174977756529516345157331127828837556222795846682219142445458442188622983798567797624958713648968751872341298188159467447924711877874918349257954291836827421617417919754979787118412386249319243843848537626356287537172395441654959114966691511486284635378433858951477949383331971363199853458356493318349785713851252446782748399853796767247655861227187463213229488275112176584716415463786227177915648745315787351116586317137149533497159841697628376218934848711162998983265856695517521996978217327227736231891562324534323255917851525168449416649982516141653448419946182133688616969765151486257472972374654434232331146476112749267386662115741993917766478753788617494626393512815792541435723876525197856296588278334676169547422833728458298228371831668643477752335189129164881976252125672369693193135242533842486698275532584796128744188363514363293955416795337391711569131469991216848438283833195474476642532864778534654957478218547212586864333416993417356489246979337825451713312845789421464952897781558528179355724887845531849529684448445392886484397863149323592168993634844595156152466319679985797263656228855451698448437536315932218122896342624458583265185571891934316962423788738965775523535747179866121428483599296641113577416495397558518778781374586154996666227865926826985934512217719478999997591393893617968498479327348248919169571752569319247281124869883818957252391551496337332747935438353278539575744466392496411256994313377336919568427668439746655918436171782741672651613689565975929636615991378445796186253861364348238851978744516136951337586141853961967952513127913267138633829416433239581924716924937822114357889335393594876781285187387934645899359798316986924532463355712481446516448237849412641175667938162743578423196249623623311114922215655587918634715399722833436666352822513598969588663865391868783175355614623562559736566772542852578158713178456428985562827122272316419616751385176742235839378499339283177418127612935719646518634665292153874835159722696548413782223437845229847729991755787178529852557279476269371476156874635713987736895732852928546243798598988783592165563656599334636475596665836144689174646671166825474151745568959158723591598311859374579148153161834493665495483339978993717336321679946676216448636645846869423711624484115661636281997714877447599267569255319251541243739573345472351477929245281535919958213963187436141976627989589677529115346271997224788587655635586789434164384297896746612485856626689218648188867664426856434926615736712531449335966654416821781476256411665719216983335217387626241913382962995793255776626511226349867265457138344133817567772425314229977692538153534391277419833276475345719736188438557487693141697451124297798862638599368874864628833543445223516456514483968443555791146778931686446795194157695377573261265324879751472716766383963278597941558625665836734355861111253876942913591196869424293334561751664777338657256297717959616613871378293957792313114939282775352318331525527848271684714281638182114188839626635724214744817935147666652633498872314878582495121817772834366475525215975227858849536822349817578282689423118284157948185395952863952195325236561477216835529726922323876682457797438943595787591954252112259221956979251829871866591892148252359167373465544652294573719824261296136465149696847297787662381339234881496566261189877646164128242621972639266476574347866567613776994358397866524249156635585875494122951658431746754336887684153557672959982166763125994654389737514931839337125346846523941145788391415539443977671434941254744696956628664963751986619636293882496951826435729841491683295773814719713656141234494452984471862364457724558663112678969427436874518213777634156345442696351148412344621596114767334683448544414761143493116492456715371336687355489828442911357941668682372239767952186296533347415286544768955672172894666913853482165663451137545846393114491851979735292335171764416827478763889755475629327325978562419377775762432183137968576624864913783279622732165753739384761382852189152436754549725973362599895116231595269824818395852913223853566725364455156898476598721915573345194541345124854624597519256513322665819324932483945615633314535924595658951119615176732172657441113767585615767584269389756493794972942615393151787636794465855444858121743959137913713171665391986917284582616439911437423165275766786457529383275228172689197793594259124144564196135283115997358983194538985487289829252851716694816478486246877168296483563344757586335262159786896436895129714665329736944132614467356871972538159245869465655984828727814167164288884131525236649621621946965375486782953778355238481516393853681281388875833365196367299714965375536414186342162728449319937655239161471995333795741692616473225121379482125485162253514173516149466435749391718153396835285911947693378238522336587371711511595377716659691725594521792752813651542298167452831385557852364621665917833761975225793478714368646247149647637478968336118766529256862125111777674696438214978994712836639616683355127959657568149354817898489916427133297164979194517288246138971694925852448459921841986629718798312196253399522595725477679469519828754976929381763523279225386379345755578697795159386431958875811516975845826641561434428338938171998413196771938161435457352372482533164631845744116554591757216361787172455952453239671665678335515333678463529142221419269182744387674613887911445585722632118659416178576298542112774267469437388917766686452682862477135379917921826576334412818955681337329342345212946497579595173317149165218832925856736785223646459557288361485182765434265649276343363112443151347812427912142898226557913227364265518521945236279845547952999446196941944677596591244962361314815722748415456926133539675997618282375125853746359824982493454464522153857134988863354613968517959164359274772859196459766826512617954292769946176723619511154426444873151267874667951193438772417997222431337994689822264241694615338582527526116218356982953534368137411153785697653242368841268962712929427899656291548532758667858152293815999611857799176263841876187698197258545237444951557746375136155773726561295812159736473197695494796344673154552454214433495835326159446953321576198641993675327834188875218376116879961258981875576584296144656253452596515894363942563167754479815976637318767371427755641179183789665527314333365252926255254654811364325747996734857773211695276332866339351246521388731791318951367192348352826976949221364351617528844792193913626741186644927671687376487998279956175831333912199926677366413439236632864187316217187844776138253136225855577118138725494229156368283669327151155959688992937573593172915919925732682512926864243743943535748211592764165751197661886151727659919375782258587246526341424119192951429866627561335858213515535823985181975623755443453736299974265874261834229875322685334453889379815991435543364455191545744974876696851395723488999263767356866545239571275524534649948874672235671729837691963339543342899343122193118969168411687841351594996217539535564496677483627988688491173148826457145993266155933775194511612246962481728436149646146698651784673123215267874737554125292291887389622148125428475717348451458288441776678242272752695633798646593771339464611777157823192176946315548477757157852764966295198849385455151755463838537176777672712558973361738212166786663643944481287716798629937828416973366895945915617678883875726545861453167688248837918396789543122388895553588681474513312377798137928493851619979329852299999115926787262355472426514754666888381272887345772234886272849648578817996929429533244861167322292292912795759832246544652686725856146426113926453117685843446232758612425746482615675152526131536399633117775856315831184927962711764997764572333828156467455538627326915673915519316872819463446378982679872624645255637584959678769137236399776521276955559547515539445275275946156751498662524297441971497123728316667444597937873969932933326459936863224236124333535841383929132828162577388941215892939444358569678847578682994614728765392268435231111988371741343231861178814649759768788884918442539757649296181189158848352386761646522544353671518694448699465531383458185363523394641621666339479646746263746166751722999633762646319138423941626811212274652846689694756951332145265395962277936928583291236649175825524653456369321559893458375186539125382139153138319547586984869863591893138431453428177795492599858861263236473647567458287547424331469882642915973628439173126568737825972394782365129937561319492285813135533862464489335568528948628952697973331768621179941937799826277896139198979386493786487562372963687698425664425794555521651978237986759537179541298661827944758667565517317483594579562587173942997669511268541888844315114538629698641867731949735477191473546526589568453667532299992149585257917976931397963282313516687192994914517838545174416777337957478879422196871698941817753579239336561672579831855837894344386229188345595771757469442988318252371216866655633391537826676694854865553317182421783467945816291896373516446699667296929691242324141413278838824846457417633954489643969875876552186127912218847892121327715672981615695945831713945298182758858938418113697871284825724891887791532643124813842523197696676475621817348642925399828679269896681664417291525356357317553555214572815555836363917968613288812479663238823451661458429758841978146479451617774139873177251368374233179451429844931467285512669275712776911117599546584156224354736193924227867843793398232677252774165688365278769188224591528725143732689419495436548888942933558832229352322754319228214538874878191957279546979811854597394984885111127292882793899459199719288629743453733832332468371442473544638883468963326754612677124361745754282399634411882979873591785379699959914344445862951223592232114318331664321727222264716131252585437425179152883231892496544995451392728735836378459822786295833962165239933582337531612241954343678283288636882735997144259894363312852635546619431336962872499643127283956529672616393699761955356977482136996176918279476761297116954389278716598547586355584317825573483283145198168696256897781448679127641172998961595295186232222125772118227316367199737463776817477599521552171173955814282782741791665929259559967458888177562733122623867914991667665592441744257419727619332587275745281274898632725518541689619113843181562645939589353614785627222532777953646716762224623476198461539544821692389413874332953799974841343414743794293625131633522136161321987286526881524878142255881845233853715316577856861197615889332837419932789785493613685163228632562676856127777959417946489452621988795498386982844858427464846857636287326846233838762631915892585323347831465847834188219822989632256841898384277618442643753926162867169929447399263348724337843249156167923843951515378631636843178876797182519759479262525212638438328128488464693638981723887959791795853922573856656749221815796995513194363647434328232414296796468767394689523246289433942634471249291558733379897833348712248465584651754171962864191271515363143491595293481697299338381138543885164673234483414359387413266567993582195466818534564425743412321579881549159994563934629973315354464721635647295588871168381945694175157834553194113318359475235534952945310742353615643779513967575978439625879332925395545963641331183345753978192824488176662796925369944453462566924934721922514151246711148595187793275466748164388268585344144136363912775612062178229773288782448841941793129349471351799589944939956247552516465711782851845559755379137299946539717984991776642461586215191966838736258225899238517129851266962734669583392247287122138354261345712853373716557369684529257482982298436899776493583947152813991231995717874534983398215485617942244644353696397746589349731724939515849439351957898952935228711774567532757974974771983616579777236298386383613389398861438415149669717368828268398397442495839117981946728866718768494864466377298282886874547323375761127956795724823622965718248736848846537118622173291983919712696792347958932442681872265265326286632457272516765854291818569271944278115387256852273454319359566815918667493177427764387532711391711799438858629317758611892122115484358436227451245918317621141572838882533561596399342225229569862751833471641562427839471539438816118565639878349125972336489599193169834133968161579734695544766272166669277114163355715281857586813571781582819445138776854594385562842283384229954931816488817386799917458793988391574222995926595617644443754593851372781285756418363718113675869988457697292955882364186564959969895786525921429757357914511527639499972566528683429349883957829151158226177846191936227633326424532564283967789113846619162926491748177686565587972545763164895889799758437176866949638844535144313319242152737354547343695221552194238645731765331955444278235655191855658646169476821437372847646654218264199939631676534717583357789738238324397666419712661116187179982946366324867968246357157984975478935869277973797344259877566935959636654562863727345532491184888871458815213575331975224353633619677767297657199287629244427981248826555543254284966171543553889673459293449957456166332817185945312223757673617225948228158852593636994661832865562594511415857329842398313718387446918159856578782814667138976622533339435184253535923656645428682247289819325599284568344786677912622822856525545824947448295927311483878629196817293957978681421579758523742652574888585654687835932883189445814293163827417292895195625661142463888263134945456256627473699865376182624221755362953813274273991518893514772439645238675113623665774955535871854599456889441629189774456935913662527438364626554554881713526875156119146421997642253243795414139939845719928882328645247697319295311191983893225212725495137366728837127327842382655215849566357252166828794152218959533792337265571264255762295199243734867794251588116682122622558132439411758127239819922493751773828952156161813886819249414794115293328936236447327353425985315825358362977741474318551158689184718644154948917448593529519517811996691985716742583965915188881189749959551327668986697415214324287484559891769778348978412953493353619519878856872682733858389615895856155169849137233617668528131735532158342265971451229182226289845171896322131176329328659361377994994527742149692836723942288888377842546943933317198423632629768445828514826369299133515898967733427369862519639754915786812597848796672845917973395165645125729591258553355975514213788592184255281248566283865397796847147473292427386137613164854637533281713857698591274689186469214753855332121163471741979617551926421956279577116189287361145238991325152999692331551418623157956287683915895329484656517743759367338838337962823517288273449476432216341359444714533549914964819941576891766167719985215822494418477969336962645735575156496839887683538324717413859484345127138788352116578421636786221845877657573675445389452333964261747434274653227748613157345872958891339897229915796321256954371259413684418328111652898784321358311779412255368546755723446471522621784212957813497871415174448693991321416318668657928537162954243486529379166223825889616732267696357297433945448138199892138991625566398514258383285484816897869537266237854882222659939822527673498332926697821986292495656636895728139929694914733873539415984788783785966557822238694854355943922522939875559984864459996421925366488487145333739186286848232651211379183517192911841535549627648775895178977391485639195367254941723449439269427182112759564888259623868717661472892978945654482555932114791151231559446994552819415837297525547782758561825397469243864816389261455512515366913226424827665782858598862587219533365769435916313253262529541413832698563373833461676957293253746898856273676922212726746164658268273782152965397489364282549486293694131428267918264774958216758338841114121944879259677787683435512742255552839166333922779943516689994778853969684996166352523181293669765964244634262187369589818277263972595158696896743721814921658956127643614414181373653954232228859534987437145195571897429654531613322987784425973262135291566648973371169613122538732453731515492651977839352516379646818261621196384388223574293367179186269468127658471747169417335345162121832896655939667591354988686788993214189683861641687995764645466788427377786849111721227873338139961989868562764748889568912824732921919955444927797773665958652853166183727248121119596193951247654474778413544647696437723958745285672522775362941885587885872499857222412249364664224223812971278891241377335791234665156245573362598635578379514891425242729957317183662682543922384711292318331169537818982386616918247377423429384395123563326848762582434787828368979226741454229681756154137964953294971935449619995532235843449752161363839992183866972756922298325551856947175463269437259488241898293789417263581646663592635846765264234241611995551912186893568116648155345636112414732621889989646562927781613743148492771871757594627615866253756527985964169911395385864689976748448236755658999427214882971675628432339794516778521899389376839795237128799368229492423379164154588491289228959292455893791436796537756789595746892473975917796451248146118572462729916538217975318112713783931293396168812811352462865334656668229726836218364623818444928877698583475128145718119175686564535514744565392974887894583132694256759297837956445146684129282828494533518434389794684316436537499944325461989178768119945728577674127775875785751583689261211888412389888458846294583698711122172313581348443964533892895118235667817951997394678951353965718564276994383925692689747145535574993712163664334795791626199759448632147435758431129272191977112277413345813877872121441768472692532775358547545658795861838117452529277923996664445943235155989454371295485341616329843367167293652774224861953785761917815857422811245731846316783196919494357737872547853676376716498361985761567834711171827497259185374162129132495534516557473493153459761963435877248915774226522787673972414914851872441762436516496713155568175162496594958519371861467145842457599458964816963958285299816141123959165458145569491213393837242566465911736412674787147552577624572185189839397788414369726579159358776661881571542968849719816852838416797765821247143313426192496546118197791824758971535134474929852654534518283992344879437131215481946619439859286885837759863433638389245159279857562346523775341188395739977854691844587164818816848443531427817182663481861862678514986139719741118347445554921984382115395379573536293969352462812942462211461644583978936374575879335676715778326815838667134613738495386785828622495261293566849871419119811674834372683949543631994194195364759316765171945519838231831369956886452178295847929163148397482183639967176553375371717866514913268184194852178526826595165785294935654938147222923665394782514136613916939773865454973451514826796988784971366111438666948543332151931528577478713898414361783828133285254922785966937676646238962282817528888497329198665578386624816778568521344474259798756328991868836818835582836928813764785164178759764323698529423689387185412487374917587342574765913613464615562965733777836435835428955517963481874264276111524275162523241781878426753556899327144298735733843874672257737981785316392876179689267483187986357991639919548596523452862889414416489491575435998554852142113745375535672326937815491834154547177742312755358352711886211664683567719975612748948229739818468926717624387663476597471673449534295888447116473923672842295458781461514517165677265551683257247483445118925513321985256481335966532943947489831952667436751477922345841792617994281855722959672735531811371983414618291397577679352354582672944315447498446196243698156426639982725584327249966225122866448347518376619644742464188566199133996824716871375633951999638744346947538227364938254364226322645232284228244749686133656298682227547979996669537331587438296631696484595152316252413165217962152683252767199717857186826725129399745812843116811742623314728949234627131354854258522843545352565858754191416132186382845483739444331841992817317868942793375211764161189561483398215615832665653352369536797128269649223591286722867823792626564438669932959623739724315677523867634848964957351244885452396685659236133649464611189725256747222247852316375945966249875541283629596958796382911544533397546129979596476227337312966316362964974133783696339281678221958267665279577937659771757762168995774293149145722981985982281281758187423629123222342139268488686727651935137378624727966717875446193418824561625927613585284638569993884262524916697167876361319291511126369963544571458384636557728852778776253629767617261837512616774863719974269223948242224374954351821829255469676691813241857283487791736585563134437673858668217118281759426659285842256245978878789184927883921417552468885982853971573363555527573931721239617825272499957639496682875818161772288651745599468348426836833992231218385947913156819623318799933354395791412638428681931912925452171572613995849799923915227864184341531159736926129342154762261526591896891613216362469146473646395497976257567424672585245618351189798424383344822992537297142142944877337554135435698329346743246556498465778323994937872645251728587424983935425849746813628929778632121435179773657551843854944917232284994861257233238514218531444573964353699313837797339312348796224572931983267159882114468351962431634845482288198492867612919363447932569891739868957647839957392217666768751736824587482588337651636292978252853493151491334211374185513459534794121461585136266776327754718217739876227941656445176944347159842839663457444278677564987892716981177515248875944789191812373193491373727895591962191293441862414431732612463651769192455432864237323713142398474695939493872296247438944166835414197166646987694456459778584144456362255745697963699899877272819447552346818524176977964882364291978492995876476994712393658181499238631338977789481622876817156169254279298267115388587498115834848578427236866596567326428931524462336249857616383224878694745483837472557221171492192181455115681437895728736887218537594295984948931612516484337279159591192616738791151782436355351433652842635726731121274711555691185278651323827222248731787569568317162426817648984857257214172213132593175869957364379112641873388437945443338284624726891277516479265899255394657359961288932778816416533353741665774882794983175636419936223581267548638337636228851954896147173139923957833574672788177973893316329727619958636995834743333555397379952259132822516891225673233162287424357542814593837515848356576418164919129482976637434468935688794387418656765539565811633412594932863829615269448841113675125437836117271629854657689158662417189711728892718184145279156388198991385367447375892428636475497326654173948696317449524164794456233833129918748595656374744481934518123935828781457385772322434987188313885976341162738169325944644764975783316635917716947552125684113891344296686489985951362933353633867378147798716512559744178654869719625526397949325419728676173344428979811527768319473262189335877685667928625467695843152295784773469153215872534127645765555833261385838418762385149726282976414563245395174292736799547856599845382911721162247138912797568643193493567663918714514996862738267416755534737828371662558633649482386152457149166355591585149911168966322145254198549629126349565553215339146456432484628262119886296839956683435685248286599497147922127698231812456484145917911833136928854147372941656366169142676491396821569664851788516441729661719382538527132322263816197365455376751695629951276678381216663493967358731635674534454696562721929667539525312957324674432693925883766939469775438816451611994613888694632639394195741793995475866935381563694114598781312868455269619958447849521399529726673391472469333248281342495667245777814273128533471425564333167864566273496359586848326948365241597416966691562466427124961784955826514395662811672674992982487288942481957339327576176374434453448677885629752619326163638165511481479151136228142778341369729878835732135656672858695921814814827613726593363677748252545246557318512372799986852799163679435477451677979277885375283761714444488468466375373121761937129686926982929679328821188213217485919627921998939914344165497246958811532632646848462888531364151952216392685361119318363592828234557298387135248388245696791624171983841554169821934525395378977986473527156357351914444291211999846211847572516729286595845147143866161829182964272734437244867464971274212497737112445468776713332379819342335965419867854527952198198145269786428334321783679718728745382372116868492581141113994971538875276773624192196318628348311319836734287616728571653478532762667559199851655722877346481568947693523729714476664518448596481162643117917654232893837998659986349642342398742841456156232221956141386718694711156783495749136642791664454157152839182865168754925214868563271456684773371375969412888964573518187766986243932292493488838282221186717441865186445984789599731742544298584915658246734816879265629968718439884737623313823959713612712555546818783116527833914566647192545448247760322295515154729448894331464361384613376982485348339984221566787179626227375129852862373649529458331952619313319695744338473611533758931161612674279792869422486861976913374733369342749672933828228748167651988134598776162374387253378146356188458527336473711646864981517447312356171617991384263781744777427652471544264512821398494763695472729885233876287429378876238876349358981588118169997776419226153999199168182988289158629661265685586514623741758656521686624484254917388583859725687645417977613996855793218292851635497317177387272663183123339395155776795453369446956571914955762251921487824879676524714132799137241499481967957591974596797612346415546733539492588869638511767529274859334373444421585436722666614991123463726171331885467846596127322658142979292273948645415148869356361479519938325392842575384419137395555449563225392541288632866525262928887498237394343428594457876367278828853673236571521185872421437331426695927784758766555927983917162831344115711718454247266668485569724445128198953699515163232898869334937768666146198837269558367581114189268874696791437485531372512833158158519379442311953113456769186191173123276616614236784561681223232553791664556168769227496529943129419795149758857781521392388722953844657625692491463614834825113526872865637788724995671963585737625933485463247666326314782375338932389135449327158782189536969874913135672714548539667511296395727329787281554416362933244994577399391312376826565977494184663485336686714497266675626347893244687255127759787575148682472917396241643649538575192162529919739653748294376356975281565565651617191233553298895346683141797178711123671891993646595931221921991992561862172446927712734836135347725724931477288862145549364981663454759818727615848614541239326572159151835828322495871186218876313537743226977449926255877675416651645168686629534258837615365952328734822476639266241932569275697562144512286395149142487424985854161643152893416321671623243931459443747137389913291585928223559426682694553476797967459484949871752823568935726522478627931849115599845649312975333196889184124866759535668877521759658566181597174347115814668654621677518557486742642425791886447526486244275171244678171458995846785432161768712481428453275769539392428596599638962737355741726845119178931813812184111615998573215223337348722842554625334172592935358282156462518862514922363576324344661497661578729243568848681234592864729878663896255261149162734129594493589769477223228354749443313954322291369271625562245112453859572612849887151617743443818114353524828898714986669136616717343616918189973362959172642325261631232252242688795713177321868232266581934293293765995828135947174954957488817385894388491826734322636587678328997656488789454998281149928741762529467437583914943169361365543785641576536957451677524652325696379459293889744114787463696386825871822423587281588357727457348958359512962981952116711755492586424685773274588692482568227478232699389838276337478545566596322693742636643586326299856725549721995468934385246778785556132294524163177637143921911756382722464962281254888272592669427589936555884991318358598975848827913577265757818954835845642533426794642328191296598315868242585377851173915926888948447351611457142452864378967873716452514569574831226654452348522488552938177471692357814958133463348451369937196543225843855412747593749762684337779554741373646418713888357691687754337575861524625815959741992996529378165348791413817192313432184313449175964937427246579712949583148145754276819723579553669849154871656283784865225482851836952461627366757145878517692896594869934752546259767611391783543828121618763489575538588856139344447627795255213856736712336589823685576181691917793463798476459841697296588518598737336186841856815857498478528423368986773878581386158895959713139148727397167486911721417417641844845767475416926321364224977954538315264796521442489811491418882834553943896131571572823876956168714228419333583652936343131656547159122144582969264917312689243161275388959458394795657836142578686346254382321712478372997354445262796355488771119947167115548367457282942818229246174875559677332951446647751865572182756714648863129796471659439759935627284162594666223581545621625397217636715472925564529212465914837613285942346882456476524135629691832435762369717445928424215166462726525671851885387441773411257441913499775875693569756187434169481659629336888334431159982529758725996858739584127243361722617681393987171928459474691884154944173394921224289238817198624221849491783937456581393324196728725864935347194843274496816679772277673136158562979431243813979299277492227973282355679972278489418161582211649895454552678737869898948259244435171555634797713795788626551123633699382964636225685658324545199389447635299734314972833477899859983946487661213613715345255439348635295952292565855571125759984947768276496762246826258923821547415333985551897712336328632975626271568234346216351985957446839656735549283936562872397934827894576241279764543639861784467368736452682778225577784874431359142897165362386755544223776994838121846564922518183626193994587598592461774235153335164466116785736265443767382837544292724483175984441628466759595126317947275975319474221117268893523219247634485345988989635527788391347999659414814695688362969182345165221452954443992757875894957573297454759194686973883382787655186942446568926716995233624691331225361216928889611153426996938143898812536435597533966685479514713895271736487459658446285156449949668952591245223986796313167172248133315431262471352892431138364389839574611157394414746851798457439689961167989439794591691647399551678894695747739112282457118364524393973458444354785941972829471833123569414761442847245348486568193559782477734848864517358936956431312641514928996347375289795637688954137528519263182722723288269266678549493448867342444972898946634488641876983718154572854857532299954263861352368735243539583793919558857974333116849294264666156394498186538962555666195571115947376297161169414293724562592218957777594719952361563212373793718488257559656895273485743335616756764632696498215474971494974548316799871729553999616657965639463334442516771279253949745329465911456526115432669854959692669471617289929553821828443394761629981891724979463567391851329513422613717394362821852857272355889972462294849254231435475821591418776915589735179113872473624784762472223197724957444514166444822278681122795111744494791346941169147449521321327967548884598716641677748863294813868647119282165333996913245855331126947867186718918618254658381695318226225797721691627993151413855997839312285265548261775918283715588731151768223151337827668268847839154323246672696491469395379174988611146734115775111953582689299973287872283789319597965255367285796686736927857129726463981638428979743464141165969895196282323443317763479778394374915633975218561467817197836274867352848379457513495295889429135752868998155725166876476521443241426437243614442149877751895331473148982345818112122988268892961467375492882894325734661653958396944476587988329814571838143974767417987698539643999375188696292935835825669834143392723884424839525226673857262693185375936339594925695181829281789238833786955546128856858978968192186486982446369245141849856765266725615771538545142355343131649442113612854719436661317512688553765245321724759347668522782657135661495686354217994957137513427994135723441982971578311961535344869344691688998358198326669195592635984963185819728743619731399462882311718229483589759635875822232652645567626266152326793297629776261749411349945166848489141231857821783116191629495443468781166769167677378531671146674442569348465332379154124347214541916263992534653787128553484769951876498543121388121287525121228337266932333364488416358879194158886678123669997769485485627932939588622878968964925783445157452513484671789586111678213611575837275554823884624813723296264956685462156557842422715236164482269936433271984156427152661328465477312859849365938834122454322179132217492451163878472649261398291424255529728935175358267496347698936789751775292649565437971732755523421781393586635287184377575139471748991269834343254682651265122388299525428174491761136462883124163136878677946133347975366687216738318467282814341259685445286952113842872283718744932678217914214611798138311295797257178998532984175188848971659465184113158456876495418397353521942672287934823573223274922465589647187799383631865472773922581666577347495769956415585198366533319136975464561311889481237192532556446112568598617768971613166332167798846725877763563844159993312171165656455242628993338447769896294682528253524414969713792691512979342268529973579663942124475595528847781997355422837362691279844751639641676339425341413759936432414571657481644177231617891453584253221278443762715767558783364889323433278665735434398489725395539883312187583337689628512341995994426737715159117972742888117839482366948763664653959259381975144269173959345823129266285594119458666973198899334259889649143999768575176876118425534497693115113889589266986958592861842155878277125954873567319728192438216125759475852311351355154527431233829867543995931355782235188224616694351541233251948363882695266926461434758975999127336697245838695768334443944168821693426921913598551187691119181271434248548788653864524844755874846569323284378774236733418218522269223744183851395288731544596735876242849257218747719885337129538273368473426219883182846568722551996166597221331652737414597844964862422454488754839589168754263748983457715879374255362346774978199334336824964499925351141547378534859551158528439867271227274128624588894667691816525839676271153431513188858861713398275194111563844154952957328761577317819887264571285419243129388119992881829296327758964587426549638118393233154859968517361814897899922344572286275225972255854565787834212629568983599817385953521413845237473573742925856572826168663217875422715939437374477985742254961613794527571418746566951497726879368821687747724382117347348927874967238922994544754481414437235532546368577132598966229552595161425253112925386294926264413139291828148342981723424951694898928322135171389584735253412914817839934443782661954798152442132816729365636824238731855929124516298356122635261335311734836518331366969452967213746938444214148375193159468489853558585136739689391626852619597942912424999257118289777837197783114258847765686615894716517508919454331236715577286656439279192937579624415964912589422552551975655616257765477835797255523619486146784659497273764681144424573188977365506425812292497852539937157973423286679728251947181275171777132553419511528532363572182188184568722974928992449697198236347685687776497298433423324147962622211197648567423974216832637912322522597453225422154647892713237582742588921482686959951152666325612772873842221127135462727471134332632915337542267923197954169715867971716752897582813817345417126144236992173953264447383136867673195795194399635388927422128987327818537978862681794448861861784795549347453514775249945234322792447583227791369775979684136337681539864833159159848939433277855217214729127354248134987536222854895466471396742747166738642757248985744864757134742335492796641431834332896711494539382481154318322866956858911664584843959571434711438323433482962456843123366658792546978529616171886288636391162336133986869688997517579121436672285795514593482334914127289159289982544883341766177682429526565655828238483758576346698753421188581695563967825661521497858876655816475871572368522574258367953643592989358795758925363382116582834254419272868661219568891448844362694721217975318274265229314633922326636535958966674226146732934285747612336135995318843517722331736717139964553214989469252476672262177374742174673531755813762887315934597895254737794214799889811323973755473845747167457457539682288456915282955661527573236315423569171512727585868516848472133572418772874722499252135894927567637495692284356491596397798667431372854365829571531489172238991239336755448485751798725861859264127912457215973154848654748657178972336179877174788545818995835922156964961689357214616616418893317816324582427459733393254245488498249581954988971232649355924883828877194492491743237174678258641541451729882955569486173889756929157131248354912943749357344148144976183248768175358296259855782318218445311129567617252469137357391234657861149731456812726644473616392119416388655455526413979232962382543193158683167997285339746866112531846825451153992446629218131314411293658955274528482332157499851172657654292755816938465415313349594452881967567163212862695828799435514733519448752867226898669633476151422585452557389278257249689387448529274421462398424249497358214356293747885945179625675532342979718385985711411492151534869178959177796367339489786158646664751678657495341398476194167744311498275234758718747667976749473634752374962952938784782588547911698725433737933723414652627429489474247412434638269545817641792948354327651345151125795471753857714458215449876999679437513799779334245681888697666619571771669792238828297978965648887985241343665566687317413187986874311634892678237277919521238928379545955414246264177129163256184959454186531449758471618124734349516126788145942199369264566911851785355259973173391448894517725883521166254484815269151692495874437455279849252768863935364174419365872966993488264788535834596423923121819359296766622127678329732963266293112981744266155896762287614434965375471798593173979119889235721351918997858458667778757892376624734744738676663431417388547431723297763522497643895834819852945574341725254149459855465552948595949932448853811185552216693444939153288196696816472722673247553559178819489362821192472795659125125137175393415716974143739962666399928641912675382627281188564396297284314463892973714924881411242961381859231458858373653724948456685771815951755883369663266221881351661258245923459536744555834281247574528129676638425972565176323199642475432316448856924734556775942288643173719715617112659237933363347556149229973893967913827344687665468513599982497417781645915782338388551578911672663737439927253293357336227387663866518533549778914936679521387773355428664552442967645798847716943794552917464569543224117981594874432644371858824347848646627224868925575569542987672558239871558671137513769169849295131247593353565545813929296146749773523179338982683995116641426314668187343153323643365259493133612521556782116499856461539734195369546314725377552199363547279698762423986713488789948212228119818969467151388488574426858861153168914912261321391764449445772988812525643885927223658525382572573826313682393224492453873341597982642891153584233499897231493483556768963232856318397233562713969855652197272193124867316798996972758167796916441826776646447156432237217729563667464931786494356492314118266545472186165636963893235655673348717116713498224525741326985332412223716347162624219342843587748962464181719971594427823384168156482811912121279743746165763789431532755157286362745662351622876859336734675421596374619794874768711596973415686514976175675143833212828462141823533242832456661872273121547539973518792838614782139443616452378549621725816397599655925872918785946249732352223289794472682783299123288445787197189438717296546449967733292233134198179888653498316371621953488789628599685126157976959165515686747618687318946636521449221791396967148772885679222587492582532259156235534282115474224464737973898633287695997465876434819798111174584263755793291133734815835964515931436198448472967568153749299615957669524383688435462856898958576434496954424379937213992919186842372198639188291814235355356149299498284382392514838573321837856917845585937188683441984967964765671429812833811276474893719275634866778264465713542253543669145732522449816596152269733199125797252326228977573721884295327889825158681787547949121662493283465163852829886682785762114552819618195499488266336825137674785865896648676482946821343193481899619463222963286961926526787198358295647735275864185738636356173914567461189686996572335271788111477234544413393979425843123144273926581953373582724317738144662276856142489968143585578494182392176712851967973243881752359599629211427623632877466453679832713726977661124311149814482466746331821696918459755858296553328953257246148993169567386254688685921864769559177354112827387347769745312388296242552836786519398274825376227932376672252894924163475992733527675445789982314712948661133377364799497497547238352419523963798381339361145858813366217736295226279497532238228765488371982634354413258481214381949189191563129469916767118748762963883138443591592491121196982387588791856398479838831842751298259949356188945937113328514636641637774682476971973295177639215571468826364173262514232816157626654566115713322584896219724695363931561352776924334255138528266652717962132624177712526588324289373278611795434195468128169771621269221529952654113234943213495533544795919376717921636869111774141612432462352275239136268247762845287445569886638754569615383787295139517518383488745997756924754469532395335674477189855658144682765117743312678617785471395755143874648871357329191557886574288577252968384227248324293862289269974399128742686537249626766993811339464559627493216361148747258494649915278937277914131816852892257468187991837639363566271452798637566457731726644299936394463538394869634826412934227858414768889397471855626121633539393881771891639936498922176522673162258338523416157178498373469965189213954487114914153872237124653765979629541943357856169873358626243127371587724529227397842816422754494743526187222954658931675969432715287915737125419433592391434525155945547542214256636157191575279676449226537843737532343519939288825956638335798473896357579411514912566429292948347175134285248838317852161286939949762181836638559466675886618635791992284746812961847638291384953275315791473799884868878928316835565955984384294872769764714319968554275593243743938196499143341186625176611884397219971295529539412821572783412445362482154118268673742122372528167425739153278257422825953434351992677813342476229334829365711922472184519847572614115134724935475593155932819179672496788182721381717333425342421753422259623654845767939465727193366613865242556934937895699422857629925732817729325136787748844717738493813575719432911697592174967116487966459385795987666776492194935633587647127836592482931459145599761634447421982431545789983555654646382324544777954652542189857231861382848347233517963194371923329351735568373754743954393425646874846525545749414831261524298995372233879363335818946217629648498713992158683283997537492577626588718936194414994877838916869439339443952515926513388391877921963127624187518258799738836629828349314814554682552454539312595358571152538987354591164995356773852969312123958621726346193773378484417848153917999835635923361211754437563156778871436831487628785151796334191887843748776647618135337259672952865232228883845878631448635721129863986887383772754198854647769857247946776966242861957333919224831654424139976153379993426437942226689295285112338528889424348469348369711311536511488543966994931978279429475235375158455256662988897738896529346773617334221311389975876631554331614546957299239457154719784417688944831761716641558242119763632535111189479165342266389566731894627837977993737945583632334535917822728437999696366632974539141744946981971252791675775429536723236734134341631718485159122896129722426943115496567374296686299181533228652184969888517368919927383726672913338416388225117228268431988418633474292143765479485358369319465622343668245792843697546676834396642211124516991259223793675936511923924685276423555157317119682974277638346189445142893593681799317182836746882688769949499768792439543338226477566469638597668712887429253192767416588667324217527458576195274236795551584927888536613314922446136714952665356421981532835281814674992358185739847999384813915595214369397962866877926498811382995451371398686564365127131278677124444684454191658461373311287291735285551982267113352785933962147758334524751473918398791116532417352895271438622471352573446688534734563616581637974254697378354756395675444618427935386133261567328876641213164968589123632899532431285317533259199923598987932195216858511848969282531551346665278973836929945853128373428985725522815629515393525654117936791465857531784216488165778582372418195767837251898826493244492733534231813821822913565889548614279512724118391483749347483476984847329659572742127962922359958564287374424697732539821378286232563399944325118253156474292836285434639951673518945673994317127583147953222583587147659199193764378176328788166972748668769366793793356335451371446333332388859249597342776194161995537657763789858882972683229238974841637227135113513683916858946331526338132763113564775462476122474928824229421986384942288192439151844355329338288783122951425321526273795841878658963178329873825544834511587473261588529699211877359622872638175234997267199487315497574747654388671328348516237868526213869487577528565425957946818632837898747519568122749533436498581389466218367488662547979529479627874416545374353538526591639522592162728366894256997877832115255562765682492738531349253655292851236617147231285331577743464658863555559492623465413218665132211688254395758987539961836551764954779328896885531539734689778363762824923692456622794253142171368751172654929673763477812112367255283658149238535773765187314149569855851986738527915423246743922826593691486349233775319185479562143532863626842131662783421498525867254735421724792271425654725212958324175159758865138584866418793757155682776665277235644474346742658139297155585219983333979663938951891898356889998351651736922726136416243144953888165337932135737689293729125425454988791136631589512194917662416726516822694753616116438316548331912715175561151854616549185248351644251729925219661435365882836993338629524244293446164863956847281263144757389635433829224929638646172547578661196417441733727712612767735593515145112495678668939297881639112648368598277944948871859845945321256226134959643531748724339862119722647942216571754748172371581484848553675445512216935365513773279924494247619822625461823483729643385829799794267624917357749813463946126926634328628463137349875172794627471113874732365211288997396658525527915599727447576386227895856691421171172718575334257866552234275575594995965797412129776199436286858377964445276687675386239169955772591144682542329941585692618388668674352617759944925686757695464442867129724948559927695375121667863567569955139122191558372431426685664781284217317685612977218199676254384614466444197395947156936741169752111744464186711517439994231395537523279888461634466386991933616489797686745731389827639734325873865855649444463556349444767365773458922155522969623556233978466713794822663169943417133522677451622334482881894345167522699656619752493594794239846719978136628594955535815527424394314338891762466829539973945567281543634633869763627735351136947921576268556743224999655657554265325952718492824346491186743258883697791749253696438746549775666146138112226515151945798766554377289983324175892815585683451787626836158767469572333781328328199873611678615583717216339154183183543733695364755575391326746146423886265691176723464498272788443633469832258942387939957457514787335341466461811724621475425724647262239795975379642798233995468317433422142878764135277569938958923275571668734348777726648756757965625711786342219282767843619425188581862495836766265848321375974154369521196872681296257595915612947219519126487428345984485247364175337259919871796297867572439847582498629517897748424284536532491843794665354247172592864719979255525814561984982343459122942166811324669767376593137241465583474725111279938887113728154533189472173423515396396589397871291338768229691422944724966755984127815639688851367661167644133546447232213927344391327313625981647589699921767386441382555365348296287478767496353472738455892923851699785426362529684521231324599781758411136211368833976299672549636579783525672667254876155219485352222794354641567967762314243978222382918493648465343563919498411661184823497353986355665795645834932345775693193947423985479282594941417269691894536157586624893586559368228539972796457342832292156295149182991471238263357686814735261368471717833849396266167433278296344416318625764382928851267219835468999183552183394182319321233762584682256365616215367392314882959428535461142754313232373763267222284623926394744977415693129153261833126956342968992672915119346421835529376482583643963564428353345919938797247524729187759794959759865644659394688527584484879174261746411533922993844382982118634838481546957176662911392433287873841986714441296619839994422222415626386649972742627847271422574947675462479545916781531682939454433972338212895586748726222179724333476416898347143817741278142476934864563599593716519627724173975354929291443646416677461981389917429662895489231789647846864867521697718567682852836723491999843113815752629716919893352472558781261758122984516616862398466434571548549759133684499622479223663848695569782173412683131975531725694152233459822181616923476769229847262437649769122734994869714911857122175272385551279558749342427358468287345183139196271136461285232362925726948171781983638666382638839593496433591521775844784856858938269114565837235741119617293917944244522197711476596457398728523859591931694944594262213984145521492784966481742379611819333177326416113742927246317629542162185956676141464391933984861298499814464399666195321611319438469471939362327149871961282246285422515663726521619727968494143586859327728481654727544376779257935288869718185669613263752787782221118312339796979297662853544785188248364265173212871368723122843656784222749159467714677818983251931462838756724694154964853499625661166834528817514832529979932689785599964755738421584581785146246825912418191955235694864481296717511843952368781341859289239722772788974312299446621661593775965233129651781936528674854243968481815882181385956135422966272232525925436475271976739836675128369972726374883893776751549141899886357817585897164832185112481392927939687488385799119839971191223235115144975564594779877979121345965571169628987655643562466612218877214277997973569925464144377365177614333133679791538133572218837691344876136925187893362514597576691977883416817828345715266144796195196537348149895468285811481912531486119834923772699391432645729158671586298778859118463729324328376556266233221131278751692145173837566119523637864731922325853358397927872355164756848392998534666377357515911585282211631486142678496446869937777887263411934493254181879782679469496648632264718449428599987125155831994333634767732893792534251734145471963341235435817172616712316846262488733386178917161751881697313674768227947939745933133194147536922844747742638431934356772437929423928892177829114751548792626651153932462143276553697787158736741255513617937792181959876768364578232593517378497724892568516874996175638356228189479748791371791519363189833934883987956316495657694114228513112339147878637484174796128288582724948657619478187677378128267551845832695562582358288219146984178783942619768923733554588389687686911461549431936313671799789658368595551516799429717979167134279922678748441594784484591535842164433338383342711472741185599735169512441696199339524732394376993956489462391535499764224763463859498667716161729988431916362549571548432239231232185377893376446719865179223347565215884243988671767287218765413933424957548626794625567433174388642266943995787271826661969319394523216735416143434282391441471134366839579214646156496441777773328912962194459277126673852859182984492723161997811588995271478588239422929942634812813441479551563524918895279661143478646681666238721831351336533173838518784427492514732784667186389152931683324484169459847745494332645793257525223461364141679332796288693365118646673378466511791521499858558442392751618462542713765859737791921398478225471542921437691379482723573494154121542785557516546819477648345677642112778638395816864737573142936458535691749233948324281797829657539182185391596457988159961936891892229859121787676414393415295296538425539697357217548899511241893955799672618349293192175291499725486674737681513935462893245236896765231828281416252352875311121786321532443713327575975716729928563815371562896873481153657651626819548695896613162279644428693514459521931612927357221874745915653597622873284249863162738358135586367775995639727943428266969521269146657419373997331447165137165978754597725144988133831354273999165746431134555467863921558757966652384398863328316628694671698254583934721373495169149419668514864177551897337145149291157219795433399389333348844773111921923557987937161384389687888113294662369374973223742731611642861549677797314638895387571634742116185977718383194525464457823146864463355183524268717272165689296835169888269688682328457947176662189171219387257582648552269137456485697556582542627663898913668429882656515858339197597489955987997183644241276495254183999798719527793347656226851571861743734777677231997738426663662967451841518231442225378137524612659764736778814257875779432924482379663249343987765444599811342771757993948236223668328292555834892721214147969347461493577152754855277692599625573523962999264579988668147222778353659941889336447535339271361485669866854118743626242171437468855152868568435626532859212941758474769626572963638125936243548387686649596712285998784328894825683277238928259878749194283564225564499291348325399539867336958496136977291143575729925748534395211727548763149723614499553895525618573652886957348889834336817581448813914618353343227871451491435447941392147693246823288449575239933954488347753465975729968482314828357313371536326727816756296511636578196151893474475252784634626586485223325582222738136489853692253974528996317593317856933385631839581379111151591387179321814817887214137444684912721965155456464176519463832255528824349786623932895942226554226199454544215721129813257914456258193677129814825998533334662576317675598799191892655999565635565335916876796997283974853646182647457966638451288677383558179365291196771747776646467844941897427639429723429175934647934133977752886777128258743498312646245111522189983138134466517871414936178416397732645291741529763385915945887661844563549812179538339855534311315863236148546621546641294637878564897433379141217971191675463238818771121956287987998355823346249227348554273963682429291536361374239115623149499762793177893253777798269495555533823242132669936897724885469234727253466824736526311828584729181137484267551235158169129681522654383832676929626443446517651835486778868679843486941581278552191687686553639197783152398256357337396163657666366562922936683536368895362127845523734939717181918728444545451912277882762599583454488765219322769451526965243491132817539674859914386895628279473586558528826146567477851868816476931194986593469398994982994842435565265736383214934525725221466132549243863314736481855577533437512538934365657515593269824477239514396725412373844361275713547687947831374611117543579252428197193776136428629375842958413342253541355827799858342668792238465719146649539625461746848263128592627392545428174441244169582453724453529951887434541869127373747284635851152824588774697645228858544129326431798777467242666771524828953615916784542565742521664378375566256856411579174425793241961546352966899976884447127632851824542969749858756381124878253444821216313288365896117614439776377417347888815315937797342531161933779759739382985875821364482684174169945185383172576893243421958456561278739238616286622955379134983939195939891641295392829753443655876599591755974426629524959347947696865941449194666547245488383964541155411321798562317746766383647763495657858725255941729448634631862659346138755468543576549892199357591126981447493769535424725971722953663797668837789243847444638933488771738833534657954819592385835823216989352648656247288446121534845665781874939755684441242427821476947254869136685248265616317657563281868863644268986649390255193641639737182418428184934951681246238393192264218137532149117442964116437673395128781297191835253763496184614217116335147221655834464192652275995651354087173877224745811339921596733332151558382866468613697776541763289545385782539481761457333419848884545113287428527783715147233232887398646681434113693399944567646495458348582914265795611256942791438572332433162533224231955426759599934496925178412155269831498677583233126553696723239332484251229542946691272943367299668195129383598371387582938759845947671691861688839699793769973788457519587875681751741948147416541312483169658935129333148819465716855164349444865988595495561142838664188244539348119561319433727615314148683629641727858811385175698322383844731714788782821557338179418785167367738797992266192899849839566394386467376593324515412525571111652289827788221563123465844846231342356354288246461997691917629876394848556582159142921243825112864249215156581496718135446149355881812638277348238944697314368757169424363286222315677438154852877912357777698742512374172788985678924791662656818246864342131829822214561736547453969594728931912332881975828566185934536428439765943259634712319795477912964149556961226596847148575587694139394892234815482395265926718311361873186698456588336128681442569756377148874655487399271244589786414419287675144875912935516776437971282268693192783117867537393329331458538957238539347212243464689656529327369215358998424779341397269394959263699629653121274334141362687795187968236451577821446683173753571399314179129123387956363661917258218826759854282297833491612359189261966254574784787948198556484599628443982482151976898943511163357111332592796995895681932359786589742184374185675165251596694462347755495916465291618778547814331937767479926557548318482364917933991848863617482435363691194926335522597789729263819272473876428299352259442561751981148557182221278513449795992382316151182394431472848829528746178713924343698946329123276951751653275591983898422654864588866143459132322712864151657137125649176311443646924428696599333716824747893486977631691373595797499175777915535581562899348749779679476167841581567948895978858135983691495676844731629339326128639192452141624387361394235958822154288594586916765786231836738145664716264966653333966141734759227898617225812346632468531896141749892724236669224661415524329326496661293858991458692165726749318196126423213569528637298985936145758519852321472567398197611426814767862314353718637569249574484779686826472744736585438697938436587188937394677555218979983827677316329341731415226245143537227969821947121351792516922577398926828212935253252693425792524537231951445951295676921429863415448464799214436283896167974526371236718648383824314939758399928352224911752354686219474235427373687379476622283893753375837866345974144796916418714953536534168778412783596246939534719473791878649949299736649594986833433533516412654756331482191715949512765617883259912353473655172343728291999435335773931597224457621732853796451247441612334981852257445744571525562845979488476811854339917189837232631689559341327763663661766689972353528454677574759138336886894231573537997854522555577287867411657911922628273647187925724784741644957239256532551455946515811264581224338914159324731683385492172283548659187228822899451993329561844919837541634734969171313462565857169746191575884181243681837334943236945384893494437797891756469894498238637269633633434699265345717539315334316588941493311145516381542267519369274534986181864614777296168296244587175714982542949861677587221571491971568825131317474424336515655864823996739783529174597479154833226748411578853752412161376858192765528866751247488817834522551729571357144378128299815278424725664691697154168977159596451922598289442277573462388449395398569398243679358717936999922454529569316763898779484384388645926283434919322381358878528313116624267779921152198286969881411975413389372377718527425434465654325544673821784645589143798474197872431633814389749763242999612388623686198426612688935436587637691289121862743913125758338183975113216224388518112697639459948452863594835816618887741897192258366536222724586594381599392638464147771173423964423674625978714449337534767384928485768375258712736588187836527367945783599572877558456162626642647346818767245899657554647512688622295281995786871628213875343124466984176746434717531938564166733321949526282772747842828426188533747792642748213118381334854996371962127421232735575791385787636823157788131526974575514174157742948949764126816463945665371244359365442863556195528177614849396523968475929642393393975369418373598446159943363684184543483313582648444367883172772136466826267541475731412848235467294815644397657322573778594169812482277736783445684164216542723973122885755128799325756319713293514915491194295126612565736255527211761993314727618175647484248171246446788183873982466496932749863718599331617125381143746831748339471413486397846252447331636488627679927558553369534288442979964622843599676215157787522941837221395866934664171168823216512255585982687264593899813254817242692291571598178458551875476189368599777927824681656756593393248329587381293853941736375717142295253894843321834816456236843255782362665128192594269872667292691828297811949182427325783525914917927831944143316358938371972484218181276589933858751791199457869678818589793989777956968923811861973821781289259964762784384673671975344462518496983283712472751947462921491432139378852188283279948461499634747796771992941389376333382245811593499782976934273797936462253325584764852476984365179826133687157624918375996524941935841328224997391447256791125249823975798389148185191983294738822218897938863973592791922614497649439445332741921489684744496179144387133216497548698194734563597825858368911976955876249895166877564581613622227935742653478976934483665137368971557844172982515945392836565655922715115534694489142534291857342634267949319861975229751946983458894787831846143776872877785923922392375578184672251347115729312461621378218866992136958751784841222351491377898324819997965471623141289318228949442644359929371887895148852876133286534755885965676479487596298449213619388997575214355234746699741121152152729452187712495186361383619726828973214186356956673833114385899827449957575362249435966496988199735639618157571746244974784683788363555371231594117627997678876995349797149181522585417164973763318289183292365634276874591879399339351873219762399118578887718842889887219287637541698696488365775664595545498275446336164923689177537993743679346968587288447456421329525775928717586326362136881822165664366437117858587612589572988464822455388173241834273242633498182559917916343655975499673114133379299282136311131562448842354794645853978639944913176263399781355732359234329941268886337536653126473616169155372483316188645969716187683618257625148846823321223821799182127798594417389513554147237357679358411961699743928654367325972237381389668745168123442383783927946296163946663466729858349742558178986392157596168165229486731668668218415164993732353411286345393433265794484686733364582237888132369169599878771197477823792814263188249257925956824695186269875215239254948643354815524263353983598423939895341624298734251448981734347246771834273975683636754958475199766942488895654149737332489998887711862741436143236869199229999661956142495131353268181212224281217933275697725241169479511252262156583143136552581447511825963461948543977625893156817292717154169844341334833148842863934769368373838251534167274359553148197926438366329947864312368763682516241966829914792223541426617157882181662863452686132164856654652762751958483862466683271867223522728833671967396275793791543185268952239537379886388758814313942868192256893794644529522954458656666771389861535898151277634699255945173272334946844861544925262966485915159744527825991513932427278791435491755747456599922155175865217678946442376258173597237745457334231994134961167349352955691433877166791297496249365572142186683319988129861495533271477517165628516648624973637945195945673334217881665253717534253649319744155153248656259222536111141916444169583661215327499393327639496893763229262986655776131914953834129634879961545325148148655250582647126243427961677473548975234628342258411496665425662789312665618136986248916548117277237685168971682425326982793643455336845864142286917596797361728541145733236555157939621557651495738412726492998993275332217258622762156716136928535271481318282357764534247951896524672915723868865219844748821495954264658946942485468942153412818347932927642782348364468992212256948333116316453478125227457563488514724665539767679413347126564417911469822111891932286817764326917346257458558573882493461984695332148816871847228569196387769522637629326611543621649479448311674357318981237429473642878699768313963181196848917562662532419233748346476282393242438581844978255372838779991425778558853451497924117296385448127973977515556468871719341975888695194147513352158449365682382162873279942478513548695275393719286435642712652238991617269541651325179472538962181154182156323565184331486573681918529744568724442185255715365685638533971954328728454854373853628481798995339121968554291698852999989889514545753631949329135337326436388853629982978211134878591465223199562659168981216794575732243665541697816824955837276748165544997189182676391173723588517261561481599776515615296456327944392361622519182845576143865589211569623186294491148772951731862221174373825356373349567562648159389618221877525758927863158874992885797796557255166955272379778278859659427432867654292328427555343329562227393369791155918954587742789191751299461477288174445438738751847166223582392312946491473261244873714163413653858681629256292698179598938294791758822169788861977956952193683668762177967156144962866987345813682998994791437923231928773455744863855546611315847939129565931536121795375438822837738817329575299468228971782177863853615764393442565352351769766953535212553126464882146414582498641263541862697387621372832964838266629625817756529647949466768777441532334199871836559588384364921173425827934138884955875232634653195819514937817212882435789477696478638921914644844377977114776644527511823389684133931752431924465318423641632254557524877978637359482677839975422396774793876791752148824821584923623295592364662765849353522946527148518866233338115962316639281986967944668821942637171643554874579486754566872964864827495974643872558934714829516829772298662159227112794187131844122264349446677579849579394577811326642516493453567636555935916137824185634281548491178581314819811429912532895637757836868378471423333787869455441125832651618759284753541617162164677934115111231698174234849168655551974794926188895239824143837684894274586484285838132448854634224653911762413815928474469742275741253339662873666624162245673248274718985182661233559695352588636998988499856991258437865343396115116976854673799753532277597111813432237624125189654962722644827272395277788418584981262537119756998635514667526844952426139234125818461129762575183347252194718518376689678925533977814926418459516176154847512891892493965811953789695998858161163213618411628996967679785883129469653685956878666453422193436463527818316213962538181422954612864746896618835289119351646397515192682545557997291256233165937537627184731459462596329627331985878696969924262432265248262472968828534755394536854687416855162255921515245619426875748525151267772923568249381981574538943388978462638644594892869415531759876613985752232643941284836933819483883681824297691732126829122381771138331743634997122715837165354367499786969461484566369278693351982153958114343721447456448763182399516627154545882549483272599821994655572846425791632278441523844211969274738417563711764818423945133359643483441633619311152547961397472643196462742675899356143394333528748684771267757892727258574155949721328334231139592328388783398581543367912925967118948949369438484833624827636366363276414347397782954557311856784232164581441331555212853131938461877447474617783495689224218375352228256848729288668619221169624167885689763681749529544859732457247626812269456418685989985251166857657866931694754254273817815422277156778939597124551731644287624432228344386999477652926354116662185919631452419176369226547416714327499447887724563474157927581243875128799691348516834625694627227638531692627798571944424187999675747718181859819195766464166355729799528735915847313159578333894185949122514388142558726578971689295227597938754891775542549819949572431225229832229675959232146386638963595719922198595711844775559548829589493523692185399787333587381351413786945474815913756316237372323784418858551972559199914732185666997914772178425455575941352729412333611949884441188874922323356498982275165628937917429571998757558966694486371274838975184162136855614954892911524333744469565279851257658962323946542871838468443687665482613117873351364492256446412979153375262529765495523487229446663111838199996538289749464527493614689511521395126389247899548191789862214463976527662443398421589686719445854596262517166991161239822968453123862334131951959172276462228532949283698813199926246772124178585414883663274175912591823352491863253632178697298569651217347545182357574543384341526838583557955112772336676332373268936482378199486622298924172419225183222142281844974167594836178779123447687871581828788294121291195441328937176379458387689921231686721825645292448267247339454645416511364714857996639655712295947518535295611699472339833244757519385194686867995359352778143116254656316924713449485652687917523188722533823458427892252953935435528672255783524235651167579925667544882552726468855153191212799454162428523259954772173326586654159483564871798466796137898563889931376883964721583115195861259164314892489881142453174661877716347626185965399436844329698599255828447135655529195659619761675368223837685366298964946113182829752256215733672778184785226619594949662355623182119498149692652265122378933443544714717898156292996353268414788351842631748377489126652495883811995287554593542666221683181674684334371639173341175235453613191626944128938584681326754147356619234838652792179424281625372853898471367639768999321574131336747575833617514393547597929343146896591862532973426497222248652552212389462879143983894131897153484835972371475783373815987924282885374612752342769172891784133513169753148283462699899168793255471447842773149421599537597742381654431718142273235489138833283547891894997135659118923128566812712893492227874815828231298898272684825366956446148862914714733983367983689445159138528828422932378976567511335338313186159453673492258828271796746347173127597756994987794184787413112626385162971372973682979842463837476114594634751921438544991373211731472955439651816879378325548732772977632588878566685537381184463772435615494463323786517715371651195775236694227496166859389674875344888678189831449324473352949676975843641856981145594139243412929414899295825128798224151691883756167117788323492513848291271778385215116941479823436446576553694226837741789972236879627494753386991985265274596194267126422952562679398935486326654366138445622989931934664315161529344381843263366368726179876159385834921356673219294131911725945431852178646178118431533835542186482881676374476229495979433752692991169916544277338935989587848157375376821557473375194142128143173629231276245465274619934938347798721161894461179639652157191772676772771338446512587912624892178877965391134914155766257538866955862612647937645141656631539346735985369963946472547392666721396714543459855783958818967838889581136474568158554434442137245113436286644769624978623847561383856694251849793321213417385616883652198373355697929279117771579747966896353813794634866635683886573475919483672367843418979377227675295236623869844386275322346924545987741357351881621253378971546966933169914912374311548557794689395513795218345967931917787348397961232745798596282385183919958747989176756897626876396729815712692839416286959759598289171863233317451181687872723842778175489841677685675453754331439446297171358938725373751473638682513232567582454211717746318189549775232872329652822618331469413593115423746721115375321356318881193855151823934473295232875874815283988261585144354178477985475123434243413226672291248136685328851597948272731269295211879523418677463473578714734375354438761738777227584367762489146688574658626449188726413651577345285869734587588562225689958683433819174453392479522182278149592882981445697135916314654779629928428555345948658582156545517511565449865489455395412376726668925478487225182724376514296984887637685398137411738681923721419482152712635465461431543745177115443613197756413557534837534267793184585259821368241545298825897225766284485414337592921922513225913752182853277246359452822355757352673868397922747714816242938863121498458249426318729365657746961322366291454387278334792767383337565296452182729742213371231575532263838166237333754294326694269388783689434286554173527488994244923372427755422739394952854587889238562246911215334752156497215339386533325355788476671423264816846718233787586355133276714224939821745236984731244681553894516591795321831513649919255566127989151784987947592524542318842839965146454251113474838371174269465981736461474642325373379928886495661297566139254911241434522373839272839743781371426689953482774812216283673692936885919441539929341261637817333912624858812726759197259161895118479855955336134155783998381713871777485941853471849262382582861158799313317845251388436576954169258319669666384433276156952479516449525781611164514349834374235181965443735134415838724453787486695151533138788492494851248978768274338863633563834418542532638477991988463711224664638814378315137355183566688966559651277211715461168427197116781865885815198636863996828628287475184686487471178467252234165994514163934661879746773895414933516935437714992987855444915529869483147838239558256683393145923283587581335572527216435942454974254295247997341181846642797316831341974785422621936581872712486532539221772946238899186268527483567779777161774884784612584423698488555281361669357711871524795753711238576862787778988239522927389512359937135125133846119221959822349434166789392518318331447338773627146925946426247973917762739993996588294835759446769657721842134985736319874941638784586869975675368998918592876655223792928678236928838889287855367767888968981875687667676483812619419536424724484442139897411783724876541234563999332323273441933323176319788277331555194468552196333986164813846213625251328628353772389789975696879495728581518115346215432981888737422369443353998628183281569364316445592148548323441761939265686442191425371333687855978286776541872816663997476164881899688352538949698217954783361369421375527624596316322929247293447484858819362823567858174713358997313194342426894799898279794615366777321784595975855684666247783583224584844453249828396122921368719451846412647629672273476623424658855787251113289399858441772368264842678771298431316259459877724319686556686731764699866954748381458115984557855325423121714533578491191568253876548852822596963925234383127617472468573832541943666126529492269598376681934151317248782934169119248736732336467393181475782725839922514748597426645983764157561752833428567239826614293618466631835397355388479962472632681355551199936555395481658912491445222232145983444893979763113347171393419221466155362568892127925165537758715322861246127249964789243939893556834278979724642229265657857322816343343417873915133517315247549484728261168471183356389725679629312349457496514162881863332424446881738668311948227495658192437326618477431644566295781792165888468518243337673495985275583163819982918231818459161697356775167375596511622678684665621498826854425276459727595283744795517485946585123196955666939422972831437275997226713578164225635828173899482323126484512136619393111412563795228866437643224355885948495686118996752715957614193817656215947958554627425195596989776619393181265556589919672372558219131652678333891184152419554686691876153277687927443573539198879987612222282183726164539761659757538871282482683581964131117182157964273513692163271875116836342959487849222637855965576358974399249125147491118894461928137577681515139161294985422633455412283565988196216536188464938672199545154163786651278247631628839975511136616264594627393465269269832854514453794176818447184922116281654388789286197834634956358199256815673884584498954441298118945636315896266726821257376398223688428928556238919157794636567936899812867592315512212866433457956937325967427888221398962498213836569376929728849892719151862366822872765968944124526422429756369766143558564976329974345313168955671135171591434452996548757563323355984334598955247982888765389534942687346351896887985863593445961242185823232813531239581747545772981794117281656979849246889589678659179118376875979994594772632729656657616393993915574161536728684462152792393616165792944638726355489889218589328887993686451315756734857925956936848217144185862454842554251865759589416825523761266511137234821891142646397873812472776412194185289376236835427574864515916347157216829694365915592274865518225247829991427219689998685256397923795694938848829142999437367158439128624439522547849113831557513515698944825389275187361546388569322325737476585184842185826785946179844771552153466677481358743672857226572986245914672827913489565216866254188581979172974323389931548256767727837954142775126219483321286859662357984353174696644187318916982448337765963532217836868681299633486454869324766569347416557611251916382426883458613645419192316427947482283451511987529738851793617467888153196494156148836215468436415239549182719423526148815847579183269469631584948662474168917238574623598768454241598926927943719463842849775281561555156963246413688174172782858115513418855485855765382552867967531792776325913591238594789698643733239954766935148999589559525881324521897429926036286251195695937379351322336858678585627187772538675718832447536675257877557722789479384538413969777684562354625662581955987314473261826263635383564558379191661918319226591222487945182194361671493615477599658574985285643992362645374154231188687228812194342695353759373493263215987326673752389754974234672884593337186481838716495738326717276699439988362264995781622514422112267286224561262651924184548668975826457813142316391632397174974785332145658978821885214942542939664888575362444654297612965151336735574211457922453333431247281853631154411112468882234359177373668993354556812691734371399339695616951597181362444972122247138888596767775932187787112536249948919586376178486277287333148132133313841659429356175127343366572725938285258284811535458715654726341468194923425788436596262655418466576989451959994644469547317363922611767873974339877152774611823395571378587143122826225678779292878295364177372555376846846177265184731448376443973779483983732232735868827654963341471789372417683382473249755199348348486826896155495631516337254119857652563268927413486219234557564449595834828858126739655322277634783586171855987653647389498271552119839826425393676596446574541673856741414263443382938775352448934831883298763982496276822388181773772124189411662391213532342412891213733764932182292655891333643665838227831941281647359493658226732846549845873259286125611724326523197273783328248879652626957722121968439781717616771952579541775881836724125977566673939996965573758452873579337115419699518375853699787146288228652643824741526796896829459361438525716399444233822693848795139994594325389613217486763742257478741365813875387946813378726655528656267744494188891331294968443421146713362971972215246535698131256728175364551772415181569675881585624349627716159687946824613883544861152133869728634346696114451768874296684858641165856657312311287639487895668987462149773114254237177177555443391595695125463895734531488944464536327732567778352995165158526169722614773679534926644149121739993176656143197619563989121423614132998592923714652263195338818322633775979459147274793438222165428996616553756495174337351576241132893469846578985437385452276371582921814774594258217643162811259343654944585819741796224314629575833446826319593794316658122381875339131964836395757522345764763316529717413932616379724393882143884786727931483242234875354588778366968953284417853249997547514443368355664137113358467323194641888843412835757213152983283768958842214317183815339429869246254949479839531931455629715741555972118921264286544925995681868375578579628248113534246996192839697556718754655199744335945349319956648624178711775119825359379487372335755735193735716363412471199435221623234629229167318755877143566548163555467583324381191924362146944318167915358819111132571784589939937658276278181224561559139122227912141661581633271336449363786689183371649622832974821966267155976513588659164262863852691435823665144931837565651238429653154623339642947694468773744798934687222196491389625615988351454932745965537565739281718834181485872467133818573524514519128268866194939319169643986567478217193825228241377531742399237377999572114129277122426877711749568618938533561595648525326582558548344497746116772655397247413266321662467288958244663489121659473649717537425568835485588664714178278133887343145813364443724133169274463318543325762115699934441458716248193544113443994817553519591444255431152596917428465615687922568333438689499143298762441265521444788768628835265253499735288453723811763777314729181976785539923593592961793397495723313768879322791297269428159824174642449493673982791852769764181656793853249759221216694769488676357864197275316429211619848895452337759796228173294355259341915141126287928828248776312235558173394824716891614483114449984914234845416186159727129754864587819314856675312274117994573231824844459118769978599428876481562178415536432341293344143972949446419964797154473628334644761826767873345359618191226872268279157844388745927157168968185133349943464469852686594411331945561484923458366645596838172478946285686244999864315817747177881719289193492677239632626533231514642542813283217191373137472724188445647256489298546951617199591446129837596637484291563393554519121325286752792342581839185457469611222127218442892895895569397468793926647493884284774542572229391783378121621139638272449563612973339363526859915732266344697997349495967654845347756689341941887858454431725478475954877984374979926479564233279764253164791218392251199643959836563999461692653168298364659664413913861233319625654782146223685977474627848821587256373296474174833484291374555362189318966675289531169229764223424556673553973247244277454875149486973528947251965513248747443314931473566291389952276249286438821189447977297213359185316968163272417234846677812121673269287595848653157835527842828446385337922198394297851657969995643365269468321841727112718697172321137965816199184985267248256699623522124946244543271995722571565926249854471726144255838987354857781866315579116441234134889265854242983531463997341845325433838442862115371683326519134796182848334567294455816558672251151247993649371825615273151577883129141616554767527266594744544155282342919387332257826593856474294428738889612738749389896543165528392471553836791858131695213874735263221523484491494585926416178625138219651181339881493253763644348381546575791981952277755938553493547426198419414851527119167436811543474214157532513536545291871856383813331175457791666385362567228618244264819692878518956415346217223652162253541513328959484316239595823238584744185911149693316267849265933318847459666855276724721638352695788644613288727622183178915385775849529161142195224734546175775378233458665966598964547167734274128554442837589496742767443161492449783996846918592871644841992446346845759359329718762275586632385962437682523696585612471246484272447198572163612195532856425945278181938155427847393579132855383494518624387362213453486763322771132215655393513851128917231538733956631469633948972183928161946553145373548852971178571587793448863499853639127354224474475718517966254636641377919358717279351177882257113432133371341181116333944468198434568715962182413938533172991936684486284512755368143553642955525173712364568285921566952447128647238365923842565632458695516381316253856252699183438319852791933568755461823731165127122284588765649497479654973684418657297173768628467555942433864641661381658541579336743275572165323671666711989844529967537633187445711394595719173168122996594258921373832434343662783892644369184431626978534813271783947576694959343859715415635993218987549267381675867398983475916136711946676643442284272541132834534738688374717935355629734137711315464313684416253625727223986326965516867337963346927742351885773234142966672136828624849257647283586995653977889653259196179997267156833333911297415544153342281295778334734966728473917334743753352494998685286326526578945242689131749698336151634381377991489384557539363289253691851542679729175141998217243722817863943117124841949771797989479377782124737422435433794613542788769862567291463137326977453642628625963683641253897717442826189162768939425539122784448859651687755649782246469741195172167125983567536872527483415124349351172338994782935865436147574619918243163731845534187691661151254277493668872637936627996991236553585971768943645427416938154818358746835938215976619532558838665762655369499887771643187891988565822359288498165332659342669416819237176917144669944171336398889825534357353639725233457396287388152416134626797232579439147797693156788143812637197949854755724232721856237523325939826412985598772986692563986589683234642292182379251337856526477729174415824263198433137978747519748198682291429375787717512554627559537848283131812874554819373147281997116549629929494987826449469679412965849143993691314141198266498515198224515785145741861889548692122145718316921426715995159231432567231972665836717227734676611187112218375888651475351937528836739869796596662899356542523518274361269131797199954898941591339668614719881691525227934375528586369961951132395728432771333393241147354488811374249547582121555881728456339388993868647761927726797835779618529916163758159122623395972954816936834139956157429662361786286981864479684282233492551528337257336875953472894136491772517522556155651927398721561737919772137953528539461253539714697684728714956121288394577657348997381252879671798541298875798689641788167955327492413529289279456444443267981749183354362412646319856383383377575733172422798448655384534874722314731895376141195623288895267311884294841554556139641429946989979422916353717541497551775566474647758373546519778626713362821475379196673256243317188436737887524526316831465818626678454242284557218921958761745333479713934572322113331328483845172373885245378799354485226719247666245889448549464122866437473332868358422466634146523187924549636684545912777291954463266811785655929512879519814552989563764248833993213284386933322399767112296498719259698493737876953763873723614739618659924724629197417871251835917174186771132244916613831833634634162832865372892453957143436981516781297624894241656652916517567458567259852477632427818551236164929855862299884126116874917725139345943254343776677564174978573516219657182371248817524212281654486451458716823735496139449514843717765835729984454367423375972264241633315526881538261629228635159135667119627761718771612777372497963866751747917886177354993345151559436429311912621567886423949214179731864277531587585448634757484377653969625995746491585251891347293622815396183632881427618753573936216867586759959282954829387782325111859546663872389784613583715225533478264554972961532979373785437896723299718924378466685974649558222653734646374212993582248113937313617182911534653193329221635387757576877922516728172113178796573341859864214187825147674654593739835931352753664268846593143425429123247635891336441282486851414515852815386449293424674569722275779869588245365638295664736155543558599644172554565154547344997252324277714889548365648563965799234562334942197144519366874346571836279664965979642697475932678654371459978765631781727523879857216544441217989989182935434419332216553583474692522824568929275486332511158411863164623527556324849321426476564781374826793345751773914564412819148543315638324611913569893193318182414897759321531878181592145253314995791844196414333684887322753374845159459199655933334276453879586181948259325839173689344754792593627454485169296487632398798259634389747466688458221541443479432983857814764739653739183542417695282895464847994386216751992681492691138532433772694399682772942493636492636914465914965355578839184934398829468981419937617419348754375188337336486599552282246331858487319144693373428648875437725554414619191559792777885429293671921694894251252558347991913382313684194611747192947846259488531999438912395917421414329279255347419321441243815945668716731377229242416652844358737617492659463377539395671117111183823289356675548689157381193391895135361829696755683621842173452877414618687554943534718847474664326987767613138592964978916382745355222914446596614112895656949575129232895546307831332796599559251393772547287173115395154121258289659124145843375826531954369111188121625129559151613928446576677698783394351476536847894651531311388529266313968765764132274325553636653474992789258861111554219662548888417888834612932297629796253954894894788169455685558527435852342822312139375756411284249834179464715828867653286536941845453489769363371957586341856251796936115154591827666499494129281983886323882176832473533246384395875438819327892261714328848577255919811135736253243677662421257859861265861577922478255598733531746974759728511759687346121586889687152256197363544287911162762921637162672531196415116434823135389116495758157889422385878491832843414988986876841388797739142328788299219799695623515589494745826655886867956521161722683968749336135834528489428783151358244498291983367496667765963229263623443533189752437493919234169521886359661757999832443477994958936664859155946232387635345839655544821145739654915767514997183856269476961156658234176588426894731679486591388291729477231929693672621272519341523472315417686154215445627762813272333183742548182636319185576115258556953498217482243151619439955993687139969611825133415457642144623327334584587322762327273418769223965516885838116439379629418652858699399913834668696689723888195856998298581257328876951239351765385116175181914123737753879866414224742252465866152136546523184727182438676373219312987742171642663996775635846969277254471446822314184866469256176811248414916238768154689815744345658629119845722528917991486739487358479654345429349251411113252986845711437892745969229321645755639132477456559977189143399194679713269897665782793626178389966848275276843611783367194123118824732468154337637865584997429532994263361984776462943655397579662397553544814572985353795652829969945598192579661415717562646662558297338576664815417154511186564385238298884375937752415636492852565414284532344249699165815119567127638311457871751958568271358379165187335924128335292212366383318917741554857611221633772331861774479725412263414669259312489757125119759988238897714844313477292934899999713784677182514751783195595694686967537335517183273485245696265871536462832842379648164824441949223951364559977862979352727912243541877244452347556684785797113689668693938465231181488171972349227187682648363583624741741264316116786169897345839294597536256958547355355389894725484146674278343277733253463766394911798235268588472698255441292684784728235375143424341995324595965546478828522984649749361831429865694795579978642835873166429327189479958876932147824142884137837995819726511945628253443966741732433526197483174189535841626712945489118979376987841544598271684344265382542132838172752781751277524345788923225955422781867295878593974967292916661841959768475327734433364585451437752649587241836561997375913376943317378222594163465112833159864227865676947676214647849256335976652341157124956429194231866373168224528352867598429763841488994935319337714655629625122281272867617562535821585566178216545832584469615217465833751793547142422757949551228832226586932946377575268246478383635393196212132971527343903131384933354196599699661696826322469985339849592684559829531364593692144351321681955969132467717168495839871242248856769295987816756251348473718713482311122913697434457316776777328471673765244186551493973861694651749238653263937377686874854231596439316632847864525412828452614356279955268165527981464529689936866154599416271291239671761673589295564734653663717686952142389332997571837216616494982285546588677626739773343992591641297765734526282371517197276533764449233684425673846667384257654999912482136815391857617945919521414753285968797815577582974836987374895524485466945884374776396253835586825473968678197475225752164532326973572362262921634428526889323141689926252576568891964875799324312336962311976977273871442474736958774996214712551147184223825431517829731234578615313937338884144145128153713663123637551652987382195131322579893175133381418237548963184444525153668119159983848754284628292799277178915194589575183567486875784412433934414653162421381967658322554958518966393665695913797731896583644753393668359741939914123862227795335713538724747859261569812893325197361135738534672921831111365166992937692564852346331354619337839254816365879394149194477599573597818456843164681581258918987337139194619117776855272984193837751872353464263861589888311583371557615143689966234224376356794741731437796614449862481115615211373438219969314312641664254877896248278175217657914393737314994849759666388165168617879833255838916984514521148898718884231636738526987461685667569658264359142996627673732481366343472926833935818575969431458314762853746158749518215269325467743838294722897967989437359916981273395899998817897961727748437675226827848838611317588372435194716528512385377408178116348961444225966416143895823736462588824235953584489769372564313571364979475743273342388665397545791489358735362698749696325982483722678743299651447437252873321514981767186363517369277574797958448445245982344982111157657444488354981779803492534532386253611767265233145674938691732556949315943657881661265155447594497429134498219565584188523495946799713364375341911619783223627516799925654198429473651964258191981885542272315473637826561592689799466685916446939824499651119211446225737672286378629894837957113635418188537264258151643367169653185224288915642677641879795752173824443355918266842238199576796297641166788614588693692872463183178197876746316498651147496936533363151946779418586519452266812447674987766936777448675922693749639149946638437261251742214719872798782566618355682866399869859341141427171937615894754749837952177328325331222733211574788485713447261924938312642888359327887342969181514347721819957871678614993911974639392414591488478558841233551826757118761821869615628632917288965997863145124116578654754684781489288712346846525591175456837285395178522196969519828676281928658485358467275248332389839922718856574429348873927158261253555439387621776565157985811848393867816769166645462261843937977255955752659543989437511725723651146633198155575727481785356511527393613639318899839117653435797638912296336315321533217649229184975115869493245289639386517617116839527586892532415563214164996592655423214379529277518816516377742294716464547757517511273933698948532279743621583546574968358154217346331894853298875484328144766489143424811342128867381215711342575929599523757843764896386643881612551615913886464966624581888141316677381678416113894345545449592458477454225128317953617274343597436374715429372287551479794963828645328172928247215442434922523417141948451476416959395686131482197423358597258746977465361622952693241982997992591267915277365554967266478168429555458985822486915733669596539595332141835984886489668639582453286611685216797455543596466632962733982524493159724175622396613886185458891315398895486736697977717462364396955855416388171769641378735166771468229849747735792952824539229465318484478164865979172534647696346484724649258645673725311381825475157434648413982283936164448115631663947189591638934859385398781149353363413675597173923745543748794142474842323342734127792377146661829396657991276711689718732499411653249258588151328422286646598866389395343271232366684361221136864885522159162529178715729743521229693898916388325185889975238351421922735664485926724824367182455648832387738442134635161782138782867926981136262645353642776745153855665861518763497773849536241727494883253942283259655617542716567256682886234461536118984457913749598818523188443966164499213696656448311732865483188451681853718474216599687326626681672986357395847416577328893564841968614655341292151782894152458754737412846275371542922358516383956629895642488735936373324873269952953428757653447185628996424629934586464238664382765665219683785243979514692933418987639528787413733886245657829938794665643416688888412299811893884271745297856865637746848841439776762481288764438494318195237397173344452251893865385395839762761225551985967553994755438436595826393512338175687962796652431924765126251289948866948825971392761593329367374359275268786916492452895723571836163881778379122578957632918923529129189949271337343198498589864165176273282435288718759618725221841767277423151852829899872513898964813647144458763763759131512491981565291636732997484627867129321498131225788119148719498331564723636647237267264935287942297661153919843851667982733657766655779383278654733654946323999886373392541328981565162814115113833454529872699668466547959479955492864874935291266823738798885336535133635167284987369358249882567161535163893491249374219298674513557363572813947174427438416188344362741924238136777443516314161688162276718524394369811633369331458767358413164492472647965129275253818858455926155521539142178586897612749431947521764777175955735417871926933994971341359964438299887171794213691955972888532441342252351862454641251568412547872928164442797161296252285459338649578112382927259194523977293167334147587892827728262688491818653259227997111773722989929932917334247947868967439747742934455171797513489495269134117223867585657327668717234256759494979658416368925825839465233292711775848464388989664623347677958128794562211998166438662449434548531888129319227882879934177743586776618741975675862855464137516315986962369927433531276692555375894781838121765238378257513143542222436338526142189224976492676997249885836753982896413343531432167366771658946346818443917243478227927182897634435371763587756898783421692564929456635875759658639871243491783757539949746792766975189522521817769985858741248745363527678978657865652448564359986349939126913619366733798244444391323426236519645439919744387937958422335815981756748643963786774747261671479647312195592189778355961357386573296515174485553499126254195962212865363921477949954781291619132237885297465251445723834115221455263895641376311112387998732778317897371631253283524335318575436237174436474982345688412261724668378914761461886664796845947595442455732797885443115729213155619956429522229885298989832169641745499553795813644635811146921296957895184876351726597523235456242953582162788989661513857493249354612139431332317557133884319265657171224348688343248748472429874692925569328464881875714146155547861417561399989177761477983738534865522863982881877824633137899578342631948138338922495891619757891265459474517321581372352549239367112271523455534781935381494652375482744181656234249877939584921479655255441255799698492371962239116824387415974144815955944366497171419462879575168673399636367294356295392449268955375349188797423262713269386371828564675464328646947374292932146123572949672538244181611116242743223327396642585814977279713119422675524281341142551489383893837215687927363377645774632911414226875798535872847315899112273787697376221728293255844747974375934653595868791215691367385614336924293971761874643792629293738442981371476676169532793833437262481611879757363537628914456484643833222117845488271384621261745957581792797267394625978215381117965156428364193755264117747168766581353288599174513224199126894663798146188127768213612834626185676479311312191823116588263993671521461794224426756596435744934977944315647188883645519994686916729351836757546122865864423346811847149915781523922497852416929295822124815956447689686937848961564865357763619587666361245133398775539325578458416265381926446326961992762736779415154275711533331542738124693854352888669635269226618711192497935244922185723746327491612862766393814244725211843792164241648377771195578999113415711257312351327428186918828478851295948173196151189973784844851971784583925841951158358833441537836486711586574891655731294279252929612851731111297983992549466659841148113323355273485649715663676879692135671199648323223872358847127432999331316138561179295218933877979922944677726923963696798998795686113599472185594865645554346115847217355676336643218873517131746777692459983678128135398331515274864291399778573475936979139769165676715812961291815593427613748418111522917359549122585246621563585646759715661782139666339597955532436319785163297454997959864447572432321738241215635542431964923257599862718721493277419436949356115294586678641957791854677535458179539486273378269357625687343152326267194353479326999551415842166814614261499632441418659143568451832479532516659911766692971918181439493556331322481259667769588734784368893234685633898767737711212537449884344827198286179859972327381268524236857996613591717932852991165677385974735396467383761179297664514232616365924852241458389266617152413961573969494431578495177913245762728237278743883632452252687254557579428383671863398635786724189948289131587593145197897489728914722924195146469172754513684674378463192798355554921392581169787654955344179554948967447454425319697442751615321149173839464194175819214277998135132535593914514127958697387422145221899489853356971931771733948661769819925563179472452525918196463366567343542489854125528457185644293126581731636339114148177833262585164338621466466793891785913174899454216474311291483651243679152916449286638958288555792168365685339461955159291266747866824572316463661287297323219915596264396262731871681344776667448355816732296473434688275864539457167652162791366736744451193351268834333623771563259824126662687792227492988244589781484253441412653515694548818986247852326458633184646989193121966662193849723352817636758159167834943438429944337182767764991776191665418423157958257136727897626873325288714629544468143944795575938646539892977646469653134792394261916128425278745822346626175514727438373922118781946691217977569215353874175176169741781719766919556934454151889974162443431131278874239767875774389524987912321411744822529218536581198928243285278753216427292842272963199327166162684226167362581897236181189695155469195921388371114812939199616345374768898836956549753785847472821588381295913868733323797466757728858887618887689214596442319112118829671779447551931774997229523414394481527373595664284295359613263791865525164743263693339312637199316887385979498777211451645547599377238947997767519745928574553593547533332921682857359339986456899573897221399676414658546484975143542363625773425981867697186791157494975455788297583265974865863634322966557388246773282768377769184512456397133799321588536392532812148968673963284455337179523633158944933348579217869677722914418435927261347371966943917197667721424131464414439333844566234225266692851581854818484741375686415186362333429931968462419199941441268612866768777623174273466431679539818516684365584134463327594558658531281819588923461882562118996969187281241242697778955377478165995624847983242222238886823652244925312229546677112999774368594186719832977756587896166692561261732946355133791679318168426734827243878571769157397214267742226131337286285289211251667533944859893723632372483519685568874462462833217337776328296774572947373488899855532376188965445758588136148324798125754752315881858674389133692636112716848647634722363265557911643733517493377949195614188871857239513462828625554315615623921653525862944135519939713266771735287786872585255159329768638691142119627867613329561568532393627831792711481924862239913362834519718271349533238664565821313986866973128291516663922433766174862472884733176633857282561187766824924696896771285196374374342835557816727687735436364921357753337119612662354929656969396962496299289548996481357143193882133874712758867796753489718299533812482889696667445714895644697191248547717386342732323777438360375459422369884987321618654599559184936153363952813973749412356275669495851247338748124374511247836867552566521694437765337462154933689158831882425423845582816532982927899189544985488948352294383514416536571898549446571712143623374936596586649893462433648932559843624395878151696732328431577774266697115219481366417263442219846417137751718137679617871184278731564531732737686856554874393368444918371775454941887475926553318828958947573196496456857414855857744768437669428154761723298615572951914772834649237319621692462578678268342935151791854934471549497233388472186286363988335679632557995833963883639238181769723189189685181681974889987264258686687865376536633332222269777745636313842615379625968475374958713564769931687842367495854571564821387392389366414264841417564955275137275434286633239371926432152756593147676341564481484149464742382817674528676225275812769444694977865236386899536138435378659367145788618221166979832361458476399177851982998517619147212262722921735923214287958164896143536838823525137758664472973616852735536111536523389828125596411685168862924586724818632272923372797883987665258869934162565814283183484369197983195413562262579871238786786696896557114243699778714785375954535211123756916186268638186573255778992366289788516482399169385174873222139121171819131257277876285736132343349439355599528226166548472597834869115584637542368244171559434843765214886743989914343318552937413945344929331322857298973387929314748462385639726536555983785736333368527273174848485213593997829356199147366841819632972591373511332235272776886958168417566938952297917115883798824667315227923452145775455727799377139642363791224693368852624752475451616186291772117122596963411866128756588567788623872678911217122816767535324386795964875297821992879543187615486914484193796826213177575248918898259651151752664992849566576657573668965961428138243421268954714389378886257953896337366262864284142133767664963888827763842453886322788756173652664332828974484136417574112468634277661458928422283132562818783321377324336289691834171373363895225866491239491594123369895217628127988912963143647894875615377391118232427951437116716289928878991814968955197731694543644433423535822727449244424787143685827372884177924137582169964333147974274781792237116212231874477176684184166579219932267354812721492921658216158241689315728192451675931743679524873716577316454741333639989951531131681311258752785347457363548542699843281956246882537555938884264249677775518197362218931919437963951949691712658772584687732541746169929382447216585956858193198825148268493346295812497529751833566484244777318199549482578664149878223612542462537567825693116116837319563922384233817477897518313264232725873588978738428388321647271653259729526688442493225511358335769832794654791949284836271924599695884459822135175461278393862133542278281386113861981941329744198437347588428697916119363237858621566547378461251774819344331314561216164912129316689844466786444477384814138258149943319979715273913393925731667752182292263982294545847633898583994323459959198743357112512562952485653749779645273195346684882941737913299386896396932583983287479372684822521163667137336666524743932515658957343266981778432926238588255163718335154323187379125173289926227143647272619458589998337529141866123963123288346557482153368567489787919459473138969484742711558648652596744168266327911284258345411589254882891552343571928943493651698296488553699957268175544912391122889655224131877896541242581715995969671215512292166292553624334722612942693834149852398573226519991184376568282378528397519361373573291777685124986945725953283459772141732535944637431146686842728945927262676268294317167642926749462299579195234556573538723326364693743874486163849185258593451819415695253152347578296165391383524395741347683461272787537587141683256299851226433733588567381658865595612644489984344213251415323183745238599688344755992935786195581994175934867255844167536257635927345749426163846354239145737521275671615441625562284181585437757234527963155821232861911574441273737635859334679165258425788926398273768922389297632466264967827646213995145266959427236742535418122624148686393454479974426986911472778757586842572498732541442478867643393299449588573758814254251916465977932112152538418844261272139856562662177231963167485635938913769858155889897414362836539443821995812512414256683187943196389419182333696121611139123323153314424667236741991135937581118449982358281967168362985733854617817953963281916744264639135616688493812131241947663347262933514546827953287513281727454858229874478285616376895988853231372251798738581148929437434757794122221215164277262126879347246741984235753369298412229266172977966598164392534575916144653741568428446167541887611415899286443296169866632741791744223452188537135122897171449734357614733778713336646363498682228898392871642994767414656737841641793819266377853814271953659643913223332271858438868265641536847471915144238294993811594559463321413126452361981284233811946368592734671938126364697987183939191264741143866592164963883277196325928925431391716294685123854686191284657976966878249662148518447457843732438218154241677427283248952437662683719135282844884398284636514773265179618994493134863348898367773519581582843448736173872939629262319661746383357985493687869916137383587237564573922493292182794653894746414152453714354463754212721187957383529921667923489193284514292959323446692383854863394755476562614977738966554852482176533492565172954743629134294392966595651187573858243145776235542192678917656144277614413946591839128218184729366339669864535728942754683267293927996113677152246344722241882483295725274219425271543879187327758359998449571218354564672396364311311366323654671259618969685228362527261646236341434241191845763124833127749496641174116499886489783397991151626843366195115946945467186283476951596118729325119645573384621346387218183236646522389629274297958761868174669523942123143672678675653573148912396611236414873739494764298991251913237788275461612371711719846869474273113878149368339592798316355873295473586534579732291942888476827467646518168333452778157916798536429189298923377646754674343328952259361285412498366633277518593639666976448817634287515475447611889679346126888439272932665456746814857469279132272364423988774466174731859852288426181389489126825328535413652614512562529644238869913465743913354612176339673771961217984274622215424949938496583736744174747151524238253994865139813333898816877391337756232767859293714586196925269944879175962993473944643266974871558477193484753147633858666176123181781231617232885282977876618926297449522547727556673663334327266812884337932777565141385929635526736359172442297622951764657422216742869115227299426683167121232115581411254876937698826838972174734185192791494453265861677895479877519712843477915584771471119287261151457785685256525873883834842156222989658483267744955557162378911111187126635312826574389616637839967762646378471231681542434329515314688227175491678744187538682234682435465824983767467141918143434886634126635931669473685619962351115537292894281249698281277612925588411589219244415434464224638376148387391444974536275517269219143874824169568132941421359561584173474981958781997948385233412131368768976756145761889335677779838827924529136612983836595475487469164537749322732945787335785431659214979132597921689424882556812755145367747538596431138483166551986423188931182857871911328986974638168884284591218419733641268824841858389649979722695971116111494682539525613887158675898529581251323476957546253132722875733169392661456291745348549828423849861946182994997654699813765141956353971363775669232232519234448975564693182678593816276211745862311782221477358649488298375853294395526766612587627546675372694124787463336494366913782528781412783448984543272983264635594737937492513866494694142494266632544285546754424995418568186669824454911715258558391259257846749485917177583669599516443437332262872889658127266148893247179597715293178291829645735261998949931442758881262358843369378365277424528618647163846284332459877728293253948746251182425651739534545772275272886297458834118374858326566213394213878972314442746771649469621332748738879533619518783621812837394476386249632695573955335741472919831476651729288514238993969283367334289264414376892723919241477239848187629347829191423539599432428546218334916238482864825768229964816838352187926112625213325344826491526855548362755395727563156615778584239188473923696443869433229378823854691213673338625781995234936521892245512956949717719434856539749956426724437318391246533276259366818719343995925349114451287134947727943464966512623169487411925698684131558428511118978912114783664279344377158481217399422793379898845465471231371211445646284195279645475417535777714599138568278164893363338995798159152238347375955313656658348355281635671411196648293778715639171335923975186861883271251634832187678196526293373611828911616724674783564175334715889889941734222783938668111583362241466642174552957913743192429566792667765313537421897228553538438786562385567429711455311675727597265586344396477744285453826785521392847377937891319956459151733154248287879789143269715939994499135853653552657863863565687158174751137312777485962519399916934392395157327265972325546536439971113737578216794135789455319416428612658499181624224472193955828789167818937191732362561988769569665356271182475613772981758834893439266396434116493624819793484626655386848472122513983883323787563283898956157217618216767947614834335221737768751574141166127632167799774761836885529547359224443123222688661472945188726831484728232321178448553953157732993464479521731886662177684378767925553734999971666774662211989991558943632532718318784114424324661655818183356316174696148761158415896826463993712274197976213944553357293513985434136935645162518964676946465237533235812627869978446252788511476628412564473661426251459422762353415662221699644269326588867122563141454724819226371248145776144558715287797722361586613179914551334864833716965213874414424972334839223524319753352792353872996479524885527693831129456944435185366675426218623824982685941551977864398238919314814974768943152948679784516737347754223929445651647717381274919814548152995673656657315423946148592637728518876731481145568383265427392252252726176313858819425876518945281554172712119199934634514391838176486786217338454816267898191128988568299122967569186987898891998766675717224162171691672462473252838438353868197367426654182638732786824133232967831417828992787166759482695784488639413325623332926156316106465537689944796951262179713513178624582716477993232438628162398473753253983794226382446544694754239464954244788426772328789475889935543979557582368511581547228123866374358199235298346311345158355884318331263982718662886493328938659595724913496554843472625627574744325837197862348795169653611276629335336943487268977162424644328461296711158987794419864239671417428929227345137591776198977218273994928654457327486218326148276675288353711442392943865491517186815642214361699815192752194925616382514951922293734131452144536167331825849251644958323429874789433427221148214732753315223584727981815219252626893344866246518538721352478743645978555181764736829857314119664171937668754348821137951482449747941828713337241564358389624611436737537961694949397426381874826412254259442147386921672669242814249567524839657352418786711114538716658151226861323394966179654524182117228934256586184914978541969371994117734593313725214188376534755156852492854136869297237871545273877229394719517536451269216933431154314697758531278586537342687824345837595357686766432355735446163565426874733431263318173647445712455962447899247478478752697368426924388989215163212997388117279983413414444153465755615536344452995337782396654122882346283758147661351789464996177533142436242298254424471879688631967399844355289722178476346491617448644278689851988126862514885751515242122219528532321581162836818333755967839884326486795991593655823631344532955794475887237592314768722466872444773581296867187656759897575938516777999516536394169971728231384253872933775426145962155178436143331555934787691197423132995798334398993482153274136342751243365625727978493942344297565618137689363272942437562293259639742493541971275547396615951815978449794822931694555118893196624469668262585647292924836355919576444551718485136429892457241181936482774724356189192457461599595155423995622441442686333393564298751959634867114483117568135444319536729126148476889845649414757812583516341398916192777717313295444816561582413224382285215635282763521678932343784222632226754821375352456513991325791822717228367914342924233586156161342285231921647941374633351258213543165376443138286751396313256619837655588724852738858691236988192876437528834298186165498288191418153797899442363178638649662712737328211467693822815761857949222164184422192676866552748533466873283746946316815579846728275854382886673335127584791384213821379759517752466134796944377861917173955941278982473269827515626446841454482582642251242115678342828185544894388616642153522567772579144653192264721837292557324482528913523838433417446521345915159259593797849393147681945635251377228627423353876745869324969296847912643291478154852974393214827719894415453289874164625266549541543884631879978676268674439473629937582581618498115192655594168971821179453392322733998669395115386425651892934428739898847549978822399589684336129121196851879854313352442876688711923621827735366614948235115985299764766751388178493426829539179245533418656556425766569425354298873214288846479865614877623962978311829795564469253569544749157287479562919678585152995581526557484663865922899497718267541115756413621235526565448377243254948812185498872558284123956283689689998549357422451974261189461339341385332285451748355475322366511641386515249345163721354612453418757317124269798969217688835388254216119756728544587266261999737447971245139885555291117138114961787994797815452191294117139436624435917787544654983616531794567821623382358645346526392472927931922352676753578151919158273166287534883781938836846954181429249112591178193275779496995339273175256453564791561429322946873371728483951321698661882976663813286146531685845731811298976567917612586665351954144466364122123996454931477772118545384697822222978363339117517484912593314447734763916226179131433593843576462147458163972175249498793263119215159176485595918959141577799813349357116756278384419569438629846881611488228147618664529683689478562729842658538516288148639566634736823199172833544578631518462834647847844959534873668938767953536321297824876486874767764571724476798611119969557945721267462898481551753669824648132367316485356591567154967421544691621262916567646543848612955315578615995654437283497277463296865756455213567475746483449851467832466299447487852719173251416121489398263293919193299547878412579492548869173373694568448411677829976164191331712277924966154137936853455599779887812218133437253857484834814914787837833375113397336742254744245847833379181342267132266753486179775993293458775571818614963762762481693259137576759622337793991138421835857826694577622592183218159164758759411968849198319841657675259926276394378581643527784661178392842761291352315578568837266286592768189116257936973887523252113278379392948832652842623167467797736876183186341457548154192764768345966274918364247962663148636561377827219255572588875192265813151942685639398759758267595276584517767459699576642587557976836277275112162331927387233151753673512124341776887726432748944591953175511778478341285379273745142349929188955772912562572166779993895815829629821276446563149932521234745997998227154639134359424738132724434577475767762497338824726191465113752327224455319392783614851473879192746472894853944515812979457479753382794178673225638845173911188648718146295718392195823225346119973716537991849278653194821741731223777787793912199339941915199322611392272765966992885118737761244594634913621321622434337295538979563164336489771116451399755863749357683453529741588637513311515739689944287482442495267698778261331326767595868917454215282228253587273125591424368999439852897267814316767129757748692888978816616137835867934627719897917729679395218716491173753752755647597458962942593891197684158515477242268354734914236984382442212126362329782174726337986153563677325757625955447299281785232791643249194621375294412419945146411956868449577998551692897532164478986831879599347436736771988336425929919979135778463241452386241633853859972561539866292532245238414811117576638735465729853487431942944992576642118772678247973976481719278743965942399225833332993973281986593988438642155481791129539847518917842828136886966987143947787611587968872471379881686881772752839728638985312293481981181456551723587395826368598897825153838993453182894629572371265993285276722942233885965213531221468117771167319711318149384598664664632749481661813717847397175752215581748917918589285816845319651321485487298958187689474827882213364912921947856734963357267388817227312616613295884449155815885539373446296738237861768559951793941216837692545321627484699691295438233995279894977947429419721575398621137329846732784654737975525516642486589365554129514214976638412669418647223734697147736311152531473559261546125951626477592847816282219575399795178645397712625263375545976968678453214896358974433987696315362139351962517496949259212863382724961957137968663697821928276547966352285814972252245456274859746474884595894349675121939534711377878529232557515926238282655614521562575852693126649778236626987245615299559863749727753516234171641271127395879763658212946654627756988931519615292312626371844831558342614575924246698256532145283237589949661996866713578782529965643838716836525415883773857943436911882595368722519777352956321111222681247228462668584782535538859921154988155213152752124679477671917326221753178465577256414194384145878174493549918755588928378694374211779145146134675588515495155485462585112826375754717368964492259611321634254948418167263533961221274246882287128256964248745779186429111338252278767414399786784338548783598946814757276175643198173943525328222696316126683212922437979432443525465379859162586648438492737389736554448567727382455314619337333199655712584224658392772816561181956527787339696738826299877976261825714537628383385916823631259563953628389437768472153638873741948591358223281237355811687262277128366497618732786367328336673597633363236121498347998142691971833458874596737854573476768755768396185755531228765125881888674596335893545788667188889277967619552954429191958686567486492364239444986297283173829589251479892766474293813321623773699737649735382914215548599979558544499393942442775439411639595668999951475521928473526688669325147353489943155894266826894926539265725819247856392195975469132279842455568273922451259688714951167423191928442797112293176481628461699983948248249568887426717555844735331275981147946991782468242837569878597613428217476542487781546646595557718632589446594373548213964639493377455582142791265117595967128368213782828989396926696395936173986366647567429212783643347264763588175124885897298672817544212573511122792494233293695579282459611644115557881412781341451816997261594168857129319563891973573512761299994817158234716794173543622932851564288193764355875338699195479448166188464182579913884913543616613544379991159179561972458728582135475365593599767955423294174478915764413684853851693834231797519375838428914382361553888267849887691635535255372558137153158156936321783417957334247174371178972725894236144197431337866296914488887522236557391543432143743394384936279957796741395432627266785219847144733528758483676323924644647563856239915964523257468134488466952785797294767385951754114172966256856787364112526823454863158896591479198521893675929527845834594843963117226674397348244737498984391714545295734589694197938728448521885516992652634233147921875929131773592978152776989894911795827887249537464832651633243232724724559615672975131426733276667241616699158556282335127346823748892772816752563715428154856231242322512299557748482318994639853286339768614318458599681274178688323219162722756638797816443312455696725986284177158152698258515175846567415734741746928735785314911866528392785781683678278839353331213134425124274762771664811144274698932543883278678945525651961620445612292449328412856641948999266946167311465395613286272193319194739582828369933271928147681592167335419566651887918745793972481113876824682783683788278776836966445336716197386854794681475281855579269971729516178556714234439988127226318379888754525969513691722445378496317392854561521712874941767539151992287845999279658272251223251451871565377214292931477599135191379458185798449752999768774493649677415196142137339297385626111369929642557761613724575958868825818993248936226691347765643734237256582517328818932818383557292849687858673563578771739197928222382176166534184951933255177998147557283946466752176414822733857614643948774672772642145247433413767983973649839295322855829151639357766931923135588883497412686543529213216631381279748491759633974185427281342372547596674859146757519339674911477137796474318276956192358668915818819668128938753472599357478261242319132225982548818966725731876298211645145489393399171576853695747791525166218757667824592984457238591228952837584567848346612646585516414686556815718664324471948791663943628391794869594161167239215712963115315684833248576282232992111642464153438954992632955246679853281628264971672964259885562657177249257575532639175266632887786729846513258644561379842159728312596146684747324442327622626667818645234728542196238281664221233989534115179289824634883537549159223645443363565157738981656784798263999255724248212922389157557665865812576981723145364471145912519211467978251574132661685487639741899726633893425792769421393377657538413713247727125367397525573457281772397989791229258232872119157246367166256591437449638142976882538336973723755422494491527397571595113494862633763435586448285236868218715977466912679225954688375187251667536447716847465933879689597676558115985682638124531712674434288122712391655787142314762125445566839178366735658118477582157723617735861555921931989749165746228982779125548633832726732427349248327229995867153547149582518652695448537934968215949111454318669223176768266317191233277691659591898696733383384516833514882751169821524962289742425997377563568663714321452635779468427165432499699344599753552429471217841992263427766744281344372412397329737178745631241375723156486437313139136689993143534152699465317641753433544851333751833168722495572947482186121615727146119359727231891999833893384387191957939864854145928219758419438433247324921335138271146288122976599444146198593612748356469579428483988587567129384149885163996954255324972674693328219935437924668193689878261693545738293185572683852952178169645418457768215696883398617544697131195961983763353713675649992934944652851239675157534189181294819464859884872476439767667717319276853161468537461557345228178197895191446411256392246789598527599938972845159772227785954738791693713226733811945743531225925984477898763155369763317329921532198719875272738616137872975127458548558267459539244142249674641685569387222297213529954223597568244182115435267641636269539288222553654498815791855492645875687153528979973653741399465942732457991928938294767787855361645899822915928768235196973419575387368672274359183884614957226644482579626144274655345752464959621767959774293781314989248563725723718716327525648167283959533937519579223274761586414922974486369318451769455436298881999641376427262339264937546556646799759581216551787282168823497269254314436211379319436539798726652283627349599542585159239191686114488135384248418144169961259152791526175681742556272389415333594757674145439586323544677439699995954351984164796263833565547456141798797116595343625864647373817978171171632367649238512432744654561568723259915847817943216792149216999524616113823827351129553465275236789492794297855959894361181593473545736358133541753199219252692265631385421666961261381228619726489549291259175282422554326318959125134262278616159327951511627522256583622615519742438519863725932519194264715891244114281584279339538876469879985596226565993127191279918925136586199757366761589899822814627387199996834511872763665846519431431341235617885981376873635887822278494876866455612519964562456864695213881547237397496743289867449262641617322352312887427524369296452623575992252442296248566596352545722514648184536149128787315552253496989118673297411278219877194356174196883213245373296386287633232741358891117855486224734589934391637626758634395816482853975615681354248294853334974382598362759996311453747373883221493528615795438564969787267519568139111682455213828828747489365468579769995647229122287835782429388464576169872984124897595838887946684299297597239631389995893888447766978957669722872162671169914612522416393376584782849878971553715868627245715394591717514669853552323338929558818982742329324899951475277242335345421842796295389559977912356881654731913752373537456348694312666338532726254528464118277527814739892974591162919331359322212776756164645853164298555477627197763382955442768387454994675485353772876432638478426115493963687867256129394352225726556174333329346861182417841442119836468612747644654897774739231144872765241815599891871353268584874369776888657869156273621769367796983774639536542371564649888588177646122174848968345611889767796671284614187116251613624513474141371643952984799152545916456779119273781118581617162874429919229158528539599682418795237351264391143988149328558359163711949378484995918831898923922514738656624135525631949934358699164958722344898571694899244114242557521975457215584963887511844312164251827557316625135176382923141576759515455328751371118292615774559523268682689736139971264832388551868648117912816723151544694558736521644344427129536671251537592273537884547262334913228491273392864854298246399613237296316767953658161196726918232941894479186642669769652474316413712362589255521519667994425177479815254399753123381289534261121121635267162686836856129667771973955774412769565259874949636735243929372477633249329744618594248649779946828253387571843915358113282275768894343991216799244376795935623594938549769652598125994516271741153298297462532343945416255328534976886544716163668292747481336943522395798514869791894744889573757189871633919992171654153293577488365459643742162258864394753511569214281686193237335875452725162284815863585919963743217689116535817326884587583959381261291945458372881349119636777894135432986926214269392355222823436288377889692248277622156551723431451262323447276157565131132665933248363618548153121536868946738973121573659467989942749644228345767827392349958875359313647473248943673928923811335377753529946832312514615917243889565738922726277459712513228699665361165568276111392564917178957784812568397211233599199897992672175522573284338588619522414673199654921349882952915986237726126193624761868356658277722583327149391966273291878697592742183997846865774293593382341416635926619416115525976224448691554256838789599144743354729599655292876875937252537955458538785534812521325339612399955717688332744196349763733274169642529555658379216183687194513487652818574634746457815516166426114414364856229977759229837762682933652236871178945877881777958471738154753989975575375355271217392399666886976533271728445465315734813793481965392484339998531223814485846944674835577597542586186546331847516892362331277636236991843159791612757981929773527239413947849999375183497477848581624938924844763391733489366224578192113588885317391661797631171819929561468182841829828882982982295343679411786188171981379499839566846986975684684792839981293141724345932411172461645756767192366719235477774849216874752582939711933682372785827515193353466436621972312699281253653199335188952262694863713127495716859489475592663949542743712494982221257639997313286553743213811145151933934877215962566816389613139335747437168574933633454535847993576511239986691855423776472271427361413523283591152332169318473298461613953592527962171213149379417571995357528425835875279328569239332168741812617194633775634768794192885997358179634132816473362673874663527647719144445984233522129498851835597721287885539781213152268242893565794584256226268683891815194569149619935748554443925138557816131281493178936671185688433344846187436934848537536314179624211948683378983936712533962224534551628168976472974439745868513187161277165725142684678377427838644972789474187357934952614697563181578426926973765153544914853481537661485184559187641134741988251119478196453682545879244252988329258968733181237824831267586418646662544765118992496632482953939695961667169168229973224431854936553511436365418416829385489985659133176932663424116236687887353566885497855397729564322339175533414873851393387433787911218962395612288447765421892722855744275656186839897569872955449834473958856662844622799116542557914538316292378932231133817964685238371929457442576599183818468914944365291236374954254454593614227543985299137454181648929373884851458878713659277532453592783487425535525882931785241692891338293745497898292382798969268482512898649541461718211918155995468767633799848839952263169789327194158631734619726944463441573592918184156739713629986339318758171971596279162445344186338214241541599438567821456885618751264349322554422114351958648623762388539686348462799816871745331781536626562638719611311684338527899754439683665757818188424396295261813784269647647647512861589236518998324517262237998384364576328448379731668912723542289559484327166158427227529873312468426951879514348389162959491748699227594445192821147444474671633874545979791985289155515172356543197616796187536733413832367942263155925646328184334839165971219624226893524643197472699497538689124913277642143992162192765836768451671554659262479612918684389327596652348265624697887875495659418366411558212891592279942516646765327683634813954392386458344812636395657259647196537395148431814455842859946666511532965129319757451858752448281236352876718993761146844399117453981488381291496793588818831766386354372484653323773686689987528373699168433977254725414392265982354489344742556131661219555156592142386789237953921152219744415749269867992797991196528422975778897895595684685626288242461141932811472169621182722746113218432514562861832869234418121552496546224311315791924367381338697344178531762352445993832984973999627479467784148668953164761273434363439318725891888424712859183731186926919511782553225419531993122715537698779834466818173273614977543412379284641443351589151648614875314244817162429677893878852349162415817824186965946453448694793165556539957766461995532523913418185641857654292484246691811473474269345129668829446195397644184492356979966167113644374357957399534334349176197471739455259212276811467394193953155381937847376857995644256654978429412328146721643328934691289951184345148633916447343825836951161415112894217952977252654452477537131229751558845871967613759424347682757834817485681463848992436184462374757618378635918997253983432861258219968823343345373571135212358161386181445861697866268782138867186725168577568445183152357263964767466344219156774178436342858235283727359284973691633388666511229513448488985564529177945785737718974913833378953159763244719699696199374831747142231556248138288829979364637351773749386381212313211346621446615279227157191221544879452595368776921627547668844343588859316215999273937786592246586664625265957894299161849174955812265991688398939936942152566946463273344393217193827334691226875382738269699419823667227348248677149886945998282469282137243132936836732442453722759163919212426212994249614187273272693735887721821436317927754382654126635597799934667558255694159463148619389483161728845324738865488249499368765748724276541437187214144192167763846384147293111724249768897895382919515546749141667656655467295317461845722645912688454219838472121224898963555843778199384341542584266162547931321339569823867147754453718522774719857858146979767415875759146748825539553472668311818595618394178551538165552384485466236278687533817736371431181556262988158732214989737772171155984112218181434124116985293429227558981898153767268876327852994951969161196472189886749625847434531436536383494574367332135778121383958896158697133187281679414732238911845825551158168255197561815928932516281286284129759598811422214675293333154576571653653887138588219652989358127282667257979941753648138974996726215132729914911364498216618479182684785978578537266186868616814985483271249192947847635526198729277797921142366342216757589461318199981297455299632319158227259179189319376897971211438349286183912943289982782932966919959558172385796925315498727311535599516755437941781252323276249699869737599425484638873289116997884978728862629374371519713312913539422419591721447428689139552795756229478569596367258353318719477128257924195822656684944914974877615327836429517376662164772161141693388122192731517625115411527786135139241435686457189643996666599293128474842499319284483172721849174111485836756695235462834817135465525297885774489957439722727465139679671347618793456639132979512782658873765655823586711811971458534423921576268438398312311447591164355494229185817947369436275492128878292429139755774826455224328428267592535639198791347158613746563544687369591479426322312676225698159988237264426971113563495864982182815644217115347615945653362463665349869662397188583269595934529964959128371279149566445251594721136249186315239477942679651123225961882724266296813369236357782387587868377916728945269815776134995781828532314228666666366961661149243395447952748626452168127233376597152159355316854959182727944693539735679199986314312794417789242217895935125775117397839698742963664166761348851792774756531738114649328663649829118574437612434191352238694888919787229192557166213346337917998876719948114722635188743634345135827912845447892313396661395729332934438872774297459215556231373496842851147769434367143657875245141437442239262791424812889435139484139373318681742233622576392461863811151928225469723183713858836217423537649395377685858343336969913375231161817565351194438235325563317315396163789729472396941698928852491997477679736178772934747734994916855834897634693116493276575288795488881573244445385525194834694164255222735292632376715118581296844385551261453771473814983295178436173289444624871264672193593355252493539294511749117218789914449819362274744828131964842735292492321769143747769167442836557686141316232727624729584887734425341373926319172453691281174526259219591343551625196427535999634854926961317561971632487176962468169866116865874867395924823979885984794693173688339132534931831432731489889179113137311895188243416666867974297611451632241284646414181719229889127419526635228962462763675786929659611485897925171359737517129374255595397288628965867719642681226875424135118914413474649927169668199635335257711157614537336482214486822636639634597249282732855384185371135388669376586878165616926673816436514662212899937418393872484928889357697878763733675182333756735673432329418784364772225419183773136368432422158447572122943529723561433777974931988189213576771947382788578191181882832372278365293463541549758848942491617756297734999346341337233574655623252927546663327362276755119864198483169936557415553429931918538478877799566596971512515727569536636337483154843894366939618661546398146561947339875678639527782424249185499224132791676749548982327455917129744125213788933743187722522245412743255643538122431324567882624798335791175197262484861641133714557239258758794845251447549912677382527594564971415758424446815554728677135642613489424888668246848625558113595743975476345369865736371314754359847685238657744448385648913657544492835913819553373156859135191442854677867734254568246278878845239688386368714172927555635738254434283812772319512388942437544997427737127357428768665917664274218891595442214389166768544963673455736273594942948726599286563111793442683196483485966976553155445871162682331561366886761987521231449527742928947757423632515848984846631125938815569152214788516293775976489593162276618199959881161561219461687736596435322591596674684742723626267929573723994872352948339692439232311613914583837122855136272215545615127486978713189793449573238928622481281371772753997264499291373624762788966254555261823764882374642933951866211648823228628766342737932137641825918259113919763838734856631923426541464976143447322637511614145782759468174328162354295277882672778815615168185432154582372631928891672117917771276537984366469471558688512578618463171619457427562543613962823872189241317148926461631239433811348265428453444182357662527821845983735569793332758716967669855474848394486948346217995672888546921772421236369899621191478353975942315531176368549669619547954461781545575491344421694551365892883246915454571143493879825696716232823558927233672171962744514457651896818833181397525719373917893893783768998921962555614895876186556125825748737215865374964572258151544249113755232868554834348463449163986481996214352764381347811719238886178929356423174197978371593392292984248793309632552478529978481519145845467349694744898927858138145758285839191584186888796598622198236849858129528429491971845356289875979182953187239326539976715813413411736335959894746766636347889152134759476486853648394158137934366732891549424618639145167953489274664737681971935262687684844962429882743869283791189749253658929898395513522924322216153418499492524294568862215626451713743914358697944952192655222583889372699668475973112569113572952898261138285685817366486736121321368373212872673431971763377691657686926315663127244221771733827778399843411823636379576849141911739743294317589419486263366488664557169689468522579398737685541828824115243194461692496467911225939639154373932384453389172425828993917366879997364692722253756746948986683695631922225533837694429537188677131334776331535597968811832691424779167899263734639433726287338898824515634127789953246785439521523986551983853759264864526579752149826834312616535233585454438535646321952144916641199637261336799541658984395169281466185331822176353442881598537864595237349449396531622772744523183515559795824577761957131795916389954126539277845841863255675596612925898715721216413629416857518632413213674716449831761377129194245676935626571476462622654656182658373836796933599982148713534899648152724329888719134996568859134941333767647738864275932138962557511198774759566896691894722166128328225893768478248341822949853687422291578336352486469786861231295324583426354684342431926362473827575847684154697743734689936331118614573199559455748338333286218388757256223189574537452682532372456264918516576858786274349697734662962715683287367897531489385652847341798147976956631792721215592528899724643531383462556686347799772766349522843118555346989781851328865946223553621456947235329554533936878144635861486219652818462677366361646434683313581783758918964723816642111363811899174197115487887553876832114416536267169639528495783387721483246774682646628669447988762791916813481577258227261172147228341824352339157289897135332955998199627879176717897822544761262991265164274864555557612277324435761479816224682337127357398844341699581322799835548584314389745995855179279454931978332863856568153763799847559547699987285931868266656832598545525615435121238244728314753618151824578213225141643783161544661872322332576193156425843926593589733168536235643395981393242493688226979713577738458598714276554568185168337211147896889316171539558167111833159768559493112384332467368664861867814156378538164329377236733748622958776648557811137161656239224328297972148952976975161895716361192828323329547335763144517444476789632165138152757952415461911518583929444542727712175732834114262574637282373956
